Having business-as-usually unused words for specific "users" in TIPC not shown

as needlessly highlighted expert info but as normal text in the protocol tree.

Change-Id: I41028b00c6c5cdb85e399c959df721d768f674e1
Reviewed-on: https://code.wireshark.org/review/20360
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
This commit is contained in:
Martin Peylo 2017-03-02 18:07:40 +02:00 committed by Anders Broman
parent 4796f79f2f
commit aa02f5737c
1 changed files with 137 additions and 64 deletions

View File

@ -93,7 +93,7 @@ static int hf_tipc_sm_msg_type = -1;
static int hf_tipc_unknown_msg_type = -1; static int hf_tipc_unknown_msg_type = -1;
static int hf_tipc_seq_gap = -1; static int hf_tipc_seq_gap = -1;
static int hf_tipc_nxt_snt_pkg = -1; static int hf_tipc_nxt_snt_pkg = -1;
static int hf_tipc_unused3 = -1; static int hf_tipc_unused_word = -1;
static int hf_tipc_bearer_name = -1; static int hf_tipc_bearer_name = -1;
static int hf_tipc_data = -1; static int hf_tipc_data = -1;
static int hf_tipc_msg_no_bundle = -1; static int hf_tipc_msg_no_bundle = -1;
@ -194,7 +194,6 @@ static gint ett_tipc_msg_fragments = -1;
static gint ett_tipc = -1; static gint ett_tipc = -1;
static gint ett_tipc_data = -1; static gint ett_tipc_data = -1;
static expert_field ei_tipc_words_unused_for_user = EI_INIT;
static expert_field ei_tipc_field_not_specified = EI_INIT; static expert_field ei_tipc_field_not_specified = EI_INIT;
static int tipc_address_type = -1; static int tipc_address_type = -1;
@ -898,12 +897,24 @@ dissect_tipc_v2_internal_msg(tvbuff_t *tipc_tvb, proto_tree *tipc_tree, packet_i
proto_tree_add_string(tipc_tree, hf_tipcv2_prev_node, tipc_tvb, offset, 4, addr_str_ptr); proto_tree_add_string(tipc_tree, hf_tipcv2_prev_node, tipc_tvb, offset, 4, addr_str_ptr);
offset = offset + 4; offset = offset + 4;
if (handle_v2_as & (V2_AS_1_6)) { if (handle_v2_as & (V2_AS_1_6)) {
/* W4-8 */ /* W4 Unused */
proto_tree_add_expert_format(tipc_tree, pinfo, &ei_tipc_words_unused_for_user, tipc_tvb, offset, 20, "words 4-8 unused for this user"); proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 4 unused for this user");
offset = offset + 20; offset = offset + 4;
/* W5 Unused */
proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 5 unused for this user");
offset = offset + 4;
/* W6 Unused */
proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 6 unused for this user");
offset = offset + 4;
/* W7 Unused */
proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 7 unused for this user");
offset = offset + 4;
/* W8 Unused */
proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 8 unused for this user");
offset = offset + 4;
} else { } else {
/* W4 */ /* W4 Unused */
proto_tree_add_expert_format(tipc_tree, pinfo, &ei_tipc_words_unused_for_user, tipc_tvb, offset, 4, "word 4 unused for this user"); proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 4 unused for this user");
offset = offset + 4; offset = offset + 4;
/* W5 */ /* W5 */
proto_tree_add_item(tipc_tree, hf_tipcv2_network_id, tipc_tvb, offset, 4, ENC_BIG_ENDIAN); proto_tree_add_item(tipc_tree, hf_tipcv2_network_id, tipc_tvb, offset, 4, ENC_BIG_ENDIAN);
@ -918,8 +929,8 @@ dissect_tipc_v2_internal_msg(tvbuff_t *tipc_tvb, proto_tree *tipc_tree, packet_i
addr_str_ptr = tipc_addr_to_str(dword); addr_str_ptr = tipc_addr_to_str(dword);
proto_tree_add_string(tipc_tree, hf_tipcv2_dest_node, tipc_tvb, offset, 4, addr_str_ptr); proto_tree_add_string(tipc_tree, hf_tipcv2_dest_node, tipc_tvb, offset, 4, addr_str_ptr);
offset = offset + 4; offset = offset + 4;
/* W8 */ /* W8 Unused */
proto_tree_add_expert_format(tipc_tree, pinfo, &ei_tipc_words_unused_for_user, tipc_tvb, offset, 4, "word 8 unused for this user"); proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 8 unused for this user");
offset = offset + 4; offset = offset + 4;
} }
/* W9 */ /* W9 */
@ -929,10 +940,12 @@ dissect_tipc_v2_internal_msg(tvbuff_t *tipc_tvb, proto_tree *tipc_tree, packet_i
break; break;
case TIPCv2_MSG_BUNDLER: case TIPCv2_MSG_BUNDLER:
if (handle_v2_as & (V2_AS_1_6)) { if (handle_v2_as & (V2_AS_1_6)) {
/* W1+W2 */ /* W1 Unused */
/* No message types */ proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 1 unused for this user");
proto_tree_add_expert_format(tipc_tree, pinfo, &ei_tipc_words_unused_for_user, tipc_tvb, offset, 8, "words 1+2 unused for this user"); offset = offset + 4;
offset = offset + 8; /* W2 Unused */
proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 2 unused for this user");
offset = offset + 4;
} else { } else {
/* W1 */ /* W1 */
proto_tree_add_item(tipc_tree, hf_tipcv2_bundler_mtype, tipc_tvb, offset, 4, ENC_BIG_ENDIAN); proto_tree_add_item(tipc_tree, hf_tipcv2_bundler_mtype, tipc_tvb, offset, 4, ENC_BIG_ENDIAN);
@ -949,13 +962,28 @@ dissect_tipc_v2_internal_msg(tvbuff_t *tipc_tvb, proto_tree *tipc_tree, packet_i
proto_tree_add_string(tipc_tree, hf_tipcv2_prev_node, tipc_tvb, offset, 4, addr_str_ptr); proto_tree_add_string(tipc_tree, hf_tipcv2_prev_node, tipc_tvb, offset, 4, addr_str_ptr);
offset = offset + 4; offset = offset + 4;
if (handle_v2_as & (V2_AS_1_6)) { if (handle_v2_as & (V2_AS_1_6)) {
/* W4-8 */ /* W4 Unused */
proto_tree_add_expert_format(tipc_tree, pinfo, &ei_tipc_words_unused_for_user, tipc_tvb, offset, 20, "words 4-8 unused for this user"); proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 4 unused for this user");
offset = offset + 20; offset = offset + 4;
/* W5 Unused */
proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 5 unused for this user");
offset = offset + 4;
/* W6 Unused */
proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 6 unused for this user");
offset = offset + 4;
/* W7 Unused */
proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 7 unused for this user");
offset = offset + 4;
/* W8 Unused */
proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 8 unused for this user");
offset = offset + 4;
} else { } else {
/* W4+5 */ /* W4 Unused */
proto_tree_add_expert_format(tipc_tree, pinfo, &ei_tipc_words_unused_for_user, tipc_tvb, offset, 8, "words 4+5 unused for this user"); proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 4 unused for this user");
offset = offset + 8; offset = offset + 4;
/* W5 Unused */
proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 5 unused for this user");
offset = offset + 4;
/* W6 */ /* W6 */
dword = tvb_get_ntohl(tipc_tvb, offset); dword = tvb_get_ntohl(tipc_tvb, offset);
addr_str_ptr = tipc_addr_to_str(dword); addr_str_ptr = tipc_addr_to_str(dword);
@ -966,8 +994,8 @@ dissect_tipc_v2_internal_msg(tvbuff_t *tipc_tvb, proto_tree *tipc_tree, packet_i
addr_str_ptr = tipc_addr_to_str(dword); addr_str_ptr = tipc_addr_to_str(dword);
proto_tree_add_string(tipc_tree, hf_tipcv2_dest_node, tipc_tvb, offset, 4, addr_str_ptr); proto_tree_add_string(tipc_tree, hf_tipcv2_dest_node, tipc_tvb, offset, 4, addr_str_ptr);
offset = offset + 4; offset = offset + 4;
/* W8 */ /* W8 Unused */
proto_tree_add_expert_format(tipc_tree, pinfo, &ei_tipc_words_unused_for_user, tipc_tvb, offset, 4, "word 8 unused for this user"); proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 8 unused for this user");
offset = offset + 4; offset = offset + 4;
} }
/* W9 */ /* W9 */
@ -1045,9 +1073,15 @@ dissect_tipc_v2_internal_msg(tvbuff_t *tipc_tvb, proto_tree *tipc_tree, packet_i
proto_tree_add_item(tipc_tree, hf_tipcv2_probe, tipc_tvb, offset, 4, ENC_BIG_ENDIAN); proto_tree_add_item(tipc_tree, hf_tipcv2_probe, tipc_tvb, offset, 4, ENC_BIG_ENDIAN);
offset = offset + 4; offset = offset + 4;
if (handle_v2_as & (V2_AS_1_6)) { if (handle_v2_as & (V2_AS_1_6)) {
/* W6-8 */ /* W6 Unused */
proto_tree_add_expert_format(tipc_tree, pinfo, &ei_tipc_words_unused_for_user, tipc_tvb, offset, 12, "words 6-8 unused for this user"); proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 6 unused for this user");
offset = offset + 12; offset = offset + 4;
/* W7 Unused */
proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 7 unused for this user");
offset = offset + 4;
/* W8 Unused */
proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 8 unused for this user");
offset = offset + 4;
} else { } else {
/* W6 */ /* W6 */
dword = tvb_get_ntohl(tipc_tvb, offset); dword = tvb_get_ntohl(tipc_tvb, offset);
@ -1135,12 +1169,11 @@ dissect_tipc_v2_internal_msg(tvbuff_t *tipc_tvb, proto_tree *tipc_tree, packet_i
proto_tree_add_string(tipc_tree, hf_tipcv2_dest_node, tipc_tvb, offset, 4, addr_str_ptr); proto_tree_add_string(tipc_tree, hf_tipcv2_dest_node, tipc_tvb, offset, 4, addr_str_ptr);
offset = offset + 4; offset = offset + 4;
/* W8 */ /* W8 Unused */
/* according to Allan Stephens this was never verfied by the receiver /* might be set prior to 1.7.3 but according to Allan Stephens this was never verfied by the receiver
proto_tree_add_item(tipc_tree, hf_tipcv2_transport_seq_no, tipc_tvb, offset, 4, ENC_BIG_ENDIAN); proto_tree_add_item(tipc_tree, hf_tipcv2_transport_seq_no, tipc_tvb, offset, 4, ENC_BIG_ENDIAN);
*/ */
proto_tree_add_expert_format(tipc_tree, pinfo, &ei_tipc_words_unused_for_user, tipc_tvb, offset, 4, proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 8 unused for this user");
"word 8 unused for this user (might be set prior to 1.7.3 but was never verified)");
offset = offset + 4; offset = offset + 4;
@ -1184,12 +1217,27 @@ dissect_tipc_v2_internal_msg(tvbuff_t *tipc_tvb, proto_tree *tipc_tree, packet_i
/* W4 */ /* W4 */
if (handle_v2_as & V2_AS_1_6) { if (handle_v2_as & V2_AS_1_6) {
/* W4-9 */ /* W4 Unused */
proto_tree_add_expert_format(tipc_tree, pinfo, &ei_tipc_words_unused_for_user, tipc_tvb, offset, 24, "words 4-9 unused for this user"); proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 4 unused for this user");
offset = offset + 24; offset = offset + 4;
/* W5 Unused */
proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 5 unused for this user");
offset = offset + 4;
/* W6 Unused */
proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 6 unused for this user");
offset = offset + 4;
/* W7 Unused */
proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 7 unused for this user");
offset = offset + 4;
/* W8 Unused */
proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 8 unused for this user");
offset = offset + 4;
/* W9 Unused */
proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 9 unused for this user");
offset = offset + 4;
} else { } else {
/* W4 */ /* W4 Unused */
proto_tree_add_expert_format(tipc_tree, pinfo, &ei_tipc_words_unused_for_user, tipc_tvb, offset, 4, "word 4 unused for this user"); proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 4 unused for this user");
offset = offset + 4; offset = offset + 4;
/* W5 */ /* W5 */
proto_tree_add_item(tipc_tree, hf_tipc_dst_port, tipc_tvb, offset, 4, ENC_BIG_ENDIAN); proto_tree_add_item(tipc_tree, hf_tipc_dst_port, tipc_tvb, offset, 4, ENC_BIG_ENDIAN);
@ -1204,8 +1252,8 @@ dissect_tipc_v2_internal_msg(tvbuff_t *tipc_tvb, proto_tree *tipc_tree, packet_i
addr_str_ptr = tipc_addr_to_str(dword); addr_str_ptr = tipc_addr_to_str(dword);
proto_tree_add_string(tipc_tree, hf_tipcv2_dest_node, tipc_tvb, offset, 4, addr_str_ptr); proto_tree_add_string(tipc_tree, hf_tipcv2_dest_node, tipc_tvb, offset, 4, addr_str_ptr);
offset = offset + 4; offset = offset + 4;
/* W8 */ /* W8 Unused */
proto_tree_add_expert_format(tipc_tree, pinfo, &ei_tipc_words_unused_for_user, tipc_tvb, offset, 4, "word 8 unused for this user"); proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 8 unused for this user");
offset = offset + 4; offset = offset + 4;
/* W9 */ /* W9 */
dword = tvb_get_ntohl(tipc_tvb, offset); dword = tvb_get_ntohl(tipc_tvb, offset);
@ -1273,8 +1321,8 @@ dissect_tipc_v2_internal_msg(tvbuff_t *tipc_tvb, proto_tree *tipc_tree, packet_i
addr_str_ptr = tipc_addr_to_str(dword); addr_str_ptr = tipc_addr_to_str(dword);
proto_tree_add_string(tipc_tree, hf_tipcv2_prev_node, tipc_tvb, offset, 4, addr_str_ptr); proto_tree_add_string(tipc_tree, hf_tipcv2_prev_node, tipc_tvb, offset, 4, addr_str_ptr);
offset = offset + 4; offset = offset + 4;
/* W4 */ /* W4 Unused */
proto_tree_add_expert_format(tipc_tree, pinfo, &ei_tipc_words_unused_for_user, tipc_tvb, offset, 4, "word 4 unused for this user"); proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 4 unused for this user");
offset = offset + 4; offset = offset + 4;
/* W5 */ /* W5 */
/* the following two fields appear in this user according to */ /* the following two fields appear in this user according to */
@ -1288,9 +1336,15 @@ dissect_tipc_v2_internal_msg(tvbuff_t *tipc_tvb, proto_tree *tipc_tree, packet_i
offset = offset + 4; offset = offset + 4;
/* W6-W8 */ /* W6-W8 */
if (handle_v2_as & (V2_AS_1_6)) { if (handle_v2_as & (V2_AS_1_6)) {
/* W6-8 */ /* W6 Unused */
proto_tree_add_expert_format(tipc_tree, pinfo, &ei_tipc_words_unused_for_user, tipc_tvb, offset, 12, "words 6-8 unused for this user"); proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 6 unused for this user");
offset = offset + 12; offset = offset + 4;
/* W7 Unused */
proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 7 unused for this user");
offset = offset + 4;
/* W8 Unused */
proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 8 unused for this user");
offset = offset + 4;
} else { } else {
/* W6 */ /* W6 */
dword = tvb_get_ntohl(tipc_tvb, offset); dword = tvb_get_ntohl(tipc_tvb, offset);
@ -1302,8 +1356,8 @@ dissect_tipc_v2_internal_msg(tvbuff_t *tipc_tvb, proto_tree *tipc_tree, packet_i
addr_str_ptr = tipc_addr_to_str(dword); addr_str_ptr = tipc_addr_to_str(dword);
proto_tree_add_string(tipc_tree, hf_tipcv2_dest_node, tipc_tvb, offset, 4, addr_str_ptr); proto_tree_add_string(tipc_tree, hf_tipcv2_dest_node, tipc_tvb, offset, 4, addr_str_ptr);
offset = offset + 4; offset = offset + 4;
/* W8 */ /* W8 Unused */
proto_tree_add_expert_format(tipc_tree, pinfo, &ei_tipc_words_unused_for_user, tipc_tvb, offset, 4, "word 8 unused for this user"); proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 8 unused for this user");
offset = offset + 4; offset = offset + 4;
} }
/* W9 */ /* W9 */
@ -1311,7 +1365,8 @@ dissect_tipc_v2_internal_msg(tvbuff_t *tipc_tvb, proto_tree *tipc_tree, packet_i
{ {
case 0: case 0:
/* DUPLICATE_MSG */ /* DUPLICATE_MSG */
proto_tree_add_expert_format(tipc_tree, pinfo, &ei_tipc_words_unused_for_user, tipc_tvb, offset, 4, "word 9 unused for this message type"); /* W9 Unused */
proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 9 unused for this user");
break; break;
case 1: case 1:
/* ORIGINAL_MSG */ /* ORIGINAL_MSG */
@ -1337,9 +1392,12 @@ dissect_tipc_v2_internal_msg(tvbuff_t *tipc_tvb, proto_tree *tipc_tree, packet_i
addr_str_ptr = tipc_addr_to_str(dword); addr_str_ptr = tipc_addr_to_str(dword);
proto_tree_add_string(tipc_tree, hf_tipcv2_prev_node, tipc_tvb, offset, 4, addr_str_ptr); proto_tree_add_string(tipc_tree, hf_tipcv2_prev_node, tipc_tvb, offset, 4, addr_str_ptr);
offset = offset + 4; offset = offset + 4;
/* W4+W5 */ /* W4 Unused */
proto_tree_add_expert_format(tipc_tree, pinfo, &ei_tipc_words_unused_for_user, tipc_tvb, offset, 8, "words 4+5 unused for this user"); proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 4 unused for this user");
offset = offset + 8; offset = offset + 4;
/* W5 Unused */
proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 5 unused for this user");
offset = offset + 4;
/* W6 */ /* W6 */
/* Originating Node: 32 bits. */ /* Originating Node: 32 bits. */
dword = tvb_get_ntohl(tipc_tvb, offset); dword = tvb_get_ntohl(tipc_tvb, offset);
@ -1358,12 +1416,14 @@ dissect_tipc_v2_internal_msg(tvbuff_t *tipc_tvb, proto_tree *tipc_tree, packet_i
proto_tree_add_item(tipc_tree, hf_tipcv2_transport_seq_no, tipc_tvb, offset, 4, ENC_BIG_ENDIAN); proto_tree_add_item(tipc_tree, hf_tipcv2_transport_seq_no, tipc_tvb, offset, 4, ENC_BIG_ENDIAN);
offset = offset + 4; offset = offset + 4;
} else { } else {
proto_tree_add_expert_format(tipc_tree, pinfo, &ei_tipc_words_unused_for_user, tipc_tvb, offset, 4, "word 8 unused for this user"); /* W8 Unused */
proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 8 unused for this user");
offset = offset + 4; offset = offset + 4;
} }
/* W9 */ /* W9 */
if (handle_v2_as & V2_AS_1_6) { if (handle_v2_as & V2_AS_1_6) {
proto_tree_add_expert_format(tipc_tree, pinfo, &ei_tipc_words_unused_for_user, tipc_tvb, offset, 4, "word 9 unused for this user"); /* W9 Unused */
proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 9 unused for this user");
offset = offset + 4; offset = offset + 4;
} else { } else {
dword = tvb_get_ntohl(tipc_tvb, offset); dword = tvb_get_ntohl(tipc_tvb, offset);
@ -1400,12 +1460,24 @@ dissect_tipc_v2_internal_msg(tvbuff_t *tipc_tvb, proto_tree *tipc_tree, packet_i
frag_msg_no = dword & 0x0000ffff; frag_msg_no = dword & 0x0000ffff;
offset = offset + 4; offset = offset + 4;
if (handle_v2_as & (V2_AS_1_6)) { if (handle_v2_as & (V2_AS_1_6)) {
/* W5-W9 */ /* W5 Unused */
proto_tree_add_expert_format(tipc_tree, pinfo, &ei_tipc_words_unused_for_user, tipc_tvb, offset, 20, "words 5-9 unused for this user"); proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 5 unused for this user");
offset = offset + 20; offset = offset + 4;
/* W6 Unused */
proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 6 unused for this user");
offset = offset + 4;
/* W7 Unused */
proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 7 unused for this user");
offset = offset + 4;
/* W8 Unused */
proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 8 unused for this user");
offset = offset + 4;
/* W9 Unused */
proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 9 unused for this user");
offset = offset + 4;
} else { } else {
/* W5 */ /* W5 Unused */
proto_tree_add_expert_format(tipc_tree, pinfo, &ei_tipc_words_unused_for_user, tipc_tvb, offset, 4, "word 5 unused for this user"); proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 5 unused for this user");
offset = offset + 4; offset = offset + 4;
/* W6 */ /* W6 */
dword = tvb_get_ntohl(tipc_tvb, offset); dword = tvb_get_ntohl(tipc_tvb, offset);
@ -1417,9 +1489,12 @@ dissect_tipc_v2_internal_msg(tvbuff_t *tipc_tvb, proto_tree *tipc_tree, packet_i
addr_str_ptr = tipc_addr_to_str(dword); addr_str_ptr = tipc_addr_to_str(dword);
proto_tree_add_string(tipc_tree, hf_tipcv2_dest_node, tipc_tvb, offset, 4, addr_str_ptr); proto_tree_add_string(tipc_tree, hf_tipcv2_dest_node, tipc_tvb, offset, 4, addr_str_ptr);
offset = offset + 4; offset = offset + 4;
/* W8+9 */ /* W8 Unused */
proto_tree_add_expert_format(tipc_tree, pinfo, &ei_tipc_words_unused_for_user, tipc_tvb, offset, 8, "words 8+9 unused for this user"); proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 8 unused for this user");
offset = offset + 8; offset = offset + 4;
/* W9 Unused */
proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tipc_tvb, offset, 4, "word 9 unused for this user");
offset = offset + 4;
} }
len = (msg_size - (orig_hdr_size<<2)); len = (msg_size - (orig_hdr_size<<2));
@ -1932,9 +2007,8 @@ dissect_tipc_int_prot_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tipc_tr
proto_tree_add_item(tipc_tree, hf_tipc_nxt_snt_pkg, tvb, offset, 4, ENC_BIG_ENDIAN); proto_tree_add_item(tipc_tree, hf_tipc_nxt_snt_pkg, tvb, offset, 4, ENC_BIG_ENDIAN);
offset = offset + 4; offset = offset + 4;
/* W6 */ /* W6 Unused */
/* Unused */ proto_tree_add_none_format(tipc_tree, hf_tipc_unused_word, tvb, offset, 4, "word 6 unused for this user");
proto_tree_add_item(tipc_tree, hf_tipc_unused3, tvb, offset, 4, ENC_BIG_ENDIAN);
offset = offset + 4; offset = offset + 4;
/* W7 */ /* W7 */
if (msg_size == 28) /* No data */ if (msg_size == 28) /* No data */
@ -2556,10 +2630,10 @@ proto_register_tipc(void)
FT_UINT32, BASE_DEC, NULL, 0x0000ffff, FT_UINT32, BASE_DEC, NULL, 0x0000ffff,
"TIPC Next sent packet", HFILL } "TIPC Next sent packet", HFILL }
}, },
{ &hf_tipc_unused3, { &hf_tipc_unused_word,
{ "Unused", "tipc.unused3", { "Word Unused", "tipc.unused_word",
FT_UINT32, BASE_DEC, NULL, 0x0, FT_NONE, BASE_NONE, NULL, 0x0,
"TIPC Unused", HFILL } NULL, HFILL }
}, },
{ &hf_tipc_bearer_name, { &hf_tipc_bearer_name,
{ "Bearer name", "tipc.bearer_name", { "Bearer name", "tipc.bearer_name",
@ -2979,7 +3053,6 @@ proto_register_tipc(void)
}; };
static ei_register_info ei[] = { static ei_register_info ei[] = {
{ &ei_tipc_words_unused_for_user, { "tipc.words_unused_for_user", PI_PROTOCOL, PI_WARN, "words unused for this user", EXPFILL }},
{ &ei_tipc_field_not_specified, { "tipc.field_not_specified", PI_PROTOCOL, PI_WARN, "This field is not specified in TIPC v7", EXPFILL }}, { &ei_tipc_field_not_specified, { "tipc.field_not_specified", PI_PROTOCOL, PI_WARN, "This field is not specified in TIPC v7", EXPFILL }},
}; };