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

Sunil Mushran sunil.mushran at oracle.com
Mon Jun 8 13:15:13 PDT 2009


checked-in

Jeff Liu wrote:
> 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",
>   




More information about the Ocfs2-tools-devel mailing list