[Ocfs2-tools-devel] [PATCH 1/1] wireshark-ocfs2: print all 64bytes of LVB

Jeff Liu jeff.liu at oracle.com
Sun Jun 7 05:39:33 PDT 2009


bytes_to_str_punct() truncates bytes string length to 48 for each field,
we display raw bytes string in BASE_HEX, so print 24 bytes for each line to
avoid being truncated.

to print all 64bytes LVB, we have to split it into 3 lines, first 2 lines 24 bytes,
then print the left 16 bytes in third line.

Signed-off-by: Jeff Liu <jeff.liu at oracle.com>
---
 epan/dissectors/packet-ocfs2.c |   39 ++++++++++++++++++++++++++++++++++-----
 1 files changed, 34 insertions(+), 5 deletions(-)

diff --git a/epan/dissectors/packet-ocfs2.c b/epan/dissectors/packet-ocfs2.c
index 96da122..903b349 100644
--- a/epan/dissectors/packet-ocfs2.c
+++ b/epan/dissectors/packet-ocfs2.c
@@ -102,7 +102,9 @@ static int hf_dlm_namelen = -1;
 static int hf_dlm_name = -1;
 static int hf_dlm_cookie = -1;
 static int hf_dlm_requested_type = -1;
-static int hf_dlm_lvb = -1;
+static int hf_dlm_lvb1 = -1;
+static int hf_dlm_lvb2 = -1;
+static int hf_dlm_lvb3 = -1;
 static int hf_dlm_ast_type = -1;
 static int hf_dlm_blocked_type = -1;
 static int hf_dlm_dead_node = -1;
@@ -777,6 +779,12 @@ struct dlm_finalize_reco
 	guint32 pad2;	// unused
 };
 
