On Dec 6, 2009, at 10:44 PM, Rach, Darshan wrote:
Kindly let me know what might have gone wrong.
Sorry, I forgot to indicate that, once you get to the point where you  
dissect the field with the "request satisfied" bit, you're dealing  
with a tvbuff that starts with that field, so you have to reset  
packet_field_offset to 0, *AND* you have to fetch fields using  
next_tvb, not tvb, so you're using that tvbuff:
				if (next_tvb == NULL)
				{
					/* Just a fragment - put an item into the protocol tree for the  
fragment data */
					proto_tree_add_text(oqtp_tree, tvb, packet_field_offset, -1,  
"Fragment data");
				}
				else
				{
					/* Not a fragment, or fragments were reassembled */
					packet_field_offset = 0;
					/*Request Satisfied*/
					request_satisfied = tvb_get_guint8(next_tvb, packet_field_offset);
					proto_tree_add_uint(oqtp_tree, hf_request_satisfied, next_tvb,  
packet_field_offset, 1, ((request_satisfied & 0x80) >> 7));
					/*Reserved_for_future_use*/
					reserved_for_future_use = ((tvb_get_guint8(next_tvb,  
packet_field_offset)& 0x7E) >> 1);
					proto_tree_add_uint(oqtp_tree, hf_reserved_for_future_use,  
next_tvb, packet_field_offset, 1, reserved_for_future_use );
					/*No Extended pd syntax*/
					no_extended_pd_syntax = (tvb_get_guint8(next_tvb,  
packet_field_offset) & 0x1);
					proto_tree_add_uint(oqtp_tree, hf_no_extended_pd_syntax,  
next_tvb, packet_field_offset, 1, no_extended_pd_syntax );
					packet_field_offset += 1;
					/*Number of classifications*/
					proto_tree_add_item(oqtp_tree, hf_num_classifications, next_tvb,  
packet_field_offset, 1, FALSE);
					num_classifications = tvb_get_guint8(next_tvb,  
packet_field_offset);
					packet_field_offset += 1;
						...