forked from osmocom/wireshark
packet-packetbb.c cleanup
Change-Id: I2f6ab0bffca5aa4b021b46b930b55455e76b8a9f Reviewed-on: https://code.wireshark.org/review/16284 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
This commit is contained in:
parent
de90565452
commit
7490ad4480
|
@ -180,22 +180,24 @@ static int dissect_pbb_tlvblock(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
|
|||
guint16 tlvblockLength;
|
||||
guint tlvblockEnd;
|
||||
|
||||
proto_tree *tlvblock_tree = NULL;
|
||||
proto_tree *tlv_tree = NULL;
|
||||
proto_tree *tlv_flags_tree = NULL;
|
||||
proto_tree *tlvValue_tree = NULL;
|
||||
|
||||
proto_item *tlvBlock_item = NULL;
|
||||
proto_item *tlv_item = NULL;
|
||||
proto_item *tlvFlags_item = NULL;
|
||||
proto_item *tlvValue_item = NULL;
|
||||
proto_item *ti = NULL;
|
||||
proto_tree *tlvblock_tree, *tlv_tree, *tlvValue_tree;
|
||||
proto_item *tlvBlock_item, *tlv_item, *tlvValue_item;
|
||||
|
||||
int tlvCount = 0;
|
||||
|
||||
int hf_packetbb_tlv_type = 0;
|
||||
const value_string* tlv_type_vals = NULL;
|
||||
|
||||
static const int *flags[] = {
|
||||
&hf_packetbb_tlv_flags_hastypext,
|
||||
&hf_packetbb_tlv_flags_hassingleindex,
|
||||
&hf_packetbb_tlv_flags_hasmultiindex,
|
||||
&hf_packetbb_tlv_flags_hasvalue,
|
||||
&hf_packetbb_tlv_flags_hasextlen,
|
||||
&hf_packetbb_tlv_flags_hasmultivalue,
|
||||
NULL
|
||||
};
|
||||
|
||||
if (maxoffset < offset + 2) {
|
||||
proto_tree_add_expert_format(tree, pinfo, &ei_packetbb_error, tvb, offset, maxoffset - offset,
|
||||
"Not enough octets for minimal tlvblock");
|
||||
|
@ -285,15 +287,7 @@ static int dissect_pbb_tlvblock(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
|
|||
proto_tree_add_item(tlv_tree, hf_packetbb_tlv_type, tvb, offset++, 1, ENC_BIG_ENDIAN);
|
||||
|
||||
/* add flags */
|
||||
tlvFlags_item = proto_tree_add_item(tlv_tree, hf_packetbb_tlv_flags, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
tlv_flags_tree = proto_item_add_subtree(tlvFlags_item, ett_packetbb_tlv_flags);
|
||||
|
||||
proto_tree_add_item(tlv_flags_tree, hf_packetbb_tlv_flags_hastypext, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(tlv_flags_tree, hf_packetbb_tlv_flags_hassingleindex, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(tlv_flags_tree, hf_packetbb_tlv_flags_hasmultiindex, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(tlv_flags_tree, hf_packetbb_tlv_flags_hasvalue, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(tlv_flags_tree, hf_packetbb_tlv_flags_hasextlen, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(tlv_flags_tree, hf_packetbb_tlv_flags_hasmultivalue, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_bitmask(tlv_tree, tvb, offset, hf_packetbb_tlv_flags, ett_packetbb_tlv_flags, flags, ENC_BIG_ENDIAN);
|
||||
offset++;
|
||||
|
||||
if ((tlvFlags & TLV_HAS_TYPEEXT) != 0) {
|
||||
|
@ -306,19 +300,15 @@ static int dissect_pbb_tlvblock(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
|
|||
if ((tlvFlags & TLV_HAS_SINGLEINDEX) != 0) {
|
||||
proto_tree_add_uint(tlv_tree, hf_packetbb_tlv_indexstart, tvb, offset++, 1, indexStart);
|
||||
|
||||
ti = proto_tree_add_uint(tlv_tree, hf_packetbb_tlv_indexend, tvb, offset, 0, indexEnd);
|
||||
proto_item_append_text(ti, " (implicit)");
|
||||
proto_tree_add_uint_format_value(tlv_tree, hf_packetbb_tlv_indexend, tvb, offset, 0, indexEnd, "%d (implicit)", indexEnd);
|
||||
}
|
||||
else if ((tlvFlags & TLV_HAS_MULTIINDEX) != 0) {
|
||||
proto_tree_add_uint(tlv_tree, hf_packetbb_tlv_indexstart, tvb, offset++, 1, indexStart);
|
||||
proto_tree_add_uint(tlv_tree, hf_packetbb_tlv_indexend, tvb, offset++, 1, indexEnd);
|
||||
}
|
||||
else {
|
||||
ti = proto_tree_add_uint(tlv_tree, hf_packetbb_tlv_indexstart, tvb, offset, 0, indexStart);
|
||||
proto_item_append_text(ti, " (implicit)");
|
||||
|
||||
ti = proto_tree_add_uint(tlv_tree, hf_packetbb_tlv_indexend, tvb, offset, 0, indexEnd);
|
||||
proto_item_append_text(ti, " (implicit)");
|
||||
proto_tree_add_uint_format_value(tlv_tree, hf_packetbb_tlv_indexstart, tvb, offset, 0, indexStart, "%d (implicit)", indexStart);
|
||||
proto_tree_add_uint_format_value(tlv_tree, hf_packetbb_tlv_indexend, tvb, offset, 0, indexEnd, "%d (implicit)", indexEnd);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -333,8 +323,7 @@ static int dissect_pbb_tlvblock(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
|
|||
}
|
||||
}
|
||||
else {
|
||||
ti = proto_tree_add_uint(tlv_tree, hf_packetbb_tlv_length, tvb, offset, 0, 0);
|
||||
proto_item_append_text(ti, " (implicit)");
|
||||
proto_tree_add_uint_format_value(tlv_tree, hf_packetbb_tlv_length, tvb, offset, 0, 0, "0 (implicit)");
|
||||
}
|
||||
|
||||
if (length > 0) {
|
||||
|
@ -376,15 +365,22 @@ static int dissect_pbb_addressblock(tvbuff_t *tvb, packet_info *pinfo, proto_tre
|
|||
guint block_index = 0, head_index = 0, tail_index = 0, mid_index = 0, prefix_index = 0;
|
||||
|
||||
proto_tree *addr_tree = NULL;
|
||||
proto_tree *addrFlags_tree = NULL;
|
||||
proto_tree *addrValue_tree = NULL;
|
||||
|
||||
proto_item *addr_item = NULL;
|
||||
proto_item *addrFlags_item = NULL;
|
||||
proto_item *addrValue_item = NULL;
|
||||
|
||||
int i = 0;
|
||||
|
||||
static const int *flags[] = {
|
||||
&hf_packetbb_addr_flags_hashead,
|
||||
&hf_packetbb_addr_flags_hasfulltail,
|
||||
&hf_packetbb_addr_flags_haszerotail,
|
||||
&hf_packetbb_addr_flags_hassingleprelen,
|
||||
&hf_packetbb_addr_flags_hasmultiprelen,
|
||||
NULL
|
||||
};
|
||||
|
||||
if (maxoffset - offset < 2) {
|
||||
proto_tree_add_expert_format(tree, pinfo, &ei_packetbb_error, tvb, offset, maxoffset - offset,
|
||||
"Not enough octets for minimal addressblock header");
|
||||
|
@ -500,14 +496,7 @@ static int dissect_pbb_addressblock(tvbuff_t *tvb, packet_info *pinfo, proto_tre
|
|||
proto_tree_add_item(addr_tree, hf_packetbb_addr_num, tvb, block_index, 1, ENC_BIG_ENDIAN);
|
||||
|
||||
/* add flags */
|
||||
addrFlags_item = proto_tree_add_item(addr_tree, hf_packetbb_addr_flags, tvb, block_index+1, 1, ENC_BIG_ENDIAN);
|
||||
addrFlags_tree = proto_item_add_subtree(addrFlags_item, ett_packetbb_addr_flags);
|
||||
|
||||
proto_tree_add_item(addrFlags_tree, hf_packetbb_addr_flags_hashead, tvb, block_index+1, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(addrFlags_tree, hf_packetbb_addr_flags_hasfulltail, tvb, block_index+1, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(addrFlags_tree, hf_packetbb_addr_flags_haszerotail, tvb, block_index+1, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(addrFlags_tree, hf_packetbb_addr_flags_hassingleprelen, tvb, block_index+1, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(addrFlags_tree, hf_packetbb_addr_flags_hasmultiprelen, tvb, block_index+1, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_bitmask(addr_tree, tvb, block_index+1, hf_packetbb_addr_flags, ett_packetbb_addr_flags, flags, ENC_BIG_ENDIAN);
|
||||
|
||||
if ((address_flags & ADDR_HASHEAD) != 0) {
|
||||
/* add head */
|
||||
|
@ -570,11 +559,11 @@ static int dissect_pbb_addressblock(tvbuff_t *tvb, packet_info *pinfo, proto_tre
|
|||
}
|
||||
|
||||
static int dissect_pbb_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset) {
|
||||
proto_tree *message_tree = NULL;
|
||||
proto_tree *message_tree;
|
||||
proto_tree *header_tree = NULL;
|
||||
proto_tree *headerFlags_tree = NULL;
|
||||
|
||||
proto_item *message_item = NULL;
|
||||
proto_item *message_item;
|
||||
proto_item *header_item = NULL;
|
||||
proto_item *headerFlags_item = NULL;
|
||||
|
||||
|
@ -723,25 +712,24 @@ static int dissect_pbb_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
|
|||
|
||||
static int dissect_pbb_header(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint headerLength, guint tlvIndex) {
|
||||
proto_tree *header_tree;
|
||||
proto_tree *headerFlags_tree;
|
||||
|
||||
proto_item *header_item;
|
||||
proto_item *headerFlags_item;
|
||||
|
||||
guint8 packet_flags = tvb_get_guint8(tvb, 0);
|
||||
|
||||
static const int *flags[] = {
|
||||
&hf_packetbb_header_flags_phasseqnum,
|
||||
&hf_packetbb_header_flags_phastlv,
|
||||
NULL
|
||||
};
|
||||
|
||||
header_item = proto_tree_add_item(tree, hf_packetbb_header, tvb, 0, headerLength, ENC_NA);
|
||||
header_tree = proto_item_add_subtree(header_item, ett_packetbb_header);
|
||||
|
||||
/* version */
|
||||
proto_tree_add_uint(header_tree, hf_packetbb_version, tvb, 0, 1, packet_flags >> 4);
|
||||
proto_tree_add_item(header_tree, hf_packetbb_version, tvb, 0, 1, ENC_BIG_ENDIAN);
|
||||
|
||||
/* flags */
|
||||
headerFlags_item = proto_tree_add_item(header_tree, hf_packetbb_header_flags, tvb, 0, 1, ENC_BIG_ENDIAN);
|
||||
|
||||
headerFlags_tree = proto_item_add_subtree(headerFlags_item, ett_packetbb_header_flags);
|
||||
proto_tree_add_item(headerFlags_tree, hf_packetbb_header_flags_phasseqnum, tvb, 0, 1, ENC_NA);
|
||||
proto_tree_add_item(headerFlags_tree, hf_packetbb_header_flags_phastlv, tvb, 0, 1, ENC_NA);
|
||||
proto_tree_add_bitmask(header_tree, tvb, 0, hf_packetbb_header_flags, ett_packetbb_header_flags, flags, ENC_BIG_ENDIAN);
|
||||
|
||||
/* sequence number */
|
||||
if ((packet_flags & PACKET_HEADER_HASSEQNR) != 0) {
|
||||
|
|
Loading…
Reference in New Issue