Index: epan/dissectors/packet-lanforge.c =================================================================== --- epan/dissectors/packet-lanforge.c (revision 31458) +++ epan/dissectors/packet-lanforge.c (working copy) @@ -56,6 +56,8 @@ static int hf_lanforge_magic = -1; static int hf_lanforge_src_session = -1; static int hf_lanforge_dst_session = -1; +static int hf_lanforge_pld_len_l = -1; +static int hf_lanforge_pld_len_h = -1; static int hf_lanforge_pld_len = -1; static int hf_lanforge_pld_pattern = -1; static int hf_lanforge_seq = -1; @@ -78,6 +80,8 @@ guint32 offset = 0; nstime_t tstamp; guint32 tss; + guint32 tmpi; + guint32 pld_len = 0; /* check for min size */ if(tvb_length(tvb) < 28) { /* Not a LANforge packet. */ @@ -119,12 +123,22 @@ proto_tree_add_item(lanforge_tree, hf_lanforge_dst_session, tvb, offset, 2, FALSE); offset+=2; - proto_tree_add_item(lanforge_tree, hf_lanforge_pld_len, tvb, offset, 2, FALSE); + pld_len = tvb_get_ntohs(tvb, offset); + tmp = proto_tree_add_item(lanforge_tree, hf_lanforge_pld_len_l, tvb, offset, 2, FALSE); + PROTO_ITEM_SET_GENERATED(tmp); offset+=2; - proto_tree_add_item(lanforge_tree, hf_lanforge_pld_pattern, tvb, offset, 2, FALSE); - offset+=2; + tmpi = tvb_get_guint8(tvb, offset); + tmp = proto_tree_add_item(lanforge_tree, hf_lanforge_pld_len_h, tvb, offset, 1, FALSE); + PROTO_ITEM_SET_GENERATED(tmp); + offset+=1; + pld_len |= (tmpi << 16); + proto_tree_add_uint(lanforge_tree, hf_lanforge_pld_len, tvb, offset-3, 3, pld_len); + + proto_tree_add_item(lanforge_tree, hf_lanforge_pld_pattern, tvb, offset, 1, FALSE); + offset+=1; + proto_tree_add_item(lanforge_tree, hf_lanforge_seq, tvb, offset, 4, FALSE); offset+=4; @@ -196,14 +210,30 @@ } }, - { &hf_lanforge_pld_len, + { &hf_lanforge_pld_len_l, { - "Payload Length", "LANforge.pld-length", + "Payload Length(L)", "LANforge.pld-len-L", FT_UINT16, BASE_DEC, NULL, 0x0, - "The LANforge payload length", HFILL + "The LANforge payload length (low bytes)", HFILL } }, + { &hf_lanforge_pld_len_h, + { + "Payload Length(H)", "LANforge.pld-len-H", + FT_UINT8, BASE_DEC, NULL, 0x0, + "The LANforge payload length (high byte)", HFILL + } + }, + + { &hf_lanforge_pld_len, + { + "Payload Length", "LANforge.pld-length", + FT_UINT32, BASE_DEC, NULL, 0x0, + "The LANforge payload length", HFILL + } + }, + { &hf_lanforge_pld_pattern, { "Payload Pattern", "LANforge.pld-pattern",