FP: Migrating some fields to add_item_ret

Started with header crc,frame type and cfn

Change-Id: I37409f82bbe63c2034cb87939c7722039ec104db
Reviewed-on: https://code.wireshark.org/review/28088
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
This commit is contained in:
Darien Spencer 2018-06-06 23:22:36 +03:00 committed by Anders Broman
parent f76f9a51b8
commit 37119e5da0
1 changed files with 45 additions and 71 deletions

View File

@ -1477,17 +1477,15 @@ dissect_rach_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
int offset, struct fp_info *p_fp_info, void *data) int offset, struct fp_info *p_fp_info, void *data)
{ {
gboolean is_control_frame; gboolean is_control_frame;
guint16 header_crc = 0; guint32 header_crc = 0;
proto_item * header_crc_pi = NULL; proto_item * header_crc_pi = NULL;
guint header_length = 0; guint header_length = 0;
/* Header CRC */ /* Header CRC */
header_crc = tvb_get_bits8(tvb, 0, 7); header_crc_pi = proto_tree_add_item_ret_uint(tree, hf_fp_header_crc, tvb, offset, 1, ENC_BIG_ENDIAN, &header_crc);
header_crc_pi = proto_tree_add_item(tree, hf_fp_header_crc, tvb, offset, 1, ENC_BIG_ENDIAN);
/* Frame Type */ /* Frame Type */
is_control_frame = tvb_get_guint8(tvb, offset) & 0x01; proto_tree_add_item_ret_uint(tree, hf_fp_ft, tvb, offset, 1, ENC_BIG_ENDIAN, &is_control_frame);
proto_tree_add_item(tree, hf_fp_ft, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++; offset++;
col_append_str(pinfo->cinfo, COL_INFO, is_control_frame ? " [Control] " : " [Data] "); col_append_str(pinfo->cinfo, COL_INFO, is_control_frame ? " [Control] " : " [Data] ");
@ -1497,7 +1495,7 @@ dissect_rach_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
/* For control frame the header CRC is actually frame CRC covering all /* For control frame the header CRC is actually frame CRC covering all
* bytes except the first */ * bytes except the first */
if (preferences_header_checksum) { if (preferences_header_checksum) {
verify_control_frame_crc(tvb, pinfo, header_crc_pi, header_crc); verify_control_frame_crc(tvb, pinfo, header_crc_pi, (guint16)header_crc);
} }
} }
else { else {
@ -1732,17 +1730,15 @@ dissect_fach_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
int offset, struct fp_info *p_fp_info, void *data) int offset, struct fp_info *p_fp_info, void *data)
{ {
gboolean is_control_frame; gboolean is_control_frame;
guint16 header_crc = 0; guint32 header_crc = 0;
proto_item * header_crc_pi = NULL; proto_item * header_crc_pi = NULL;
guint header_length = 0; guint header_length = 0;
/* Header CRC */ /* Header CRC */
header_crc = tvb_get_bits8(tvb, 0, 7); header_crc_pi = proto_tree_add_item_ret_uint(tree, hf_fp_header_crc, tvb, offset, 1, ENC_BIG_ENDIAN, &header_crc);
header_crc_pi = proto_tree_add_item(tree, hf_fp_header_crc, tvb, offset, 1, ENC_BIG_ENDIAN);
/* Frame Type */ /* Frame Type */
is_control_frame = tvb_get_guint8(tvb, offset) & 0x01; proto_tree_add_item_ret_uint(tree, hf_fp_ft, tvb, offset, 1, ENC_BIG_ENDIAN, &is_control_frame);
proto_tree_add_item(tree, hf_fp_ft, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++; offset++;
col_append_str(pinfo->cinfo, COL_INFO, is_control_frame ? " [Control] " : " [Data] "); col_append_str(pinfo->cinfo, COL_INFO, is_control_frame ? " [Control] " : " [Data] ");
@ -1752,7 +1748,7 @@ dissect_fach_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
/* For control frame the header CRC is actually frame CRC covering all /* For control frame the header CRC is actually frame CRC covering all
* bytes except the first */ * bytes except the first */
if (preferences_header_checksum) { if (preferences_header_checksum) {
verify_control_frame_crc(tvb, pinfo, header_crc_pi, header_crc); verify_control_frame_crc(tvb, pinfo, header_crc_pi, (guint16)header_crc);
} }
} }
else { else {
@ -1813,8 +1809,7 @@ dissect_dsch_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item(tree, hf_fp_header_crc, tvb, offset, 1, ENC_BIG_ENDIAN); proto_tree_add_item(tree, hf_fp_header_crc, tvb, offset, 1, ENC_BIG_ENDIAN);
/* Frame Type */ /* Frame Type */
is_control_frame = tvb_get_guint8(tvb, offset) & 0x01; proto_tree_add_item_ret_uint(tree, hf_fp_ft, tvb, offset, 1, ENC_BIG_ENDIAN, &is_control_frame);
proto_tree_add_item(tree, hf_fp_ft, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++; offset++;
col_append_str(pinfo->cinfo, COL_INFO, is_control_frame ? " [Control] " : " [Data] "); col_append_str(pinfo->cinfo, COL_INFO, is_control_frame ? " [Control] " : " [Data] ");
@ -1823,14 +1818,13 @@ dissect_dsch_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
dissect_common_control(tvb, pinfo, tree, offset, p_fp_info); dissect_common_control(tvb, pinfo, tree, offset, p_fp_info);
} }
else { else {
guint8 cfn; guint32 cfn;
guint header_length = 0; guint header_length = 0;
/* DATA */ /* DATA */
/* CFN */ /* CFN */
cfn = tvb_get_guint8(tvb, offset); proto_tree_add_item_ret_uint(tree, hf_fp_cfn, tvb, offset, 1, ENC_BIG_ENDIAN, &cfn);
proto_tree_add_item(tree, hf_fp_cfn, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++; offset++;
col_append_fstr(pinfo->cinfo, COL_INFO, "CFN=%03u ", cfn); col_append_fstr(pinfo->cinfo, COL_INFO, "CFN=%03u ", cfn);
@ -1897,8 +1891,7 @@ dissect_usch_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item(tree, hf_fp_header_crc, tvb, offset, 1, ENC_BIG_ENDIAN); proto_tree_add_item(tree, hf_fp_header_crc, tvb, offset, 1, ENC_BIG_ENDIAN);
/* Frame Type */ /* Frame Type */
is_control_frame = tvb_get_guint8(tvb, offset) & 0x01; proto_tree_add_item_ret_uint(tree, hf_fp_ft, tvb, offset, 1, ENC_BIG_ENDIAN, &is_control_frame);
proto_tree_add_item(tree, hf_fp_ft, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++; offset++;
col_append_str(pinfo->cinfo, COL_INFO, is_control_frame ? " [Control] " : " [Data] "); col_append_str(pinfo->cinfo, COL_INFO, is_control_frame ? " [Control] " : " [Data] ");
@ -1915,8 +1908,7 @@ dissect_usch_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
/* DATA */ /* DATA */
/* CFN */ /* CFN */
cfn = tvb_get_guint8(tvb, offset); proto_tree_add_item_ret_uint(tree, hf_fp_cfn, tvb, offset, 1, ENC_BIG_ENDIAN, &cfn);
proto_tree_add_item(tree, hf_fp_cfn, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++; offset++;
col_append_fstr(pinfo->cinfo, COL_INFO, "CFN=%03u ", cfn); col_append_fstr(pinfo->cinfo, COL_INFO, "CFN=%03u ", cfn);
@ -1975,16 +1967,14 @@ dissect_pch_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
guint16 pch_cfn; guint16 pch_cfn;
guint32 tfi; guint32 tfi;
gboolean paging_indication; gboolean paging_indication;
guint16 header_crc = 0; guint32 header_crc = 0;
proto_item * header_crc_pi = NULL; proto_item * header_crc_pi = NULL;
/* Header CRC */ /* Header CRC */
header_crc = tvb_get_bits8(tvb, 0, 7); header_crc_pi = proto_tree_add_item_ret_uint(tree, hf_fp_header_crc, tvb, offset, 1, ENC_BIG_ENDIAN, &header_crc);
header_crc_pi = proto_tree_add_item(tree, hf_fp_header_crc, tvb, offset, 1, ENC_BIG_ENDIAN);
/* Frame Type */ /* Frame Type */
is_control_frame = tvb_get_guint8(tvb, offset) & 0x01; proto_tree_add_item_ret_uint(tree, hf_fp_ft, tvb, offset, 1, ENC_BIG_ENDIAN, &is_control_frame);
proto_tree_add_item(tree, hf_fp_ft, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++; offset++;
col_append_str(pinfo->cinfo, COL_INFO, is_control_frame ? " [Control] " : " [Data] "); col_append_str(pinfo->cinfo, COL_INFO, is_control_frame ? " [Control] " : " [Data] ");
@ -1994,7 +1984,7 @@ dissect_pch_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
/* For control frame the header CRC is actually frame CRC covering all /* For control frame the header CRC is actually frame CRC covering all
* bytes except the first */ * bytes except the first */
if (preferences_header_checksum) { if (preferences_header_checksum) {
verify_control_frame_crc(tvb, pinfo, header_crc_pi, header_crc); verify_control_frame_crc(tvb, pinfo, header_crc_pi, (guint16)header_crc);
} }
} }
else { else {
@ -2093,8 +2083,7 @@ dissect_cpch_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item(tree, hf_fp_header_crc, tvb, offset, 1, ENC_BIG_ENDIAN); proto_tree_add_item(tree, hf_fp_header_crc, tvb, offset, 1, ENC_BIG_ENDIAN);
/* Frame Type */ /* Frame Type */
is_control_frame = tvb_get_guint8(tvb, offset) & 0x01; proto_tree_add_item_ret_uint(tree, hf_fp_ft, tvb, offset, 1, ENC_BIG_ENDIAN, &is_control_frame);
proto_tree_add_item(tree, hf_fp_ft, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++; offset++;
col_append_str(pinfo->cinfo, COL_INFO, is_control_frame ? " [Control] " : " [Data] "); col_append_str(pinfo->cinfo, COL_INFO, is_control_frame ? " [Control] " : " [Data] ");
@ -2110,8 +2099,7 @@ dissect_cpch_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
/* DATA */ /* DATA */
/* CFN */ /* CFN */
cfn = tvb_get_guint8(tvb, offset); proto_tree_add_item_ret_uint(tree, hf_fp_cfn, tvb, offset, 1, ENC_BIG_ENDIAN, &cfn);
proto_tree_add_item(tree, hf_fp_cfn, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++; offset++;
col_append_fstr(pinfo->cinfo, COL_INFO, "CFN=%03u ", cfn); col_append_fstr(pinfo->cinfo, COL_INFO, "CFN=%03u ", cfn);
@ -2149,8 +2137,7 @@ dissect_bch_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item(tree, hf_fp_header_crc, tvb, offset, 1, ENC_BIG_ENDIAN); proto_tree_add_item(tree, hf_fp_header_crc, tvb, offset, 1, ENC_BIG_ENDIAN);
/* Frame Type */ /* Frame Type */
is_control_frame = tvb_get_guint8(tvb, offset) & 0x01; proto_tree_add_item_ret_uint(tree, hf_fp_ft, tvb, offset, 1, ENC_BIG_ENDIAN, &is_control_frame);
proto_tree_add_item(tree, hf_fp_ft, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++; offset++;
col_append_str(pinfo->cinfo, COL_INFO, is_control_frame ? " [Control] " : " [Data] "); col_append_str(pinfo->cinfo, COL_INFO, is_control_frame ? " [Control] " : " [Data] ");
@ -2173,8 +2160,7 @@ dissect_iur_dsch_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
proto_tree_add_item(tree, hf_fp_header_crc, tvb, offset, 1, ENC_BIG_ENDIAN); proto_tree_add_item(tree, hf_fp_header_crc, tvb, offset, 1, ENC_BIG_ENDIAN);
/* Frame Type */ /* Frame Type */
is_control_frame = tvb_get_guint8(tvb, offset) & 0x01; proto_tree_add_item_ret_uint(tree, hf_fp_ft, tvb, offset, 1, ENC_BIG_ENDIAN, &is_control_frame);
proto_tree_add_item(tree, hf_fp_ft, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++; offset++;
col_append_str(pinfo->cinfo, COL_INFO, is_control_frame ? " [Control] " : " [Data] "); col_append_str(pinfo->cinfo, COL_INFO, is_control_frame ? " [Control] " : " [Data] ");
@ -2392,7 +2378,6 @@ dissect_dch_radio_interface_parameter_update(proto_tree *tree, packet_info *pinf
offset += 2; offset += 2;
/* CFN */ /* CFN */
tvb_get_guint8(tvb, offset);
proto_tree_add_item(tree, hf_fp_cfn, tvb, offset, 1, ENC_BIG_ENDIAN); proto_tree_add_item(tree, hf_fp_cfn, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++; offset++;
@ -2533,18 +2518,16 @@ dissect_dch_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
int offset, struct fp_info *p_fp_info, void *data) int offset, struct fp_info *p_fp_info, void *data)
{ {
gboolean is_control_frame; gboolean is_control_frame;
guint8 cfn; guint32 cfn;
guint header_length = 0; guint header_length = 0;
guint16 header_crc = 0; guint32 header_crc = 0;
proto_item * header_crc_pi = NULL; proto_item * header_crc_pi = NULL;
/* Header CRC */ /* Header CRC */
header_crc = tvb_get_bits8(tvb, 0, 7); header_crc_pi = proto_tree_add_item_ret_uint(tree, hf_fp_header_crc, tvb, offset, 1, ENC_BIG_ENDIAN, &header_crc);
header_crc_pi = proto_tree_add_item(tree, hf_fp_header_crc, tvb, offset, 1, ENC_BIG_ENDIAN);
/* Frame Type */ /* Frame Type */
is_control_frame = tvb_get_guint8(tvb, offset) & 0x01; proto_tree_add_item_ret_uint(tree, hf_fp_ft, tvb, offset, 1, ENC_BIG_ENDIAN, &is_control_frame);
proto_tree_add_item(tree, hf_fp_ft, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++; offset++;
col_append_str(pinfo->cinfo, COL_INFO, col_append_str(pinfo->cinfo, COL_INFO,
@ -2558,15 +2541,14 @@ dissect_dch_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
/* For control frame the header CRC is actually frame CRC covering all /* For control frame the header CRC is actually frame CRC covering all
* bytes except the first */ * bytes except the first */
if (preferences_header_checksum) { if (preferences_header_checksum) {
verify_control_frame_crc(tvb, pinfo, header_crc_pi, header_crc); verify_control_frame_crc(tvb, pinfo, header_crc_pi, (guint16)header_crc);
} }
} else { } else {
/************************/ /************************/
/* DCH data here */ /* DCH data here */
int chan; int chan;
/* CFN */ /* CFN */
proto_tree_add_item(tree, hf_fp_cfn, tvb, offset, 1, ENC_BIG_ENDIAN); proto_tree_add_item_ret_uint(tree, hf_fp_cfn, tvb, offset, 1, ENC_BIG_ENDIAN, &cfn);
cfn = tvb_get_guint8(tvb, offset);
offset++; offset++;
col_append_fstr(pinfo->cinfo, COL_INFO, "CFN=%03u ", cfn); col_append_fstr(pinfo->cinfo, COL_INFO, "CFN=%03u ", cfn);
@ -2609,10 +2591,10 @@ dissect_e_dch_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
{ {
gboolean is_control_frame; gboolean is_control_frame;
guint8 number_of_subframes; guint8 number_of_subframes;
guint8 cfn; guint32 cfn;
int n; int n;
struct edch_t1_subframe_info subframes[16]; struct edch_t1_subframe_info subframes[16];
guint16 header_crc = 0; guint32 header_crc = 0;
proto_item * header_crc_pi = NULL; proto_item * header_crc_pi = NULL;
guint header_length = 0; guint header_length = 0;
rlc_info * rlcinf; rlc_info * rlcinf;
@ -2635,12 +2617,11 @@ dissect_e_dch_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
/* For control frame the header CRC is actually frame CRC covering all /* For control frame the header CRC is actually frame CRC covering all
* bytes except the first */ * bytes except the first */
header_crc = tvb_get_bits8(tvb, 0, 7); header_crc_pi = proto_tree_add_item_ret_uint(tree, hf_fp_header_crc, tvb, offset, 1, ENC_BIG_ENDIAN, &header_crc);
header_crc_pi = proto_tree_add_item(tree, hf_fp_header_crc, tvb, 0, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(tree, hf_fp_ft, tvb, 0, 1, ENC_BIG_ENDIAN); proto_tree_add_item(tree, hf_fp_ft, tvb, 0, 1, ENC_BIG_ENDIAN);
offset++; offset++;
if (preferences_header_checksum) { if (preferences_header_checksum) {
verify_control_frame_crc(tvb, pinfo, header_crc_pi, header_crc); verify_control_frame_crc(tvb, pinfo, header_crc_pi, (guint16)header_crc);
} }
dissect_dch_control_frame(tree, pinfo, tvb, offset, p_fp_info); dissect_dch_control_frame(tree, pinfo, tvb, offset, p_fp_info);
} }
@ -2696,8 +2677,7 @@ dissect_e_dch_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
offset++; offset++;
/* CFN */ /* CFN */
cfn = tvb_get_guint8(tvb, offset); proto_tree_add_item_ret_uint(tree, hf_fp_cfn, tvb, offset, 1, ENC_BIG_ENDIAN, &cfn);
proto_tree_add_item(tree, hf_fp_cfn, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++; offset++;
/* Remainder of T2 or common data frames differ here... */ /* Remainder of T2 or common data frames differ here... */
@ -3168,16 +3148,14 @@ dissect_hsdsch_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
{ {
gboolean is_control_frame; gboolean is_control_frame;
guint header_length = 0; guint header_length = 0;
guint16 header_crc = 0; guint32 header_crc = 0;
proto_item * header_crc_pi = NULL; proto_item * header_crc_pi = NULL;
/* Header CRC */ /* Header CRC */
header_crc = tvb_get_bits8(tvb, 0, 7); header_crc_pi = proto_tree_add_item_ret_uint(tree, hf_fp_header_crc, tvb, offset, 1, ENC_BIG_ENDIAN, &header_crc);
header_crc_pi = proto_tree_add_item(tree, hf_fp_header_crc, tvb, offset, 1, ENC_BIG_ENDIAN);
/* Frame Type */ /* Frame Type */
is_control_frame = tvb_get_guint8(tvb, offset) & 0x01; proto_tree_add_item_ret_uint(tree, hf_fp_ft, tvb, offset, 1, ENC_BIG_ENDIAN, &is_control_frame);
proto_tree_add_item(tree, hf_fp_ft, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++; offset++;
col_append_str(pinfo->cinfo, COL_INFO, is_control_frame ? " [Control] " : " [Data] "); col_append_str(pinfo->cinfo, COL_INFO, is_control_frame ? " [Control] " : " [Data] ");
@ -3187,7 +3165,7 @@ dissect_hsdsch_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
/* For control frame the header CRC is actually frame CRC covering all /* For control frame the header CRC is actually frame CRC covering all
* bytes except the first */ * bytes except the first */
if (preferences_header_checksum) { if (preferences_header_checksum) {
verify_control_frame_crc(tvb, pinfo, header_crc_pi, header_crc); verify_control_frame_crc(tvb, pinfo, header_crc_pi, (guint16)header_crc);
} }
} }
else { else {
@ -3373,17 +3351,15 @@ dissect_hsdsch_type_2_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree
void *data) void *data)
{ {
gboolean is_control_frame; gboolean is_control_frame;
guint16 header_crc = 0; guint32 header_crc = 0;
proto_item * header_crc_pi = NULL; proto_item * header_crc_pi = NULL;
guint16 header_length = 0; guint16 header_length = 0;
/* Header CRC */ /* Header CRC */
header_crc = tvb_get_bits8(tvb, 0, 7); header_crc_pi = proto_tree_add_item_ret_uint(tree, hf_fp_header_crc, tvb, offset, 1, ENC_BIG_ENDIAN, &header_crc);
header_crc_pi = proto_tree_add_item(tree, hf_fp_header_crc, tvb, offset, 1, ENC_BIG_ENDIAN);
/* Frame Type */ /* Frame Type */
is_control_frame = tvb_get_guint8(tvb, offset) & 0x01; proto_tree_add_item_ret_uint(tree, hf_fp_ft, tvb, offset, 1, ENC_BIG_ENDIAN, &is_control_frame);
proto_tree_add_item(tree, hf_fp_ft, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++; offset++;
col_append_str(pinfo->cinfo, COL_INFO, is_control_frame ? " [Control] " : " [Data] "); col_append_str(pinfo->cinfo, COL_INFO, is_control_frame ? " [Control] " : " [Data] ");
@ -3393,7 +3369,7 @@ dissect_hsdsch_type_2_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree
/* For control frame the header CRC is actually frame CRC covering all /* For control frame the header CRC is actually frame CRC covering all
* bytes except the first */ * bytes except the first */
if (preferences_header_checksum) { if (preferences_header_checksum) {
verify_control_frame_crc(tvb, pinfo, header_crc_pi, header_crc); verify_control_frame_crc(tvb, pinfo, header_crc_pi, (guint16)header_crc);
} }
} }
else { else {
@ -3628,17 +3604,15 @@ void dissect_hsdsch_common_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto
void *data) void *data)
{ {
gboolean is_control_frame; gboolean is_control_frame;
guint16 header_crc = 0; guint32 header_crc = 0;
proto_item * header_crc_pi = NULL; proto_item * header_crc_pi = NULL;
guint header_length = 0; guint header_length = 0;
/* Header CRC */ /* Header CRC */
header_crc = tvb_get_bits8(tvb, 0, 7); header_crc_pi = proto_tree_add_item_ret_uint(tree, hf_fp_header_crc, tvb, offset, 1, ENC_BIG_ENDIAN, &header_crc);
header_crc_pi = proto_tree_add_item(tree, hf_fp_header_crc, tvb, offset, 1, ENC_BIG_ENDIAN);
/* Frame Type */ /* Frame Type */
is_control_frame = tvb_get_guint8(tvb, offset) & 0x01; proto_tree_add_item_ret_uint(tree, hf_fp_ft, tvb, offset, 1, ENC_BIG_ENDIAN, &is_control_frame);
proto_tree_add_item(tree, hf_fp_ft, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++; offset++;
col_append_str(pinfo->cinfo, COL_INFO, is_control_frame ? " [Control] " : " [Data] "); col_append_str(pinfo->cinfo, COL_INFO, is_control_frame ? " [Control] " : " [Data] ");
@ -3648,7 +3622,7 @@ void dissect_hsdsch_common_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto
/* For control frame the header CRC is actually frame CRC covering all /* For control frame the header CRC is actually frame CRC covering all
* bytes except the first */ * bytes except the first */
if (preferences_header_checksum) { if (preferences_header_checksum) {
verify_control_frame_crc(tvb, pinfo, header_crc_pi, header_crc); verify_control_frame_crc(tvb, pinfo, header_crc_pi, (guint16)header_crc);
} }
} }
else { else {
@ -5902,7 +5876,7 @@ void proto_register_fp(void)
}, },
{ &hf_fp_cfn, { &hf_fp_cfn,
{ "CFN", { "CFN",
"fp.cfn", FT_UINT8, BASE_DEC, NULL, 0x0, "fp.cfn", FT_UINT8, BASE_DEC, NULL, 0xff,
"Connection Frame Number", HFILL "Connection Frame Number", HFILL
} }
}, },