diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-09-19 04:14:53 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-09-19 04:14:53 +0000 |
commit | a86c5f7cae7ec9a3398300555a0b644689d946a1 (patch) | |
tree | 39fe4b107c71174fd1e8a8ceb9a4d2aa14116248 /epan/dissectors/packet-pgm.c | |
parent | Releasing progress-linux version 4.2.6-1~progress7.99u1. (diff) | |
download | wireshark-a86c5f7cae7ec9a3398300555a0b644689d946a1.tar.xz wireshark-a86c5f7cae7ec9a3398300555a0b644689d946a1.zip |
Merging upstream version 4.4.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'epan/dissectors/packet-pgm.c')
-rw-r--r-- | epan/dissectors/packet-pgm.c | 351 |
1 files changed, 175 insertions, 176 deletions
diff --git a/epan/dissectors/packet-pgm.c b/epan/dissectors/packet-pgm.c index b8f14cc0..ab99e6ba 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 @@ -137,146 +137,146 @@ static gboolean pgm_check_checksum = TRUE; #define PGM_OPT_REDIRECT_SIZE 12 #define PGM_OPT_FRAGMENT_SIZE 16 -static int proto_pgm = -1; -static int ett_pgm = -1; -static int ett_pgm_optbits = -1; -static int ett_pgm_opts = -1; -static int ett_pgm_spm = -1; -static int ett_pgm_data = -1; -static int ett_pgm_nak = -1; -static int ett_pgm_poll = -1; -static int ett_pgm_polr = -1; -static int ett_pgm_ack = -1; -static int ett_pgm_opts_join = -1; -static int ett_pgm_opts_parityprm = -1; -static int ett_pgm_opts_paritygrp = -1; -static int ett_pgm_opts_naklist = -1; -static int ett_pgm_opts_ccdata = -1; -static int ett_pgm_opts_nak_bo_ivl = -1; -static int ett_pgm_opts_nak_bo_rng = -1; -static int ett_pgm_opts_redirect = -1; -static int ett_pgm_opts_fragment = -1; - -static int hf_pgm_main_sport = -1; -static int hf_pgm_main_dport = -1; -static int hf_pgm_port = -1; -static int hf_pgm_main_type = -1; -static int hf_pgm_main_opts = -1; -static int hf_pgm_main_opts_opt = -1; -static int hf_pgm_main_opts_netsig = -1; -static int hf_pgm_main_opts_varlen = -1; -static int hf_pgm_main_opts_parity = -1; -static int hf_pgm_main_cksum = -1; -static int hf_pgm_main_cksum_status = -1; -static int hf_pgm_main_gsi = -1; -static int hf_pgm_main_tsdulen = -1; -static int hf_pgm_spm_sqn = -1; -static int hf_pgm_spm_lead = -1; -static int hf_pgm_spm_trail = -1; -static int hf_pgm_spm_pathafi = -1; -static int hf_pgm_spm_res = -1; -static int hf_pgm_spm_path = -1; -static int hf_pgm_spm_path6 = -1; -/* static int hf_pgm_data_sqn = -1; */ -/* static int hf_pgm_data_trail = -1; */ -static int hf_pgm_nak_sqn = -1; -static int hf_pgm_nak_srcafi = -1; -static int hf_pgm_nak_srcres = -1; -static int hf_pgm_nak_src = -1; -static int hf_pgm_nak_src6 = -1; -static int hf_pgm_nak_grpafi = -1; -static int hf_pgm_nak_grpres = -1; -static int hf_pgm_nak_grp = -1; -static int hf_pgm_nak_grp6 = -1; -static int hf_pgm_poll_sqn = -1; -static int hf_pgm_poll_round = -1; -static int hf_pgm_poll_subtype = -1; -static int hf_pgm_poll_pathafi = -1; -static int hf_pgm_poll_res = -1; -static int hf_pgm_poll_path = -1; -static int hf_pgm_poll_path6 = -1; -static int hf_pgm_poll_backoff_ivl = -1; -static int hf_pgm_poll_rand_str = -1; -static int hf_pgm_poll_matching_bmask = -1; -static int hf_pgm_polr_sqn = -1; -static int hf_pgm_polr_round = -1; -static int hf_pgm_polr_res = -1; -static int hf_pgm_ack_sqn = -1; -static int hf_pgm_ack_bitmap = -1; - -static int hf_pgm_opt_type = -1; -static int hf_pgm_opt_len = -1; -static int hf_pgm_opt_tlen = -1; - -static int hf_pgm_genopt_end = -1; -static int hf_pgm_genopt_type = -1; -static int hf_pgm_genopt_len = -1; -static int hf_pgm_genopt_opx = -1; - -static int hf_pgm_opt_join_res = -1; -static int hf_pgm_opt_join_minjoin = -1; - -static int hf_pgm_opt_parity_prm_po = -1; -static int hf_pgm_opt_parity_prm_prmtgsz = -1; - -static int hf_pgm_opt_parity_grp_res = -1; -static int hf_pgm_opt_parity_grp_prmgrp = -1; - -static int hf_pgm_opt_nak_res = -1; -static int hf_pgm_opt_nak_list = -1; - -static int hf_pgm_opt_ccdata_res = -1; -static int hf_pgm_opt_ccdata_tsp = -1; -static int hf_pgm_opt_ccdata_afi = -1; -static int hf_pgm_opt_ccdata_res2 = -1; -static int hf_pgm_opt_ccdata_acker = -1; -static int hf_pgm_opt_ccdata_acker6 = -1; - -static int hf_pgm_opt_ccfeedbk_res = -1; -static int hf_pgm_opt_ccfeedbk_tsp = -1; -static int hf_pgm_opt_ccfeedbk_afi = -1; -static int hf_pgm_opt_ccfeedbk_lossrate = -1; -static int hf_pgm_opt_ccfeedbk_acker = -1; -static int hf_pgm_opt_ccfeedbk_acker6 = -1; - -static int hf_pgm_opt_nak_bo_ivl_res = -1; -static int hf_pgm_opt_nak_bo_ivl_bo_ivl = -1; -static int hf_pgm_opt_nak_bo_ivl_bo_ivl_sqn = -1; - -static int hf_pgm_opt_nak_bo_rng_res = -1; -static int hf_pgm_opt_nak_bo_rng_min_bo_ivl = -1; -static int hf_pgm_opt_nak_bo_rng_max_bo_ivl = -1; - -static int hf_pgm_opt_redirect_res = -1; -static int hf_pgm_opt_redirect_afi = -1; -static int hf_pgm_opt_redirect_res2 = -1; -static int hf_pgm_opt_redirect_dlr = -1; -static int hf_pgm_opt_redirect_dlr6 = -1; - -static int hf_pgm_opt_fragment_res = -1; -static int hf_pgm_opt_fragment_first_sqn = -1; -static int hf_pgm_opt_fragment_offset = -1; -static int hf_pgm_opt_fragment_total_length = -1; - -static expert_field ei_pgm_genopt_len = EI_INIT; -static expert_field ei_pgm_opt_tlen = EI_INIT; -static expert_field ei_pgm_opt_type = EI_INIT; -static expert_field ei_address_format_invalid = EI_INIT; -static expert_field ei_pgm_main_cksum = EI_INIT; +static int proto_pgm; +static int ett_pgm; +static int ett_pgm_optbits; +static int ett_pgm_opts; +static int ett_pgm_spm; +static int ett_pgm_data; +static int ett_pgm_nak; +static int ett_pgm_poll; +static int ett_pgm_polr; +static int ett_pgm_ack; +static int ett_pgm_opts_join; +static int ett_pgm_opts_parityprm; +static int ett_pgm_opts_paritygrp; +static int ett_pgm_opts_naklist; +static int ett_pgm_opts_ccdata; +static int ett_pgm_opts_nak_bo_ivl; +static int ett_pgm_opts_nak_bo_rng; +static int ett_pgm_opts_redirect; +static int ett_pgm_opts_fragment; + +static int hf_pgm_main_sport; +static int hf_pgm_main_dport; +static int hf_pgm_port; +static int hf_pgm_main_type; +static int hf_pgm_main_opts; +static int hf_pgm_main_opts_opt; +static int hf_pgm_main_opts_netsig; +static int hf_pgm_main_opts_varlen; +static int hf_pgm_main_opts_parity; +static int hf_pgm_main_cksum; +static int hf_pgm_main_cksum_status; +static int hf_pgm_main_gsi; +static int hf_pgm_main_tsdulen; +static int hf_pgm_spm_sqn; +static int hf_pgm_spm_lead; +static int hf_pgm_spm_trail; +static int hf_pgm_spm_pathafi; +static int hf_pgm_spm_res; +static int hf_pgm_spm_path; +static int hf_pgm_spm_path6; +/* static int hf_pgm_data_sqn; */ +/* static int hf_pgm_data_trail; */ +static int hf_pgm_nak_sqn; +static int hf_pgm_nak_srcafi; +static int hf_pgm_nak_srcres; +static int hf_pgm_nak_src; +static int hf_pgm_nak_src6; +static int hf_pgm_nak_grpafi; +static int hf_pgm_nak_grpres; +static int hf_pgm_nak_grp; +static int hf_pgm_nak_grp6; +static int hf_pgm_poll_sqn; +static int hf_pgm_poll_round; +static int hf_pgm_poll_subtype; +static int hf_pgm_poll_pathafi; +static int hf_pgm_poll_res; +static int hf_pgm_poll_path; +static int hf_pgm_poll_path6; +static int hf_pgm_poll_backoff_ivl; +static int hf_pgm_poll_rand_str; +static int hf_pgm_poll_matching_bmask; +static int hf_pgm_polr_sqn; +static int hf_pgm_polr_round; +static int hf_pgm_polr_res; +static int hf_pgm_ack_sqn; +static int hf_pgm_ack_bitmap; + +static int hf_pgm_opt_type; +static int hf_pgm_opt_len; +static int hf_pgm_opt_tlen; + +static int hf_pgm_genopt_end; +static int hf_pgm_genopt_type; +static int hf_pgm_genopt_len; +static int hf_pgm_genopt_opx; + +static int hf_pgm_opt_join_res; +static int hf_pgm_opt_join_minjoin; + +static int hf_pgm_opt_parity_prm_po; +static int hf_pgm_opt_parity_prm_prmtgsz; + +static int hf_pgm_opt_parity_grp_res; +static int hf_pgm_opt_parity_grp_prmgrp; + +static int hf_pgm_opt_nak_res; +static int hf_pgm_opt_nak_list; + +static int hf_pgm_opt_ccdata_res; +static int hf_pgm_opt_ccdata_tsp; +static int hf_pgm_opt_ccdata_afi; +static int hf_pgm_opt_ccdata_res2; +static int hf_pgm_opt_ccdata_acker; +static int hf_pgm_opt_ccdata_acker6; + +static int hf_pgm_opt_ccfeedbk_res; +static int hf_pgm_opt_ccfeedbk_tsp; +static int hf_pgm_opt_ccfeedbk_afi; +static int hf_pgm_opt_ccfeedbk_lossrate; +static int hf_pgm_opt_ccfeedbk_acker; +static int hf_pgm_opt_ccfeedbk_acker6; + +static int hf_pgm_opt_nak_bo_ivl_res; +static int hf_pgm_opt_nak_bo_ivl_bo_ivl; +static int hf_pgm_opt_nak_bo_ivl_bo_ivl_sqn; + +static int hf_pgm_opt_nak_bo_rng_res; +static int hf_pgm_opt_nak_bo_rng_min_bo_ivl; +static int hf_pgm_opt_nak_bo_rng_max_bo_ivl; + +static int hf_pgm_opt_redirect_res; +static int hf_pgm_opt_redirect_afi; +static int hf_pgm_opt_redirect_res2; +static int hf_pgm_opt_redirect_dlr; +static int hf_pgm_opt_redirect_dlr6; + +static int hf_pgm_opt_fragment_res; +static int hf_pgm_opt_fragment_first_sqn; +static int hf_pgm_opt_fragment_offset; +static int hf_pgm_opt_fragment_total_length; + +static expert_field ei_pgm_genopt_len; +static expert_field ei_pgm_opt_tlen; +static expert_field ei_pgm_opt_type; +static expert_field ei_address_format_invalid; +static expert_field ei_pgm_main_cksum; static dissector_table_t subdissector_table; static heur_dissector_list_t heur_subdissector_list; static const char * -optsstr(wmem_allocator_t *pool, guint8 opts) +optsstr(wmem_allocator_t *pool, uint8_t opts) { char *msg; - gint returned_length, idx = 0; + int returned_length, idx = 0; const int MAX_STR_LEN = 256; if (opts == 0) - return(""); + return ""; msg=(char *)wmem_alloc(pool, MAX_STR_LEN); if (opts & PGM_OPT){ @@ -298,17 +298,17 @@ 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) +paritystr(wmem_allocator_t *pool, uint8_t parity) { char *msg; - gint returned_length, idx = 0; + int returned_length, idx = 0; 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[] = { @@ -342,7 +342,6 @@ static const value_string opt_vals[] = { { PGM_OPT_PGMCC_FEEDBACK, "CcFeedBack" }, { PGM_OPT_NAK_BO_IVL, "NakBackOffIvl" }, { PGM_OPT_NAK_BO_RNG, "NakBackOffRng" }, - { PGM_OPT_FRAGMENT, "Fragment" }, { 0, NULL } }; @@ -377,17 +376,17 @@ dissect_pgmopts(ptvcursor_t* cursor, packet_info *pinfo, const char *pktname) proto_tree *opt_tree = NULL; tvbuff_t *tvb = ptvcursor_tvbuff(cursor); - gboolean theend = FALSE; + bool theend = false; - guint16 opts_total_len; - guint8 genopts_type; - guint8 genopts_len; - guint8 opts_type; + uint16_t opts_total_len; + uint8_t genopts_type; + uint8_t genopts_len; + uint8_t opts_type; opts_tree = proto_tree_add_subtree_format(ptvcursor_tree(cursor), tvb, ptvcursor_current_offset(cursor), -1, ett_pgm_opts, &tf, "%s Options", pktname); ptvcursor_set_tree(cursor, opts_tree); - opts_type = tvb_get_guint8(tvb, ptvcursor_current_offset(cursor)); + opts_type = tvb_get_uint8(tvb, ptvcursor_current_offset(cursor)); ti = ptvcursor_add(cursor, hf_pgm_opt_type, 1, ENC_BIG_ENDIAN); if (opts_type != PGM_OPT_LENGTH) { expert_add_info_format(pinfo, ti, &ei_pgm_opt_type, @@ -416,12 +415,12 @@ dissect_pgmopts(ptvcursor_t* cursor, packet_info *pinfo, const char *pktname) break; } - genopts_type = tvb_get_guint8(tvb, ptvcursor_current_offset(cursor)); - genopts_len = tvb_get_guint8(tvb, ptvcursor_current_offset(cursor)+1); + genopts_type = tvb_get_uint8(tvb, ptvcursor_current_offset(cursor)); + genopts_len = tvb_get_uint8(tvb, ptvcursor_current_offset(cursor)+1); if (genopts_type & PGM_OPT_END) { genopts_type &= ~PGM_OPT_END; - theend = TRUE; + theend = true; } switch(genopts_type) { @@ -447,7 +446,7 @@ dissect_pgmopts(ptvcursor_t* cursor, packet_info *pinfo, const char *pktname) break; } case PGM_OPT_PARITY_PRM:{ - guint8 optdata_po; + uint8_t optdata_po; TLV_CHECK(ett_pgm_opts_parityprm); ptvcursor_set_tree(cursor, opt_tree); @@ -465,7 +464,7 @@ dissect_pgmopts(ptvcursor_t* cursor, packet_info *pinfo, const char *pktname) } ptvcursor_add(cursor, hf_pgm_genopt_len, 1, ENC_BIG_ENDIAN); ptvcursor_add(cursor, hf_pgm_genopt_opx, 1, ENC_BIG_ENDIAN); - optdata_po = tvb_get_guint8(tvb, ptvcursor_current_offset(cursor)); + optdata_po = tvb_get_uint8(tvb, ptvcursor_current_offset(cursor)); proto_tree_add_uint_format_value(opt_tree, hf_pgm_opt_parity_prm_po, tvb, ptvcursor_current_offset(cursor), 1, optdata_po, "%s (0x%x)", paritystr(pinfo->pool, optdata_po), optdata_po); @@ -497,10 +496,10 @@ dissect_pgmopts(ptvcursor_t* cursor, packet_info *pinfo, const char *pktname) break; } case PGM_OPT_NAK_LIST:{ - guint8 optdata_len; - guint32 naklist[PGM_MAX_NAK_LIST_SZ+1]; + uint8_t optdata_len; + uint32_t naklist[PGM_MAX_NAK_LIST_SZ+1]; unsigned char *nakbuf; - gboolean firsttime; + bool firsttime; int i, j, naks, soffset; TLV_CHECK(ett_pgm_opts_naklist); @@ -509,16 +508,16 @@ dissect_pgmopts(ptvcursor_t* cursor, packet_info *pinfo, const char *pktname) ptvcursor_add_no_advance(cursor, hf_pgm_genopt_end, 1, ENC_BIG_ENDIAN); ptvcursor_add(cursor, hf_pgm_genopt_type, 1, ENC_BIG_ENDIAN); - optdata_len = tvb_get_guint8(tvb, ptvcursor_current_offset(cursor)); + optdata_len = tvb_get_uint8(tvb, ptvcursor_current_offset(cursor)); ptvcursor_add(cursor, hf_pgm_genopt_len, 1, ENC_BIG_ENDIAN); ptvcursor_add(cursor, hf_pgm_genopt_opx, 1, ENC_BIG_ENDIAN); ptvcursor_add(cursor, hf_pgm_opt_nak_res, 1, ENC_BIG_ENDIAN); optdata_len -= PGM_OPT_NAK_LIST_SIZE; - tvb_memcpy(tvb, (guint8 *)naklist, ptvcursor_current_offset(cursor), optdata_len); - firsttime = TRUE; + tvb_memcpy(tvb, (uint8_t *)naklist, ptvcursor_current_offset(cursor), optdata_len); + firsttime = true; soffset = 0; - naks = (int)(optdata_len/sizeof(guint32)); + naks = (int)(optdata_len/sizeof(uint32_t)); nakbuf = (unsigned char *)wmem_alloc(pinfo->pool, 8192); j = 0; /* @@ -534,7 +533,7 @@ dissect_pgmopts(ptvcursor_t* cursor, packet_info *pinfo, const char *pktname) hf_pgm_opt_nak_list, tvb, ptvcursor_current_offset(cursor), j*4, nakbuf, "List(%d): %s", naks, nakbuf); soffset = 0; - firsttime = FALSE; + firsttime = false; } else { proto_tree_add_bytes_format_value(opt_tree, hf_pgm_opt_nak_list, tvb, ptvcursor_current_offset(cursor), j*4, @@ -560,7 +559,7 @@ dissect_pgmopts(ptvcursor_t* cursor, packet_info *pinfo, const char *pktname) break; } case PGM_OPT_PGMCC_DATA:{ - guint16 optdata_afi; + uint16_t optdata_afi; TLV_CHECK(ett_pgm_opts_ccdata); ptvcursor_set_tree(cursor, opt_tree); @@ -601,7 +600,7 @@ dissect_pgmopts(ptvcursor_t* cursor, packet_info *pinfo, const char *pktname) break; } case PGM_OPT_PGMCC_FEEDBACK:{ - guint16 optdata_afi; + uint16_t optdata_afi; TLV_CHECK(ett_pgm_opts_ccdata); ptvcursor_set_tree(cursor, opt_tree); @@ -686,7 +685,7 @@ dissect_pgmopts(ptvcursor_t* cursor, packet_info *pinfo, const char *pktname) break; } case PGM_OPT_REDIRECT:{ - guint16 optdata_afi; + uint16_t optdata_afi; TLV_CHECK(ett_pgm_opts_redirect); ptvcursor_set_tree(cursor, opt_tree); @@ -786,7 +785,7 @@ static const value_string poll_subtype_vals[] = { static void decode_pgm_ports(tvbuff_t *tvb, int offset, packet_info *pinfo, - proto_tree *tree, guint16 pgmhdr_sport, guint16 pgmhdr_dport) + proto_tree *tree, uint16_t pgmhdr_sport, uint16_t pgmhdr_dport) { tvbuff_t *next_tvb; int found = 0; @@ -819,14 +818,14 @@ decode_pgm_ports(tvbuff_t *tvb, int offset, packet_info *pinfo, static int dissect_pgm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_) { - guint32 pgmhdr_sport; - guint32 pgmhdr_dport; - guint32 pgmhdr_type; - guint8 pgmhdr_opts; - guint16 pgmhdr_cksum; - guint32 pgmhdr_tsdulen; - guint32 sqn; - guint16 afi; + uint32_t pgmhdr_sport; + uint32_t pgmhdr_dport; + uint32_t pgmhdr_type; + uint8_t pgmhdr_opts; + uint16_t pgmhdr_cksum; + uint32_t pgmhdr_tsdulen; + uint32_t sqn; + uint16_t afi; proto_tree *pgm_tree = NULL; proto_tree *opt_tree = NULL; @@ -834,12 +833,12 @@ dissect_pgm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_) proto_item *tf, *hidden_item; ptvcursor_t* cursor; - guint plen = 0; + unsigned plen = 0; proto_item *ti; const char *pktname; char *gsi; - gboolean isdata = FALSE; - guint pgmlen, reportedlen; + bool isdata = false; + unsigned pgmlen, reportedlen; if (tvb_reported_length_remaining(tvb, 0) < 18) return 0; @@ -867,7 +866,7 @@ dissect_pgm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_) pktname, pgmhdr_sport, pgmhdr_dport); col_append_fstr(pinfo->cinfo, COL_INFO, "%-5s", pktname); - pgmhdr_opts = tvb_get_guint8(tvb, 5); + pgmhdr_opts = tvb_get_uint8(tvb, 5); tf = proto_tree_add_uint_format_value(pgm_tree, hf_pgm_main_opts, tvb, ptvcursor_current_offset(cursor), 1, pgmhdr_opts, "%s (0x%x)", optsstr(pinfo->pool, pgmhdr_opts), pgmhdr_opts); @@ -941,7 +940,7 @@ dissect_pgm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_) break; case PGM_RDATA_PCKT: case PGM_ODATA_PCKT: - isdata = TRUE; + isdata = true; type_tree = proto_tree_add_subtree_format(pgm_tree, tvb, ptvcursor_current_offset(cursor), plen, ett_pgm_data, NULL, "%s Packet", pktname); ptvcursor_set_tree(cursor, type_tree); @@ -997,7 +996,7 @@ dissect_pgm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_) } break; case PGM_POLL_PCKT: { - guint32 poll_stype; + uint32_t poll_stype; type_tree = proto_tree_add_subtree_format(pgm_tree, tvb, ptvcursor_current_offset(cursor), plen, ett_pgm_poll, NULL, "%s Packet", pktname); @@ -1246,7 +1245,7 @@ proto_register_pgm(void) { "Minimum Sequence Number", "pgm.opts.join.min_join", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }}, { &hf_pgm_opt_parity_grp_res, - { "Reserved", "pgm.opts.parity_prm.op", FT_UINT8, BASE_HEX, + { "Reserved", "pgm.opts.parity_prm.reserved", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL }}, { &hf_pgm_opt_parity_grp_prmgrp, { "Transmission Group Size", "pgm.opts.parity_prm.prm_grp", @@ -1340,7 +1339,7 @@ proto_register_pgm(void) { "Total Length", "pgm.opts.fragment.total_length", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }} }; - static gint *ett[] = { + static int *ett[] = { &ett_pgm, &ett_pgm_optbits, &ett_pgm_spm, @@ -1382,7 +1381,7 @@ proto_register_pgm(void) pgm_handle = register_dissector("pgm", dissect_pgm, proto_pgm); subdissector_table = register_dissector_table("pgm.port", "PGM port", proto_pgm, FT_UINT16, BASE_DEC); - heur_subdissector_list = register_heur_dissector_list("pgm", proto_pgm); + heur_subdissector_list = register_heur_dissector_list_with_description("pgm", "PGM data fallback", proto_pgm); /* * Register configuration preferences for UDP encapsulation |