+#define DLM_FIELD_BYTES_LEN	24
+#define LVB_REMAIN_BYTES_LEN	(DLM_LVB_LEN - (DLM_FIELD_BYTES_LEN << 1))
+#define LVB1_OFFSET(x)		offsetof(x, lvb[0])
+#define LVB2_OFFSET(x)		(LVB1_OFFSET(x) + DLM_FIELD_BYTES_LEN)
+#define LVB3_OFFSET(x)		(LVB1_OFFSET(x) + (DLM_FIELD_BYTES_LEN << 1))
+
 static struct dlm_msg_struct_def dlm_struct_defs[] = {
 { "dlm_master_request", "DLM Master Request", DLM_MASTER_REQUEST_MSG, &ett_dlm_master_request, {
 	{ "node_idx",	&hf_dlm_node_idx,	FIELD_OFFSET_AND_SIZE(struct dlm_master_request,node_idx),	dlm_node_idx_handler},
@@ -807,7 +815,12 @@ static struct dlm_msg_struct_def dlm_struct_defs[] = {
 	{ "requested_type",&hf_dlm_requested_type, FIELD_OFFSET_AND_SIZE(struct dlm_convert_lock,requested_type),dlm_lockmode_handler},
 	{ "namelen",	&hf_dlm_namelen,	FIELD_OFFSET_AND_SIZE(struct dlm_convert_lock,namelen),		dlm_namelen_handler},
 	{ "name",	&hf_dlm_name,		FIELD_OFFSET_AND_SIZE(struct dlm_convert_lock,name),		dlm_name_handler},
-	{ "lvb",	&hf_dlm_lvb,		offsetof(struct dlm_convert_lock,lvb[0]), DLM_LVB_LEN,		dlm_lvb_handler},
+	{ "lvb1",	&hf_dlm_lvb1,	LVB1_OFFSET(struct dlm_convert_lock),
+			DLM_FIELD_BYTES_LEN,	dlm_lvb_handler },
+	{ "lvb2",	&hf_dlm_lvb2,	LVB2_OFFSET(struct dlm_convert_lock),
+			DLM_FIELD_BYTES_LEN,	dlm_lvb_handler },
+	{ "lvb3",       &hf_dlm_lvb3,	LVB3_OFFSET(struct dlm_convert_lock),
+			LVB_REMAIN_BYTES_LEN,	dlm_lvb_handler },
 	{ DLM_MSG_STRUCT_DEF_END } }
 },
 { "dlm_unlock_lock", "DLM Unlock Lock", DLM_UNLOCK_LOCK_MSG, &ett_dlm_unlock_lock, {
@@ -816,7 +829,12 @@ static struct dlm_msg_struct_def dlm_struct_defs[] = {
 	{ "node_idx",	&hf_dlm_node_idx,	FIELD_OFFSET_AND_SIZE(struct dlm_unlock_lock,node_idx),		dlm_node_idx_handler},
 	{ "namelen",	&hf_dlm_namelen,	FIELD_OFFSET_AND_SIZE(struct dlm_unlock_lock,namelen),		dlm_namelen_handler},
 	{ "name",	&hf_dlm_name,		FIELD_OFFSET_AND_SIZE(struct dlm_unlock_lock,name),		dlm_name_handler},
-	{ "lvb",	&hf_dlm_lvb,		offsetof(struct dlm_unlock_lock,lvb[0]), DLM_LVB_LEN,		dlm_lvb_handler},
+	{ "lvb1",	&hf_dlm_lvb1,	LVB1_OFFSET(struct dlm_unlock_lock),
+			DLM_FIELD_BYTES_LEN,	dlm_lvb_handler},
+	{ "lvb2",	&hf_dlm_lvb2,	LVB2_OFFSET(struct dlm_unlock_lock),
+			DLM_FIELD_BYTES_LEN,	dlm_lvb_handler},
+	{ "lvb3",	&hf_dlm_lvb3,	LVB3_OFFSET(struct dlm_unlock_lock),
+			LVB_REMAIN_BYTES_LEN,	dlm_lvb_handler},
 	{ DLM_MSG_STRUCT_DEF_END } }
 },
 { "dlm_proxy_ast", "DLM Proxy AST", DLM_PROXY_AST_MSG, &ett_dlm_proxy_ast, {
@@ -827,7 +845,12 @@ static struct dlm_msg_struct_def dlm_struct_defs[] = {
 	{ "blocked_type",&hf_dlm_blocked_type,	FIELD_OFFSET_AND_SIZE(struct dlm_proxy_ast,blocked_type),	dlm_lockmode_handler},
 	{ "namelen",	&hf_dlm_namelen,	FIELD_OFFSET_AND_SIZE(struct dlm_proxy_ast,namelen),		dlm_namelen_handler},
 	{ "name",	&hf_dlm_name,		FIELD_OFFSET_AND_SIZE(struct dlm_proxy_ast,name),		dlm_name_handler},
-	{ "lvb",	&hf_dlm_lvb,		offsetof(struct dlm_proxy_ast,lvb[0]), DLM_LVB_LEN,		dlm_lvb_handler},
+	{ "lvb1",	&hf_dlm_lvb1,	LVB1_OFFSET(struct dlm_proxy_ast),
+			DLM_FIELD_BYTES_LEN,	dlm_lvb_handler},
+	{ "lvb2",	&hf_dlm_lvb2,	LVB2_OFFSET(struct dlm_proxy_ast),
+			DLM_FIELD_BYTES_LEN,	dlm_lvb_handler},
+	{ "lvb3",	&hf_dlm_lvb3,	LVB3_OFFSET(struct dlm_proxy_ast),
+			LVB_REMAIN_BYTES_LEN,	dlm_lvb_handler},
 	{ DLM_MSG_STRUCT_DEF_END } }
 },
 { "dlm_lock_request", "DLM Lock Request (recovery)", DLM_LOCK_REQUEST_MSG, &ett_dlm_lock_request, {
@@ -1206,7 +1229,13 @@ void proto_register_ocfs2(void)
 		{ &hf_dlm_dead_node, { "Dead Node", "ocfs2.dlm.dead_node",
 					FT_UINT8, BASE_DEC, NULL, 0x0,
 					"Dead node index", HFILL } },
-		{ &hf_dlm_lvb, { "LVB", "ocfs2.dlm.lvb",
+		{ &hf_dlm_lvb1, { "LVB1", "ocfs2.dlm.lvb",
+					FT_BYTES, BASE_HEX, NULL, 0x0,
+					"Lock value block", HFILL } },
+		{ &hf_dlm_lvb2, { "LVB2", "ocfs2.dlm.lvb",
+					FT_BYTES, BASE_HEX, NULL, 0x0,
+					"Lock value block", HFILL } },
+		{ &hf_dlm_lvb3, { "LVB3", "ocfs2.dlm.lvb",
 					FT_BYTES, BASE_HEX, NULL, 0x0,
 					"Lock value block", HFILL } },
 		{ &hf_dlm_domain_name_len, { "Domain Namelen", "ocfs2.dlm.domain_namelen",
-- 
1.5.4.3




More information about the Ocfs2-tools-devel mailing list