Wireshark-dev: [Wireshark-dev] [PATCH 1/3] tipc: update discovery protocol header according to
From: Erik Hugne <erik.hugne@xxxxxxxxxxxx>
Dissection of word 1 in the TIPC ndisc protocol header
is wrong. The field called "Broadcast ack no" should
be "Node Signature" (16 bits wide).
"Requested Links" is also wrong. This should actually be
5 bits reserved, followed by a 8 bit "Minor protocol version"
field
Signed-off-by: Erik Hugne <erik.hugne@xxxxxxxxxxxx>
---
epan/dissectors/packet-tipc.c | 23 +++++++++++++++--------
1 file changed, 15 insertions(+), 8 deletions(-)
diff --git a/epan/dissectors/packet-tipc.c b/epan/dissectors/packet-tipc.c
index 864d789..f5d0999 100644
--- a/epan/dissectors/packet-tipc.c
+++ b/epan/dissectors/packet-tipc.c
@@ -160,7 +160,8 @@ static int hf_tipcv2_transport_seq_no = -1;
static int hf_tipcv2_redundant_link = -1;
static int hf_tipcv2_bearer_id = -1;
static int hf_tipcv2_conn_mgr_msg_ack = -1;
-static int hf_tipcv2_req_links = -1;
+static int hf_tipcv2_minor_pv = -1;
+static int hf_tipcv2_node_sig = -1;
/* added for TIPC v1.7 */
static int hf_tipcv2_timestamp = -1;
@@ -1438,7 +1439,7 @@ uses a special message format, with the following generic structure:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
w0:|vers |msg usr|hdr sz |n|resrv| packet size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-w1:|m typ|0| requested links | broadcast ack no |
+w1:|m typ|00000| minor_pv | node signature |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
w2:| destination domain |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -1463,9 +1464,10 @@ w9:| |
*/
/* W1 */
proto_tree_add_item(tipc_tree, hf_tipcv2_neighbour_mtype, tipc_tvb, offset, 4, ENC_BIG_ENDIAN);
- /* Requested Links (12 bits) */
- proto_tree_add_item(tipc_tree, hf_tipcv2_req_links, tipc_tvb, offset, 4, ENC_BIG_ENDIAN);
- proto_tree_add_item(tipc_tree, hf_tipcv2_broadcast_ack_no, tipc_tvb, offset, 4, ENC_BIG_ENDIAN);
+ /* Reserved 5 bits */
+ /* Minor pv 8 bits */
+ proto_tree_add_item(tipc_tree, hf_tipcv2_minor_pv, tipc_tvb, offset, 4, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tipc_tree, hf_tipcv2_node_sig, tipc_tvb, offset, 4, ENC_BIG_ENDIAN);
offset = offset + 4;
/* W2 */
/* Destination Domain */
@@ -2805,9 +2807,14 @@ proto_register_tipc(void)
FT_UINT32, BASE_DEC, NULL, 0xffff0000,
NULL, HFILL }
},
- { &hf_tipcv2_req_links,
- { "Requested Links", "tipcv2.req_links",
- FT_UINT32, BASE_DEC, NULL, 0x0fff0000,
+ { &hf_tipcv2_minor_pv,
+ { "Minor protocol version", "tipcv2.minor_pv",
+ FT_UINT32, BASE_DEC, NULL, 0x00ff0000,
+ NULL, HFILL }
+ },
+ { &hf_tipcv2_node_sig,
+ { "Node signature", "tipcv2.node_sig",
+ FT_UINT32, BASE_DEC, NULL, 0x0000FFFF,
NULL, HFILL }
},
{ &hf_tipcv2_timestamp,
--
1.7.9.5