convert to proto_tree_add_subtree[_format]
Change-Id: I358bfaa4e5d40cd01b766f614f8bd0dbaf611dd0 Reviewed-on: https://code.wireshark.org/review/2508 Reviewed-by: Evan Huus <eapache@gmail.com> Reviewed-by: Michael Mann <mmann78@netscape.net>
This commit is contained in:
parent
08bd0128ed
commit
f5e2b4293d
|
@ -848,7 +848,6 @@ dissect_eh_frame_hdr(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *segment_
|
|||
gint offset, gint segment_size _U_, gint register_size, guint machine_encoding)
|
||||
{
|
||||
proto_item *item;
|
||||
proto_item *table_item;
|
||||
proto_tree *table_tree;
|
||||
guint8 format;
|
||||
gint efp_length;
|
||||
|
@ -931,15 +930,14 @@ dissect_eh_frame_hdr(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *segment_
|
|||
|
||||
i_entry = 0;
|
||||
|
||||
table_item = proto_tree_add_text(segment_tree, tvb, offset, value_guard(fde_count * table_entry_length * 2), "Binary Search Table");
|
||||
table_tree = proto_item_add_subtree(table_item, ett_binary_table);
|
||||
table_tree = proto_tree_add_subtree(segment_tree, tvb, offset, value_guard(fde_count * table_entry_length * 2),
|
||||
ett_binary_table, NULL, "Binary Search Table");
|
||||
|
||||
while (++i_entry <= fde_count) {
|
||||
proto_item *entry_item;
|
||||
proto_tree *entry_tree;
|
||||
|
||||
entry_item = proto_tree_add_text(table_tree, tvb, offset, table_entry_length * 2, "Binary Table Entry #%u", i_entry);
|
||||
entry_tree = proto_item_add_subtree(entry_item, ett_binary_table_entry);
|
||||
entry_tree = proto_tree_add_subtree_format(table_tree, tvb, offset, table_entry_length * 2, ett_binary_table_entry,
|
||||
NULL, "Binary Table Entry #%u", i_entry);
|
||||
|
||||
proto_tree_add_item(entry_tree, hf_elf_eh_frame_hdr_binary_search_table_entry_initial_location, tvb, offset, table_entry_length, machine_encoding);
|
||||
offset += table_entry_length;
|
||||
|
@ -957,9 +955,7 @@ dissect_eh_frame(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *segment_tree
|
|||
gint offset, gint segment_size _U_, gint register_size _U_, guint machine_encoding)
|
||||
{
|
||||
proto_tree *record_tree;
|
||||
proto_item *record_item;
|
||||
proto_tree *entry_tree;
|
||||
proto_item *entry_item;
|
||||
guint64 length;
|
||||
guint64 length_remaining;
|
||||
guint64 unsigned_value;
|
||||
|
@ -981,8 +977,8 @@ dissect_eh_frame(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *segment_tree
|
|||
|
||||
length_remaining = length;
|
||||
|
||||
record_item = proto_tree_add_text(segment_tree, tvb, offset, value_guard(length + (is_extended_length ? 4 + 8 : 4)), "Common Information Entry");
|
||||
record_tree = proto_item_add_subtree(record_item, ett_elf_cie);
|
||||
record_tree = proto_tree_add_subtree(segment_tree, tvb, offset, value_guard(length + (is_extended_length ? 4 + 8 : 4)),
|
||||
ett_elf_cie, NULL, "Common Information Entry");
|
||||
|
||||
proto_tree_add_item(record_tree, hf_elf_eh_frame_length, tvb, offset, 4, machine_encoding);
|
||||
offset += 4;
|
||||
|
@ -1035,8 +1031,8 @@ dissect_eh_frame(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *segment_tree
|
|||
proto_tree_add_item(record_tree, hf_elf_eh_frame_initial_instructions, tvb, offset, value_guard(length_remaining), machine_encoding);
|
||||
offset += value_guard(length_remaining);
|
||||
|
||||
record_item = proto_tree_add_text(segment_tree, tvb, offset, value_guard(segment_size - length - 4), "Frame Description Entries");
|
||||
record_tree = proto_item_add_subtree(record_item, ett_elf_fde);
|
||||
record_tree = proto_tree_add_subtree(segment_tree, tvb, offset, value_guard(segment_size - length - 4),
|
||||
ett_elf_fde, NULL, "Frame Description Entries");
|
||||
|
||||
is_extended_length = FALSE;
|
||||
entry_number = 1;
|
||||
|
@ -1050,8 +1046,8 @@ dissect_eh_frame(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *segment_tree
|
|||
tvb_get_ntoh64(tvb, offset + 4) : tvb_get_letoh64(tvb, offset + 4);
|
||||
}
|
||||
|
||||
entry_item = proto_tree_add_text(record_tree, tvb, offset, value_guard(length + (is_extended_length ? 4 + 8 : 4)), "Entry %i", entry_number);
|
||||
entry_tree = proto_item_add_subtree(entry_item, ett_elf_entry);
|
||||
entry_tree = proto_tree_add_subtree_format(record_tree, tvb, offset, value_guard(length + (is_extended_length ? 4 + 8 : 4)),
|
||||
ett_elf_entry, NULL, "Entry %i", entry_number);
|
||||
|
||||
proto_tree_add_item(entry_tree, hf_elf_eh_frame_fde_length, tvb, offset, 4, machine_encoding);
|
||||
offset += 4;
|
||||
|
@ -1106,11 +1102,8 @@ dissect_elf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
|
|||
proto_item *main_item;
|
||||
proto_tree *header_tree;
|
||||
proto_item *header_item;
|
||||
proto_item *program_header_item;
|
||||
proto_tree *program_header_tree;
|
||||
proto_item *section_header_item;
|
||||
proto_tree *section_header_tree;
|
||||
proto_item *ph_entry_item;
|
||||
proto_tree *ph_entry_tree;
|
||||
proto_item *sh_entry_item;
|
||||
proto_tree *sh_entry_tree;
|
||||
|
@ -1118,9 +1111,7 @@ dissect_elf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
|
|||
proto_tree *segment_tree;
|
||||
proto_item *generated_item;
|
||||
proto_tree *generated_tree;
|
||||
proto_item *overlapping_item;
|
||||
proto_tree *overlapping_tree;
|
||||
proto_item *blackhole_item;
|
||||
proto_tree *blackhole_tree;
|
||||
proto_item *entry_item;
|
||||
proto_tree *entry_tree;
|
||||
|
@ -1164,8 +1155,7 @@ dissect_elf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
|
|||
main_item = proto_tree_add_item(tree, proto_elf, tvb, offset, -1, ENC_NA);
|
||||
main_tree = proto_item_add_subtree(main_item, ett_elf);
|
||||
|
||||
header_item = proto_tree_add_text(main_tree, tvb, offset, 1, "Header");
|
||||
header_tree = proto_item_add_subtree(header_item, ett_elf_header);
|
||||
header_tree = proto_tree_add_subtree(main_tree, tvb, offset, 1, ett_elf_header, &header_item, "Header");
|
||||
|
||||
/* e_ident */
|
||||
proto_tree_add_item(header_tree, hf_elf_magic_bytes, tvb, offset, sizeof(magic), ENC_NA);
|
||||
|
@ -1267,13 +1257,11 @@ dissect_elf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
|
|||
tvb_get_ntohs(tvb, offset) : tvb_get_letohs(tvb, offset);
|
||||
/*offset += 2;*/
|
||||
|
||||
program_header_item = proto_tree_add_text(main_tree, tvb, value_guard(phoff),
|
||||
phnum * phentsize, "Program Header Table [%d entries]", phnum);
|
||||
program_header_tree = proto_item_add_subtree(program_header_item, ett_elf_program_header);
|
||||
program_header_tree = proto_tree_add_subtree_format(main_tree, tvb, value_guard(phoff),
|
||||
phnum * phentsize, ett_elf_program_header, NULL, "Program Header Table [%d entries]", phnum);
|
||||
|
||||
section_header_item = proto_tree_add_text(main_tree, tvb, value_guard(shoff),
|
||||
shnum * shentsize, "Section Header Table [%d entries]", shnum);
|
||||
section_header_tree = proto_item_add_subtree(section_header_item, ett_elf_section_header);
|
||||
section_header_tree = proto_tree_add_subtree_format(main_tree, tvb, value_guard(shoff),
|
||||
shnum * shentsize, ett_elf_section_header, NULL, "Section Header Table [%d entries]", shnum);
|
||||
|
||||
file_size = ehsize + phnum * phentsize + shnum * shentsize;
|
||||
|
||||
|
@ -1306,20 +1294,17 @@ dissect_elf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
|
|||
p_type = (machine_encoding == ENC_BIG_ENDIAN) ?
|
||||
tvb_get_ntohl(tvb, offset) : tvb_get_letohl(tvb, offset);
|
||||
if (p_type >= 0x60000000 && p_type <= 0x6FFFFFFF) {
|
||||
ph_entry_item = proto_tree_add_text(program_header_tree, tvb, offset,
|
||||
phentsize, "Entry #%d: Operating System Specific (0x%08x)", phnum - i_16 - 1, p_type);
|
||||
ph_entry_tree = proto_item_add_subtree(ph_entry_item, ett_elf_program_header);
|
||||
ph_entry_tree = proto_tree_add_subtree_format(program_header_tree, tvb, offset, phentsize, ett_elf_program_header, NULL,
|
||||
"Entry #%d: Operating System Specific (0x%08x)", phnum - i_16 - 1, p_type);
|
||||
proto_tree_add_item(ph_entry_tree, hf_elf_p_type_operating_system_specific, tvb, offset, 4, machine_encoding);
|
||||
} else if (p_type >= 0x70000000 && p_type <= 0x7FFFFFFF) {
|
||||
ph_entry_item = proto_tree_add_text(program_header_tree, tvb, offset,
|
||||
phentsize, "Entry #%d: Processor Specific (0x%08x)", phnum - i_16 - 1, p_type);
|
||||
ph_entry_tree = proto_item_add_subtree(ph_entry_item, ett_elf_program_header);
|
||||
ph_entry_tree = proto_tree_add_subtree_format(program_header_tree, tvb, offset, phentsize, ett_elf_program_header, NULL,
|
||||
"Entry #%d: Processor Specific (0x%08x)", phnum - i_16 - 1, p_type);
|
||||
proto_tree_add_item(ph_entry_tree, hf_elf_p_type_processor_specific, tvb, offset, 4, machine_encoding);
|
||||
} else {
|
||||
ph_entry_item = proto_tree_add_text(program_header_tree, tvb, offset,
|
||||
phentsize, "Entry #%d: %s", phnum - i_16 - 1,
|
||||
ph_entry_tree = proto_tree_add_subtree_format(program_header_tree, tvb, offset, phentsize, ett_elf_program_header, NULL,
|
||||
"Entry #%d: %s", phnum - i_16 - 1,
|
||||
val_to_str_const(p_type, p_type_vals, "Unknown"));
|
||||
ph_entry_tree = proto_item_add_subtree(ph_entry_item, ett_elf_program_header);
|
||||
proto_tree_add_item(ph_entry_tree, hf_elf_p_type, tvb, offset, 4, machine_encoding);
|
||||
}
|
||||
offset += 4;
|
||||
|
@ -1467,9 +1452,8 @@ dissect_elf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
|
|||
|
||||
i_16 = shnum;
|
||||
while (i_16-- > 0) {
|
||||
sh_entry_item = proto_tree_add_text(section_header_tree, tvb, offset,
|
||||
shentsize, "Entry #%d: ", shnum - i_16 - 1);
|
||||
sh_entry_tree = proto_item_add_subtree(sh_entry_item, ett_elf_section_header);
|
||||
sh_entry_tree = proto_tree_add_subtree_format(section_header_tree, tvb, offset, shentsize,
|
||||
ett_elf_section_header, &sh_entry_item, "Entry #%d: ", shnum - i_16 - 1);
|
||||
|
||||
proto_tree_add_item(sh_entry_tree, hf_elf_sh_name, tvb, offset, 4, machine_encoding);
|
||||
sh_name = (machine_encoding == ENC_BIG_ENDIAN) ?
|
||||
|
@ -1590,9 +1574,8 @@ dissect_elf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
|
|||
segment_info[area_counter].name = section_name;
|
||||
area_counter += 1;
|
||||
|
||||
segment_item = proto_tree_add_text(sh_entry_tree, tvb,
|
||||
value_guard(segment_offset), value_guard(segment_size), "Segment");
|
||||
segment_tree = proto_item_add_subtree(segment_item, ett_elf_segment);
|
||||
segment_tree = proto_tree_add_subtree(sh_entry_tree, tvb, value_guard(segment_offset),
|
||||
value_guard(segment_size), ett_elf_segment, &segment_item, "Segment");
|
||||
|
||||
if (g_strcmp0(section_name, ".eh_frame") == 0) {
|
||||
next_offset = dissect_eh_frame(tvb, pinfo, segment_tree,
|
||||
|
@ -1610,9 +1593,8 @@ dissect_elf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
|
|||
if (sh_entsize > 0) {
|
||||
next_offset = value_guard(segment_offset);
|
||||
for (i = 1; i < (segment_size / sh_entsize) + 1; i += 1) {
|
||||
entry_item = proto_tree_add_text(segment_tree, tvb, next_offset,
|
||||
value_guard(sh_entsize), "Entry #%d", i);
|
||||
entry_tree = proto_item_add_subtree(entry_item, ett_symbol_table_entry);
|
||||
entry_tree = proto_tree_add_subtree_format(segment_tree, tvb, next_offset,
|
||||
value_guard(sh_entsize), ett_symbol_table_entry, NULL, "Entry #%d", i);
|
||||
|
||||
next_offset = dissect_dynamic(tvb, pinfo, entry_tree, entry_item,
|
||||
next_offset, register_size, machine_encoding);
|
||||
|
@ -1624,9 +1606,8 @@ dissect_elf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
|
|||
if (sh_entsize > 0) {
|
||||
next_offset = value_guard(segment_offset);
|
||||
for (i = 1; i < (segment_size / sh_entsize) + 1; i += 1) {
|
||||
entry_item = proto_tree_add_text(segment_tree, tvb, next_offset,
|
||||
value_guard(sh_entsize), "Entry #%d", i);
|
||||
entry_tree = proto_item_add_subtree(entry_item, ett_symbol_table_entry);
|
||||
entry_tree = proto_tree_add_subtree_format(segment_tree, tvb, next_offset,
|
||||
value_guard(sh_entsize), ett_symbol_table_entry, NULL, "Entry #%d", i);
|
||||
|
||||
next_offset = dissect_symbol_table(tvb, pinfo, entry_tree, entry_item,
|
||||
next_offset, register_size, machine_encoding, (sh_type == 0x02) ? strtab_offset : dynstr_offset,
|
||||
|
@ -1659,15 +1640,11 @@ dissect_elf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
|
|||
}
|
||||
|
||||
/* Try to detect blackholes and overlapping segments */
|
||||
generated_item = proto_tree_add_text(main_tree, tvb, 0, 0, "Infos");
|
||||
generated_tree = proto_tree_add_subtree(main_tree, tvb, 0, 0, ett_elf_info, &generated_item, "Infos");
|
||||
PROTO_ITEM_SET_GENERATED(generated_item);
|
||||
generated_tree = proto_item_add_subtree(generated_item, ett_elf_info);
|
||||
|
||||
blackhole_item = proto_tree_add_text(generated_tree, tvb, 0, 0, "Backholes");
|
||||
blackhole_tree = proto_item_add_subtree(blackhole_item, ett_elf_black_holes);
|
||||
|
||||
overlapping_item = proto_tree_add_text(generated_tree, tvb, 0, 0, "Overlapping");
|
||||
overlapping_tree = proto_item_add_subtree(overlapping_item, ett_elf_overlapping);
|
||||
blackhole_tree = proto_tree_add_subtree(generated_tree, tvb, 0, 0, ett_elf_black_holes, NULL, "Backholes");
|
||||
overlapping_tree = proto_tree_add_subtree(generated_tree, tvb, 0, 0, ett_elf_overlapping, NULL, "Overlapping");
|
||||
|
||||
/* sorting... */
|
||||
for (i = 0; i < area_counter; i += 1) {
|
||||
|
|
|
@ -371,7 +371,7 @@ dissect_gif(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
|
|||
color_resolution = 1 + ((peek & 0x60) >> 4);
|
||||
image_bpp = 1 + (peek & 0x07);
|
||||
|
||||
ti = proto_tree_add_text(gif_tree, tvb, 10, 1,
|
||||
subtree = proto_tree_add_subtree(gif_tree, tvb, 10, 1, ett_global_flags, &ti,
|
||||
"Global settings:");
|
||||
if (color_map_present)
|
||||
proto_item_append_text(ti, " (Global color table present)");
|
||||
|
@ -379,7 +379,6 @@ dissect_gif(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
|
|||
" (%u bit%s per color) (%u bit%s per pixel)",
|
||||
color_resolution, plurality(color_resolution, "", "s"),
|
||||
image_bpp, plurality(image_bpp, "", "s"));
|
||||
subtree = proto_item_add_subtree(ti, ett_global_flags);
|
||||
proto_tree_add_item(subtree, &hfi_global_color_map_present,
|
||||
tvb, 10, 1, ENC_LITTLE_ENDIAN);
|
||||
proto_tree_add_item(subtree, &hfi_global_color_resolution,
|
||||
|
@ -536,7 +535,7 @@ dissect_gif(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
|
|||
color_resolution = 1 + ((peek & 0x60) >> 4);
|
||||
image_bpp = 1 + (peek & 0x07);
|
||||
|
||||
ti2 = proto_tree_add_text(subtree, tvb, offset, 1,
|
||||
subtree2 = proto_tree_add_subtree(subtree, tvb, offset, 1, ett_local_flags, &ti2,
|
||||
"Local settings:");
|
||||
if (color_map_present)
|
||||
proto_item_append_text(ti2, " (Local color table present)");
|
||||
|
@ -544,7 +543,6 @@ dissect_gif(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
|
|||
" (%u bit%s per color) (%u bit%s per pixel)",
|
||||
color_resolution, plurality(color_resolution, "", "s"),
|
||||
image_bpp, plurality(image_bpp, "", "s"));
|
||||
subtree2 = proto_item_add_subtree(ti2, ett_local_flags);
|
||||
proto_tree_add_item(subtree2, &hfi_local_color_map_present,
|
||||
tvb, offset, 1, ENC_LITTLE_ENDIAN);
|
||||
proto_tree_add_item(subtree2, &hfi_local_color_resolution,
|
||||
|
|
|
@ -301,9 +301,8 @@ dissect_mp4_box(guint32 parent_box_type _U_,
|
|||
box_type_str = tvb_get_string_enc(wmem_packet_scope(), tvb,
|
||||
offset+4, 4, ENC_ASCII|ENC_NA);
|
||||
|
||||
type_pi = proto_tree_add_text(tree, tvb, offset, -1, "%s (%s)",
|
||||
box_tree = proto_tree_add_subtree_format(tree, tvb, offset, -1, ett_mp4_box, &type_pi, "%s (%s)",
|
||||
val_to_str_const(box_type, box_types, "unknown"), box_type_str);
|
||||
box_tree = proto_item_add_subtree(type_pi, ett_mp4_box);
|
||||
|
||||
size_pi = proto_tree_add_item(box_tree, hf_mp4_box_size,
|
||||
tvb, offset, 4, ENC_BIG_ENDIAN);
|
||||
|
|
|
@ -457,7 +457,7 @@ dissect_png(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *da
|
|||
|
||||
while(tvb_reported_length_remaining(tvb, offset) > 0){
|
||||
guint32 len_field;
|
||||
proto_item *chunk_it, *len_it;
|
||||
proto_item *len_it;
|
||||
proto_tree *chunk_tree;
|
||||
guint32 type;
|
||||
guint8 *type_str;
|
||||
|
@ -470,9 +470,8 @@ dissect_png(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *da
|
|||
tvb, offset+4, 4, ENC_ASCII|ENC_NA);
|
||||
|
||||
/* 4 byte len field, 4 byte chunk type, 4 byte CRC */
|
||||
chunk_it = proto_tree_add_text(tree, tvb, offset, 4+4+len_field+4, "%s (%s)",
|
||||
val_to_str_const(type, chunk_types, "unknown"), type_str);
|
||||
chunk_tree = proto_item_add_subtree(chunk_it, ett_png_chunk);
|
||||
chunk_tree = proto_tree_add_subtree_format(tree, tvb, offset, 4+4+len_field+4, ett_png_chunk, NULL,
|
||||
"%s (%s)", val_to_str_const(type, chunk_types, "unknown"), type_str);
|
||||
|
||||
len_it = proto_tree_add_item(chunk_tree, &hfi_png_chunk_len,
|
||||
tvb, offset, 4, ENC_BIG_ENDIAN);
|
||||
|
|
|
@ -383,7 +383,6 @@ dissect_tlvs(tvbuff_t *tvb, proto_tree *njack_tree, guint32 offset)
|
|||
{
|
||||
guint8 tlv_type;
|
||||
guint8 tlv_length;
|
||||
proto_item *tlv_item;
|
||||
proto_item *tlv_tree;
|
||||
|
||||
for (;;) {
|
||||
|
@ -402,14 +401,12 @@ dissect_tlvs(tvbuff_t *tvb, proto_tree *njack_tree, guint32 offset)
|
|||
continue;
|
||||
}
|
||||
tlv_length = tvb_get_guint8(tvb, offset + 1);
|
||||
tlv_item = proto_tree_add_text(njack_tree, tvb,
|
||||
offset, tlv_length + 2,
|
||||
tlv_tree = proto_tree_add_subtree_format(njack_tree, tvb,
|
||||
offset, tlv_length + 2, ett_njack_tlv_header, NULL,
|
||||
"T %02x, L %02x: %s",
|
||||
tlv_type,
|
||||
tlv_length,
|
||||
val_to_str_ext_const(tlv_type, &njack_cmd_vals_ext, "Unknown"));
|
||||
tlv_tree = proto_item_add_subtree(tlv_item,
|
||||
ett_njack_tlv_header);
|
||||
proto_tree_add_item(tlv_tree, hf_njack_tlv_type,
|
||||
tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
offset += 1;
|
||||
|
|
|
@ -65,7 +65,7 @@ static dissector_handle_t data_handle;
|
|||
static void
|
||||
dissect_3com_xns(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
||||
{
|
||||
proto_tree *subtree = NULL;
|
||||
proto_tree *subtree;
|
||||
proto_tree *ti;
|
||||
guint16 type;
|
||||
tvbuff_t *next_tvb;
|
||||
|
@ -73,10 +73,8 @@ dissect_3com_xns(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
col_set_str(pinfo->cinfo, COL_PROTOCOL, "3Com XNS");
|
||||
col_clear(pinfo->cinfo, COL_INFO);
|
||||
|
||||
if (tree) {
|
||||
ti = proto_tree_add_item(tree, proto_3com_xns, tvb, 0, 4, ENC_NA);
|
||||
subtree = proto_item_add_subtree(ti, ett_3com_xns);
|
||||
}
|
||||
ti = proto_tree_add_item(tree, proto_3com_xns, tvb, 0, 4, ENC_NA);
|
||||
subtree = proto_item_add_subtree(ti, ett_3com_xns);
|
||||
|
||||
type = tvb_get_ntohs(tvb, 0);
|
||||
next_tvb = tvb_new_subset_remaining(tvb, 2);
|
||||
|
|
|
@ -680,7 +680,6 @@ decode_bcmcs(proto_tree* ext_tree, tvbuff_t* tvb, int offset, guint ext_len)
|
|||
case 1:
|
||||
{
|
||||
int i = 0;
|
||||
proto_item *ti;
|
||||
proto_tree *entry_tree;
|
||||
while (ext_len > 0) {
|
||||
i++;
|
||||
|
@ -691,8 +690,8 @@ decode_bcmcs(proto_tree* ext_tree, tvbuff_t* tvb, int offset, guint ext_len)
|
|||
} else {
|
||||
ext_len = ext_len - entry_len;
|
||||
}
|
||||
ti = proto_tree_add_text(ext_tree, tvb, offset, entry_len, "BCMCS Information Entry %u", i);
|
||||
entry_tree = proto_item_add_subtree(ti, ett_a11_bcmcs_entry);
|
||||
entry_tree = proto_tree_add_subtree_format(ext_tree, tvb, offset, entry_len,
|
||||
ett_a11_bcmcs_entry, NULL, "BCMCS Information Entry %u", i);
|
||||
proto_tree_add_item(entry_tree, hf_a11_bcmcs_entry_len, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
||||
proto_tree_add_text(ext_tree, tvb, offset, entry_len -1, "Entry Data, Not dissected yet");
|
||||
|
@ -713,7 +712,6 @@ decode_bcmcs(proto_tree* ext_tree, tvbuff_t* tvb, int offset, guint ext_len)
|
|||
static void
|
||||
dissect_a11_radius( tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *tree, int app_len)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *radius_tree;
|
||||
|
||||
/* None of this really matters if we don't have a tree */
|
||||
|
@ -725,9 +723,7 @@ dissect_a11_radius( tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *t
|
|||
return;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb, offset - 2, app_len, "Airlink Record");
|
||||
|
||||
radius_tree = proto_item_add_subtree(ti, ett_a11_radiuses);
|
||||
radius_tree = proto_tree_add_subtree(tree, tvb, offset - 2, app_len, ett_a11_radiuses, NULL, "Airlink Record");
|
||||
|
||||
dissect_attribute_value_pairs(radius_tree, pinfo, tvb, offset, app_len-2);
|
||||
|
||||
|
@ -795,9 +791,8 @@ dissect_3gpp2_radius_aut_flow_profile_ids(proto_tree *tree, tvbuff_t *tvb, pac
|
|||
sub_type_length = tvb_get_guint8(tvb,offset+1);
|
||||
/* value is 2 octets */
|
||||
value = tvb_get_ntohs(tvb,offset+2);
|
||||
item = proto_tree_add_text(tree, tvb, offset, sub_type_length, "%s = %u",
|
||||
val_to_str_const(sub_type, a11_aut_flow_prof_subtype_vals, "Unknown"), value);
|
||||
sub_tree = proto_item_add_subtree(item, ett_a11_aut_flow_profile_ids);
|
||||
sub_tree = proto_tree_add_subtree_format(tree, tvb, offset, sub_type_length, ett_a11_aut_flow_profile_ids, &item,
|
||||
"%s = %u", val_to_str_const(sub_type, a11_aut_flow_prof_subtype_vals, "Unknown"), value);
|
||||
|
||||
proto_tree_add_item(sub_tree, hf_a11_aut_flow_prof_sub_type, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
offset += 1;
|
||||
|
@ -825,7 +820,6 @@ dissect_ase(tvbuff_t *tvb, int offset, guint ase_len, proto_tree *ext_tree)
|
|||
proto_tree *exts_tree;
|
||||
guint8 srid = tvb_get_guint8(tvb, offset+1);
|
||||
guint16 service_option = tvb_get_ntohs(tvb, offset+2);
|
||||
proto_item *ti;
|
||||
guint8 entry_lenght;
|
||||
int entry_start_offset;
|
||||
|
||||
|
@ -834,11 +828,11 @@ dissect_ase(tvbuff_t *tvb, int offset, guint ase_len, proto_tree *ext_tree)
|
|||
entry_lenght = tvb_get_guint8(tvb, offset);
|
||||
|
||||
if (registration_request_msg && ((service_option == 64) || (service_option == 67)))
|
||||
ti = proto_tree_add_text(ext_tree, tvb, offset, entry_lenght+1, "GRE Key Entry (SRID: %d)", srid);
|
||||
exts_tree = proto_tree_add_subtree_format(ext_tree, tvb, offset, entry_lenght+1,
|
||||
ett_a11_ase, NULL, "GRE Key Entry (SRID: %d)", srid);
|
||||
else
|
||||
ti = proto_tree_add_text(ext_tree, tvb, offset, entry_lenght, "GRE Key Entry (SRID: %d)", srid);
|
||||
|
||||
exts_tree = proto_item_add_subtree(ti, ett_a11_ase);
|
||||
exts_tree = proto_tree_add_subtree_format(ext_tree, tvb, offset, entry_lenght,
|
||||
ett_a11_ase, NULL, "GRE Key Entry (SRID: %d)", srid);
|
||||
|
||||
proto_tree_add_item(exts_tree, hf_a11_ase_len_type, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
offset += 1;
|
||||
|
@ -865,15 +859,13 @@ dissect_ase(tvbuff_t *tvb, int offset, guint ase_len, proto_tree *ext_tree)
|
|||
|
||||
if ((entry_lenght>14)&&(registration_request_msg)) {
|
||||
if (service_option == 0x0043) {
|
||||
proto_item *tl;
|
||||
proto_tree *extv_tree;
|
||||
guint8 profile_count = tvb_get_guint8(tvb, offset+6);
|
||||
guint8 profile_index = 0;
|
||||
guint8 reverse_profile_count;
|
||||
|
||||
proto_item *tj = proto_tree_add_text(exts_tree, tvb, offset,6+(profile_count*2)+1, "Forward ROHC Info");
|
||||
|
||||
proto_tree *extt_tree = proto_item_add_subtree(tj, ett_a11_forward_rohc);
|
||||
proto_tree *extt_tree = proto_tree_add_subtree(exts_tree, tvb, offset,6+(profile_count*2)+1,
|
||||
ett_a11_forward_rohc, NULL, "Forward ROHC Info");
|
||||
|
||||
proto_tree_add_item(extt_tree, hf_a11_ase_forward_rohc_info_len, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
offset += 1;
|
||||
|
@ -891,8 +883,8 @@ dissect_ase(tvbuff_t *tvb, int offset, guint ase_len, proto_tree *ext_tree)
|
|||
|
||||
|
||||
for (profile_index=0; profile_index<profile_count; profile_index++) {
|
||||
proto_item *tk = proto_tree_add_text (extt_tree, tvb, offset, (2*profile_count), "Forward Profile : %d", profile_index);
|
||||
proto_tree *extu_tree = proto_item_add_subtree(tk, ett_a11_forward_profile);
|
||||
proto_tree *extu_tree = proto_tree_add_subtree_format(extt_tree, tvb, offset, (2*profile_count),
|
||||
ett_a11_forward_profile, NULL, "Forward Profile : %d", profile_index);
|
||||
proto_tree_add_item(extu_tree, hf_a11_ase_forward_profile, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
offset += 2;
|
||||
}/*for*/
|
||||
|
@ -900,9 +892,8 @@ dissect_ase(tvbuff_t *tvb, int offset, guint ase_len, proto_tree *ext_tree)
|
|||
|
||||
reverse_profile_count=tvb_get_guint8(tvb, offset+6);
|
||||
|
||||
tl = proto_tree_add_text(exts_tree, tvb, offset,6+(reverse_profile_count*2)+1, "Reverse ROHC Info");
|
||||
|
||||
extv_tree = proto_item_add_subtree(tl, ett_a11_reverse_rohc);
|
||||
extv_tree = proto_tree_add_subtree(exts_tree, tvb, offset,6+(reverse_profile_count*2)+1,
|
||||
ett_a11_reverse_rohc, NULL, "Reverse ROHC Info");
|
||||
|
||||
proto_tree_add_item(extv_tree, hf_a11_ase_reverse_rohc_info_len, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
offset += 1;
|
||||
|
@ -922,9 +913,8 @@ dissect_ase(tvbuff_t *tvb, int offset, guint ase_len, proto_tree *ext_tree)
|
|||
|
||||
|
||||
for (profile_index=0; profile_index<reverse_profile_count; profile_index++) {
|
||||
proto_item *tm = proto_tree_add_text(extv_tree, tvb, offset, (2*profile_count), "Reverse Profile : %d", profile_index);
|
||||
|
||||
proto_tree *extw_tree = proto_item_add_subtree(tm, ett_a11_reverse_profile);
|
||||
proto_tree *extw_tree = proto_tree_add_subtree_format(extv_tree, tvb, offset, (2*profile_count),
|
||||
ett_a11_reverse_profile, NULL, "Reverse Profile : %d", profile_index);
|
||||
|
||||
proto_tree_add_item(extw_tree, hf_a11_ase_reverse_profile, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
offset += 2;
|
||||
|
@ -1015,10 +1005,8 @@ dissect_fwd_qosinfo(tvbuff_t *tvb, int offset, proto_tree *ext_tree)
|
|||
guint8 entry_len = tvb_get_guint8(tvb, offset+clen);
|
||||
guint8 flow_id = tvb_get_guint8(tvb, offset+clen+1);
|
||||
|
||||
proto_item *ti = proto_tree_add_text
|
||||
(ext_tree, tvb, offset+clen, entry_len+1, "Forward Flow Entry (Flow Id: %d)", flow_id);
|
||||
|
||||
proto_tree *flow_tree = proto_item_add_subtree(ti, ett_a11_fqi_flowentry);
|
||||
proto_tree *flow_tree = proto_tree_add_subtree_format(ext_tree, tvb, offset+clen,
|
||||
entry_len+1, ett_a11_fqi_flowentry, NULL, "Forward Flow Entry (Flow Id: %d)", flow_id);
|
||||
|
||||
/* Entry Length */
|
||||
proto_tree_add_item(flow_tree, hf_a11_fqi_entrylen, tvb, offset+clen, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -1040,11 +1028,10 @@ dissect_fwd_qosinfo(tvbuff_t *tvb, int offset, proto_tree *ext_tree)
|
|||
|
||||
/* Requested QoS Blob */
|
||||
if (requested_qos_len) {
|
||||
proto_item *ti2;
|
||||
proto_tree *exts_tree2;
|
||||
|
||||
proto_item *ti1 = proto_tree_add_text(flow_tree, tvb, offset+clen,requested_qos_len, "Forward Requested QoS ");
|
||||
proto_tree *exts_tree1 = proto_item_add_subtree(ti1, ett_a11_fqi_requestedqos);
|
||||
proto_tree *exts_tree1 = proto_tree_add_subtree(flow_tree, tvb, offset+clen,requested_qos_len,
|
||||
ett_a11_fqi_requestedqos, NULL, "Forward Requested QoS ");
|
||||
|
||||
proto_tree_add_text(exts_tree1, tvb, offset+clen, requested_qos_len, "Forward Requested QoS Sub Blob");
|
||||
|
||||
|
@ -1059,8 +1046,8 @@ dissect_fwd_qosinfo(tvbuff_t *tvb, int offset, proto_tree *ext_tree)
|
|||
clen++;
|
||||
|
||||
/* QoS attribute set */
|
||||
ti2 = proto_tree_add_text(exts_tree1, tvb, offset+clen, 4, "QoS Attribute Set");
|
||||
exts_tree2 = proto_item_add_subtree(ti2, ett_a11_fqi_qos_attribute_set);
|
||||
exts_tree2 = proto_tree_add_subtree(exts_tree1, tvb, offset+clen, 4, ett_a11_fqi_qos_attribute_set,
|
||||
NULL, "QoS Attribute Set");
|
||||
|
||||
/* QoS attribute setid */
|
||||
proto_tree_add_item(exts_tree2, hf_a11_fqi_qos_attribute_setid, tvb, offset+clen, 2, ENC_BIG_ENDIAN);
|
||||
|
@ -1082,12 +1069,10 @@ dissect_fwd_qosinfo(tvbuff_t *tvb, int offset, proto_tree *ext_tree)
|
|||
|
||||
/* Granted QoS Blob */
|
||||
if (granted_qos_len) {
|
||||
proto_item *ti3;
|
||||
proto_tree *exts_tree3;
|
||||
|
||||
ti3 = proto_tree_add_text(flow_tree, tvb, offset+clen, granted_qos_len, "Forward Granted QoS ");
|
||||
|
||||
exts_tree3 = proto_item_add_subtree(ti3, ett_a11_fqi_grantedqos);
|
||||
exts_tree3 = proto_tree_add_subtree(flow_tree, tvb, offset+clen, granted_qos_len,
|
||||
ett_a11_fqi_grantedqos, NULL, "Forward Granted QoS ");
|
||||
|
||||
proto_tree_add_text(exts_tree3, tvb, offset+clen, granted_qos_len, "Forward Granted QoS Sub Blob");
|
||||
|
||||
|
@ -1123,10 +1108,9 @@ dissect_rev_qosinfo(tvbuff_t *tvb, int offset, proto_tree *ext_tree)
|
|||
guint8 entry_len = tvb_get_guint8(tvb, offset+clen);
|
||||
guint8 flow_id = tvb_get_guint8(tvb, offset+clen+1);
|
||||
|
||||
proto_item *ti = proto_tree_add_text
|
||||
(ext_tree, tvb, offset+clen, entry_len+1, "Reverse Flow Entry (Flow Id: %d)", flow_id);
|
||||
|
||||
proto_tree *flow_tree = proto_item_add_subtree(ti, ett_a11_rqi_flowentry);
|
||||
proto_tree *flow_tree = proto_tree_add_subtree_format
|
||||
(ext_tree, tvb, offset+clen, entry_len+1, ett_a11_rqi_flowentry, NULL,
|
||||
"Reverse Flow Entry (Flow Id: %d)", flow_id);
|
||||
|
||||
/* Entry Length */
|
||||
proto_tree_add_item(flow_tree, hf_a11_rqi_entrylen, tvb, offset+clen, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -1147,12 +1131,10 @@ dissect_rev_qosinfo(tvbuff_t *tvb, int offset, proto_tree *ext_tree)
|
|||
|
||||
/* Requested QoS Blob */
|
||||
if (requested_qos_len) {
|
||||
proto_item *ti1, *ti2;
|
||||
proto_tree *exts_tree1, *exts_tree2;
|
||||
|
||||
ti1 = proto_tree_add_text(flow_tree, tvb, offset+clen,requested_qos_len , "Reverse Requested QoS ");
|
||||
|
||||
exts_tree1 = proto_item_add_subtree(ti1, ett_a11_rqi_requestedqos);
|
||||
exts_tree1 = proto_tree_add_subtree(flow_tree, tvb, offset+clen,requested_qos_len,
|
||||
ett_a11_rqi_requestedqos, NULL, "Reverse Requested QoS ");
|
||||
|
||||
proto_tree_add_text(exts_tree1, tvb, offset+clen, requested_qos_len, "Reverse Requested QoS Sub Blob");
|
||||
|
||||
|
@ -1167,8 +1149,8 @@ dissect_rev_qosinfo(tvbuff_t *tvb, int offset, proto_tree *ext_tree)
|
|||
clen++;
|
||||
|
||||
/* QoS attribute set */
|
||||
ti2 = proto_tree_add_text(exts_tree1, tvb, offset+clen, 4, "QoS Attribute Set");
|
||||
exts_tree2 = proto_item_add_subtree(ti2, ett_a11_rqi_qos_attribute_set);
|
||||
exts_tree2 = proto_tree_add_subtree(exts_tree1, tvb, offset+clen, 4,
|
||||
ett_a11_rqi_qos_attribute_set, NULL, "QoS Attribute Set");
|
||||
|
||||
/* QoS attribute setid */
|
||||
proto_tree_add_item(exts_tree2, hf_a11_rqi_qos_attribute_setid, tvb, offset+clen, 2, ENC_BIG_ENDIAN);
|
||||
|
@ -1189,11 +1171,10 @@ dissect_rev_qosinfo(tvbuff_t *tvb, int offset, proto_tree *ext_tree)
|
|||
|
||||
/* Granted QoS Blob */
|
||||
if (granted_qos_len) {
|
||||
proto_item *ti3;
|
||||
proto_tree *exts_tree3;
|
||||
|
||||
ti3 = proto_tree_add_text(flow_tree, tvb, offset+clen,granted_qos_len , "Reverse Granted QoS ");
|
||||
exts_tree3 = proto_item_add_subtree(ti3, ett_a11_rqi_grantedqos);
|
||||
exts_tree3 = proto_tree_add_subtree(flow_tree, tvb, offset+clen,granted_qos_len,
|
||||
ett_a11_rqi_grantedqos, NULL, "Reverse Granted QoS ");
|
||||
|
||||
proto_tree_add_text(exts_tree3, tvb, offset+clen, granted_qos_len, "Reverse Granted QoS Sub Blob");
|
||||
|
||||
|
@ -1213,13 +1194,11 @@ dissect_subscriber_qos_profile(tvbuff_t *tvb, packet_info *pinfo, int offset, in
|
|||
|
||||
int qos_profile_len = ext_len;
|
||||
|
||||
proto_item *ti =
|
||||
proto_tree_add_text (ext_tree, tvb, offset, 0,
|
||||
exts_tree =
|
||||
proto_tree_add_subtree_format(ext_tree, tvb, offset, 0, ett_a11_subscriber_profile, NULL,
|
||||
"Subscriber Qos Profile (%d bytes)",
|
||||
qos_profile_len);
|
||||
|
||||
exts_tree = proto_item_add_subtree(ti, ett_a11_subscriber_profile);
|
||||
|
||||
/* Subscriber QoS profile */
|
||||
if (qos_profile_len) {
|
||||
proto_tree_add_item
|
||||
|
@ -1249,11 +1228,11 @@ dissect_fwd_qosupdate_info(tvbuff_t *tvb, int offset, proto_tree *ext_tree)
|
|||
|
||||
guint8 flow_id = tvb_get_guint8(tvb, offset+clen);
|
||||
|
||||
proto_item *ti = proto_tree_add_text
|
||||
(ext_tree, tvb, offset+clen, 1, "Forward Flow Entry (Flow Id: %d)", flow_id);
|
||||
exts_tree = proto_tree_add_subtree_format
|
||||
(ext_tree, tvb, offset+clen, 1, ett_a11_fqui_flowentry, NULL,
|
||||
"Forward Flow Entry (Flow Id: %d)", flow_id);
|
||||
|
||||
clen++;
|
||||
exts_tree = proto_item_add_subtree(ti, ett_a11_fqui_flowentry);
|
||||
|
||||
/* Forward QoS Sub Blob Length */
|
||||
granted_qos_len = tvb_get_guint8(tvb, offset+clen);
|
||||
|
@ -1291,10 +1270,10 @@ dissect_rev_qosupdate_info(tvbuff_t *tvb, int offset, proto_tree *ext_tree)
|
|||
|
||||
guint8 flow_id = tvb_get_guint8(tvb, offset+clen);
|
||||
|
||||
proto_item *ti = proto_tree_add_text
|
||||
(ext_tree, tvb, offset+clen, 1, "Reverse Flow Entry (Flow Id: %d)", flow_id);
|
||||
exts_tree = proto_tree_add_subtree_format
|
||||
(ext_tree, tvb, offset+clen, 1, ett_a11_rqui_flowentry, NULL,
|
||||
"Reverse Flow Entry (Flow Id: %d)", flow_id);
|
||||
clen++;
|
||||
exts_tree = proto_item_add_subtree(ti, ett_a11_rqui_flowentry);
|
||||
|
||||
/* Reverse QoS Sub Blob Length */
|
||||
granted_qos_len = tvb_get_guint8(tvb, offset+clen);
|
||||
|
@ -1316,7 +1295,6 @@ dissect_rev_qosupdate_info(tvbuff_t *tvb, int offset, proto_tree *ext_tree)
|
|||
static void
|
||||
dissect_a11_extensions( tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *tree)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *exts_tree;
|
||||
proto_tree *ext_tree;
|
||||
guint ext_len;
|
||||
|
@ -1327,8 +1305,7 @@ dissect_a11_extensions( tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tre
|
|||
gint16 apptype = -1;
|
||||
|
||||
/* Add our tree, if we have extensions */
|
||||
ti = proto_tree_add_text(tree, tvb, offset, -1, "Extensions");
|
||||
exts_tree = proto_item_add_subtree(ti, ett_a11_exts);
|
||||
exts_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_a11_exts, NULL, "Extensions");
|
||||
|
||||
/* And, handle each extension */
|
||||
while (tvb_reported_length_remaining(tvb, offset) > 0) {
|
||||
|
@ -1352,11 +1329,10 @@ dissect_a11_extensions( tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tre
|
|||
hdrLen = 2;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(exts_tree, tvb, offset, ext_len + hdrLen,
|
||||
"Extension: %s",
|
||||
ext_tree = proto_tree_add_subtree_format(exts_tree, tvb, offset, ext_len + hdrLen,
|
||||
ett_a11_ext, NULL, "Extension: %s",
|
||||
val_to_str(ext_type, a11_ext_types,
|
||||
"Unknown Extension %u"));
|
||||
ext_tree = proto_item_add_subtree(ti, ett_a11_ext);
|
||||
|
||||
proto_tree_add_uint(ext_tree, hf_a11_ext_type, tvb, offset, 1, ext_type);
|
||||
offset += 1;
|
||||
|
|
|
@ -1021,8 +1021,8 @@ dissect_6lowpan_hc1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint dg
|
|||
guint8 hc1_encoding;
|
||||
guint8 hc_udp_encoding = 0;
|
||||
guint8 next_header;
|
||||
proto_tree * hc_tree = NULL;
|
||||
proto_item * ti;
|
||||
proto_tree * hc_tree;
|
||||
proto_item * hc_item;
|
||||
tvbuff_t * ipv6_tvb;
|
||||
/* IPv6 header. */
|
||||
guint8 ipv6_class;
|
||||
|
@ -1034,13 +1034,10 @@ dissect_6lowpan_hc1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint dg
|
|||
*=====================================================
|
||||
*/
|
||||
/* Create a tree for the HC1 Header. */
|
||||
if (tree) {
|
||||
ti = proto_tree_add_text(tree, tvb, 0, 2, "HC1 Encoding");
|
||||
hc_tree = proto_item_add_subtree(ti, ett_6lowpan_hc1);
|
||||
hc_tree = proto_tree_add_subtree(tree, tvb, 0, 2, ett_6lowpan_hc1, &hc_item, "HC1 Encoding");
|
||||
|
||||
/* Get and display the pattern. */
|
||||
proto_tree_add_bits_item(hc_tree, hf_6lowpan_pattern, tvb, 0, LOWPAN_PATTERN_HC1_BITS, ENC_BIG_ENDIAN);
|
||||
}
|
||||
/* Get and display the pattern. */
|
||||
proto_tree_add_bits_item(hc_tree, hf_6lowpan_pattern, tvb, 0, LOWPAN_PATTERN_HC1_BITS, ENC_BIG_ENDIAN);
|
||||
offset += 1;
|
||||
|
||||
/* Get and display the HC1 encoding bits. */
|
||||
|
@ -1062,8 +1059,7 @@ dissect_6lowpan_hc1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint dg
|
|||
if (next_header == LOWPAN_HC1_NEXT_UDP) {
|
||||
hc_udp_encoding = tvb_get_guint8(tvb, offset);
|
||||
if (tree) {
|
||||
ti = proto_tree_add_text(tree, tvb, offset, 1, "HC_UDP Encoding");
|
||||
hc_tree = proto_item_add_subtree(ti, ett_6lowpan_hc2_udp);
|
||||
hc_tree = proto_tree_add_subtree(tree, tvb, offset, 1, ett_6lowpan_hc2_udp, NULL, "HC_UDP Encoding");
|
||||
proto_tree_add_boolean(hc_tree, hf_6lowpan_hc2_udp_src, tvb, offset, 1, hc_udp_encoding & LOWPAN_HC2_UDP_SRCPORT);
|
||||
proto_tree_add_boolean(hc_tree, hf_6lowpan_hc2_udp_dst, tvb, offset, 1, hc_udp_encoding & LOWPAN_HC2_UDP_DSTPORT);
|
||||
proto_tree_add_boolean(hc_tree, hf_6lowpan_hc2_udp_len, tvb, offset, 1, hc_udp_encoding & LOWPAN_HC2_UDP_LENGTH);
|
||||
|
@ -1072,7 +1068,7 @@ dissect_6lowpan_hc1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint dg
|
|||
}
|
||||
else {
|
||||
/* HC1 states there are more bits, but an illegal next header was defined. */
|
||||
expert_add_info(pinfo, NULL, &ei_6lowpan_hc1_more_bits);
|
||||
expert_add_info(pinfo, hc_item, &ei_6lowpan_hc1_more_bits);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
@ -1382,13 +1378,10 @@ dissect_6lowpan_iphc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint d
|
|||
hint_panid = (hints) ? (hints->src_pan) : (IEEE802154_BCAST_PAN);
|
||||
|
||||
/* Create a tree for the IPHC header. */
|
||||
if (tree) {
|
||||
ti = proto_tree_add_text(tree, tvb, 0, 2, "IPHC Header");
|
||||
iphc_tree = proto_item_add_subtree(ti, ett_6lowpan_iphc);
|
||||
iphc_tree = proto_tree_add_subtree(tree, tvb, 0, 2, ett_6lowpan_iphc, NULL, "IPHC Header");
|
||||
|
||||
/* Display the pattern. */
|
||||
proto_tree_add_bits_item(iphc_tree, hf_6lowpan_pattern, tvb, 0, LOWPAN_PATTERN_IPHC_BITS, ENC_BIG_ENDIAN);
|
||||
}
|
||||
/* Display the pattern. */
|
||||
proto_tree_add_bits_item(iphc_tree, hf_6lowpan_pattern, tvb, 0, LOWPAN_PATTERN_IPHC_BITS, ENC_BIG_ENDIAN);
|
||||
|
||||
/*=====================================================
|
||||
* Parse IPHC Header flags.
|
||||
|
@ -1782,8 +1775,7 @@ dissect_6lowpan_iphc_nhc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gi
|
|||
|
||||
/* Create a tree for the IPv6 extension header. */
|
||||
if (tree) {
|
||||
ti = proto_tree_add_text(tree, tvb, offset, 2, "IPv6 extension header");
|
||||
nhc_tree = proto_item_add_subtree(ti, ett_6lowpan_nhc_ext);
|
||||
nhc_tree = proto_tree_add_subtree(tree, tvb, offset, 2, ett_6lowpan_nhc_ext, NULL, "IPv6 extension header");
|
||||
/* Display the NHC-UDP pattern. */
|
||||
proto_tree_add_bits_item(nhc_tree, hf_6lowpan_nhc_pattern, tvb, offset<<3, LOWPAN_NHC_PATTERN_EXT_BITS, ENC_BIG_ENDIAN);
|
||||
}
|
||||
|
@ -1827,8 +1819,7 @@ dissect_6lowpan_iphc_nhc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gi
|
|||
|
||||
/* Create a tree for the IPv6 extension header. */
|
||||
if (tree) {
|
||||
ti = proto_tree_add_text(tree, tvb, offset, 2, "IPv6 extension header");
|
||||
nhc_tree = proto_item_add_subtree(ti, ett_6lowpan_nhc_ext);
|
||||
nhc_tree = proto_tree_add_subtree(tree, tvb, offset, 2, ett_6lowpan_nhc_ext, NULL, "IPv6 extension header");
|
||||
/* Display the NHC-UDP pattern. */
|
||||
proto_tree_add_bits_item(nhc_tree, hf_6lowpan_nhc_pattern, tvb, offset<<3, LOWPAN_NHC_PATTERN_EXT_BITS, ENC_BIG_ENDIAN);
|
||||
}
|
||||
|
@ -1939,8 +1930,7 @@ dissect_6lowpan_iphc_nhc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gi
|
|||
|
||||
/* Create a tree for the UDP header. */
|
||||
if (tree) {
|
||||
ti = proto_tree_add_text(tree, tvb, 0, 1, "UDP header compression");
|
||||
nhc_tree = proto_item_add_subtree(ti, ett_6lowpan_nhc_udp);
|
||||
nhc_tree = proto_tree_add_subtree(tree, tvb, 0, 1, ett_6lowpan_nhc_udp, NULL, "UDP header compression");
|
||||
/* Display the NHC-UDP pattern. */
|
||||
proto_tree_add_bits_item(nhc_tree, hf_6lowpan_nhc_pattern, tvb, offset<<3, LOWPAN_NHC_PATTERN_UDP_BITS, ENC_BIG_ENDIAN);
|
||||
}
|
||||
|
@ -2100,12 +2090,10 @@ dissect_6lowpan_bc0(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree)
|
|||
{
|
||||
guint8 seqnum;
|
||||
proto_tree * bcast_tree;
|
||||
proto_item * ti;
|
||||
|
||||
/* Create a tree for the broadcast header. */
|
||||
if (tree) {
|
||||
ti = proto_tree_add_text(tree, tvb, 0, 2, "Broadcast Header");
|
||||
bcast_tree = proto_item_add_subtree(ti, ett_6lowpan_bcast);
|
||||
bcast_tree = proto_tree_add_subtree(tree, tvb, 0, 2, ett_6lowpan_bcast, NULL, "Broadcast Header");
|
||||
|
||||
/* Get and display the pattern. */
|
||||
proto_tree_add_bits_item(bcast_tree, hf_6lowpan_pattern, tvb, 0, LOWPAN_PATTERN_BC0_BITS, ENC_BIG_ENDIAN);
|
||||
|
@ -2144,20 +2132,15 @@ dissect_6lowpan_mesh(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
const guint8 * dst_ifcid;
|
||||
|
||||
/* Create a tree for the mesh header. */
|
||||
if (tree) {
|
||||
ti = proto_tree_add_text(tree, tvb, offset, 0, "Mesh Header");
|
||||
mesh_tree = proto_item_add_subtree(ti, ett_6lowpan_mesh);
|
||||
}
|
||||
mesh_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_6lowpan_mesh, NULL, "Mesh Header");
|
||||
|
||||
/* Get and display the mesh flags. */
|
||||
mesh_header = tvb_get_guint8(tvb, offset);
|
||||
if (tree) {
|
||||
proto_item * flag_item;
|
||||
proto_tree * flag_tree;
|
||||
|
||||
/* Create the mesh header subtree. */
|
||||
flag_item = proto_tree_add_text(mesh_tree, tvb, offset, 1, "Flags");
|
||||
flag_tree = proto_item_add_subtree(flag_item, ett_6lowpan_mesh);
|
||||
flag_tree = proto_tree_add_subtree(mesh_tree, tvb, offset, 1, ett_6lowpan_mesh, NULL, "Flags");
|
||||
|
||||
/* Add the mesh header fields. */
|
||||
proto_tree_add_bits_item(flag_tree, hf_6lowpan_pattern, tvb, offset * 8, LOWPAN_PATTERN_MESH_BITS, ENC_BIG_ENDIAN);
|
||||
|
@ -2252,9 +2235,9 @@ dissect_6lowpan_frag_first(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
|
|||
gint frag_size;
|
||||
guint16 dgram_size;
|
||||
guint16 dgram_tag;
|
||||
proto_tree * frag_tree = NULL;
|
||||
proto_item * ti = NULL;
|
||||
proto_item * length_item = NULL;
|
||||
proto_tree * frag_tree;
|
||||
proto_item * ti;
|
||||
proto_item * length_item;
|
||||
/* Reassembly parameters. */
|
||||
tvbuff_t * new_tvb;
|
||||
tvbuff_t * frag_tvb;
|
||||
|
@ -2262,30 +2245,21 @@ dissect_6lowpan_frag_first(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
|
|||
gboolean save_fragmented;
|
||||
|
||||
/* Create a tree for the fragmentation header. */
|
||||
if (tree) {
|
||||
ti = proto_tree_add_text(tree, tvb, offset, 0, "Fragmentation Header");
|
||||
frag_tree = proto_item_add_subtree(ti, ett_6lowpan_frag);
|
||||
}
|
||||
frag_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_6lowpan_frag, &ti, "Fragmentation Header");
|
||||
|
||||
/* Get and display the pattern and datagram size. */
|
||||
dgram_size = tvb_get_bits16(tvb, (offset * 8) + LOWPAN_PATTERN_FRAG_BITS, LOWPAN_FRAG_DGRAM_SIZE_BITS, ENC_BIG_ENDIAN);
|
||||
if (tree) {
|
||||
proto_tree_add_bits_item(frag_tree, hf_6lowpan_pattern, tvb, offset * 8, LOWPAN_PATTERN_FRAG_BITS, ENC_BIG_ENDIAN);
|
||||
length_item = proto_tree_add_uint(frag_tree, hf_6lowpan_frag_dgram_size, tvb, offset, 2, dgram_size);
|
||||
}
|
||||
proto_tree_add_bits_item(frag_tree, hf_6lowpan_pattern, tvb, offset * 8, LOWPAN_PATTERN_FRAG_BITS, ENC_BIG_ENDIAN);
|
||||
length_item = proto_tree_add_uint(frag_tree, hf_6lowpan_frag_dgram_size, tvb, offset, 2, dgram_size);
|
||||
offset += 2;
|
||||
|
||||
/* Get and display the datagram tag. */
|
||||
dgram_tag = tvb_get_ntohs(tvb, offset);
|
||||
if (tree) {
|
||||
proto_tree_add_uint(frag_tree, hf_6lowpan_frag_dgram_tag, tvb, offset, 2, dgram_tag);
|
||||
}
|
||||
proto_tree_add_uint(frag_tree, hf_6lowpan_frag_dgram_tag, tvb, offset, 2, dgram_tag);
|
||||
offset += 2;
|
||||
|
||||
/* Adjust the fragmentation header length. */
|
||||
if (tree) {
|
||||
proto_item_set_end(ti, tvb, offset);
|
||||
}
|
||||
proto_item_set_end(ti, tvb, offset);
|
||||
|
||||
/* The first fragment can contain an uncompressed IPv6, HC1 or IPHC fragment. */
|
||||
frag_tvb = tvb_new_subset_remaining(tvb, offset);
|
||||
|
@ -2373,17 +2347,14 @@ dissect_6lowpan_frag_middle(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
guint16 dgram_tag;
|
||||
guint16 dgram_offset = 0;
|
||||
proto_tree * frag_tree = NULL;
|
||||
proto_item * ti = NULL;
|
||||
proto_item * ti;
|
||||
/* Reassembly parameters. */
|
||||
tvbuff_t * new_tvb;
|
||||
fragment_head * frag_data;
|
||||
gboolean save_fragmented;
|
||||
|
||||
/* Create a tree for the fragmentation header. */
|
||||
if (tree) {
|
||||
ti = proto_tree_add_text(tree, tvb, offset, 0, "Fragmentation Header");
|
||||
frag_tree = proto_item_add_subtree(ti, ett_6lowpan_frag);
|
||||
}
|
||||
frag_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_6lowpan_frag, &ti, "Fragmentation Header");
|
||||
|
||||
/* Get and display the pattern and datagram size. */
|
||||
dgram_size = tvb_get_bits16(tvb, (offset * 8) + LOWPAN_PATTERN_FRAG_BITS, LOWPAN_FRAG_DGRAM_SIZE_BITS, ENC_BIG_ENDIAN);
|
||||
|
@ -2395,16 +2366,12 @@ dissect_6lowpan_frag_middle(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
|
||||
/* Get and display the datagram tag. */
|
||||
dgram_tag = tvb_get_ntohs(tvb, offset);
|
||||
if (tree) {
|
||||
proto_tree_add_uint(frag_tree, hf_6lowpan_frag_dgram_tag, tvb, offset, 2, dgram_tag);
|
||||
}
|
||||
proto_tree_add_uint(frag_tree, hf_6lowpan_frag_dgram_tag, tvb, offset, 2, dgram_tag);
|
||||
offset += 2;
|
||||
|
||||
/* Get and display the datagram offset. */
|
||||
dgram_offset = tvb_get_guint8(tvb, offset) * 8;
|
||||
if (tree) {
|
||||
proto_tree_add_uint(frag_tree, hf_6lowpan_frag_dgram_offset, tvb, offset, 1, dgram_offset);
|
||||
}
|
||||
proto_tree_add_uint(frag_tree, hf_6lowpan_frag_dgram_offset, tvb, offset, 1, dgram_offset);
|
||||
offset += 1;
|
||||
|
||||
/* Adjust the fragmentation header length. */
|
||||
|
|
|
@ -2256,7 +2256,7 @@ static void dissect_9P_mode(tvbuff_t *tvb, proto_item *item, int offset)
|
|||
/* dissect 9P Qid */
|
||||
static void dissect_9P_qid(tvbuff_t *tvb, proto_tree *tree, int offset)
|
||||
{
|
||||
proto_item *qid_item,*qidtype_item;
|
||||
proto_item *qidtype_item;
|
||||
proto_tree *qid_tree,*qidtype_tree;
|
||||
guint64 path;
|
||||
guint32 vers;
|
||||
|
@ -2269,8 +2269,8 @@ static void dissect_9P_qid(tvbuff_t *tvb, proto_tree *tree, int offset)
|
|||
vers = tvb_get_letohs(tvb, offset+1);
|
||||
path = tvb_get_letoh64(tvb, offset+1+4);
|
||||
|
||||
qid_item = proto_tree_add_text(tree, tvb, offset, 13, "Qid type=0x%02x vers=%d path=%" G_GINT64_MODIFIER "u", type, vers, path);
|
||||
qid_tree = proto_item_add_subtree(qid_item, ett_9P_qid);
|
||||
qid_tree = proto_tree_add_subtree_format(tree, tvb, offset, 13, ett_9P_qid, NULL,
|
||||
"Qid type=0x%02x vers=%d path=%" G_GINT64_MODIFIER "u", type, vers, path);
|
||||
|
||||
qidtype_item = proto_tree_add_item(qid_tree, hf_9P_qidtype, tvb, offset, 1, ENC_LITTLE_ENDIAN);
|
||||
qidtype_tree = proto_item_add_subtree(qidtype_item, ett_9P_qidtype);
|
||||
|
|
|
@ -291,14 +291,13 @@ dissect_a21_mobile_subscription_information(tvbuff_t *tvb, packet_info *pinfo _U
|
|||
guint8 record_id;
|
||||
guint16 record_len=0;
|
||||
proto_tree *record_tree;
|
||||
proto_item *record_item;
|
||||
|
||||
while(offset<length){
|
||||
record_id=tvb_get_guint8(tvb, offset);
|
||||
record_len=tvb_get_guint8(tvb, offset+1);
|
||||
|
||||
record_item = proto_tree_add_text(tree, tvb, offset+2, record_len, "Record %u",i+1);
|
||||
record_tree = proto_item_add_subtree(record_item, ett_a21_record_content);
|
||||
record_tree = proto_tree_add_subtree_format(tree, tvb, offset+2, record_len,
|
||||
ett_a21_record_content, NULL, "Record %u",i+1);
|
||||
|
||||
proto_tree_add_item(record_tree, hf_a21_mob_sub_info_record_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
offset++;
|
||||
|
@ -544,9 +543,8 @@ dissect_a21_ie_common(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, gi
|
|||
length = tvb_get_guint8(tvb, offset+1);
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb, offset, 1 + length_len + length, "%s : ",
|
||||
val_to_str_const(ie_type, a21_element_type_vals, "Unknown"));
|
||||
ie_tree = proto_item_add_subtree(ti, ett_a21_ie);
|
||||
ie_tree = proto_tree_add_subtree_format(tree, tvb, offset, 1 + length_len + length, ett_a21_ie, &ti,
|
||||
"%s : ", val_to_str_const(ie_type, a21_element_type_vals, "Unknown"));
|
||||
|
||||
/* Octet 1-element identifie*/
|
||||
proto_tree_add_item(ie_tree, hf_a21_element_identifier, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -627,7 +625,7 @@ dissect_a21(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
{
|
||||
guint8 message_type;
|
||||
int offset = 0;
|
||||
proto_item *ti, *tc;
|
||||
proto_item *tc;
|
||||
proto_tree *a21_tree, *corr_tree;
|
||||
|
||||
col_set_str(pinfo->cinfo, COL_PROTOCOL, "A21");
|
||||
|
@ -644,9 +642,9 @@ dissect_a21(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
proto_tree_add_item(tree, proto_a21, tvb, offset, 0, ENC_NA);
|
||||
|
||||
if(tree){
|
||||
ti = proto_tree_add_text(tree, tvb, offset, 1, "%s",
|
||||
val_to_str_const(message_type, a21_message_type_vals, "Unknown"));
|
||||
a21_tree = proto_item_add_subtree(ti, ett_a21);
|
||||
a21_tree = proto_tree_add_subtree(tree, tvb, offset, 1, ett_a21, NULL,
|
||||
val_to_str_const(message_type, a21_message_type_vals, "Unknown"));
|
||||
|
||||
/* message type in Octet 1 */
|
||||
proto_tree_add_item(a21_tree, hf_a21_message_type, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
offset++;
|
||||
|
|
|
@ -498,8 +498,8 @@ acn_add_channel_owner_info_block(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
|
|||
guint32 session_count;
|
||||
guint32 x;
|
||||
|
||||
pi = proto_tree_add_text(tree, tvb, offset, 8, "Channel Owner Info Block");
|
||||
this_tree = proto_item_add_subtree(pi, ett_acn_channel_owner_info_block);
|
||||
this_tree = proto_tree_add_subtree(tree, tvb, offset, 8, ett_acn_channel_owner_info_block, NULL,
|
||||
"Channel Owner Info Block");
|
||||
|
||||
proto_tree_add_item(this_tree, hf_acn_member_id, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
offset += 2;
|
||||
|
@ -527,8 +527,8 @@ acn_add_channel_member_info_block(tvbuff_t *tvb, packet_info *pinfo, proto_tree
|
|||
guint32 session_count;
|
||||
guint32 x;
|
||||
|
||||
pi = proto_tree_add_text(tree, tvb, offset, 8, "Channel Member Info Block");
|
||||
this_tree = proto_item_add_subtree(pi, ett_acn_channel_member_info_block);
|
||||
this_tree = proto_tree_add_subtree(tree, tvb, offset, 8, ett_acn_channel_member_info_block,
|
||||
NULL, "Channel Member Info Block");
|
||||
|
||||
proto_tree_add_item(this_tree, hf_acn_member_id, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
offset += 2;
|
||||
|
@ -567,11 +567,11 @@ acn_add_expiry(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offs
|
|||
static guint32
|
||||
acn_add_channel_parameter(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset)
|
||||
{
|
||||
proto_item *pi;
|
||||
proto_tree *param_tree;
|
||||
|
||||
pi = proto_tree_add_text(tree, tvb, offset, 8, "Channel Parameter Block");
|
||||
param_tree = proto_item_add_subtree(pi, ett_acn_channel_parameter);
|
||||
param_tree = proto_tree_add_subtree(tree, tvb, offset, 8, ett_acn_channel_parameter,
|
||||
NULL, "Channel Parameter Block");
|
||||
|
||||
proto_tree_add_item(param_tree, hf_acn_expiry, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
offset += 1;
|
||||
proto_tree_add_item(param_tree, hf_acn_nak_outbound_flag, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -611,8 +611,7 @@ acn_add_address(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int off
|
|||
break;
|
||||
case ACN_ADDR_IPV4:
|
||||
/* Build tree and add type*/
|
||||
pi = proto_tree_add_text(tree, tvb, offset, 7, "%s", label);
|
||||
addr_tree = proto_item_add_subtree(pi, ett_acn_address);
|
||||
addr_tree = proto_tree_add_subtree(tree, tvb, offset, 7, ett_acn_address, &pi, label);
|
||||
proto_tree_add_item(addr_tree, hf_acn_ip_address_type, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
offset += 1;
|
||||
/* Add port */
|
||||
|
@ -629,8 +628,7 @@ acn_add_address(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int off
|
|||
break;
|
||||
case ACN_ADDR_IPV6:
|
||||
/* Build tree and add type*/
|
||||
pi = proto_tree_add_text(tree, tvb, offset, 19, "%s", label);
|
||||
addr_tree = proto_item_add_subtree(pi, ett_acn_address);
|
||||
addr_tree = proto_tree_add_subtree(tree, tvb, offset, 19, ett_acn_address, &pi, label);
|
||||
proto_tree_add_item(addr_tree, hf_acn_ip_address_type, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
offset += 1;
|
||||
/* Add port */
|
||||
|
@ -647,8 +645,7 @@ acn_add_address(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int off
|
|||
break;
|
||||
case ACN_ADDR_IPPORT:
|
||||
/* Build tree and add type*/
|
||||
pi = proto_tree_add_text(tree, tvb, offset, 3, "%s", label);
|
||||
addr_tree = proto_item_add_subtree(pi, ett_acn_address);
|
||||
addr_tree = proto_tree_add_subtree(tree, tvb, offset, 3, ett_acn_address, &pi, label);
|
||||
proto_tree_add_item(addr_tree, hf_acn_ip_address_type, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
offset += 1;
|
||||
/* Add port */
|
||||
|
@ -667,8 +664,7 @@ acn_add_address(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int off
|
|||
static guint32
|
||||
acn_add_dmp_address_type(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, acn_dmp_adt_type *adt)
|
||||
{
|
||||
proto_item *pi;
|
||||
proto_tree *this_tree = NULL;
|
||||
proto_tree *this_tree;
|
||||
guint8 D;
|
||||
const gchar *name;
|
||||
|
||||
|
@ -677,9 +673,9 @@ acn_add_dmp_address_type(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree
|
|||
|
||||
D = ACN_DMP_ADT_EXTRACT_D(adt->flags);
|
||||
name = val_to_str(D, acn_dmp_adt_d_vals, "not valid (%d)");
|
||||
pi = proto_tree_add_text(tree, tvb, offset, 1, "Address and Data Type: %s", name);
|
||||
this_tree = proto_tree_add_subtree_format(tree, tvb, offset, 1, ett_acn_address_type,
|
||||
NULL, "Address and Data Type: %s", name);
|
||||
|
||||
this_tree = proto_item_add_subtree(pi, ett_acn_address_type);
|
||||
proto_tree_add_uint(this_tree, hf_acn_dmp_adt_v, tvb, offset, 1, adt->flags);
|
||||
proto_tree_add_uint(this_tree, hf_acn_dmp_adt_r, tvb, offset, 1, adt->flags);
|
||||
proto_tree_add_uint(this_tree, hf_acn_dmp_adt_d, tvb, offset, 1, adt->flags);
|
||||
|
|
Loading…
Reference in New Issue