convert to proto_tree_add_subtree[_format]
Change-Id: Ia2567695ffed30c990eda3740b08bfab101cea96 Reviewed-on: https://code.wireshark.org/review/2883 Reviewed-by: Michael Mann <mmann78@netscape.net>
This commit is contained in:
parent
db530d886d
commit
6318a29fa3
|
@ -897,15 +897,13 @@ void radius_tlv(radius_attr_info_t* a, proto_tree* tree, packet_info *pinfo _U_,
|
|||
dictionary_entry = &no_dictionary_entry;
|
||||
}
|
||||
|
||||
tlv_item = proto_tree_add_text(tree, tvb, offset, tlv_length,
|
||||
"TLV: l=%u t=%s(%u)", tlv_length,
|
||||
tlv_tree = proto_tree_add_subtree_format(tree, tvb, offset, tlv_length,
|
||||
dictionary_entry->ett, &tlv_item, "TLV: l=%u t=%s(%u)", tlv_length,
|
||||
dictionary_entry->name, tlv_type);
|
||||
|
||||
tlv_length -= 2;
|
||||
offset += 2;
|
||||
|
||||
tlv_tree = proto_item_add_subtree(tlv_item,dictionary_entry->ett);
|
||||
|
||||
if (show_length) {
|
||||
tlv_len_item = proto_tree_add_uint(tlv_tree,
|
||||
dictionary_entry->hf_len,
|
||||
|
@ -1394,7 +1392,6 @@ dissect_radius(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _
|
|||
proto_tree *radius_tree = NULL;
|
||||
proto_tree *avptree = NULL;
|
||||
proto_item *ti, *hidden_item;
|
||||
proto_item *avptf;
|
||||
guint avplength;
|
||||
e_radiushdr rh;
|
||||
radius_info_t *rad_info;
|
||||
|
@ -1714,9 +1711,8 @@ dissect_radius(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _
|
|||
if (avplength > 0)
|
||||
{
|
||||
/* list the attribute value pairs */
|
||||
avptf = proto_tree_add_text(radius_tree, tvb, HDR_LENGTH,
|
||||
avplength, "Attribute Value Pairs");
|
||||
avptree = proto_item_add_subtree(avptf, ett_radius_avp);
|
||||
avptree = proto_tree_add_subtree(radius_tree, tvb, HDR_LENGTH,
|
||||
avplength, ett_radius_avp, NULL, "Attribute Value Pairs");
|
||||
dissect_attribute_value_pairs(avptree, pinfo, tvb, HDR_LENGTH,
|
||||
avplength);
|
||||
}
|
||||
|
|
|
@ -266,8 +266,7 @@ static const gchar* dissect_packetcable_em_hdr(proto_tree* tree, tvbuff_t* tvb,
|
|||
proto_tree *obj_tree;
|
||||
|
||||
proto_tree_add_item(tree, hf_packetcable_em_header_version_id, tvb, 0, 2, ENC_BIG_ENDIAN);
|
||||
ti = proto_tree_add_text(tree, tvb, 2, 24, "BCID");
|
||||
obj_tree = proto_item_add_subtree(ti, ett_radius_vendor_packetcable_bcid);
|
||||
obj_tree = proto_tree_add_subtree(tree, tvb, 2, 24, ett_radius_vendor_packetcable_bcid, NULL, "BCID");
|
||||
decode_packetcable_bcid(tvb, obj_tree, 2);
|
||||
|
||||
proto_tree_add_item(tree, hf_packetcable_em_header_event_message_type, tvb, 26, 2, ENC_BIG_ENDIAN);
|
||||
|
|
|
@ -72,12 +72,11 @@ static void
|
|||
redbackli_dissect_avp(guint8 avptype, guint8 avplen, tvbuff_t *tvb, gint offset, proto_tree *tree)
|
||||
{
|
||||
const char *avpname;
|
||||
proto_tree *ti, *st = NULL;
|
||||
proto_tree *st = NULL;
|
||||
|
||||
avpname = val_to_str_const(avptype, avp_names, "Unknown");
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb, offset, avplen+2, "%s AVP", avpname);
|
||||
st = proto_item_add_subtree(ti, ett_redbackli);
|
||||
st = proto_tree_add_subtree_format(tree, tvb, offset, avplen+2, ett_redbackli, NULL, "%s AVP", avpname);
|
||||
|
||||
proto_tree_add_text(st, tvb, offset, 1, "AVP Type: %d", avptype);
|
||||
proto_tree_add_text(st, tvb, offset+1, 1, "AVP Length: %d", avplen);
|
||||
|
@ -135,16 +134,15 @@ redbackli_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
guint8 avptype, avplen;
|
||||
gint len, offset = 0;
|
||||
gboolean eoh;
|
||||
proto_tree *ti, *redbackli_tree = NULL;
|
||||
proto_item *ti;
|
||||
proto_tree *redbackli_tree = NULL;
|
||||
tvbuff_t *next_tvb;
|
||||
|
||||
col_set_str(pinfo->cinfo, COL_PROTOCOL, "RBLI");
|
||||
|
||||
if (tree) {
|
||||
ti = proto_tree_add_item(tree, proto_redbackli,
|
||||
ti = proto_tree_add_item(tree, proto_redbackli,
|
||||
tvb, 0, -1, ENC_NA);
|
||||
redbackli_tree = proto_item_add_subtree(ti, ett_redbackli);
|
||||
}
|
||||
redbackli_tree = proto_item_add_subtree(ti, ett_redbackli);
|
||||
|
||||
len = tvb_length(tvb);
|
||||
offset = 0;
|
||||
|
|
|
@ -222,15 +222,13 @@ static void
|
|||
dissect_unspec_rip_vektor(tvbuff_t *tvb, int offset, guint8 version,
|
||||
proto_tree *tree)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *rip_vektor_tree;
|
||||
guint32 metric;
|
||||
|
||||
metric = tvb_get_ntohl(tvb, offset+16);
|
||||
ti = proto_tree_add_text(tree, tvb, offset,
|
||||
RIP_ENTRY_LENGTH, "Address not specified, Metric: %u",
|
||||
rip_vektor_tree = proto_tree_add_subtree_format(tree, tvb, offset,
|
||||
RIP_ENTRY_LENGTH, ett_rip_vec, NULL, "Address not specified, Metric: %u",
|
||||
metric);
|
||||
rip_vektor_tree = proto_item_add_subtree(ti, ett_rip_vec);
|
||||
|
||||
proto_tree_add_item(rip_vektor_tree, &hfi_rip_family, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
if (version == RIPv2) {
|
||||
|
@ -249,15 +247,13 @@ static void
|
|||
dissect_ip_rip_vektor(tvbuff_t *tvb, int offset, guint8 version,
|
||||
proto_tree *tree)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *rip_vektor_tree;
|
||||
guint32 metric;
|
||||
|
||||
metric = tvb_get_ntohl(tvb, offset+16);
|
||||
ti = proto_tree_add_text(tree, tvb, offset,
|
||||
RIP_ENTRY_LENGTH, "IP Address: %s, Metric: %u",
|
||||
rip_vektor_tree = proto_tree_add_subtree_format(tree, tvb, offset,
|
||||
RIP_ENTRY_LENGTH, ett_rip_vec, NULL, "IP Address: %s, Metric: %u",
|
||||
tvb_ip_to_str(tvb, offset+4), metric);
|
||||
rip_vektor_tree = proto_item_add_subtree(ti, ett_rip_vec);
|
||||
|
||||
proto_tree_add_item(rip_vektor_tree, &hfi_rip_family, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
if (version == RIPv2) {
|
||||
|
@ -280,7 +276,6 @@ dissect_ip_rip_vektor(tvbuff_t *tvb, int offset, guint8 version,
|
|||
static gint
|
||||
dissect_rip_authentication(tvbuff_t *tvb, int offset, proto_tree *tree)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *rip_authentication_tree;
|
||||
guint16 authtype;
|
||||
guint32 val, digest_off, auth_data_len;
|
||||
|
@ -288,9 +283,8 @@ dissect_rip_authentication(tvbuff_t *tvb, int offset, proto_tree *tree)
|
|||
auth_data_len = 0;
|
||||
authtype = tvb_get_ntohs(tvb, offset + 2);
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb, offset, RIP_ENTRY_LENGTH,
|
||||
"Authentication: %s", val_to_str( authtype, rip_auth_type, "Unknown (%u)" ) );
|
||||
rip_authentication_tree = proto_item_add_subtree(ti, ett_rip_vec);
|
||||
rip_authentication_tree = proto_tree_add_subtree_format(tree, tvb, offset, RIP_ENTRY_LENGTH,
|
||||
ett_rip_vec, NULL, "Authentication: %s", val_to_str( authtype, rip_auth_type, "Unknown (%u)" ) );
|
||||
|
||||
proto_tree_add_uint(rip_authentication_tree, &hfi_rip_auth, tvb, offset+2, 2,
|
||||
authtype);
|
||||
|
@ -317,9 +311,8 @@ dissect_rip_authentication(tvbuff_t *tvb, int offset, proto_tree *tree)
|
|||
"Seq num: %u" , val );
|
||||
proto_tree_add_text( rip_authentication_tree, tvb, offset+12, 8,
|
||||
"Zero Padding" );
|
||||
ti = proto_tree_add_text( rip_authentication_tree, tvb, offset-4+digest_off,
|
||||
MD5_AUTH_DATA_LEN+4, "Authentication Data Trailer" );
|
||||
rip_authentication_tree = proto_item_add_subtree(ti, ett_auth_vec );
|
||||
rip_authentication_tree = proto_tree_add_subtree( rip_authentication_tree, tvb, offset-4+digest_off,
|
||||
MD5_AUTH_DATA_LEN+4, ett_auth_vec, NULL, "Authentication Data Trailer" );
|
||||
proto_tree_add_text( rip_authentication_tree, tvb, offset-4+digest_off+4,
|
||||
MD5_AUTH_DATA_LEN, "Authentication Data: %s",
|
||||
tvb_bytes_to_ep_str_punct(tvb, offset-4+digest_off+4,
|
||||
|
|
|
@ -2006,10 +2006,9 @@ dissect_rlc_status(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guin
|
|||
proto_tree_add_bits_ret_val(sufi_tree, hf_rlc_sufi_fsn, tvb, bit_offset, 12, &sn, ENC_BIG_ENDIAN);
|
||||
bit_offset += 12;
|
||||
proto_tree_add_item(sufi_tree, hf_rlc_sufi_bitmap, tvb, bit_offset/8, (gint)len, ENC_NA);
|
||||
ti = proto_tree_add_text(sufi_tree, tvb, bit_offset/8, (gint)len, "Decoded bitmap:");
|
||||
bitmap_tree = proto_tree_add_subtree(sufi_tree, tvb, bit_offset/8, (gint)len, ett_rlc_bitmap, &ti, "Decoded bitmap:");
|
||||
col_append_str(pinfo->cinfo, COL_INFO, " BITMAP=(");
|
||||
|
||||
bitmap_tree = proto_item_add_subtree(ti, ett_rlc_bitmap);
|
||||
buff = (gchar *)wmem_alloc(wmem_packet_scope(), BUFF_SIZE);
|
||||
for (i=0; i<len; i++) {
|
||||
bits = tvb_get_bits8(tvb, bit_offset, 8);
|
||||
|
@ -2047,8 +2046,7 @@ dissect_rlc_status(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guin
|
|||
if (len && (((cw[len-1] & 0x01) == 0) || (cw[len-1] == 0x01))) {
|
||||
expert_add_info(pinfo, tree, &ei_rlc_sufi_cw);
|
||||
} else {
|
||||
ti = proto_tree_add_text(sufi_tree, tvb, previous_bit_offset/8, (bit_offset-previous_bit_offset)/8, "Decoded list:");
|
||||
rlist_tree = proto_item_add_subtree(ti, ett_rlc_rlist);
|
||||
rlist_tree = proto_tree_add_subtree(sufi_tree, tvb, previous_bit_offset/8, (bit_offset-previous_bit_offset)/8, ett_rlc_rlist, NULL, "Decoded list:");
|
||||
proto_tree_add_text(rlist_tree, tvb, (previous_bit_offset+4)/8, 12/8,
|
||||
"Sequence Number = %u (AMD PDU not correctly received)",(unsigned)sn);
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO, " RLIST=(%u", (unsigned)sn);
|
||||
|
|
|
@ -88,7 +88,7 @@ static int
|
|||
dissect_rmcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
|
||||
{
|
||||
proto_tree *rmcp_tree = NULL, *field_tree;
|
||||
proto_item *ti, *tf;
|
||||
proto_item *ti;
|
||||
tvbuff_t *next_tvb;
|
||||
guint8 rmcp_class;
|
||||
const gchar *class_str;
|
||||
|
@ -125,12 +125,11 @@ dissect_rmcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_
|
|||
proto_tree_add_item(rmcp_tree, hf_rmcp_version, tvb, 0, 1, ENC_LITTLE_ENDIAN);
|
||||
proto_tree_add_item(rmcp_tree, hf_rmcp_sequence, tvb, 2, 1, ENC_LITTLE_ENDIAN);
|
||||
|
||||
tf = proto_tree_add_text(rmcp_tree, tvb, 3, 1, "Type: %s, Class: %s",
|
||||
field_tree = proto_tree_add_subtree_format(rmcp_tree, tvb, 3, 1,
|
||||
ett_rmcp_typeclass, NULL, "Type: %s, Class: %s",
|
||||
val_to_str(type, rmcp_type_vals, "Unknown (0x%02x)"),
|
||||
class_str);
|
||||
|
||||
field_tree = proto_item_add_subtree(tf, ett_rmcp_typeclass);
|
||||
|
||||
proto_tree_add_item(field_tree, hf_rmcp_class, tvb, 3, 1, ENC_LITTLE_ENDIAN);
|
||||
proto_tree_add_item(field_tree, hf_rmcp_type, tvb, 3, 1, ENC_LITTLE_ENDIAN);
|
||||
}
|
||||
|
|
|
@ -306,8 +306,7 @@ static guint dissect_nack_data(proto_tree *tree, tvbuff_t *tvb, guint offset,
|
|||
proto_tree *nack_tree, *flag_tree;
|
||||
guint16 len;
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb, offset, -1, "NACK Data");
|
||||
nack_tree = proto_item_add_subtree(ti, ett_nackdata);
|
||||
nack_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_nackdata, &ti, "NACK Data");
|
||||
proto_tree_add_item(nack_tree, hf_nack_form, tvb, offset, 1, ENC_BIG_ENDIAN); offset += 1;
|
||||
|
||||
tif = proto_tree_add_item(nack_tree, hf_nack_flags, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -355,8 +354,7 @@ static void dissect_norm_data(proto_tree *tree, packet_info *pinfo,
|
|||
offset = dissect_norm_hdrext(tree, pinfo, tvb, offset, hlen);
|
||||
}
|
||||
if (flags & NORM_FLAG_STREAM) {
|
||||
ti = proto_tree_add_text(tree, tvb, offset, 8, "Stream Data");
|
||||
flag_tree = proto_item_add_subtree(ti, ett_streampayload);
|
||||
flag_tree = proto_tree_add_subtree(tree, tvb, offset, 8, ett_streampayload, NULL, "Stream Data");
|
||||
proto_tree_add_item(flag_tree, hf_reserved, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2;
|
||||
proto_tree_add_item(flag_tree, hf_payload_len, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2;
|
||||
proto_tree_add_item(flag_tree, hf_payload_offset, tvb, offset, 4, ENC_BIG_ENDIAN); offset += 4;
|
||||
|
@ -442,11 +440,10 @@ static guint dissect_norm_cmd_cc(proto_tree *tree, packet_info *pinfo,
|
|||
offset = dissect_norm_hdrext(tree, pinfo, tvb, offset, hlen);
|
||||
}
|
||||
while (offset < hdrlen2bytes(hlen)) {
|
||||
proto_item *ti, *tif;
|
||||
proto_item *tif;
|
||||
proto_tree *cc_tree, *flag_tree;
|
||||
double grtt;
|
||||
ti = proto_tree_add_text(tree, tvb, offset, 8, "Congestion Control");
|
||||
cc_tree = proto_item_add_subtree(ti, ett_congestioncontrol);
|
||||
cc_tree = proto_tree_add_subtree(tree, tvb, offset, 8, ett_congestioncontrol, NULL, "Congestion Control");
|
||||
proto_tree_add_item(cc_tree, hf_cc_node_id, tvb, offset, 4, ENC_BIG_ENDIAN); offset += 4;
|
||||
tif = proto_tree_add_item(cc_tree, hf_cc_flags, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
flag_tree = proto_item_add_subtree(tif, ett_flags);
|
||||
|
|
|
@ -328,7 +328,6 @@ dissect_rohc_pkt_type_0(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int
|
|||
{
|
||||
guint8 val_len = 0;
|
||||
guint64 sn;
|
||||
proto_item *ti;
|
||||
proto_tree *pkt_tree;
|
||||
|
||||
switch(rohc_cid_context->mode){
|
||||
|
@ -346,8 +345,7 @@ dissect_rohc_pkt_type_0(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int
|
|||
get_self_describing_var_len_val(tvb, tree, offset+1, hf_rohc_large_cid, &val_len);
|
||||
}
|
||||
col_set_str(pinfo->cinfo, COL_INFO, "R-0");
|
||||
ti = proto_tree_add_text(tree, tvb, offset, 1+val_len, "R-0 packet");
|
||||
pkt_tree = proto_item_add_subtree(ti, ett_rohc_packet);
|
||||
pkt_tree = proto_tree_add_subtree(tree, tvb, offset, 1+val_len, ett_rohc_packet, NULL, "R-0 packet");
|
||||
sn = tvb_get_bits8(tvb,(offset<<3)+2, 6);
|
||||
proto_tree_add_bits_item(pkt_tree, hf_rohc_comp_sn, tvb, (offset<<3)+2, 6, ENC_BIG_ENDIAN);
|
||||
offset += 1 + val_len;
|
||||
|
@ -374,8 +372,7 @@ dissect_rohc_pkt_type_0(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int
|
|||
rohc_sn_crumbs[1].crumb_bit_offset += val_len*8;
|
||||
}
|
||||
col_set_str(pinfo->cinfo, COL_INFO, "R-0-CRC");
|
||||
ti = proto_tree_add_text(tree, tvb, offset, 2+val_len, "R-0-CRC packet");
|
||||
pkt_tree = proto_item_add_subtree(ti, ett_rohc_packet);
|
||||
pkt_tree = proto_tree_add_subtree(tree, tvb, offset, 2+val_len, ett_rohc_packet, NULL, "R-0-CRC packet");
|
||||
proto_tree_add_split_bits_item_ret_val(pkt_tree, hf_rohc_comp_sn, tvb, (offset<<3),
|
||||
rohc_sn_crumbs, &sn);
|
||||
offset += 1 + val_len;
|
||||
|
@ -400,8 +397,7 @@ dissect_rohc_pkt_type_0(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int
|
|||
get_self_describing_var_len_val(tvb, tree, offset+1, hf_rohc_large_cid, &val_len);
|
||||
}
|
||||
col_set_str(pinfo->cinfo, COL_INFO, "UO-0");
|
||||
ti = proto_tree_add_text(tree, tvb, offset, 1+val_len, "UO-0 packet");
|
||||
pkt_tree = proto_item_add_subtree(ti, ett_rohc_packet);
|
||||
pkt_tree = proto_tree_add_subtree(tree, tvb, offset, 1+val_len, ett_rohc_packet, NULL, "UO-0 packet");
|
||||
sn = tvb_get_bits8(tvb,(offset<<3)+1, 4);
|
||||
proto_tree_add_bits_item(pkt_tree, hf_rohc_comp_sn, tvb, (offset<<3)+1, 4, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_bits_item(pkt_tree, hf_rohc_r_0_crc, tvb, (offset<<3)+5, 3, ENC_BIG_ENDIAN);
|
||||
|
@ -538,8 +534,7 @@ dissect_rohc_pkt_type_1_r_mode(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
|
|||
* +---+---+---+---+---+---+---+---+
|
||||
*/
|
||||
col_set_str(pinfo->cinfo, COL_INFO, "R-1");
|
||||
ti = proto_tree_add_text(tree, tvb, offset, -1, "R-1 packet");
|
||||
pkt_tree = proto_item_add_subtree(ti, ett_rohc_packet);
|
||||
pkt_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_rohc_packet, &ti, "R-1 packet");
|
||||
sn = tvb_get_bits8(tvb, (offset<<3)+2, 6);
|
||||
proto_tree_add_bits_item(pkt_tree, hf_rohc_comp_sn, tvb, (offset<<3)+2, 6, ENC_BIG_ENDIAN);
|
||||
offset += 1 + val_len;
|
||||
|
@ -569,8 +564,7 @@ dissect_rohc_pkt_type_1_r_mode(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
|
|||
* +---+---+---+---+---+---+---+---+
|
||||
*/
|
||||
col_set_str(pinfo->cinfo, COL_INFO, "R-1-ID");
|
||||
ti = proto_tree_add_text(tree, tvb, offset, -1, "R-1-ID packet");
|
||||
pkt_tree = proto_item_add_subtree(ti, ett_rohc_packet);
|
||||
pkt_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_rohc_packet, &ti, "R-1-ID packet");
|
||||
} else {
|
||||
/* R-1-TS
|
||||
*
|
||||
|
@ -582,8 +576,7 @@ dissect_rohc_pkt_type_1_r_mode(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
|
|||
* +---+---+---+---+---+---+---+---+
|
||||
*/
|
||||
col_set_str(pinfo->cinfo, COL_INFO, "R-1-TS");
|
||||
ti = proto_tree_add_text(tree, tvb, offset, -1, "R-1-TS packet");
|
||||
pkt_tree = proto_item_add_subtree(ti, ett_rohc_packet);
|
||||
pkt_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_rohc_packet, &ti, "R-1-TS packet");
|
||||
}
|
||||
sn = tvb_get_bits8(tvb, (offset<<3)+2, 6);
|
||||
proto_tree_add_bits_item(pkt_tree, hf_rohc_comp_sn, tvb, (offset<<3)+2, 6, ENC_BIG_ENDIAN);
|
||||
|
@ -645,8 +638,7 @@ dissect_rohc_pkt_type_1_u_o_mode(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
|
|||
* +---+---+---+---+---+---+---+---+
|
||||
*/
|
||||
col_set_str(pinfo->cinfo, COL_INFO, "UO-1");
|
||||
ti = proto_tree_add_text(tree, tvb, offset, -1, "UO-1 packet");
|
||||
pkt_tree = proto_item_add_subtree(ti, ett_rohc_packet);
|
||||
pkt_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_rohc_packet, &ti, "UO-1 packet");
|
||||
if (rohc_cid_context->profile == ROHC_PROFILE_UDP) {
|
||||
proto_tree_add_bits_item(pkt_tree, hf_rohc_comp_ip_id, tvb, (offset<<3)+2, 6, ENC_BIG_ENDIAN);
|
||||
offset += 1 + val_len;
|
||||
|
@ -676,8 +668,7 @@ dissect_rohc_pkt_type_1_u_o_mode(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
|
|||
* +---+---+---+---+---+---+---+---+
|
||||
*/
|
||||
col_set_str(pinfo->cinfo, COL_INFO, "UO-1-ID");
|
||||
ti = proto_tree_add_text(tree, tvb, offset, -1, "UO-1-ID packet");
|
||||
pkt_tree = proto_item_add_subtree(ti, ett_rohc_packet);
|
||||
pkt_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_rohc_packet, &ti, "UO-1-ID packet");
|
||||
proto_tree_add_bits_item(pkt_tree, hf_rohc_t, tvb, (offset<<3)+2, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_bits_item(pkt_tree, hf_rohc_comp_ip_id, tvb, (offset<<3)+3, 5, ENC_BIG_ENDIAN);
|
||||
offset += 1 + val_len;
|
||||
|
@ -694,8 +685,7 @@ dissect_rohc_pkt_type_1_u_o_mode(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
|
|||
* +---+---+---+---+---+---+---+---+
|
||||
*/
|
||||
col_set_str(pinfo->cinfo, COL_INFO, "UO-1-TS");
|
||||
ti = proto_tree_add_text(tree, tvb, offset, -1, "UO-1-TS packet");
|
||||
pkt_tree = proto_item_add_subtree(ti, ett_rohc_packet);
|
||||
pkt_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_rohc_packet, &ti, "UO-1-TS packet");
|
||||
proto_tree_add_bits_item(pkt_tree, hf_rohc_t, tvb, (offset<<3)+2, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_bits_item(pkt_tree, hf_rohc_ts, tvb, (offset<<3)+3, 5, ENC_BIG_ENDIAN);
|
||||
offset += 1 + val_len;
|
||||
|
@ -754,8 +744,7 @@ dissect_rohc_pkt_type_2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int
|
|||
* +---+---+---+---+---+---+---+---+
|
||||
*/
|
||||
col_set_str(pinfo->cinfo, COL_INFO, "UOR-2");
|
||||
ti = proto_tree_add_text(tree, tvb, offset, -1, "UOR-2 packet");
|
||||
pkt_tree = proto_item_add_subtree(ti, ett_rohc_packet);
|
||||
pkt_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_rohc_packet, &ti, "UOR-2 packet");
|
||||
if (rohc_cid_context->profile == ROHC_PROFILE_UDP) {
|
||||
sn = tvb_get_bits8(tvb, (offset<<3)+3, 5);
|
||||
proto_tree_add_bits_item(pkt_tree, hf_rohc_comp_sn, tvb, (offset<<3)+3, 5, ENC_BIG_ENDIAN);
|
||||
|
@ -798,8 +787,7 @@ dissect_rohc_pkt_type_2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int
|
|||
* +---+---+---+---+---+---+---+---+
|
||||
*/
|
||||
col_set_str(pinfo->cinfo, COL_INFO, "UOR-2-ID");
|
||||
ti = proto_tree_add_text(tree, tvb, offset, -1, "UOR-2-ID packet");
|
||||
pkt_tree = proto_item_add_subtree(ti, ett_rohc_packet);
|
||||
pkt_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_rohc_packet, &ti, "UOR-2-ID packet");
|
||||
proto_tree_add_bits_item(pkt_tree, hf_rohc_comp_ip_id, tvb, (offset<<3)+3, 5, ENC_BIG_ENDIAN);
|
||||
} else {
|
||||
/* UOR-2-TS
|
||||
|
@ -814,8 +802,7 @@ dissect_rohc_pkt_type_2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int
|
|||
* +---+---+---+---+---+---+---+---+
|
||||
*/
|
||||
col_set_str(pinfo->cinfo, COL_INFO, "UOR-2-TS");
|
||||
ti = proto_tree_add_text(tree, tvb, offset, -1, "UOR-2-TS packet");
|
||||
pkt_tree = proto_item_add_subtree(ti, ett_rohc_packet);
|
||||
pkt_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_rohc_packet, &ti, "UOR-2-TS packet");
|
||||
proto_tree_add_bits_item(pkt_tree, hf_rohc_ts, tvb, (offset<<3)+3, 5, ENC_BIG_ENDIAN);
|
||||
}
|
||||
offset += 1 + val_len;
|
||||
|
@ -918,9 +905,9 @@ dissect_rohc_feedback_data(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
|
|||
break;
|
||||
case ROHC_PROFILE_RTP: /* 1 */
|
||||
case ROHC_PROFILE_UDP: /* 2 */
|
||||
ti = proto_tree_add_text(tree, tvb, offset, feedback_data_len, "%s profile-specific information",
|
||||
rohc_feedback_tree = proto_tree_add_subtree_format(tree, tvb, offset, feedback_data_len, ett_rohc_feedback, NULL,
|
||||
"%s profile-specific information",
|
||||
(rohc_cid_context->profile == ROHC_PROFILE_RTP) ? "RTP" : "UDP");
|
||||
rohc_feedback_tree = proto_item_add_subtree(ti, ett_rohc_feedback);
|
||||
/* Set mode at first pass? Do we need a new context for the following frames?
|
||||
*
|
||||
*/
|
||||
|
@ -999,8 +986,8 @@ dissect_rohc_feedback_data(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
|
|||
col_append_fstr(pinfo->cinfo, COL_INFO, " (sn=%u)", sn);
|
||||
break;
|
||||
default:
|
||||
ti = proto_tree_add_text(tree, tvb, offset, feedback_data_len, "profile-specific information[Not dissected yet]");
|
||||
rohc_feedback_tree = proto_item_add_subtree(ti, ett_rohc_feedback);
|
||||
rohc_feedback_tree = proto_tree_add_subtree(tree, tvb, offset, feedback_data_len,
|
||||
ett_rohc_feedback, NULL, "profile-specific information[Not dissected yet]");
|
||||
proto_tree_add_item(rohc_feedback_tree, hf_rohc_acktype, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
break;
|
||||
}
|
||||
|
@ -1355,19 +1342,19 @@ dissect_rohc_ir_rtp_profile_dynamic(tvbuff_t *tvb, packet_info *pinfo, proto_tre
|
|||
switch(profile){
|
||||
|
||||
case ROHC_PROFILE_UNCOMPRESSED:
|
||||
item = proto_tree_add_text(tree, tvb, offset, 0, "Profile 0x0000 Uncompressed");
|
||||
sub_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_rohc_rtp_dynamic, &item, "Profile 0x0000 Uncompressed");
|
||||
break;
|
||||
|
||||
case ROHC_PROFILE_RTP:
|
||||
item = proto_tree_add_text(tree, tvb, offset, 0, "Profile 0x0001 RTP Dynamic Chain");
|
||||
sub_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_rohc_rtp_dynamic, &item, "Profile 0x0001 RTP Dynamic Chain");
|
||||
break;
|
||||
|
||||
case ROHC_PROFILE_UDP:
|
||||
item = proto_tree_add_text(tree, tvb, offset, 0, "Profile 0x0002 UDP Dynamic Chain");
|
||||
sub_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_rohc_rtp_dynamic, &item, "Profile 0x0002 UDP Dynamic Chain");
|
||||
break;
|
||||
|
||||
case ROHC_PROFILE_IP:
|
||||
item = proto_tree_add_text(tree, tvb, offset, 0, "Profile 0x0004 IP Dynamic Chain");
|
||||
sub_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_rohc_rtp_dynamic, &item, "Profile 0x0004 IP Dynamic Chain");
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -1378,7 +1365,6 @@ dissect_rohc_ir_rtp_profile_dynamic(tvbuff_t *tvb, packet_info *pinfo, proto_tre
|
|||
/* IP dynamic*/
|
||||
/* for all profiles except uncompressed */
|
||||
if ( (profile != ROHC_PROFILE_UNCOMPRESSED) ) {
|
||||
sub_tree = proto_item_add_subtree(item, ett_rohc_rtp_dynamic);
|
||||
switch(rohc_cid_context->rohc_ip_version){
|
||||
case 4:
|
||||
/* 5.7.7.4. Initialization of IPv4 Header [IPv4, section 3.1].
|
||||
|
@ -1597,19 +1583,19 @@ dissect_rohc_ir_rtp_udp_ip_profile_static(tvbuff_t *tvb, proto_tree *tree, packe
|
|||
switch(profile){
|
||||
|
||||
case ROHC_PROFILE_UNCOMPRESSED:
|
||||
item = proto_tree_add_text(tree, tvb, offset, 0, "Profile 0x0000 Uncompressed");
|
||||
sub_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_rohc_rtp_static, &item, "Profile 0x0000 Uncompressed");
|
||||
break;
|
||||
|
||||
case ROHC_PROFILE_RTP:
|
||||
item = proto_tree_add_text(tree, tvb, offset, 0, "Profile 0x0001 RTP Static Chain");
|
||||
sub_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_rohc_rtp_static, &item, "Profile 0x0001 RTP Static Chain");
|
||||
break;
|
||||
|
||||
case ROHC_PROFILE_UDP:
|
||||
item = proto_tree_add_text(tree, tvb, offset, 0, "Profile 0x0002 UDP Static Chain");
|
||||
sub_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_rohc_rtp_static, &item, "Profile 0x0002 UDP Static Chain");
|
||||
break;
|
||||
|
||||
case ROHC_PROFILE_IP:
|
||||
item = proto_tree_add_text(tree, tvb, offset, 0, "Profile 0x0004 IP Static Chain");
|
||||
sub_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_rohc_rtp_static, &item, "Profile 0x0004 IP Static Chain");
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -1620,7 +1606,6 @@ dissect_rohc_ir_rtp_udp_ip_profile_static(tvbuff_t *tvb, proto_tree *tree, packe
|
|||
/* IP static*/
|
||||
/* for all profiles except uncompressed */
|
||||
if (profile != ROHC_PROFILE_UNCOMPRESSED) {
|
||||
sub_tree = proto_item_add_subtree(item, ett_rohc_rtp_static);
|
||||
version = tvb_get_guint8(tvb,offset)>>4;
|
||||
proto_tree_add_item(sub_tree, hf_rohc_ip_version, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
rohc_cid_context->rohc_ip_version = version;
|
||||
|
@ -2089,8 +2074,8 @@ dissect_rohc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
|
|||
*/
|
||||
|
||||
/* Put configuration data into the tree */
|
||||
item = proto_tree_add_text(rohc_tree, tvb, offset, 0, "Global Configuration: (%s)", p_rohc_info->large_cid_present ? "Large CID" : "Small CID");
|
||||
conf_tree = proto_item_add_subtree(item, ett_rohc_conf);
|
||||
conf_tree = proto_tree_add_subtree_format(rohc_tree, tvb, offset, 0, ett_rohc_conf, &item,
|
||||
"Global Configuration: (%s)", p_rohc_info->large_cid_present ? "Large CID" : "Small CID");
|
||||
PROTO_ITEM_SET_GENERATED(item);
|
||||
rohc_cid_context = (rohc_cid_context_t*)p_get_proto_data(wmem_file_scope(), pinfo, proto_rohc, 0);
|
||||
if(rohc_cid_context){
|
||||
|
|
|
@ -132,7 +132,6 @@ static void dissect_roofnet_header(proto_tree *tree, tvbuff_t *tvb, guint *offse
|
|||
*/
|
||||
static void dissect_roofnet_link(proto_tree *tree, tvbuff_t *tvb, guint *offset, guint link)
|
||||
{
|
||||
proto_item *it= NULL;
|
||||
proto_tree *subtree= NULL;
|
||||
|
||||
ptvcursor_t *cursor= NULL;
|
||||
|
@ -143,12 +142,11 @@ static void dissect_roofnet_link(proto_tree *tree, tvbuff_t *tvb, guint *offset,
|
|||
addr_src= tvb_get_ipv4(tvb, *offset + ROOFNET_LINK_OFFSET_SRC);
|
||||
addr_dst= tvb_get_ipv4(tvb, *offset + ROOFNET_LINK_OFFSET_DST);
|
||||
|
||||
it = proto_tree_add_text(tree, tvb, *offset, ROOFNET_LINK_LEN,
|
||||
"link: %u, src: %s, dst: %s",
|
||||
subtree = proto_tree_add_subtree_format(tree, tvb, *offset, ROOFNET_LINK_LEN,
|
||||
ett_roofnet_link, NULL, "link: %u, src: %s, dst: %s",
|
||||
link,
|
||||
get_hostname(addr_src),
|
||||
get_hostname(addr_dst));
|
||||
subtree= proto_item_add_subtree(it, ett_roofnet_link);
|
||||
|
||||
proto_tree_add_ipv4(subtree, hf_roofnet_link_src, tvb, *offset, 4, addr_src);
|
||||
*offset += 4;
|
||||
|
|
|
@ -673,15 +673,12 @@ dissect_rpc_opaque_data(tvbuff_t *tvb, int offset,
|
|||
|
||||
if (tree) {
|
||||
/* string_item_offset = offset; */
|
||||
string_item = proto_tree_add_text(tree, tvb,offset, -1,
|
||||
"%s: %s", proto_registrar_get_name(hfindex),
|
||||
string_tree = proto_tree_add_subtree_format(tree, tvb,offset, -1,
|
||||
ett_rpc_string, &string_item, "%s: %s", proto_registrar_get_name(hfindex),
|
||||
string_buffer_print);
|
||||
string_tree = proto_item_add_subtree(string_item,
|
||||
ett_rpc_string);
|
||||
}
|
||||
if (!fixed_length) {
|
||||
if (string_tree)
|
||||
proto_tree_add_text(string_tree, tvb,offset,4,
|
||||
proto_tree_add_text(string_tree, tvb,offset,4,
|
||||
"length: %u", string_length);
|
||||
offset += 4;
|
||||
}
|
||||
|
@ -833,11 +830,8 @@ dissect_rpc_authunix_groups(tvbuff_t* tvb, proto_tree* tree, int offset)
|
|||
proto_tree *gtree = NULL;
|
||||
|
||||
gids_count = tvb_get_ntohl(tvb,offset);
|
||||
if (tree) {
|
||||
gitem = proto_tree_add_text(tree, tvb, offset,
|
||||
4+gids_count*4, "Auxiliary GIDs (%d)", gids_count);
|
||||
gtree = proto_item_add_subtree(gitem, ett_rpc_gids);
|
||||
}
|
||||
gtree = proto_tree_add_subtree_format(tree, tvb, offset,
|
||||
4+gids_count*4, ett_rpc_gids, &gitem, "Auxiliary GIDs (%d)", gids_count);
|
||||
offset += 4;
|
||||
|
||||
/* first, open with [ */
|
||||
|
@ -920,11 +914,8 @@ dissect_rpc_authgss_context(proto_tree *tree, tvbuff_t *tvb, int offset,
|
|||
wmem_tree_key_t tkey[2];
|
||||
guint32 key[4] = {0,0,0,0};
|
||||
|
||||
context_item = proto_tree_add_text(tree, tvb, offset, -1,
|
||||
"GSS Context");
|
||||
|
||||
context_tree = proto_item_add_subtree(context_item,
|
||||
ett_gss_context);
|
||||
context_tree = proto_tree_add_subtree(tree, tvb, offset, -1,
|
||||
ett_gss_context, &context_item, "GSS Context");
|
||||
|
||||
context_length = tvb_get_ntohl(tvb, offset);
|
||||
proto_tree_add_item(context_tree, hf_rpc_authgss_ctx_len, tvb, offset, 4, ENC_BIG_ENDIAN);
|
||||
|
@ -1137,7 +1128,6 @@ dissect_rpc_cred(tvbuff_t* tvb, proto_tree* tree, int offset,
|
|||
guint flavor;
|
||||
guint length;
|
||||
|
||||
proto_item *citem;
|
||||
proto_tree *ctree;
|
||||
|
||||
flavor = tvb_get_ntohl(tvb,offset);
|
||||
|
@ -1145,9 +1135,8 @@ dissect_rpc_cred(tvbuff_t* tvb, proto_tree* tree, int offset,
|
|||
length = rpc_roundup(length);
|
||||
|
||||
if (tree) {
|
||||
citem = proto_tree_add_text(tree, tvb, offset,
|
||||
8+length, "Credentials");
|
||||
ctree = proto_item_add_subtree(citem, ett_rpc_cred);
|
||||
ctree = proto_tree_add_subtree(tree, tvb, offset,
|
||||
8+length, ett_rpc_cred, NULL, "Credentials");
|
||||
proto_tree_add_uint(ctree, hf_rpc_auth_flavor, tvb,
|
||||
offset, 4, flavor);
|
||||
proto_tree_add_uint(ctree, hf_rpc_auth_length, tvb,
|
||||
|
@ -1248,7 +1237,6 @@ dissect_rpc_verf(tvbuff_t* tvb, proto_tree* tree, int offset, int msg_type,
|
|||
guint flavor;
|
||||
guint length;
|
||||
|
||||
proto_item *vitem;
|
||||
proto_tree *vtree;
|
||||
|
||||
flavor = tvb_get_ntohl(tvb,offset);
|
||||
|
@ -1256,9 +1244,8 @@ dissect_rpc_verf(tvbuff_t* tvb, proto_tree* tree, int offset, int msg_type,
|
|||
length = rpc_roundup(length);
|
||||
|
||||
if (tree) {
|
||||
vitem = proto_tree_add_text(tree, tvb, offset,
|
||||
8+length, "Verifier");
|
||||
vtree = proto_item_add_subtree(vitem, ett_rpc_verf);
|
||||
vtree = proto_tree_add_subtree(tree, tvb, offset,
|
||||
8+length, ett_rpc_verf, NULL, "Verifier");
|
||||
proto_tree_add_uint(vtree, hf_rpc_auth_flavor, tvb,
|
||||
offset, 4, flavor);
|
||||
|
||||
|
@ -1351,19 +1338,14 @@ dissect_rpc_authgssapi_initarg(tvbuff_t* tvb, proto_tree* tree, int offset,
|
|||
packet_info *pinfo)
|
||||
{
|
||||
guint version;
|
||||
proto_item *mitem;
|
||||
proto_tree *mtree = NULL;
|
||||
proto_tree *mtree;
|
||||
|
||||
mtree = proto_tree_add_subtree(tree, tvb, offset, -1,
|
||||
ett_rpc_authgssapi_msg, NULL, "AUTH_GSSAPI Msg");
|
||||
|
||||
if (tree) {
|
||||
mitem = proto_tree_add_text(tree, tvb, offset, -1,
|
||||
"AUTH_GSSAPI Msg");
|
||||
mtree = proto_item_add_subtree(mitem, ett_rpc_authgssapi_msg);
|
||||
}
|
||||
version = tvb_get_ntohl(tvb, offset);
|
||||
if (mtree) {
|
||||
proto_tree_add_uint(mtree, hf_rpc_authgssapi_msgv, tvb,
|
||||
offset, 4, version);
|
||||
}
|
||||
|
||||
proto_tree_add_uint(mtree, hf_rpc_authgssapi_msgv, tvb, offset, 4, version);
|
||||
offset += 4;
|
||||
|
||||
offset = dissect_rpc_authgss_token(tvb, mtree, offset, pinfo, hf_rpc_authgss_token);
|
||||
|
@ -1377,37 +1359,27 @@ dissect_rpc_authgssapi_initres(tvbuff_t* tvb, proto_tree* tree, int offset,
|
|||
{
|
||||
guint version;
|
||||
guint major, minor;
|
||||
proto_item *mitem;
|
||||
proto_tree *mtree = NULL;
|
||||
proto_tree *mtree;
|
||||
|
||||
if (tree) {
|
||||
mitem = proto_tree_add_text(tree, tvb, offset, -1,
|
||||
"AUTH_GSSAPI Msg");
|
||||
mtree = proto_item_add_subtree(mitem, ett_rpc_authgssapi_msg);
|
||||
}
|
||||
mtree = proto_tree_add_subtree(tree, tvb, offset, -1,
|
||||
ett_rpc_authgssapi_msg, NULL, "AUTH_GSSAPI Msg");
|
||||
|
||||
version = tvb_get_ntohl(tvb,offset);
|
||||
if (mtree) {
|
||||
proto_tree_add_uint(mtree, hf_rpc_authgssapi_msgv, tvb,
|
||||
proto_tree_add_uint(mtree, hf_rpc_authgssapi_msgv, tvb,
|
||||
offset, 4, version);
|
||||
}
|
||||
offset += 4;
|
||||
|
||||
offset = dissect_rpc_data(tvb, mtree, hf_rpc_authgssapi_handle,
|
||||
offset);
|
||||
|
||||
major = tvb_get_ntohl(tvb,offset);
|
||||
if (mtree) {
|
||||
proto_tree_add_uint(mtree, hf_rpc_authgss_major, tvb,
|
||||
proto_tree_add_uint(mtree, hf_rpc_authgss_major, tvb,
|
||||
offset, 4, major);
|
||||
}
|
||||
offset += 4;
|
||||
|
||||
minor = tvb_get_ntohl(tvb,offset);
|
||||
if (mtree) {
|
||||
proto_tree_add_uint(mtree, hf_rpc_authgss_minor, tvb,
|
||||
proto_tree_add_uint(mtree, hf_rpc_authgss_minor, tvb,
|
||||
offset, 4, minor);
|
||||
}
|
||||
offset += 4;
|
||||
|
||||
offset = dissect_rpc_authgss_token(tvb, mtree, offset, pinfo, hf_rpc_authgss_token);
|
||||
|
@ -1458,16 +1430,14 @@ dissect_rpc_authgss_integ_data(tvbuff_t *tvb, packet_info *pinfo,
|
|||
{
|
||||
guint32 length, rounded_length, seq;
|
||||
|
||||
proto_item *gitem;
|
||||
proto_tree *gtree = NULL;
|
||||
proto_tree *gtree;
|
||||
|
||||
length = tvb_get_ntohl(tvb, offset);
|
||||
rounded_length = rpc_roundup(length);
|
||||
seq = tvb_get_ntohl(tvb, offset+4);
|
||||
|
||||
gitem = proto_tree_add_text(tree, tvb, offset,
|
||||
4+rounded_length, "GSS Data");
|
||||
gtree = proto_item_add_subtree(gitem, ett_rpc_gss_data);
|
||||
gtree = proto_tree_add_subtree(tree, tvb, offset,
|
||||
4+rounded_length, ett_rpc_gss_data, NULL, "GSS Data");
|
||||
proto_tree_add_uint(gtree, hf_rpc_authgss_data_length,
|
||||
tvb, offset, 4, length);
|
||||
proto_tree_add_uint(gtree, hf_rpc_authgss_seq,
|
||||
|
@ -1825,8 +1795,7 @@ dissect_rpc_continuation(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
col_set_str(pinfo->cinfo, COL_INFO, "Continuation");
|
||||
|
||||
if (tree) {
|
||||
rpc_item = proto_tree_add_item(tree, proto_rpc, tvb, 0, -1,
|
||||
ENC_NA);
|
||||
rpc_item = proto_tree_add_item(tree, proto_rpc, tvb, 0, -1, ENC_NA);
|
||||
rpc_tree = proto_item_add_subtree(rpc_item, ett_rpc);
|
||||
proto_tree_add_text(rpc_tree, tvb, 0, -1, "Continuation data");
|
||||
}
|
||||
|
@ -2673,11 +2642,9 @@ dissect_rpc_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
|
|||
pinfo->gssapi_encrypted_tvb=NULL;
|
||||
pinfo->gssapi_decrypted_tvb=NULL;
|
||||
if (flavor == FLAVOR_GSSAPI && gss_proc == RPCSEC_GSS_DATA && gss_svc == RPCSEC_GSS_SVC_PRIVACY) {
|
||||
proto_item *gss_item;
|
||||
proto_tree *gss_tree;
|
||||
|
||||
gss_item = proto_tree_add_text(tree, tvb, offset, -1, "GSS-Wrap");
|
||||
gss_tree = proto_item_add_subtree(gss_item, ett_gss_wrap);
|
||||
gss_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_gss_wrap, NULL, "GSS-Wrap");
|
||||
|
||||
offset = dissect_rpc_authgss_priv_data(tvb, gss_tree, offset, pinfo);
|
||||
if (pinfo->gssapi_decrypted_tvb) {
|
||||
|
@ -2959,18 +2926,16 @@ rpc_fragment_equal(gconstpointer k1, gconstpointer k2)
|
|||
static void
|
||||
show_rpc_fragheader(tvbuff_t *tvb, proto_tree *tree, guint32 rpc_rm)
|
||||
{
|
||||
proto_item *hdr_item;
|
||||
proto_tree *hdr_tree;
|
||||
guint32 fraglen;
|
||||
|
||||
if (tree) {
|
||||
fraglen = rpc_rm & RPC_RM_FRAGLEN;
|
||||
|
||||
hdr_item = proto_tree_add_text(tree, tvb, 0, 4,
|
||||
"Fragment header: %s%u %s",
|
||||
hdr_tree = proto_tree_add_subtree_format(tree, tvb, 0, 4,
|
||||
ett_rpc_fraghdr, NULL, "Fragment header: %s%u %s",
|
||||
(rpc_rm & RPC_RM_LASTFRAG) ? "Last fragment, " : "",
|
||||
fraglen, plurality(fraglen, "byte", "bytes"));
|
||||
hdr_tree = proto_item_add_subtree(hdr_item, ett_rpc_fraghdr);
|
||||
|
||||
proto_tree_add_boolean(hdr_tree, hf_rpc_lastfrag, tvb, 0, 4,
|
||||
rpc_rm);
|
||||
|
|
|
@ -98,7 +98,6 @@ static void
|
|||
dissect_rpl_container(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
||||
{
|
||||
guint16 len, type, sublen, subtyp;
|
||||
proto_item *ti;
|
||||
proto_tree *rpl_container_tree;
|
||||
guint16 offset;
|
||||
gint ett_type;
|
||||
|
@ -136,13 +135,11 @@ dissect_rpl_container(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
if(subtyp == 0x4018) ett_type = ett_rpl_4018;
|
||||
if(subtyp == 0xc005) ett_type = ett_rpl_c005;
|
||||
if(subtyp == 0xc014) ett_type = ett_rpl_c014;
|
||||
ti = proto_tree_add_text(tree, tvb,
|
||||
offset, sublen, "%s",
|
||||
rpl_container_tree = proto_tree_add_subtree(tree, tvb,
|
||||
offset, sublen, ett_type, NULL,
|
||||
val_to_str_const(subtyp,
|
||||
rpl_type_vals,
|
||||
"Unknown Type"));
|
||||
rpl_container_tree = proto_item_add_subtree(ti,
|
||||
ett_type);
|
||||
length = tvb_length_remaining(tvb, offset);
|
||||
if (length > sublen)
|
||||
length = sublen;
|
||||
|
|
|
@ -268,10 +268,9 @@ rsip_parameter(tvbuff_t *tvb, proto_tree *rsip_tree, int off, int eoff)
|
|||
paramtype = tvb_get_guint8(tvb, off);
|
||||
paramlen = tvb_get_ntohs(tvb, off + 1);
|
||||
|
||||
pti = proto_tree_add_text(rsip_tree, tvb, off, 3 + paramlen,
|
||||
"%s",
|
||||
p_tree = proto_tree_add_subtree(rsip_tree, tvb, off, 3 + paramlen,
|
||||
ett_rsip_param, &pti,
|
||||
val_to_str(paramtype, param_type_vals, "Unknown (%d)"));
|
||||
p_tree = proto_item_add_subtree(pti, ett_rsip_param);
|
||||
|
||||
proto_tree_add_item(p_tree, hf_rsip_parameter_type, tvb,
|
||||
off, 1, ENC_BIG_ENDIAN);
|
||||
|
|
|
@ -670,7 +670,6 @@ static struct tlv_definition rsl_att_tlvdef;
|
|||
static int
|
||||
dissect_rsl_ie_ch_no(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *ie_tree;
|
||||
guint8 ie_id;
|
||||
|
||||
|
@ -680,9 +679,7 @@ dissect_rsl_ie_ch_no(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, in
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,2,"Channel number IE ");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_ch_no);
|
||||
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 2, ett_ie_ch_no, NULL, "Channel number IE ");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -716,7 +713,6 @@ static const value_string rsl_prio_vals[] = {
|
|||
static int
|
||||
dissect_rsl_ie_link_id(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *ie_tree;
|
||||
guint8 octet;
|
||||
guint8 ie_id;
|
||||
|
@ -727,8 +723,7 @@ dissect_rsl_ie_link_id(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,2, "Link Identifier IE ");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_link_id);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb,offset,2, ett_ie_link_id, NULL, "Link Identifier IE ");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -790,7 +785,6 @@ static const true_false_string rsl_a1_2_vals = {
|
|||
static int
|
||||
dissect_rsl_ie_act_type(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *ie_tree;
|
||||
guint8 ie_id;
|
||||
guint octet;
|
||||
|
@ -801,9 +795,7 @@ dissect_rsl_ie_act_type(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,2,"Activation Type IE ");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_act_type);
|
||||
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 2, ett_ie_act_type, NULL, "Activation Type IE ");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -875,7 +867,6 @@ static value_string_ext rsl_rlm_bs_power_vals_ext = VALUE_STRING_EXT_INIT(rsl_rl
|
|||
static int
|
||||
dissect_rsl_ie_bs_power(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *ie_tree;
|
||||
guint8 ie_id;
|
||||
|
||||
|
@ -885,8 +876,7 @@ dissect_rsl_ie_bs_power(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,2,"BS Power IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_bs_power);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 2, ett_ie_bs_power, NULL, "BS Power IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -925,8 +915,7 @@ dissect_rsl_ie_ch_id(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, in
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"Channel Identification IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_ch_id);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_ch_id, &ti, "Channel Identification IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -1043,8 +1032,7 @@ dissect_rsl_ie_ch_mode(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"Channel Mode IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_ch_mode);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_ch_mode, &ti, "Channel Mode IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -1140,8 +1128,7 @@ dissect_rsl_ie_enc_inf(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"Encryption information IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_enc_inf);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_enc_inf, &ti, "Encryption information IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -1167,7 +1154,6 @@ dissect_rsl_ie_enc_inf(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
|
|||
static int
|
||||
dissect_rsl_ie_frame_no(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *ie_tree;
|
||||
guint8 ie_id;
|
||||
|
||||
|
@ -1177,8 +1163,7 @@ dissect_rsl_ie_frame_no(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,3,"Frame Number IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_frame_no);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 3, ett_ie_frame_no, NULL, "Frame Number IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -1199,7 +1184,6 @@ dissect_rsl_ie_frame_no(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
|
|||
static int
|
||||
dissect_rsl_ie_ho_ref(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *ie_tree;
|
||||
guint8 ie_id;
|
||||
|
||||
|
@ -1209,8 +1193,7 @@ dissect_rsl_ie_ho_ref(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, i
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,2,"Handover reference IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_ho_ref);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 2, ett_ie_ho_ref, NULL, "Handover reference IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -1230,7 +1213,6 @@ dissect_rsl_ie_ho_ref(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, i
|
|||
static int
|
||||
dissect_rsl_ie_l1_inf(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *ie_tree;
|
||||
guint8 ie_id;
|
||||
|
||||
|
@ -1240,8 +1222,7 @@ dissect_rsl_ie_l1_inf(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, i
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset, 3,"L1 Information IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_l1_inf);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 3, ett_ie_l1_inf, NULL, "L1 Information IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -1290,8 +1271,7 @@ dissect_rsl_ie_L3_inf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int o
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"L3 Information IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_L3_inf);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_L3_inf, &ti, "L3 Information IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -1347,8 +1327,7 @@ dissect_rsl_ie_ms_id(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int of
|
|||
if (ie_id != RSL_IE_MS_ID)
|
||||
return offset;
|
||||
}
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"MS Identity IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_ms_id);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_ms_id, &ti, "MS Identity IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -1376,7 +1355,6 @@ static const true_false_string rsl_ms_fpc_epc_mode_vals = {
|
|||
static int
|
||||
dissect_rsl_ie_ms_pow(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *ie_tree;
|
||||
guint8 ie_id;
|
||||
|
||||
|
@ -1386,8 +1364,7 @@ dissect_rsl_ie_ms_pow(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, i
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset, 2,"MS Power IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_ms_pow);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 2, ett_ie_ms_pow, NULL, "MS Power IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -1409,7 +1386,6 @@ dissect_rsl_ie_ms_pow(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, i
|
|||
static int
|
||||
dissect_rsl_ie_paging_grp(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *ie_tree;
|
||||
guint8 ie_id;
|
||||
|
||||
|
@ -1418,8 +1394,7 @@ dissect_rsl_ie_paging_grp(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tre
|
|||
if (ie_id != RSL_IE_PAGING_GRP)
|
||||
return offset;
|
||||
}
|
||||
ti = proto_tree_add_text(tree, tvb,offset,2,"Paging Group IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_paging_grp);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 2, ett_ie_paging_grp, NULL, "Paging Group IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -1441,7 +1416,6 @@ dissect_rsl_ie_paging_grp(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tre
|
|||
static int
|
||||
dissect_rsl_ie_paging_load(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *ie_tree;
|
||||
guint8 ie_id;
|
||||
|
||||
|
@ -1450,8 +1424,7 @@ dissect_rsl_ie_paging_load(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tr
|
|||
if (ie_id != RSL_IE_PAGING_LOAD)
|
||||
return offset;
|
||||
}
|
||||
ti = proto_tree_add_text(tree, tvb,offset,3,"Paging Load IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_paging_load);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 3, ett_ie_paging_load, NULL, "Paging Load IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -1483,8 +1456,7 @@ dissect_rsl_ie_phy_ctx(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"Physical Context IE ");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_phy_ctx);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_phy_ctx, &ti, "Physical Context IE ");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -1512,7 +1484,6 @@ dissect_rsl_ie_phy_ctx(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
|
|||
static int
|
||||
dissect_rsl_ie_access_delay(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *ie_tree;
|
||||
guint8 ie_id;
|
||||
|
||||
|
@ -1522,8 +1493,7 @@ dissect_rsl_ie_access_delay(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *t
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,2,"Access Delay IE ");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_access_delay);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 2, ett_ie_access_delay, NULL, "Access Delay IE ");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -1552,8 +1522,7 @@ dissect_rsl_ie_rach_load(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"RACH Load IE ");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_rach_load);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_rach_load, &ti, "RACH Load IE ");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -1598,7 +1567,6 @@ dissect_rsl_ie_rach_load(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree
|
|||
static int
|
||||
dissect_rsl_ie_req_ref(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *ie_tree;
|
||||
guint8 ie_id;
|
||||
|
||||
|
@ -1608,8 +1576,7 @@ dissect_rsl_ie_req_ref(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,4,"Request Reference IE ");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_req_ref);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 4, ett_ie_req_ref, NULL, "Request Reference IE ");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -1636,7 +1603,6 @@ static const value_string rel_mode_vals[] = {
|
|||
static int
|
||||
dissect_rsl_ie_rel_mode(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *ie_tree;
|
||||
guint8 ie_id;
|
||||
|
||||
|
@ -1646,8 +1612,7 @@ dissect_rsl_ie_rel_mode(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,4,"Release Mode IE ");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_rel_mode);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 4, ett_ie_rel_mode, NULL, "Release Mode IE ");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -1701,8 +1666,7 @@ dissect_rsl_ie_resource_inf(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *t
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"Resource Information IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_resource_inf);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_resource_inf, &ti, "Resource Information IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -1755,8 +1719,7 @@ dissect_rsl_ie_rlm_cause(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"RLM Cause IE ");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_rlm_cause);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_rlm_cause, &ti, "RLM Cause IE ");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -1786,7 +1749,6 @@ dissect_rsl_ie_rlm_cause(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree
|
|||
static int
|
||||
dissect_rsl_ie_starting_time(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *ie_tree;
|
||||
guint8 ie_id;
|
||||
|
||||
|
@ -1796,8 +1758,7 @@ dissect_rsl_ie_starting_time(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,3,"Starting Time IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_staring_time);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 3, ett_ie_staring_time, NULL, "Starting Time IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -1818,7 +1779,6 @@ dissect_rsl_ie_starting_time(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *
|
|||
static int
|
||||
dissect_rsl_ie_timing_adv(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *ie_tree;
|
||||
guint8 ie_id;
|
||||
|
||||
|
@ -1828,8 +1788,7 @@ dissect_rsl_ie_timing_adv(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tre
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,2,"Timing Advance IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_timing_adv);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 2, ett_ie_timing_adv, NULL, "Timing Advance IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -1864,8 +1823,7 @@ dissect_rsl_ie_uplik_meas(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tre
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"Uplink Measurements IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_uplink_meas);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_uplink_meas, &ti, "Uplink Measurements IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -1938,8 +1896,7 @@ dissect_rsl_ie_cause(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, in
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"Cause IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_cause);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_cause, &ti, "Cause IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -1969,7 +1926,6 @@ dissect_rsl_ie_cause(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, in
|
|||
static int
|
||||
dissect_rsl_ie_meas_res_no(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *ie_tree;
|
||||
guint8 ie_id;
|
||||
|
||||
|
@ -1979,8 +1935,7 @@ dissect_rsl_ie_meas_res_no(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tr
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,2,"Measurement result number IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_meas_res_no);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 2, ett_ie_meas_res_no, NULL, "Measurement result number IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -1998,7 +1953,6 @@ dissect_rsl_ie_meas_res_no(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tr
|
|||
static int
|
||||
dissect_rsl_ie_message_id(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *ie_tree;
|
||||
guint8 ie_id;
|
||||
|
||||
|
@ -2008,8 +1962,7 @@ dissect_rsl_ie_message_id(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tre
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"Message Identifier IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_message_id);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_message_id, NULL, "Message Identifier IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -2055,7 +2008,6 @@ static int
|
|||
dissect_rsl_ie_sys_info_type(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset,
|
||||
gboolean is_mandatory, guint8 *sys_info_type)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *ie_tree;
|
||||
guint8 ie_id;
|
||||
|
||||
|
@ -2067,8 +2019,7 @@ dissect_rsl_ie_sys_info_type(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *
|
|||
}
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,2,"System Info Type IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_sys_info_type);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 2, ett_ie_sys_info_type, NULL, "System Info Type IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -2100,8 +2051,7 @@ dissect_rsl_ie_full_imm_ass_inf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"Full Immediate Assign Info IE ");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_full_imm_ass_inf);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_full_imm_ass_inf, &ti, "Full Immediate Assign Info IE ");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -2148,8 +2098,7 @@ dissect_rsl_ie_smscb_inf(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"SMSCB Information IE ");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_smscb_inf);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_smscb_inf, &ti, "SMSCB Information IE ");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -2178,7 +2127,6 @@ dissect_rsl_ie_smscb_inf(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree
|
|||
static int
|
||||
dissect_rsl_ie_ms_timing_offset(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *ie_tree;
|
||||
guint8 ie_id;
|
||||
|
||||
|
@ -2188,8 +2136,7 @@ dissect_rsl_ie_ms_timing_offset(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tre
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"MS Timing Offset IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_ms_timing_offset);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_ms_timing_offset, NULL, "MS Timing Offset IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -2225,8 +2172,7 @@ dissect_rsl_ie_err_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"Erroneous Message IE ");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_err_msg);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_err_msg, &ti, "Erroneous Message IE ");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -2262,8 +2208,7 @@ dissect_rsl_ie_full_bcch_inf(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"Full BCCH Information IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_full_bcch_inf);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_full_bcch_inf, &ti, "Full BCCH Information IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -2301,7 +2246,6 @@ static const value_string rsl_ch_needed_vals[] = {
|
|||
static int
|
||||
dissect_rsl_ie_ch_needed(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *ie_tree;
|
||||
guint8 ie_id;
|
||||
|
||||
|
@ -2312,8 +2256,7 @@ dissect_rsl_ie_ch_needed(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree
|
|||
}
|
||||
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"Channel Needed IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_ch_needed);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_ch_needed, NULL, "Channel Needed IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -2331,7 +2274,6 @@ dissect_rsl_ie_ch_needed(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree
|
|||
static int
|
||||
dissect_rsl_ie_cb_cmd_type(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *ie_tree;
|
||||
guint8 ie_id;
|
||||
|
||||
|
@ -2341,9 +2283,7 @@ dissect_rsl_ie_cb_cmd_type(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tr
|
|||
return offset;
|
||||
}
|
||||
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"CB Command type IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_cb_cmd_type);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_cb_cmd_type, NULL, "CB Command type IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -2374,8 +2314,7 @@ dissect_rsl_ie_smscb_mess(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tre
|
|||
if (ie_id != RSL_IE_SMSCB_MESS)
|
||||
return offset;
|
||||
}
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"SMSCB Message IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_smscb_mess);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_smscb_mess, &ti, "SMSCB Message IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -2411,7 +2350,7 @@ static const true_false_string rsl_cbch_load_type_vals = {
|
|||
static int
|
||||
dissect_rsl_ie_cbch_load_inf(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
|
||||
{
|
||||
proto_item *ti, *item;
|
||||
proto_item *item;
|
||||
proto_tree *ie_tree;
|
||||
guint8 ie_id;
|
||||
guint8 octet;
|
||||
|
@ -2422,9 +2361,7 @@ dissect_rsl_ie_cbch_load_inf(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *
|
|||
return offset;
|
||||
}
|
||||
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"CBCH Load Information IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_cbch_load_inf);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_cbch_load_inf, NULL, "CBCH Load Information IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -2459,7 +2396,6 @@ static const value_string rsl_ch_ind_vals[] = {
|
|||
static int
|
||||
dissect_rsl_ie_smscb_ch_ind(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *ie_tree;
|
||||
guint8 ie_id;
|
||||
|
||||
|
@ -2469,9 +2405,7 @@ dissect_rsl_ie_smscb_ch_ind(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *t
|
|||
return offset;
|
||||
}
|
||||
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"SMSCB Channel Indicator IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_smscb_ch_ind);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_smscb_ch_ind, NULL, "SMSCB Channel Indicator IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -2500,8 +2434,7 @@ dissect_rsl_ie_grp_call_ref(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
|
|||
if (ie_id != RSL_IE_GRP_CALL_REF)
|
||||
return offset;
|
||||
}
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"Group call reference IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_grp_call_ref);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_grp_call_ref, &ti, "Group call reference IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -2540,8 +2473,7 @@ dissect_rsl_ie_ch_desc(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
|
|||
if (ie_id != RSL_IE_CH_DESC)
|
||||
return offset;
|
||||
}
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"Channel description IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_ch_desc);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_ch_desc, &ti, "Channel description IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -2571,7 +2503,6 @@ dissect_rsl_ie_ch_desc(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
|
|||
static int
|
||||
dissect_rsl_ie_nch_drx(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *ie_tree;
|
||||
guint8 ie_id;
|
||||
|
||||
|
@ -2581,8 +2512,7 @@ dissect_rsl_ie_nch_drx(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,2,"NCH DRX information IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_nch_drx);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 2, ett_ie_nch_drx, NULL, "NCH DRX information IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -2608,7 +2538,6 @@ dissect_rsl_ie_nch_drx(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
|
|||
static int
|
||||
dissect_rsl_ie_cmd_ind(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *ie_tree;
|
||||
guint8 ie_id;
|
||||
guint8 octet;
|
||||
|
@ -2621,8 +2550,7 @@ dissect_rsl_ie_cmd_ind(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
|
|||
|
||||
|
||||
/* TODO Length wrong if extended */
|
||||
ti = proto_tree_add_text(tree, tvb,offset,2,"Command indicator IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_cmd_ind);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 2, ett_ie_cmd_ind, NULL, "Command indicator IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -2665,7 +2593,6 @@ static const value_string rsl_emlpp_prio_vals[] = {
|
|||
static int
|
||||
dissect_rsl_ie_emlpp_prio(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *ie_tree;
|
||||
guint8 ie_id;
|
||||
|
||||
|
@ -2675,8 +2602,7 @@ dissect_rsl_ie_emlpp_prio(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tre
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,2,"eMLPP Priority IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_emlpp_prio);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 2, ett_ie_emlpp_prio, NULL, "eMLPP Priority IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -2699,7 +2625,6 @@ dissect_rsl_ie_emlpp_prio(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tre
|
|||
static int
|
||||
dissect_rsl_ie_uic(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *ie_tree;
|
||||
guint8 ie_id;
|
||||
|
||||
|
@ -2709,8 +2634,7 @@ dissect_rsl_ie_uic(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"UIC IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_uic);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_uic, NULL, "UIC IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -2732,7 +2656,6 @@ dissect_rsl_ie_uic(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int
|
|||
static int
|
||||
dissect_rsl_ie_main_ch_ref(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *ie_tree;
|
||||
guint8 ie_id;
|
||||
|
||||
|
@ -2742,8 +2665,7 @@ dissect_rsl_ie_main_ch_ref(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tr
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"Main channel reference IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_main_ch_ref);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_main_ch_ref, NULL, "Main channel reference IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -2774,8 +2696,7 @@ dissect_rsl_ie_multirate_conf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
|
|||
if (ie_id != RSL_IE_MULTIRATE_CONF)
|
||||
return offset;
|
||||
}
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"MultiRate configuration IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_multirate_conf);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_multirate_conf, &ti, "MultiRate configuration IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -2803,7 +2724,6 @@ dissect_rsl_ie_multirate_conf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
|
|||
static int
|
||||
dissect_rsl_ie_multirate_cntrl(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *ie_tree;
|
||||
guint8 ie_id;
|
||||
|
||||
|
@ -2812,8 +2732,7 @@ dissect_rsl_ie_multirate_cntrl(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree
|
|||
if (ie_id != RSL_IE_MULTIRATE_CNTRL)
|
||||
return offset;
|
||||
}
|
||||
ti = proto_tree_add_text(tree, tvb,offset,2,"MultiRate Control IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_multirate_cntrl);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 2, ett_ie_multirate_cntrl, NULL, "MultiRate Control IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -2847,8 +2766,7 @@ dissect_rsl_ie_sup_codec_types(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree
|
|||
if (ie_id != RSL_IE_SUP_CODEC_TYPES)
|
||||
return offset;
|
||||
}
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"Supported Codec Types IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_sup_codec_types);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_sup_codec_types, &ti, "Supported Codec Types IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -2915,8 +2833,7 @@ dissect_rsl_ie_codec_conf(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tre
|
|||
if (ie_id != RSL_IE_CODEC_CONF)
|
||||
return offset;
|
||||
}
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"Codec Configuration IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_codec_conf);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_codec_conf, &ti, "Codec Configuration IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -2946,7 +2863,7 @@ static const value_string rsl_delay_ind_vals[] = {
|
|||
static int
|
||||
dissect_rsl_ie_rtd(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
|
||||
{
|
||||
proto_item *ti, *rtd_item;
|
||||
proto_item *rtd_item;
|
||||
proto_tree *ie_tree;
|
||||
guint8 ie_id;
|
||||
guint8 rtd;
|
||||
|
@ -2957,8 +2874,7 @@ dissect_rsl_ie_rtd(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"Round Trip Delay IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_rtd);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_rtd, NULL, "Round Trip Delay IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -2992,7 +2908,6 @@ static const true_false_string rsl_tfo_vals = {
|
|||
static int
|
||||
dissect_rsl_ie_tfo_status(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *ie_tree;
|
||||
guint8 ie_id;
|
||||
|
||||
|
@ -3002,8 +2917,7 @@ dissect_rsl_ie_tfo_status(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tre
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"TFO Status IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_tfo_status);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_tfo_status, NULL, "TFO Status IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -3032,8 +2946,7 @@ dissect_rsl_ie_llp_apdu(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"LLP APDU IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_llp_apdu);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_llp_apdu, &ti, "LLP APDU IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -3078,8 +2991,7 @@ dissect_rsl_ie_tfo_transp_cont(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree
|
|||
return offset;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb,offset,0,"TFO transparent container IE");
|
||||
ie_tree = proto_item_add_subtree(ti, ett_ie_tfo_transp_cont);
|
||||
ie_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_ie_tfo_transp_cont, &ti, "TFO transparent container IE");
|
||||
|
||||
/* Element identifier */
|
||||
proto_tree_add_item(ie_tree, hf_rsl_ie_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
|
|
@ -2410,7 +2410,7 @@ dissect_rsvp_ifid_tlv(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
guint16 tlv_type;
|
||||
int tlv_len;
|
||||
guint8 isis_len;
|
||||
const char *tlv_name;
|
||||
const char *tlv_name, *ip_str;
|
||||
proto_tree *rsvp_ifid_subtree=NULL, *ti2;
|
||||
|
||||
for (tlv_off = 0; tlv_off < length; ) {
|
||||
|
@ -2432,18 +2432,17 @@ dissect_rsvp_ifid_tlv(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
case 16: /* INCOMING_IPV4 */
|
||||
tlv_name = "Incoming ";
|
||||
ifid_ipv4:
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
ip_str = tvb_ip_to_str(tvb, offset+tlv_off+4);
|
||||
rsvp_ifid_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb,
|
||||
offset+tlv_off, tlv_len,
|
||||
"%sIPv4 TLV - %s", tlv_name,
|
||||
tvb_ip_to_str(tvb, offset+tlv_off+4));
|
||||
subtree_type, NULL, "%sIPv4 TLV - %s", tlv_name,
|
||||
ip_str);
|
||||
|
||||
rsvp_ifid_subtree = proto_item_add_subtree(ti2, subtree_type);
|
||||
proto_tree_add_text(rsvp_ifid_subtree, tvb, offset+tlv_off, 2,
|
||||
"Type: %d (%sIPv4)", tlv_type, tlv_name);
|
||||
proto_tree_add_item(rsvp_ifid_subtree, hf_rsvp_ifid_tlv_length, tvb, offset+tlv_off+2, 2, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(rsvp_ifid_subtree, hf_rsvp_ifid_tlv_ipv4_address, tvb, offset+tlv_off+4, 4, ENC_BIG_ENDIAN);
|
||||
proto_item_append_text(ti, "%sIPv4: %s. ", tlv_name,
|
||||
tvb_ip_to_str(tvb, offset+tlv_off+4));
|
||||
proto_item_append_text(ti, "%sIPv4: %s. ", tlv_name, ip_str);
|
||||
break;
|
||||
|
||||
case 2: /* IPv6 */
|
||||
|
@ -2455,18 +2454,16 @@ dissect_rsvp_ifid_tlv(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
case 17: /* INCOMING_IPV6 */
|
||||
tlv_name = "Incoming ";
|
||||
ifid_ipv6:
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
ip_str = tvb_ip6_to_str(tvb, offset+tlv_off+4);
|
||||
rsvp_ifid_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb,
|
||||
offset+tlv_off, tlv_len,
|
||||
"%sIPv6 TLV - %s", tlv_name,
|
||||
tvb_ip6_to_str(tvb, offset+tlv_off+4));
|
||||
subtree_type, NULL, "%sIPv6 TLV - %s", tlv_name, ip_str);
|
||||
|
||||
rsvp_ifid_subtree = proto_item_add_subtree(ti2, subtree_type);
|
||||
proto_tree_add_text(rsvp_ifid_subtree, tvb, offset+tlv_off, 2,
|
||||
"Type: %d (%sIPv6)", tlv_type, tlv_name);
|
||||
proto_tree_add_item(rsvp_ifid_subtree, hf_rsvp_ifid_tlv_length, tvb, offset+tlv_off+2, 2, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(rsvp_ifid_subtree, hf_rsvp_ifid_tlv_ipv6_address, tvb, offset+tlv_off+4, 16, ENC_NA);
|
||||
proto_item_append_text(ti, "%sIPv6: %s. ", tlv_name,
|
||||
tvb_ip6_to_str(tvb, offset+tlv_off+4));
|
||||
proto_item_append_text(ti, "%sIPv6: %s. ", tlv_name, ip_str);
|
||||
break;
|
||||
|
||||
case 3: /* IF_INDEX */
|
||||
|
@ -2481,20 +2478,19 @@ dissect_rsvp_ifid_tlv(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
case 18: /* INCOMING_IF_INDEX */
|
||||
tlv_name = " Incoming";
|
||||
ifid_ifindex:
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
ip_str = tvb_ip_to_str(tvb, offset+tlv_off+4);
|
||||
rsvp_ifid_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb,
|
||||
offset+tlv_off, tlv_len,
|
||||
"Interface-Index%s TLV - %s, %d",
|
||||
subtree_type, NULL, "Interface-Index%s TLV - %s, %d",
|
||||
tlv_name,
|
||||
tvb_ip_to_str(tvb, offset+tlv_off+4),
|
||||
ip_str,
|
||||
tvb_get_ntohl(tvb, offset+tlv_off+8));
|
||||
rsvp_ifid_subtree = proto_item_add_subtree(ti2, subtree_type);
|
||||
proto_tree_add_text(rsvp_ifid_subtree, tvb, offset+tlv_off, 2,
|
||||
"Type: %d (Interface Index%s)", tlv_type, tlv_name);
|
||||
proto_tree_add_item(rsvp_ifid_subtree, hf_rsvp_ifid_tlv_length, tvb, offset+tlv_off+2, 2, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(rsvp_ifid_subtree, hf_rsvp_ifid_tlv_ipv4_address, tvb, offset+tlv_off+4, 4, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(rsvp_ifid_subtree, hf_rsvp_ifid_tlvinterface_id, tvb, offset+tlv_off+8, 4, ENC_BIG_ENDIAN);
|
||||
proto_item_append_text(ti, "Data If-Index%s: %s, %d. ", tlv_name,
|
||||
tvb_ip_to_str(tvb, offset+tlv_off+4),
|
||||
proto_item_append_text(ti, "Data If-Index%s: %s, %d. ", tlv_name, ip_str,
|
||||
tvb_get_ntohl(tvb, offset+tlv_off+8));
|
||||
break;
|
||||
|
||||
|
@ -2510,11 +2506,10 @@ dissect_rsvp_ifid_tlv(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
case 20: /* INCOMING_UP_LABEL */
|
||||
tlv_name = "Incoming-Upstream";
|
||||
ifid_label:
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
rsvp_ifid_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb,
|
||||
offset+tlv_off, tlv_len,
|
||||
"%s-Label TLV - %u", tlv_name,
|
||||
subtree_type, NULL, "%s-Label TLV - %u", tlv_name,
|
||||
tvb_get_ntohl(tvb, offset+tlv_off+4));
|
||||
rsvp_ifid_subtree = proto_item_add_subtree(ti2, subtree_type);
|
||||
proto_tree_add_text(rsvp_ifid_subtree, tvb, offset+tlv_off, 2,
|
||||
"Type: %d (%s-Label)", tlv_type, tlv_name);
|
||||
proto_tree_add_item(rsvp_ifid_subtree, hf_rsvp_ifid_tlv_length, tvb, offset+tlv_off+2, 2, ENC_BIG_ENDIAN);
|
||||
|
@ -2530,17 +2525,16 @@ dissect_rsvp_ifid_tlv(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
case 21: /* REPORTING_NODE_ID */
|
||||
tlv_name = "Reporting-";
|
||||
ifid_nodeid:
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
ip_str = tvb_ip_to_str(tvb, offset+tlv_off+4);
|
||||
rsvp_ifid_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb,
|
||||
offset+tlv_off, tlv_len,
|
||||
"%sNode-ID TLV - %s", tlv_name,
|
||||
tvb_ip_to_str(tvb, offset+tlv_off+4));
|
||||
rsvp_ifid_subtree = proto_item_add_subtree(ti2, subtree_type);
|
||||
subtree_type, NULL, "%sNode-ID TLV - %s", tlv_name,
|
||||
ip_str);
|
||||
proto_tree_add_text(rsvp_ifid_subtree, tvb, offset+tlv_off, 2,
|
||||
"Type: %d (%sNode-ID)", tlv_type, tlv_name);
|
||||
proto_tree_add_item(rsvp_ifid_subtree, hf_rsvp_ifid_tlv_length, tvb, offset+tlv_off+2, 2, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(rsvp_ifid_subtree, hf_rsvp_ifid_tlv_node_id, tvb, offset+tlv_off+4, 4, ENC_BIG_ENDIAN);
|
||||
proto_item_append_text(ti, "%sNode-ID: %s. ", tlv_name,
|
||||
tvb_ip_to_str(tvb, offset+tlv_off+4));
|
||||
proto_item_append_text(ti, "%sNode-ID: %s. ", tlv_name, ip_str);
|
||||
break;
|
||||
|
||||
case 9: /* OSPF_AREA */
|
||||
|
@ -2549,11 +2543,10 @@ dissect_rsvp_ifid_tlv(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
case 22: /* REPORTING_OSPF_AREA */
|
||||
tlv_name = "Reporting-";
|
||||
ifid_ospf:
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
rsvp_ifid_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb,
|
||||
offset+tlv_off, tlv_len,
|
||||
"%sOSPF-Area TLV - %u", tlv_name,
|
||||
subtree_type, NULL, "%sOSPF-Area TLV - %u", tlv_name,
|
||||
tvb_get_ntohl(tvb, offset+tlv_off+4));
|
||||
rsvp_ifid_subtree = proto_item_add_subtree(ti2, subtree_type);
|
||||
proto_tree_add_text(rsvp_ifid_subtree, tvb, offset+tlv_off, 2,
|
||||
"Type: %d (%sOSPF-Area)", tlv_type, tlv_name);
|
||||
proto_tree_add_item(rsvp_ifid_subtree, hf_rsvp_ifid_tlv_length, tvb, offset+tlv_off+2, 2, ENC_BIG_ENDIAN);
|
||||
|
@ -2575,20 +2568,17 @@ dissect_rsvp_ifid_tlv(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
"%sISIS-Area TLV - Invalid Length field", tlv_name);
|
||||
break;
|
||||
}
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
ip_str = print_nsap_net(tvb_get_ptr(tvb, offset+tlv_off+5, isis_len), isis_len);
|
||||
rsvp_ifid_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb,
|
||||
offset+tlv_off, tlv_len,
|
||||
"%sISIS-Area TLV - %s", tlv_name,
|
||||
print_nsap_net(tvb_get_ptr(tvb, offset+tlv_off+5, isis_len),
|
||||
isis_len));
|
||||
rsvp_ifid_subtree = proto_item_add_subtree(ti2, subtree_type);
|
||||
subtree_type, NULL, "%sISIS-Area TLV - %s", tlv_name,
|
||||
ip_str);
|
||||
proto_tree_add_text(rsvp_ifid_subtree, tvb, offset+tlv_off, 2,
|
||||
"Type: %d (%sISIS-Area)", tlv_type, tlv_name);
|
||||
proto_tree_add_item(rsvp_ifid_subtree, hf_rsvp_ifid_tlv_length, tvb, offset+tlv_off+2, 2, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_text(rsvp_ifid_subtree, tvb, offset+tlv_off+4, 4,
|
||||
"IS-IS Area Identifier: %s",
|
||||
print_nsap_net(tvb_get_ptr(tvb, offset+tlv_off+5, isis_len), isis_len));
|
||||
proto_item_append_text(ti, "%sISIS-Area: %s. ", tlv_name,
|
||||
print_nsap_net(tvb_get_ptr(tvb, offset+tlv_off+5, isis_len), isis_len));
|
||||
"IS-IS Area Identifier: %s", ip_str);
|
||||
proto_item_append_text(ti, "%sISIS-Area: %s. ", tlv_name, ip_str);
|
||||
break;
|
||||
|
||||
case 11: /* AUTONOMOUS_SYSTEM */
|
||||
|
@ -2597,11 +2587,10 @@ dissect_rsvp_ifid_tlv(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
case 24: /* REPORTING_AUTONOMOUS_SYSTEM */
|
||||
tlv_name = "Reporting-";
|
||||
ifid_as:
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
rsvp_ifid_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb,
|
||||
offset+tlv_off, tlv_len,
|
||||
"%sAS TLV - %u", tlv_name,
|
||||
subtree_type, NULL, "%sAS TLV - %u", tlv_name,
|
||||
tvb_get_ntohl(tvb, offset+tlv_off+4));
|
||||
rsvp_ifid_subtree = proto_item_add_subtree(ti2, subtree_type);
|
||||
proto_tree_add_text(rsvp_ifid_subtree, tvb, offset+tlv_off, 2,
|
||||
"Type: %d (%sAS)", tlv_type, tlv_name);
|
||||
proto_tree_add_item(rsvp_ifid_subtree, hf_rsvp_ifid_tlv_length, tvb, offset+tlv_off+2, 2, ENC_BIG_ENDIAN);
|
||||
|
@ -2616,10 +2605,9 @@ dissect_rsvp_ifid_tlv(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
case 27: /* LINK_EXCLUSIONS */
|
||||
tlv_name = "Link";
|
||||
ifid_ex:
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
rsvp_ifid_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb,
|
||||
offset+tlv_off, tlv_len,
|
||||
"%s-Exclusions TLV - ", tlv_name);
|
||||
rsvp_ifid_subtree = proto_item_add_subtree(ti2, subtree_type);
|
||||
subtree_type, &ti2, "%s-Exclusions TLV - ", tlv_name);
|
||||
proto_tree_add_text(rsvp_ifid_subtree, tvb, offset+tlv_off, 2,
|
||||
"Type: %d (%s-Exclusions)", tlv_type, tlv_name);
|
||||
proto_tree_add_item(rsvp_ifid_subtree, hf_rsvp_ifid_tlv_length, tvb, offset+tlv_off+2, 2, ENC_BIG_ENDIAN);
|
||||
|
@ -2628,14 +2616,12 @@ dissect_rsvp_ifid_tlv(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
break;
|
||||
case 516:
|
||||
/* FF: ERROR_STRING TLV, RFC 4783 */
|
||||
ti2 =
|
||||
proto_tree_add_text(rsvp_object_tree,
|
||||
rsvp_ifid_subtree = proto_tree_add_subtree_format(rsvp_object_tree,
|
||||
tvb, offset + tlv_off,
|
||||
tlv_len,
|
||||
"ERROR_STRING TLV - %s",
|
||||
subtree_type, NULL, "ERROR_STRING TLV - %s",
|
||||
tvb_format_text(tvb, offset + tlv_off + 4,
|
||||
tlv_len - 4));
|
||||
rsvp_ifid_subtree = proto_item_add_subtree(ti2, subtree_type);
|
||||
proto_tree_add_text(rsvp_ifid_subtree, tvb, offset + tlv_off, 2,
|
||||
"Type: 516 (ERROR_STRING)");
|
||||
proto_tree_add_item(rsvp_ifid_subtree, hf_rsvp_ifid_tlv_length, tvb, offset + tlv_off + 2, 2, ENC_BIG_ENDIAN);
|
||||
|
@ -2644,11 +2630,10 @@ dissect_rsvp_ifid_tlv(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
|
||||
default:
|
||||
/* FF: not yet known TLVs are displayed as raw data */
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree,
|
||||
rsvp_ifid_subtree = proto_tree_add_subtree_format(rsvp_object_tree,
|
||||
tvb, offset + tlv_off,
|
||||
tlv_len,
|
||||
"Unknown TLV (%u)", tlv_type);
|
||||
rsvp_ifid_subtree = proto_item_add_subtree(ti2, subtree_type);
|
||||
subtree_type, NULL, "Unknown TLV (%u)", tlv_type);
|
||||
proto_tree_add_text(rsvp_ifid_subtree, tvb, offset + tlv_off, 2,
|
||||
"Type: %u (Unknown)", tlv_type);
|
||||
proto_tree_add_item(rsvp_ifid_subtree, hf_rsvp_ifid_tlv_length, tvb, offset + tlv_off + 2, 2, ENC_BIG_ENDIAN);
|
||||
|
@ -3125,7 +3110,7 @@ dissect_rsvp_eth_tspec_tlv(proto_item *ti, proto_tree *rsvp_object_tree,
|
|||
guint16 tlv_type;
|
||||
int tlv_len;
|
||||
guint8 profile;
|
||||
proto_tree *rsvp_ethspec_subtree, *ethspec_profile_subtree, *ti2, *ti3;
|
||||
proto_tree *rsvp_ethspec_subtree, *ethspec_profile_subtree, *ti3;
|
||||
|
||||
for (tlv_off = 0; tlv_off < tlv_length; ) {
|
||||
tlv_type = tvb_get_ntohs(tvb, offset+tlv_off);
|
||||
|
@ -3140,10 +3125,9 @@ dissect_rsvp_eth_tspec_tlv(proto_item *ti, proto_tree *rsvp_object_tree,
|
|||
case 0:
|
||||
case 1:
|
||||
case 255:
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
rsvp_ethspec_subtree = proto_tree_add_subtree(rsvp_object_tree, tvb,
|
||||
offset+tlv_off, tlv_len,
|
||||
"RESERVED (RFC6003)");
|
||||
rsvp_ethspec_subtree = proto_item_add_subtree(ti2, subtree_type);
|
||||
subtree_type, NULL, "RESERVED (RFC6003)");
|
||||
proto_tree_add_text(rsvp_ethspec_subtree, tvb, offset+tlv_off, 2,
|
||||
"Type: %u (RESERVED)", tlv_type);
|
||||
proto_tree_add_item(rsvp_ethspec_subtree, hf_rsvp_eth_tspec_length, tvb, offset+tlv_off+2, 2, ENC_BIG_ENDIAN);
|
||||
|
@ -3151,15 +3135,14 @@ dissect_rsvp_eth_tspec_tlv(proto_item *ti, proto_tree *rsvp_object_tree,
|
|||
|
||||
case 2:
|
||||
case 129: /* OIF demo 2009 */
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
offset+tlv_off, tlv_len,
|
||||
rsvp_ethspec_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb,
|
||||
offset+tlv_off, tlv_len, subtree_type, NULL,
|
||||
"Ethernet Bandwidth Profile TLV: CIR=%.10g, CBS=%.10g, "
|
||||
"EIR=%.10g, EBS=%.10g",
|
||||
tvb_get_ntohieee_float(tvb, offset+tlv_off+8),
|
||||
tvb_get_ntohieee_float(tvb, offset+tlv_off+12),
|
||||
tvb_get_ntohieee_float(tvb, offset+tlv_off+16),
|
||||
tvb_get_ntohieee_float(tvb, offset+tlv_off+20));
|
||||
rsvp_ethspec_subtree = proto_item_add_subtree(ti2, subtree_type);
|
||||
proto_tree_add_text(rsvp_ethspec_subtree, tvb, offset+tlv_off, 2,
|
||||
"Type: %u - Ethernet Bandwidth Profile", tlv_type);
|
||||
proto_tree_add_item(rsvp_ethspec_subtree, hf_rsvp_eth_tspec_length, tvb, offset+tlv_off+2, 2, ENC_BIG_ENDIAN);
|
||||
|
@ -3256,10 +3239,9 @@ dissect_rsvp_tspec(proto_item *ti, proto_tree *rsvp_object_tree,
|
|||
switch(param_id) {
|
||||
case 127:
|
||||
/* Token Bucket */
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
offset2, param_len*4,
|
||||
tspec_tree = proto_tree_add_subtree(rsvp_object_tree, tvb,
|
||||
offset2, param_len*4, TREE(TT_TSPEC_SUBTREE), &ti2,
|
||||
"Token Bucket TSpec: ");
|
||||
tspec_tree = proto_item_add_subtree(ti2, TREE(TT_TSPEC_SUBTREE));
|
||||
|
||||
proto_tree_add_text(tspec_tree, tvb, offset2, 1,
|
||||
"Parameter %u - %s",
|
||||
|
@ -3295,10 +3277,9 @@ dissect_rsvp_tspec(proto_item *ti, proto_tree *rsvp_object_tree,
|
|||
|
||||
case 128:
|
||||
/* Null Service (RFC2997) */
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
offset2, param_len*4,
|
||||
tspec_tree = proto_tree_add_subtree(rsvp_object_tree, tvb,
|
||||
offset2, param_len*4, TREE(TT_TSPEC_SUBTREE), NULL,
|
||||
"Null Service TSpec: ");
|
||||
tspec_tree = proto_item_add_subtree(ti2, TREE(TT_TSPEC_SUBTREE));
|
||||
|
||||
proto_tree_add_text(tspec_tree, tvb, offset2, 1,
|
||||
"Parameter %u - %s",
|
||||
|
@ -3324,10 +3305,9 @@ dissect_rsvp_tspec(proto_item *ti, proto_tree *rsvp_object_tree,
|
|||
|
||||
case 126:
|
||||
/* Compression hint (RFC3006) */
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
offset2, param_len*4,
|
||||
tspec_tree = proto_tree_add_subtree(rsvp_object_tree, tvb,
|
||||
offset2, param_len*4, TREE(TT_TSPEC_SUBTREE), NULL,
|
||||
"Compression Hint: ");
|
||||
tspec_tree = proto_item_add_subtree(ti2, TREE(TT_TSPEC_SUBTREE));
|
||||
|
||||
proto_tree_add_text(tspec_tree, tvb, offset2, 1,
|
||||
"Parameter %u - %s",
|
||||
|
@ -3551,10 +3531,9 @@ dissect_rsvp_flowspec(proto_item *ti, proto_tree *rsvp_object_tree,
|
|||
switch(param_id) {
|
||||
case 127:
|
||||
/* Token Bucket */
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
flowspec_tree = proto_tree_add_subtree(rsvp_object_tree, tvb,
|
||||
offset2, param_len*4,
|
||||
"Token Bucket: ");
|
||||
flowspec_tree = proto_item_add_subtree(ti2, TREE(TT_FLOWSPEC_SUBTREE));
|
||||
TREE(TT_FLOWSPEC_SUBTREE), &ti2, "Token Bucket: ");
|
||||
|
||||
proto_tree_add_text(flowspec_tree, tvb, offset2, 1,
|
||||
"Parameter %u - %s",
|
||||
|
@ -3590,10 +3569,9 @@ dissect_rsvp_flowspec(proto_item *ti, proto_tree *rsvp_object_tree,
|
|||
|
||||
case 130:
|
||||
/* Guaranteed-rate RSpec */
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
offset2, param_len*4,
|
||||
flowspec_tree = proto_tree_add_subtree(rsvp_object_tree, tvb,
|
||||
offset2, param_len*4, TREE(TT_FLOWSPEC_SUBTREE), NULL,
|
||||
"Guaranteed-Rate RSpec: ");
|
||||
flowspec_tree = proto_item_add_subtree(ti2, TREE(TT_FLOWSPEC_SUBTREE));
|
||||
proto_tree_add_text(flowspec_tree, tvb, offset2, 1,
|
||||
"Parameter %u - %s",
|
||||
param_id,
|
||||
|
@ -3619,10 +3597,9 @@ dissect_rsvp_flowspec(proto_item *ti, proto_tree *rsvp_object_tree,
|
|||
|
||||
case 128:
|
||||
/* Null Service (RFC2997) */
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
offset2, param_len*4,
|
||||
flowspec_tree = proto_tree_add_subtree(rsvp_object_tree, tvb,
|
||||
offset2, param_len*4, TREE(TT_FLOWSPEC_SUBTREE), NULL,
|
||||
"Null Service Flowspec: ");
|
||||
flowspec_tree = proto_item_add_subtree(ti2, TREE(TT_FLOWSPEC_SUBTREE));
|
||||
|
||||
proto_tree_add_text(flowspec_tree, tvb, offset2, 1,
|
||||
"Parameter %u - %s",
|
||||
|
@ -3771,7 +3748,7 @@ dissect_rsvp_flowspec(proto_item *ti, proto_tree *rsvp_object_tree,
|
|||
* ADSPEC
|
||||
*------------------------------------------------------------------------------*/
|
||||
static void
|
||||
dissect_rsvp_adspec(proto_item *ti, proto_tree *rsvp_object_tree,
|
||||
dissect_rsvp_adspec(proto_item *ti _U_, proto_tree *rsvp_object_tree,
|
||||
tvbuff_t *tvb,
|
||||
int offset, int obj_length,
|
||||
int rsvp_class _U_, int type)
|
||||
|
@ -3799,11 +3776,9 @@ dissect_rsvp_adspec(proto_item *ti, proto_tree *rsvp_object_tree,
|
|||
str = val_to_str_ext_const(service_num, &intsrv_services_str_ext, "Unknown");
|
||||
break_bit = tvb_get_guint8(tvb, offset2+1);
|
||||
length = tvb_get_ntohs(tvb, offset2+2);
|
||||
ti = proto_tree_add_text(rsvp_object_tree, tvb, offset2,
|
||||
(length+1)*4, "%s",
|
||||
str);
|
||||
adspec_tree = proto_item_add_subtree(ti,
|
||||
TREE(TT_ADSPEC_SUBTREE));
|
||||
adspec_tree = proto_tree_add_subtree(rsvp_object_tree, tvb, offset2,
|
||||
(length+1)*4, TREE(TT_ADSPEC_SUBTREE), NULL, str);
|
||||
|
||||
proto_tree_add_item(adspec_tree, hf_rsvp_adspec_service_header, tvb, offset2, 1, ENC_NA);
|
||||
proto_tree_add_text(adspec_tree, tvb, offset2+1, 1,
|
||||
(break_bit&0x80)?
|
||||
|
@ -4417,14 +4392,12 @@ dissect_rsvp_ero_rro_subobjects(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
switch(j) {
|
||||
case 1: /* IPv4 */
|
||||
k = tvb_get_guint8(tvb, offset+l) & 0x80;
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
rsvp_ro_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb,
|
||||
offset+l, 8,
|
||||
"IPv4 Subobject - %s%s",
|
||||
tree_type, NULL, "IPv4 Subobject - %s%s",
|
||||
tvb_ip_to_str(tvb, offset+l+2),
|
||||
rsvp_class == RSVP_CLASS_EXPLICIT_ROUTE ?
|
||||
(k ? ", Loose" : ", Strict") : "");
|
||||
rsvp_ro_subtree =
|
||||
proto_item_add_subtree(ti2, tree_type);
|
||||
if (rsvp_class == RSVP_CLASS_EXPLICIT_ROUTE)
|
||||
proto_tree_add_text(rsvp_ro_subtree, tvb, offset+l, 1,
|
||||
k ? "Loose Hop " : "Strict Hop");
|
||||
|
@ -4466,11 +4439,9 @@ dissect_rsvp_ero_rro_subobjects(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
break;
|
||||
|
||||
case 2: /* IPv6 */
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
offset+l, 20,
|
||||
rsvp_ro_subtree = proto_tree_add_subtree(rsvp_object_tree, tvb,
|
||||
offset+l, 20, tree_type, NULL,
|
||||
"IPv6 Subobject");
|
||||
rsvp_ro_subtree =
|
||||
proto_item_add_subtree(ti2, tree_type);
|
||||
k = tvb_get_guint8(tvb, offset+l) & 0x80;
|
||||
if (rsvp_class == RSVP_CLASS_EXPLICIT_ROUTE)
|
||||
proto_tree_add_text(rsvp_ro_subtree, tvb, offset+l, 1,
|
||||
|
@ -4514,14 +4485,12 @@ dissect_rsvp_ero_rro_subobjects(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
|
||||
case 3: /* Label RFC 3477 */
|
||||
k = tvb_get_guint8(tvb, offset+l) & 0x80;
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
rsvp_ro_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb,
|
||||
offset+l, 8,
|
||||
"Label Subobject - %d, %s",
|
||||
tree_type, NULL, "Label Subobject - %d, %s",
|
||||
tvb_get_ntohl(tvb, offset+l+4),
|
||||
rsvp_class == RSVP_CLASS_EXPLICIT_ROUTE ?
|
||||
(k ? "Loose" : "Strict") : "");
|
||||
rsvp_ro_subtree =
|
||||
proto_item_add_subtree(ti2, tree_type);
|
||||
if (rsvp_class == RSVP_CLASS_EXPLICIT_ROUTE)
|
||||
proto_tree_add_text(rsvp_ro_subtree, tvb, offset+l, 1,
|
||||
k ? "Loose Hop " : "Strict Hop");
|
||||
|
@ -4549,15 +4518,13 @@ dissect_rsvp_ero_rro_subobjects(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
|
||||
case 4: /* Unnumbered Interface-ID RFC 3477, RFC 6107*/
|
||||
k = tvb_get_guint8(tvb, offset+l) & 0x80;
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
offset+l, 8,
|
||||
rsvp_ro_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb,
|
||||
offset+l, 8, tree_type, &ti2,
|
||||
"Unnumbered Interface-ID - %s, %d, %s",
|
||||
tvb_ip_to_str(tvb, offset+l+4),
|
||||
tvb_get_ntohl(tvb, offset+l+8),
|
||||
rsvp_class == RSVP_CLASS_EXPLICIT_ROUTE ?
|
||||
(k ? "Loose" : "Strict") : "");
|
||||
rsvp_ro_subtree =
|
||||
proto_item_add_subtree(ti2, tree_type);
|
||||
if (rsvp_class == RSVP_CLASS_EXPLICIT_ROUTE)
|
||||
proto_tree_add_text(rsvp_ro_subtree, tvb, offset+l, 1,
|
||||
k ? "Loose Hop " : "Strict Hop");
|
||||
|
@ -4589,12 +4556,10 @@ dissect_rsvp_ero_rro_subobjects(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
case 32: /* AS */
|
||||
if (rsvp_class == RSVP_CLASS_RECORD_ROUTE) goto defaultsub;
|
||||
k = tvb_get_ntohs(tvb, offset+l+2);
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
offset+l, 4,
|
||||
rsvp_ro_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb,
|
||||
offset+l, 4, tree_type, NULL,
|
||||
"Autonomous System %u",
|
||||
k);
|
||||
rsvp_ro_subtree =
|
||||
proto_item_add_subtree(ti2, tree_type);
|
||||
proto_tree_add_text(rsvp_ro_subtree, tvb, offset+l, 1,
|
||||
"Type: 32 (Autonomous System Number)");
|
||||
proto_tree_add_item(rsvp_ro_subtree, hf_rsvp_ero_rro_subobjects_length, tvb, offset+l+1, 1, ENC_NA);
|
||||
|
@ -4609,13 +4574,11 @@ dissect_rsvp_ero_rro_subobjects(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
case 64: /* PKSv4 - RFC5520 */
|
||||
if (rsvp_class == RSVP_CLASS_RECORD_ROUTE) goto defaultsub;
|
||||
k = tvb_get_ntohs(tvb, offset+l+2);
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
offset+l, 8,
|
||||
rsvp_ro_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb,
|
||||
offset+l, 8, tree_type, NULL,
|
||||
"Path Key subobject - %s, %u",
|
||||
tvb_ip_to_str(tvb, offset+l+4),
|
||||
k);
|
||||
rsvp_ro_subtree =
|
||||
proto_item_add_subtree(ti2, tree_type);
|
||||
proto_tree_add_text(rsvp_ro_subtree, tvb, offset+l, 1,
|
||||
"Type: 64 (Path Key with IPv4 PCE-ID)");
|
||||
proto_tree_add_item(rsvp_ro_subtree, hf_rsvp_ero_rro_subobjects_length, tvb, offset+l+1, 1, ENC_NA);
|
||||
|
@ -4629,13 +4592,11 @@ dissect_rsvp_ero_rro_subobjects(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
case 65: /* PKSv6 - RFC5520 */
|
||||
if (rsvp_class == RSVP_CLASS_RECORD_ROUTE) goto defaultsub;
|
||||
k = tvb_get_ntohs(tvb, offset+l+2);
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
offset+l, 8,
|
||||
rsvp_ro_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb,
|
||||
offset+l, 8, tree_type, NULL,
|
||||
"Path Key subobject - %s, %u",
|
||||
tvb_ip6_to_str(tvb, offset+l+4),
|
||||
k);
|
||||
rsvp_ro_subtree =
|
||||
proto_item_add_subtree(ti2, tree_type);
|
||||
proto_tree_add_text(rsvp_ro_subtree, tvb, offset+l, 1,
|
||||
"Type: 65 (Path Key with IPv6 PCE-ID)");
|
||||
proto_tree_add_item(rsvp_ro_subtree, hf_rsvp_ero_rro_subobjects_length, tvb, offset+l+1, 1, ENC_NA);
|
||||
|
@ -4686,11 +4647,9 @@ dissect_rsvp_ero_rro_subobjects(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
{
|
||||
guint8 private_so_len = tvb_get_guint8(tvb, offset+l+1);
|
||||
k = tvb_get_guint8(tvb, offset+l) & 0x80;
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb, offset+l,
|
||||
rsvp_ro_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb, offset+l,
|
||||
tvb_get_guint8(tvb, offset+l+1),
|
||||
"Private Subobject: %d", j);
|
||||
rsvp_ro_subtree =
|
||||
proto_item_add_subtree(ti2, tree_type);
|
||||
tree_type, NULL, "Private Subobject: %d", j);
|
||||
proto_tree_add_text(rsvp_ro_subtree, tvb, offset+l, 1,
|
||||
k ? "Loose Hop " : "Strict Hop");
|
||||
proto_tree_add_text(rsvp_ro_subtree, tvb, offset+l, 1,
|
||||
|
@ -4710,12 +4669,10 @@ dissect_rsvp_ero_rro_subobjects(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
default: /* Unknown subobject */
|
||||
defaultsub:
|
||||
k = tvb_get_guint8(tvb, offset+l) & 0x80;
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
rsvp_ro_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb,
|
||||
offset+l,
|
||||
tvb_get_guint8(tvb, offset+l+1),
|
||||
"Unknown subobject: %d", j);
|
||||
rsvp_ro_subtree =
|
||||
proto_item_add_subtree(ti2, tree_type);
|
||||
tree_type, NULL, "Unknown subobject: %d", j);
|
||||
proto_tree_add_text(rsvp_ro_subtree, tvb, offset+l, 1,
|
||||
k ? "Loose Hop " : "Strict Hop");
|
||||
proto_tree_add_text(rsvp_ro_subtree, tvb, offset+l, 1,
|
||||
|
@ -4750,7 +4707,7 @@ dissect_rsvp_xro_subobjects(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
int rsvp_class)
|
||||
{
|
||||
int i, lbit, type, l;
|
||||
proto_tree *ti2, *rsvp_xro_subtree;
|
||||
proto_tree *rsvp_xro_subtree;
|
||||
int tree_type;
|
||||
|
||||
switch (rsvp_class) {
|
||||
|
@ -4773,12 +4730,10 @@ dissect_rsvp_xro_subobjects(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
type = tvb_get_guint8(tvb, offset + l) & 0x7f;
|
||||
switch (type) {
|
||||
case 1: /* IPv4 */
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
offset + l, 8,
|
||||
rsvp_xro_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb,
|
||||
offset + l, 8, tree_type, NULL,
|
||||
"IPv4 Subobject - %s",
|
||||
tvb_ip_to_str(tvb, offset + l + 2));
|
||||
rsvp_xro_subtree =
|
||||
proto_item_add_subtree(ti2, tree_type);
|
||||
|
||||
proto_tree_add_item(rsvp_xro_subtree, hf_rsvp_xro_sobj_lbit,
|
||||
tvb, offset + l, 1, ENC_NA);
|
||||
|
@ -4800,12 +4755,10 @@ dissect_rsvp_xro_subobjects(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
break;
|
||||
|
||||
case 2: /* IPv6 */
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
offset + l, 20,
|
||||
rsvp_xro_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb,
|
||||
offset + l, 20, tree_type, NULL,
|
||||
"IPv6 Subobject - %s",
|
||||
tvb_ip6_to_str(tvb, offset + l + 2));
|
||||
rsvp_xro_subtree =
|
||||
proto_item_add_subtree(ti2, tree_type);
|
||||
|
||||
proto_tree_add_item(rsvp_xro_subtree, hf_rsvp_xro_sobj_lbit,
|
||||
tvb, offset + l, 1, ENC_NA);
|
||||
|
@ -4825,12 +4778,10 @@ dissect_rsvp_xro_subobjects(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
break;
|
||||
|
||||
case 34: /* SRLG */
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
offset + l, 8,
|
||||
rsvp_xro_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb,
|
||||
offset + l, 8, tree_type, NULL,
|
||||
"SRLG Subobject - %u",
|
||||
tvb_get_ntohl(tvb, offset + l + 2));
|
||||
rsvp_xro_subtree =
|
||||
proto_item_add_subtree(ti2, tree_type);
|
||||
|
||||
proto_tree_add_item(rsvp_xro_subtree, hf_rsvp_xro_sobj_lbit,
|
||||
tvb, offset + l, 1, ENC_NA);
|
||||
|
@ -4849,12 +4800,10 @@ dissect_rsvp_xro_subobjects(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
}
|
||||
break;
|
||||
default: /* Unknown subobject */
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
rsvp_xro_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb,
|
||||
offset + l,
|
||||
tvb_get_guint8(tvb, offset + l + 1),
|
||||
"Unknown subobject: %d", type);
|
||||
rsvp_xro_subtree =
|
||||
proto_item_add_subtree(ti2, tree_type);
|
||||
tree_type, NULL, "Unknown subobject: %d", type);
|
||||
|
||||
proto_tree_add_item(rsvp_xro_subtree, hf_rsvp_xro_sobj_lbit,
|
||||
tvb, offset + l, 1, ENC_NA);
|
||||
|
@ -5385,11 +5334,10 @@ dissect_rsvp_lsp_tunnel_if_id_tlv(proto_tree *rsvp_object_tree,
|
|||
}
|
||||
switch(tlv_type) {
|
||||
case 1:
|
||||
ti = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
offset+tlv_off, tlv_len,
|
||||
rsvp_lsp_tunnel_if_id_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb,
|
||||
offset+tlv_off, tlv_len, subtree_type, NULL,
|
||||
"Unnumbered component link identifier: %u",
|
||||
tvb_get_ntohl(tvb, offset+tlv_off+4));
|
||||
rsvp_lsp_tunnel_if_id_subtree = proto_item_add_subtree(ti, subtree_type);
|
||||
proto_tree_add_text(rsvp_lsp_tunnel_if_id_subtree, tvb, offset+tlv_off, 2,
|
||||
"Type: 1 (Unnumbered component link identifier)");
|
||||
proto_tree_add_item(rsvp_lsp_tunnel_if_id_subtree, hf_rsvp_lsp_tunnel_if_id_length, tvb, offset+tlv_off+2, 2, ENC_BIG_ENDIAN);
|
||||
|
@ -5397,11 +5345,10 @@ dissect_rsvp_lsp_tunnel_if_id_tlv(proto_tree *rsvp_object_tree,
|
|||
break;
|
||||
|
||||
case 2:
|
||||
ti = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
offset+tlv_off, tlv_len,
|
||||
rsvp_lsp_tunnel_if_id_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb,
|
||||
offset+tlv_off, tlv_len, subtree_type, NULL,
|
||||
"IPv4 component link identifier: %s",
|
||||
tvb_ip_to_str(tvb, offset+tlv_off+4));
|
||||
rsvp_lsp_tunnel_if_id_subtree = proto_item_add_subtree(ti, subtree_type);
|
||||
proto_tree_add_text(rsvp_lsp_tunnel_if_id_subtree, tvb, offset+tlv_off, 2,
|
||||
"Type: 2 (IPv4 component link identifier)");
|
||||
proto_tree_add_item(rsvp_lsp_tunnel_if_id_subtree, hf_rsvp_lsp_tunnel_if_id_length, tvb, offset+tlv_off+2, 2, ENC_BIG_ENDIAN);
|
||||
|
@ -5409,10 +5356,9 @@ dissect_rsvp_lsp_tunnel_if_id_tlv(proto_tree *rsvp_object_tree,
|
|||
break;
|
||||
|
||||
case 32769: /* oif-p0040.002.09 demo spec */
|
||||
ti = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
offset+tlv_off, tlv_len,
|
||||
rsvp_lsp_tunnel_if_id_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb,
|
||||
offset+tlv_off, tlv_len, subtree_type, &ti,
|
||||
"Targeted client layer: ");
|
||||
rsvp_lsp_tunnel_if_id_subtree = proto_item_add_subtree(ti, subtree_type);
|
||||
proto_tree_add_text(rsvp_lsp_tunnel_if_id_subtree, tvb, offset+tlv_off, 2,
|
||||
"Type: 32769 (Targeted client layer)");
|
||||
proto_tree_add_item(rsvp_lsp_tunnel_if_id_subtree, hf_rsvp_lsp_tunnel_if_id_length, tvb, offset+tlv_off+2, 2, ENC_BIG_ENDIAN);
|
||||
|
@ -5593,12 +5539,10 @@ dissect_rsvp_gen_uni(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
k = tvb_get_guint8(tvb, offset2+l+3);
|
||||
switch(k) {
|
||||
case 1:
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
offset2+l, 8,
|
||||
rsvp_gen_uni_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb,
|
||||
offset2+l, 8, TREE(TT_GEN_UNI_SUBOBJ), NULL,
|
||||
"%s IPv4 TNA: %s", c,
|
||||
tvb_ip_to_str(tvb, offset2+l+4));
|
||||
rsvp_gen_uni_subtree =
|
||||
proto_item_add_subtree(ti2, TREE(TT_GEN_UNI_SUBOBJ));
|
||||
proto_tree_add_text(rsvp_gen_uni_subtree, tvb, offset2+l+2, 1,
|
||||
"Class: %d (%s)", j, c);
|
||||
proto_tree_add_text(rsvp_gen_uni_subtree, tvb, offset2+l+3, 1,
|
||||
|
@ -5618,11 +5562,9 @@ dissect_rsvp_gen_uni(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
break;
|
||||
|
||||
case 2:
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
offset2+l, 20,
|
||||
rsvp_gen_uni_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb,
|
||||
offset2+l, 20, TREE(TT_GEN_UNI_SUBOBJ), NULL,
|
||||
"%s IPv6 TNA:", c);
|
||||
rsvp_gen_uni_subtree =
|
||||
proto_item_add_subtree(ti2, TREE(TT_GEN_UNI_SUBOBJ));
|
||||
proto_tree_add_text(rsvp_gen_uni_subtree, tvb, offset2+l+2, 1,
|
||||
"Class: %d (%s)", j, c);
|
||||
proto_tree_add_text(rsvp_gen_uni_subtree, tvb, offset2+l+3, 1,
|
||||
|
@ -5642,11 +5584,9 @@ dissect_rsvp_gen_uni(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
break;
|
||||
|
||||
case 3:
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
rsvp_gen_uni_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb,
|
||||
offset2+l, tvb_get_ntohs(tvb, offset2+l),
|
||||
"%s NSAP TNA: ", c);
|
||||
rsvp_gen_uni_subtree =
|
||||
proto_item_add_subtree(ti2, TREE(TT_GEN_UNI_SUBOBJ));
|
||||
TREE(TT_GEN_UNI_SUBOBJ), NULL, "%s NSAP TNA: ", c);
|
||||
nsap_len = tvb_get_guint8(tvb, offset2+l+4);
|
||||
proto_tree_add_text(rsvp_gen_uni_subtree, tvb, offset2+l+2, 1,
|
||||
"Class: %d (%s)", j, c);
|
||||
|
@ -5667,11 +5607,9 @@ dissect_rsvp_gen_uni(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
break;
|
||||
|
||||
default:
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
rsvp_gen_uni_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb,
|
||||
offset2+l, tvb_get_ntohs(tvb, offset2+l),
|
||||
"%s UNKNOWN TNA", c);
|
||||
rsvp_gen_uni_subtree =
|
||||
proto_item_add_subtree(ti2, TREE(TT_GEN_UNI_SUBOBJ));
|
||||
TREE(TT_GEN_UNI_SUBOBJ), NULL, "%s UNKNOWN TNA", c);
|
||||
proto_tree_add_text(rsvp_gen_uni_subtree, tvb, offset2+l+2, 1,
|
||||
"Class: %d (%s)", j, c);
|
||||
proto_tree_add_text(rsvp_gen_uni_subtree, tvb, offset2+l+3, 1,
|
||||
|
@ -5693,11 +5631,9 @@ dissect_rsvp_gen_uni(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
switch(k) {
|
||||
default:
|
||||
case 1:
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
rsvp_gen_uni_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb,
|
||||
offset2+l, tvb_get_ntohs(tvb, offset2+l),
|
||||
"Diversity Subobject");
|
||||
rsvp_gen_uni_subtree =
|
||||
proto_item_add_subtree(ti2, TREE(TT_GEN_UNI_SUBOBJ));
|
||||
TREE(TT_GEN_UNI_SUBOBJ), NULL, "Diversity Subobject");
|
||||
proto_tree_add_text(rsvp_gen_uni_subtree, tvb, offset2+l+2, 1,
|
||||
"Class: %d (Diversity)", j);
|
||||
proto_tree_add_text(rsvp_gen_uni_subtree, tvb, offset2+l+3, 1,
|
||||
|
@ -5711,10 +5647,8 @@ dissect_rsvp_gen_uni(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
s_len = tvb_get_ntohs(tvb, offset2+l+8);
|
||||
s_class = tvb_get_guint8(tvb, offset2+l+10);
|
||||
s_type = tvb_get_guint8(tvb, offset2+l+11);
|
||||
ti2 = proto_tree_add_text(rsvp_gen_uni_subtree, tvb, offset2+l+8,
|
||||
s_len, "Session");
|
||||
rsvp_session_subtree =
|
||||
proto_item_add_subtree(ti2, TREE(rsvp_class_to_tree_type(s_class)));
|
||||
rsvp_session_subtree = proto_tree_add_subtree(rsvp_gen_uni_subtree, tvb, offset2+l+8,
|
||||
s_len, TREE(rsvp_class_to_tree_type(s_class)), NULL, "Session");
|
||||
if (s_len < 4) {
|
||||
proto_tree_add_text(rsvp_object_tree, tvb, offset2+l+8, 2,
|
||||
"Length: %u (bogus, must be >= 4)", s_len);
|
||||
|
@ -5730,10 +5664,9 @@ dissect_rsvp_gen_uni(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
s_len = tvb_get_ntohs(tvb, offset3+l+8);
|
||||
s_class = tvb_get_guint8(tvb, offset3+l+10);
|
||||
s_type = tvb_get_guint8(tvb, offset3+l+11);
|
||||
ti2 = proto_tree_add_text(rsvp_gen_uni_subtree, tvb, offset3+l+8,
|
||||
s_len, "Template");
|
||||
rsvp_template_subtree =
|
||||
proto_item_add_subtree(ti2, TREE(rsvp_class_to_tree_type(s_class)));
|
||||
rsvp_template_subtree = proto_tree_add_subtree(rsvp_gen_uni_subtree, tvb, offset3+l+8,
|
||||
s_len, TREE(rsvp_class_to_tree_type(s_class)), NULL, "Template");
|
||||
|
||||
if (s_len < 4) {
|
||||
proto_tree_add_text(rsvp_object_tree, tvb, offset3+l+8, 2,
|
||||
"Length: %u (bogus, must be >= 4)", s_len);
|
||||
|
@ -5757,18 +5690,17 @@ dissect_rsvp_gen_uni(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
case 4: /* Egress Label */
|
||||
k = tvb_get_guint8(tvb, offset2+l+3);
|
||||
if (k == 1) /* Egress label sub-type */
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
offset2+l, sobj_len,
|
||||
rsvp_gen_uni_subtree = proto_tree_add_subtree(rsvp_object_tree, tvb,
|
||||
offset2+l, sobj_len, TREE(TT_GEN_UNI_SUBOBJ), &ti2,
|
||||
"Egress Label Subobject");
|
||||
else if (k == 2) /* SPC_label sub-type (see G.7713.2) */
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
offset2+l, sobj_len,
|
||||
rsvp_gen_uni_subtree = proto_tree_add_subtree(rsvp_object_tree, tvb,
|
||||
offset2+l, sobj_len, TREE(TT_GEN_UNI_SUBOBJ), &ti2,
|
||||
"SPC Label Subobject");
|
||||
else
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
offset2+l, sobj_len,
|
||||
rsvp_gen_uni_subtree = proto_tree_add_subtree(rsvp_object_tree, tvb,
|
||||
offset2+l, sobj_len, TREE(TT_GEN_UNI_SUBOBJ), &ti2,
|
||||
"Unknown Label Subobject");
|
||||
rsvp_gen_uni_subtree = proto_item_add_subtree(ti2, TREE(TT_GEN_UNI_SUBOBJ));
|
||||
proto_tree_add_text(rsvp_gen_uni_subtree, tvb, offset2+l+2, 1,
|
||||
"Class: %d (Egress/SPC Label)", j);
|
||||
proto_tree_add_text(rsvp_gen_uni_subtree, tvb, offset2+l+3, 1,
|
||||
|
@ -5804,11 +5736,9 @@ dissect_rsvp_gen_uni(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
switch(k) {
|
||||
default:
|
||||
case 1:
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
offset2+l, sobj_len,
|
||||
rsvp_gen_uni_subtree = proto_tree_add_subtree(rsvp_object_tree, tvb,
|
||||
offset2+l, sobj_len, TREE(TT_GEN_UNI_SUBOBJ), &ti2,
|
||||
"Service Level Subobject");
|
||||
rsvp_gen_uni_subtree =
|
||||
proto_item_add_subtree(ti2, TREE(TT_GEN_UNI_SUBOBJ));
|
||||
proto_tree_add_text(rsvp_gen_uni_subtree, tvb, offset2+l+2, 1,
|
||||
"Class: %d (Service Level)", j);
|
||||
proto_tree_add_text(rsvp_gen_uni_subtree, tvb, offset2+l+3, 1,
|
||||
|
@ -5826,12 +5756,10 @@ dissect_rsvp_gen_uni(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
break;
|
||||
|
||||
default: /* Unknown subobject */
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb,
|
||||
offset2+l, sobj_len,
|
||||
rsvp_gen_uni_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb,
|
||||
offset2+l, sobj_len, TREE(TT_GEN_UNI_SUBOBJ), NULL,
|
||||
"Unknown subobject: %u",
|
||||
j);
|
||||
rsvp_gen_uni_subtree =
|
||||
proto_item_add_subtree(ti2, TREE(TT_GEN_UNI_SUBOBJ));
|
||||
proto_tree_add_text(rsvp_gen_uni_subtree, tvb, offset2+l, 1,
|
||||
"Type: %u (Unknown)", j);
|
||||
proto_tree_add_text(rsvp_gen_uni_subtree, tvb, offset2+l+1, 1,
|
||||
|
@ -6142,8 +6070,7 @@ dissect_rsvp_3gpp_object(proto_tree *ti _U_, proto_tree *rsvp_object_tree,
|
|||
guint16 pkt_flt_len, item_len, pf_cont_len;
|
||||
guint8 pf_comp_type_id;
|
||||
|
||||
ti = proto_tree_add_text(rsvp_object_tree, tvb, offset, -1, "Flow Identifier Num %u",i+1);
|
||||
flow_tree = proto_item_add_subtree(ti, ett_treelist[TT_3GPP_OBJ_FLOW]);
|
||||
flow_tree = proto_tree_add_subtree_format(rsvp_object_tree, tvb, offset, -1, ett_treelist[TT_3GPP_OBJ_FLOW], &ti, "Flow Identifier Num %u",i+1);
|
||||
proto_tree_add_item(flow_tree, hf_rsvp_3gpp_obj_flow_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
offset++;
|
||||
item_len = 1;
|
||||
|
@ -6254,8 +6181,7 @@ dissect_rsvp_3gpp_object(proto_tree *ti _U_, proto_tree *rsvp_object_tree,
|
|||
pf_cont_len-=6;
|
||||
break;
|
||||
case 129: /* Type 2 Routing Header with Prefix Length */
|
||||
ti = proto_tree_add_text(flow_tree, tvb, offset, 17, "Type 2 Routing Header packet filter");
|
||||
t2_tree = proto_item_add_subtree(ti, ett_treelist[TT_3GPP_OBJ_T2]);
|
||||
t2_tree = proto_tree_add_subtree(flow_tree, tvb, offset, 17, ett_treelist[TT_3GPP_OBJ_T2], NULL, "Type 2 Routing Header packet filter");
|
||||
proto_tree_add_item(t2_tree, hf_rsvp_3gpp_obj_pf_ipv6, tvb, offset, 16, ENC_NA);
|
||||
offset+=16;
|
||||
proto_tree_add_item(t2_tree, hf_rsvp_3gpp_obj_pf_ipv6_prefix_length, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -6264,8 +6190,7 @@ dissect_rsvp_3gpp_object(proto_tree *ti _U_, proto_tree *rsvp_object_tree,
|
|||
pf_cont_len-=20;
|
||||
break;
|
||||
case 130: /* Home Address Option with Prefix Length */
|
||||
ti = proto_tree_add_text(flow_tree, tvb, offset, 17, "Home address Option packet filter");
|
||||
t2_tree = proto_item_add_subtree(ti, ett_treelist[TT_3GPP_OBJ_HO]);
|
||||
t2_tree = proto_tree_add_subtree(flow_tree, tvb, offset, 17, ett_treelist[TT_3GPP_OBJ_HO], NULL, "Home address Option packet filter");
|
||||
proto_tree_add_item(t2_tree, hf_rsvp_3gpp_obj_pf_ipv6, tvb, offset, 16, ENC_NA);
|
||||
offset+=16;
|
||||
proto_tree_add_item(t2_tree, hf_rsvp_3gpp_obj_pf_ipv6_prefix_length, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -6315,8 +6240,8 @@ dissect_rsvp_3gpp_object(proto_tree *ti _U_, proto_tree *rsvp_object_tree,
|
|||
|
||||
num++;
|
||||
|
||||
ti = proto_tree_add_text(rsvp_object_tree, tvb, offset, -1, "QOS Flow Identifier Num %u", num);
|
||||
qos_tree = proto_item_add_subtree(ti, ett_treelist[TT_3GPP_OBJ_QOS]);
|
||||
qos_tree = proto_tree_add_subtree_format(rsvp_object_tree, tvb, offset, -1,
|
||||
ett_treelist[TT_3GPP_OBJ_QOS], NULL, "QOS Flow Identifier Num %u", num);
|
||||
|
||||
/* Flow Identifier */
|
||||
proto_tree_add_item(qos_tree, hf_rsvp_3gpp_obj_flow_id, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -6340,10 +6265,8 @@ dissect_rsvp_3gpp_object(proto_tree *ti _U_, proto_tree *rsvp_object_tree,
|
|||
bit_offset = (offset<<3)+7;
|
||||
for (j = 0; j < num_qos_att_set; j++) {
|
||||
qos_attribute_set_len = tvb_get_bits8(tvb,bit_offset,4);
|
||||
ti = proto_tree_add_text(qos_sub_blob_tree, tvb, bit_offset>>3, qos_attribute_set_len, "QoS_ATTRIBUTE_SET %u(%u bytes)",
|
||||
j+1,
|
||||
qos_attribute_set_len);
|
||||
qos_att_tree = proto_item_add_subtree(ti, ett_treelist[TT_3GPP_OBJ_QOS_SUB_BLOB]);
|
||||
qos_att_tree = proto_tree_add_subtree_format(qos_sub_blob_tree, tvb, bit_offset>>3, qos_attribute_set_len, ett_treelist[TT_3GPP_OBJ_QOS_SUB_BLOB], NULL,
|
||||
"QoS_ATTRIBUTE_SET %u(%u bytes)", j+1, qos_attribute_set_len);
|
||||
proto_tree_add_bits_item(qos_att_tree, hf_rsvp_3gpp_qos_att_set_len, tvb, bit_offset, 4, ENC_BIG_ENDIAN);
|
||||
bit_offset+=4;
|
||||
|
||||
|
@ -6462,7 +6385,7 @@ dissect_rsvp_protection_info(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
int rsvp_class _U_, int type)
|
||||
{
|
||||
guint8 flags1, lsp_flags, link_flags, seg_flags;
|
||||
proto_tree *ti2, *ti3, *ti4, *rsvp_pi_link_flags_tree, *rsvp_pi_lsp_flags_tree, *rsvp_pi_seg_flags_tree;
|
||||
proto_tree *ti2, *rsvp_pi_link_flags_tree, *rsvp_pi_lsp_flags_tree, *rsvp_pi_seg_flags_tree;
|
||||
int offset2 = offset + 4;
|
||||
|
||||
proto_item_set_text(ti, "PROTECTION_INFO: ");
|
||||
|
@ -6511,15 +6434,14 @@ dissect_rsvp_protection_info(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
tvb, offset2, 1, ENC_BIG_ENDIAN);
|
||||
|
||||
lsp_flags = tvb_get_guint8(tvb, offset2+1);
|
||||
ti3 = proto_tree_add_text(rsvp_object_tree, tvb, offset2+1, 1,
|
||||
"LSP Flags: 0x%02x -%s%s%s%s%s%s", lsp_flags,
|
||||
rsvp_pi_lsp_flags_tree = proto_tree_add_subtree_format(rsvp_object_tree, tvb, offset2+1, 1,
|
||||
TREE(TT_PROTECTION_INFO_LSP), NULL, "LSP Flags: 0x%02x -%s%s%s%s%s%s", lsp_flags,
|
||||
lsp_flags == 0 ? " Unprotected":"",
|
||||
lsp_flags&0x01 ? " Rerouting":"",
|
||||
lsp_flags&0x02 ? " Rerouting with extra-traffic":"",
|
||||
lsp_flags&0x04 ? " 1:N Protection with extra-traffic":"",
|
||||
lsp_flags&0x08 ? " 1+1 Unidirectional protection":"",
|
||||
lsp_flags&0x10 ? " 1+1 Bidirectional protection":"");
|
||||
rsvp_pi_lsp_flags_tree = proto_item_add_subtree(ti3, TREE(TT_PROTECTION_INFO_LSP));
|
||||
proto_tree_add_item(rsvp_pi_lsp_flags_tree, hf_rsvp_pi_lsp_flags_full_rerouting,
|
||||
tvb, offset2+1, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(rsvp_pi_lsp_flags_tree, hf_rsvp_pi_lsp_flags_rerouting_extra,
|
||||
|
@ -6532,15 +6454,14 @@ dissect_rsvp_protection_info(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
tvb, offset2+1, 1, ENC_BIG_ENDIAN);
|
||||
|
||||
link_flags = tvb_get_guint8(tvb, offset2+3);
|
||||
ti2 = proto_tree_add_text(rsvp_object_tree, tvb, offset2+3, 1,
|
||||
"Link Flags: 0x%02x -%s%s%s%s%s%s", link_flags,
|
||||
rsvp_pi_link_flags_tree = proto_tree_add_subtree_format(rsvp_object_tree, tvb, offset2+3, 1,
|
||||
TREE(TT_PROTECTION_INFO_LINK), NULL, "Link Flags: 0x%02x -%s%s%s%s%s%s", link_flags,
|
||||
link_flags&0x01 ? " ExtraTraffic":"",
|
||||
link_flags&0x02 ? " Unprotected":"",
|
||||
link_flags&0x04 ? " Shared":"",
|
||||
link_flags&0x08 ? " Dedicated1:1":"",
|
||||
link_flags&0x10 ? " Dedicated1+1":"",
|
||||
link_flags&0x20 ? " Enhanced":"");
|
||||
rsvp_pi_link_flags_tree = proto_item_add_subtree(ti2, TREE(TT_PROTECTION_INFO_LINK));
|
||||
proto_tree_add_item(rsvp_pi_link_flags_tree, hf_rsvp_pi_link_flags_extra,
|
||||
tvb, offset2+3, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(rsvp_pi_link_flags_tree, hf_rsvp_pi_link_flags_unprotected,
|
||||
|
@ -6560,15 +6481,14 @@ dissect_rsvp_protection_info(proto_tree *ti, proto_tree *rsvp_object_tree,
|
|||
tvb, offset2+4, 1, ENC_BIG_ENDIAN);
|
||||
|
||||
seg_flags = tvb_get_guint8(tvb, offset2+5);
|
||||
ti4 = proto_tree_add_text(rsvp_object_tree, tvb, offset2+5, 1,
|
||||
"Segment recovery Flags: 0x%02x - %s%s%s%s%s%s", seg_flags,
|
||||
rsvp_pi_seg_flags_tree = proto_tree_add_subtree_format(rsvp_object_tree, tvb, offset2+5, 1,
|
||||
TREE(TT_PROTECTION_INFO_SEG), NULL, "Segment recovery Flags: 0x%02x - %s%s%s%s%s%s", seg_flags,
|
||||
seg_flags == 0 ? " Unprotected":"",
|
||||
seg_flags&0x01 ? " Rerouting":"",
|
||||
seg_flags&0x02 ? " Rerouting with extra-traffic":"",
|
||||
seg_flags&0x04 ? " 1:N Protection with extra-traffic":"",
|
||||
seg_flags&0x08 ? " 1+1 Unidirectional protection":"",
|
||||
seg_flags&0x10 ? " 1+1 Bidirectional protection":"");
|
||||
rsvp_pi_seg_flags_tree = proto_item_add_subtree(ti4, TREE(TT_PROTECTION_INFO_SEG));
|
||||
proto_tree_add_item(rsvp_pi_seg_flags_tree, hf_rsvp_pi_seg_flags_full_rerouting,
|
||||
tvb, offset2+1, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(rsvp_pi_seg_flags_tree, hf_rsvp_pi_seg_flags_rerouting_extra,
|
||||
|
@ -6985,12 +6905,12 @@ dissect_rsvp_msg_tree(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
|
|||
if (tempfilt_off)
|
||||
proto_item_append_text(rsvp_tree, "%s", summary_template(tvb, tempfilt_off));
|
||||
|
||||
ti = proto_tree_add_text(rsvp_tree, tvb, offset, 8, "RSVP Header. %s",
|
||||
rsvp_header_tree = proto_tree_add_subtree_format(rsvp_tree, tvb, offset, 8,
|
||||
TREE(TT_HDR), &ti, "RSVP Header. %s",
|
||||
val_to_str_ext(message_type, &message_type_vals_ext,
|
||||
"Unknown Message (%u). "));
|
||||
if (e2ei)
|
||||
proto_item_append_text(ti, " (E2E-IGNORE)");
|
||||
rsvp_header_tree = proto_item_add_subtree(ti, TREE(TT_HDR));
|
||||
|
||||
proto_tree_add_item(rsvp_header_tree, hf_rsvp_rsvp_version, tvb, offset, 1, ENC_NA);
|
||||
proto_tree_add_item(rsvp_header_tree, hf_rsvp_flags, tvb, offset, 1, ENC_NA);
|
||||
|
|
|
@ -189,8 +189,7 @@ dissect_rtacser_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
ring = tvb_get_guint8(tvb, offset) & RTACSER_CTRL_RING;
|
||||
mbok = tvb_get_guint8(tvb, offset) & RTACSER_CTRL_MBOK;
|
||||
|
||||
cl_item = proto_tree_add_text(rtacser_tree, tvb, offset, 1, "Control Lines");
|
||||
cl_tree = proto_item_add_subtree(cl_item, ett_rtacser_cl);
|
||||
cl_tree = proto_tree_add_subtree(rtacser_tree, tvb, offset, 1, ett_rtacser_cl, &cl_item, "Control Lines");
|
||||
|
||||
/* Add UART Control Line information to INFO column */
|
||||
col_append_str(pinfo->cinfo, COL_INFO, " ( ");
|
||||
|
|
|
@ -902,16 +902,14 @@ dissect_rtcp_rtpfb_tmmbr( tvbuff_t *tvb, int offset, proto_tree *rtcp_tree, prot
|
|||
int bitrate;
|
||||
int exp;
|
||||
guint32 mantissa;
|
||||
proto_item *ti;
|
||||
proto_tree *fci_tree;
|
||||
|
||||
if (is_notification == 1) {
|
||||
ti = proto_tree_add_text( rtcp_tree, tvb, offset, 8, "TMMBN %d", num_fci );
|
||||
fci_tree = proto_tree_add_subtree_format( rtcp_tree, tvb, offset, 8, ett_ssrc, NULL, "TMMBN %d", num_fci );
|
||||
} else {
|
||||
ti = proto_tree_add_text( rtcp_tree, tvb, offset, 8, "TMMBR %d", num_fci );
|
||||
fci_tree = proto_tree_add_subtree_format( rtcp_tree, tvb, offset, 8, ett_ssrc, NULL, "TMMBR %d", num_fci );
|
||||
}
|
||||
|
||||
fci_tree = proto_item_add_subtree( ti, ett_ssrc );
|
||||
/* SSRC 32 bit*/
|
||||
proto_tree_add_item( fci_tree, hf_rtcp_rtpfb_tmbbr_fci_ssrc, tvb, offset, 4, ENC_BIG_ENDIAN );
|
||||
offset += 4;
|
||||
|
@ -961,8 +959,7 @@ dissect_rtcp_asfb_ms( tvbuff_t *tvb, int offset, proto_tree *tree, packet_info *
|
|||
|
||||
if (type == 1)
|
||||
{
|
||||
item = proto_tree_add_text(tree, tvb, offset, hf_rtcp_psfb_ms_length, "MS Video Source Request");
|
||||
rtcp_ms_vsr_tree = proto_item_add_subtree(item, ett_ms_vsr);
|
||||
rtcp_ms_vsr_tree = proto_tree_add_subtree(tree, tvb, offset, hf_rtcp_psfb_ms_length, ett_ms_vsr, &item, "MS Video Source Request");
|
||||
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO,"( MS-VSR )");
|
||||
|
||||
|
@ -990,8 +987,8 @@ dissect_rtcp_asfb_ms( tvbuff_t *tvb, int offset, proto_tree *tree, packet_info *
|
|||
|
||||
while (num_entries-- && tvb_captured_length_remaining (tvb, offset) >= 0x44)
|
||||
{
|
||||
item = proto_tree_add_text(rtcp_ms_vsr_tree, tvb, offset, 0x44, "MS Video Source Request Entry #%d", ++desc);
|
||||
rtcp_ms_vsr_entry_tree = proto_item_add_subtree(item, ett_ms_vsr_entry);
|
||||
rtcp_ms_vsr_entry_tree = proto_tree_add_subtree_format(rtcp_ms_vsr_tree, tvb, offset, 0x44,
|
||||
ett_ms_vsr_entry, NULL, "MS Video Source Request Entry #%d", ++desc);
|
||||
|
||||
proto_tree_add_item (rtcp_ms_vsr_entry_tree, hf_rtcp_psfb_ms_vsre_payload_type, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
offset++;
|
||||
|
@ -1056,8 +1053,7 @@ dissect_rtcp_asfb_ms( tvbuff_t *tvb, int offset, proto_tree *tree, packet_info *
|
|||
else if (type == 3)
|
||||
{
|
||||
/* MS Dominant Speaker History */
|
||||
item = proto_tree_add_text(tree, tvb, offset, hf_rtcp_psfb_ms_length, "MS Dominant Speaker History");
|
||||
rtcp_ms_ds_tree = proto_item_add_subtree(item, ett_ms_ds);
|
||||
rtcp_ms_ds_tree = proto_tree_add_subtree(tree, tvb, offset, hf_rtcp_psfb_ms_length, ett_ms_ds, NULL, "MS Dominant Speaker History");
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO,"( MS-DSH )");
|
||||
while (length-- && tvb_captured_length_remaining (tvb, offset) >= 4)
|
||||
{
|
||||
|
@ -1083,12 +1079,10 @@ dissect_rtcp_psfb_remb( tvbuff_t *tvb, int offset, proto_tree *rtcp_tree, proto_
|
|||
guint exp, indexSsrcs;
|
||||
guint8 numberSsrcs;
|
||||
guint32 mantissa, bitrate;
|
||||
proto_item *ti;
|
||||
proto_tree *fci_tree;
|
||||
|
||||
ti = proto_tree_add_text( rtcp_tree, tvb, offset, 8, "REMB %d", num_fci );
|
||||
fci_tree = proto_tree_add_subtree_format( rtcp_tree, tvb, offset, 8, ett_ssrc, NULL, "REMB %d", num_fci );
|
||||
|
||||
fci_tree = proto_item_add_subtree( ti, ett_ssrc );
|
||||
/* Uniquie identifier 'REMB' */
|
||||
proto_tree_add_item( fci_tree, hf_rtcp_psfb_remb_fci_identifier, tvb, offset, 4, ENC_ASCII|ENC_NA );
|
||||
offset += 4;
|
||||
|
@ -1305,8 +1299,7 @@ dissect_rtcp_psfb( tvbuff_t *tvb, int offset, proto_tree *rtcp_tree,
|
|||
case 4: /* Handle FIR */
|
||||
{
|
||||
/* Create a new subtree for a length of 8 bytes */
|
||||
ti = proto_tree_add_text( rtcp_tree, tvb, offset, 8, "FIR %u", ++counter );
|
||||
fci_tree = proto_item_add_subtree( ti, ett_ssrc );
|
||||
fci_tree = proto_tree_add_subtree_format( rtcp_tree, tvb, offset, 8, ett_ssrc, NULL, "FIR %u", ++counter );
|
||||
/* SSRC 32 bit*/
|
||||
proto_tree_add_item( fci_tree, hf_rtcp_psfb_fir_fci_ssrc, tvb, offset, 4, ENC_BIG_ENDIAN );
|
||||
offset += 4;
|
||||
|
@ -1862,12 +1855,13 @@ dissect_rtcp_app( tvbuff_t *tvb,packet_info *pinfo, int offset, proto_tree *tree
|
|||
|
||||
case TBCP_CONNECT:
|
||||
{
|
||||
proto_item *content = proto_tree_add_text(PoC1_tree, tvb, offset, 2, "SDES item content");
|
||||
proto_item *content;
|
||||
proto_tree *content_tree = proto_tree_add_subtree(PoC1_tree, tvb, offset, 2,
|
||||
ett_poc1_conn_contents, &content, "SDES item content");
|
||||
gboolean contents[5];
|
||||
unsigned int i;
|
||||
guint8 items_set = 0;
|
||||
|
||||
proto_tree *content_tree = proto_item_add_subtree(content, ett_poc1_conn_contents);
|
||||
guint16 items_field = tvb_get_ntohs(tvb, offset );
|
||||
|
||||
/* Dissect each defined bit flag in the SDES item content */
|
||||
|
@ -2071,9 +2065,8 @@ dissect_rtcp_sdes( tvbuff_t *tvb, int offset, proto_tree *tree,
|
|||
start_offset = offset;
|
||||
|
||||
ssrc = tvb_get_ntohl( tvb, offset );
|
||||
sdes_item = proto_tree_add_text(tree, tvb, offset, -1,
|
||||
"Chunk %u, SSRC/CSRC 0x%X", chunk, ssrc);
|
||||
sdes_tree = proto_item_add_subtree( sdes_item, ett_sdes );
|
||||
sdes_tree = proto_tree_add_subtree_format(tree, tvb, offset, -1,
|
||||
ett_sdes, &sdes_item, "Chunk %u, SSRC/CSRC 0x%X", chunk, ssrc);
|
||||
|
||||
/* SSRC_n source identifier, 32 bits */
|
||||
proto_tree_add_item( sdes_tree, hf_rtcp_ssrc_source, tvb, offset, 4, ENC_BIG_ENDIAN );
|
||||
|
@ -2082,9 +2075,8 @@ dissect_rtcp_sdes( tvbuff_t *tvb, int offset, proto_tree *tree,
|
|||
/* Create a subtree for the SDES items; we don't yet know
|
||||
the length */
|
||||
items_start_offset = offset;
|
||||
ti = proto_tree_add_text(sdes_tree, tvb, offset, -1,
|
||||
"SDES items" );
|
||||
sdes_item_tree = proto_item_add_subtree( ti, ett_sdes_item );
|
||||
sdes_item_tree = proto_tree_add_subtree(sdes_tree, tvb, offset, -1,
|
||||
ett_sdes_item, &ti, "SDES items" );
|
||||
|
||||
/*
|
||||
* Not every message is ended with "null" bytes, so check for
|
||||
|
@ -2238,9 +2230,8 @@ dissect_rtcp_xr(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *tree,
|
|||
/*gboolean valid = TRUE;*/
|
||||
|
||||
/* Create a subtree for this block, dont know the length yet*/
|
||||
proto_item *block = proto_tree_add_text(tree, tvb, offset, -1, "Block %u", block_num);
|
||||
proto_tree *xr_block_tree = proto_item_add_subtree(block, ett_xr_block);
|
||||
proto_item *contents;
|
||||
proto_item *block;
|
||||
proto_tree *xr_block_tree = proto_tree_add_subtree_format(tree, tvb, offset, -1, ett_xr_block, &block, "Block %u", block_num);
|
||||
proto_tree *content_tree;
|
||||
|
||||
proto_tree_add_item(xr_block_tree, hf_rtcp_xr_block_type, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
@ -2267,8 +2258,7 @@ dissect_rtcp_xr(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *tree,
|
|||
offset += 4;
|
||||
packet_len -= 4;
|
||||
|
||||
contents = proto_tree_add_text(xr_block_tree, tvb, offset, content_length, "Contents");
|
||||
content_tree = proto_item_add_subtree(contents, ett_xr_block_contents);
|
||||
content_tree = proto_tree_add_subtree(xr_block_tree, tvb, offset, content_length, ett_xr_block_contents, NULL, "Contents");
|
||||
|
||||
switch (block_type) {
|
||||
case RTCP_XR_VOIP_METRCS: {
|
||||
|
@ -2465,8 +2455,7 @@ dissect_rtcp_xr(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *tree,
|
|||
gint counter = 0;
|
||||
for(counter = 0; counter < sources; counter++) {
|
||||
/* Create a new subtree for a length of 12 bytes */
|
||||
proto_tree *ti = proto_tree_add_text(content_tree, tvb, offset, 12, "Source %u", counter + 1);
|
||||
proto_tree *ssrc_tree = proto_item_add_subtree(ti, ett_xr_ssrc);
|
||||
proto_tree *ssrc_tree = proto_tree_add_subtree_format(content_tree, tvb, offset, 12, ett_xr_ssrc, NULL, "Source %u", counter + 1);
|
||||
|
||||
/* SSRC_n source identifier, 32 bits */
|
||||
proto_tree_add_item(ssrc_tree, hf_rtcp_ssrc_source, tvb, offset, 4, ENC_BIG_ENDIAN);
|
||||
|
@ -2521,7 +2510,6 @@ dissect_rtcp_xr(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *tree,
|
|||
case RTCP_XR_DUP_RLE: {
|
||||
/* 8 bytes of fixed header */
|
||||
gint count = 0, skip = 8;
|
||||
proto_item *chunks_item;
|
||||
proto_tree *chunks_tree;
|
||||
|
||||
/* Identifier */
|
||||
|
@ -2537,8 +2525,7 @@ dissect_rtcp_xr(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *tree,
|
|||
offset += 2;
|
||||
|
||||
/* report Chunks */
|
||||
chunks_item = proto_tree_add_text(content_tree, tvb, offset, content_length,"Report Chunks");
|
||||
chunks_tree = proto_item_add_subtree(chunks_item, ett_xr_loss_chunk);
|
||||
chunks_tree = proto_tree_add_subtree(content_tree, tvb, offset, content_length, ett_xr_loss_chunk, NULL, "Report Chunks");
|
||||
|
||||
for(count = 1; skip < content_length; skip += 2, count++) {
|
||||
guint value = tvb_get_ntohs(tvb, offset);
|
||||
|
@ -2744,8 +2731,7 @@ dissect_rtcp_profile_specific_extensions (packet_info *pinfo, tvbuff_t *tvb, pro
|
|||
extension_length = 4; /* expert info? */
|
||||
}
|
||||
|
||||
pse_item = proto_tree_add_text(tree, tvb, offset, extension_length, "Payload Specific Extension");
|
||||
pse_tree = proto_item_add_subtree( pse_item, ett_pse);
|
||||
pse_tree = proto_tree_add_subtree(tree, tvb, offset, extension_length, ett_pse, &pse_item, "Payload Specific Extension");
|
||||
proto_item_append_text(pse_item, " (%s)",
|
||||
val_to_str_const(extension_type, rtcp_ms_profile_extension_vals, "Unknown"));
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO, "PSE:%s ",
|
||||
|
@ -2876,16 +2862,14 @@ dissect_rtcp_rr( packet_info *pinfo, tvbuff_t *tvb, int offset, proto_tree *tree
|
|||
guint32 lsr, dlsr;
|
||||
|
||||
/* Create a new subtree for a length of 24 bytes */
|
||||
ti = proto_tree_add_text(tree, tvb, offset, 24,
|
||||
"Source %u", counter );
|
||||
ssrc_tree = proto_item_add_subtree( ti, ett_ssrc );
|
||||
ssrc_tree = proto_tree_add_subtree_format(tree, tvb, offset, 24,
|
||||
ett_ssrc, NULL, "Source %u", counter );
|
||||
|
||||
/* SSRC_n source identifier, 32 bits */
|
||||
proto_tree_add_item( ssrc_tree, hf_rtcp_ssrc_source, tvb, offset, 4, ENC_BIG_ENDIAN );
|
||||
offset += 4;
|
||||
|
||||
ti = proto_tree_add_text(ssrc_tree, tvb, offset, 20, "SSRC contents" );
|
||||
ssrc_sub_tree = proto_item_add_subtree( ti, ett_ssrc_item );
|
||||
ssrc_sub_tree = proto_tree_add_subtree(ssrc_tree, tvb, offset, 20, ett_ssrc_item, NULL, "SSRC contents" );
|
||||
|
||||
/* Fraction lost, 8bits */
|
||||
rr_flt = tvb_get_guint8( tvb, offset );
|
||||
|
|
|
@ -878,7 +878,6 @@ dissect_amf0_property_list(tvbuff_t *tvb, gint offset, proto_tree *tree, guint *
|
|||
{
|
||||
proto_item *prop_ti;
|
||||
proto_tree *prop_tree;
|
||||
proto_item *name_ti;
|
||||
proto_tree *name_tree;
|
||||
guint iStringLength;
|
||||
gchar *iStringValue;
|
||||
|
@ -898,15 +897,13 @@ dissect_amf0_property_list(tvbuff_t *tvb, gint offset, proto_tree *tree, guint *
|
|||
break;
|
||||
count++;
|
||||
iStringValue = tvb_get_string_enc(wmem_packet_scope(), tvb, offset + 2, iStringLength, ENC_ASCII);
|
||||
prop_ti = proto_tree_add_text(tree, tvb, offset, -1,
|
||||
"Property '%s'",
|
||||
prop_tree = proto_tree_add_subtree_format(tree, tvb, offset, -1,
|
||||
ett_amf_property, &prop_ti, "Property '%s'",
|
||||
iStringValue);
|
||||
prop_tree = proto_item_add_subtree(prop_ti, ett_amf_property);
|
||||
|
||||
name_ti = proto_tree_add_text(prop_tree, tvb,
|
||||
name_tree = proto_tree_add_subtree_format(prop_tree, tvb,
|
||||
offset, 2+iStringLength,
|
||||
"Name: %s", iStringValue);
|
||||
name_tree = proto_item_add_subtree(name_ti, ett_amf_string);
|
||||
ett_amf_string, NULL, "Name: %s", iStringValue);
|
||||
|
||||
proto_tree_add_uint(name_tree, hf_amf_stringlength, tvb, offset, 2, iStringLength);
|
||||
offset += 2;
|
||||
|
@ -1186,9 +1183,7 @@ dissect_amf3_value_type(tvbuff_t *tvb, gint offset, proto_tree *tree, proto_item
|
|||
guint iTraitCount;
|
||||
proto_item *traits_ti;
|
||||
proto_tree *traits_tree;
|
||||
proto_item *name_ti;
|
||||
proto_tree *name_tree;
|
||||
proto_item *member_ti;
|
||||
proto_tree *member_tree;
|
||||
guint8 *iByteArrayValue;
|
||||
|
||||
|
@ -1343,15 +1338,15 @@ dissect_amf3_value_type(tvbuff_t *tvb, gint offset, proto_tree *tree, proto_item
|
|||
break;
|
||||
}
|
||||
iStringValue = tvb_get_string_enc(wmem_packet_scope(), tvb, iValueOffset+iValueLength, iStringLength, ENC_UTF_8|ENC_NA);
|
||||
subval_ti = proto_tree_add_text(val_tree, tvb, iValueOffset, iStringLength, "%s:", iStringValue);
|
||||
subval_tree = proto_item_add_subtree(subval_ti, ett_amf_array_element);
|
||||
subval_tree = proto_tree_add_subtree(val_tree, tvb, iValueOffset, iStringLength,
|
||||
ett_amf_array_element, &subval_ti, iStringValue);
|
||||
proto_tree_add_uint(subval_tree, hf_amf_stringlength, tvb, iValueOffset, iValueLength, iStringLength);
|
||||
iValueOffset += iValueLength;
|
||||
proto_tree_add_string(subval_tree, hf_amf_string, tvb, iValueOffset, iStringLength, iStringValue);
|
||||
} else {
|
||||
/* the upper 28 bits of the integer value are a string reference index */
|
||||
subval_ti = proto_tree_add_text(val_tree, tvb, iValueOffset, iValueLength, "Reference %u:", iIntegerValue >> 1);
|
||||
subval_tree = proto_item_add_subtree(subval_ti, ett_amf_array_element);
|
||||
subval_tree = proto_tree_add_subtree_format(val_tree, tvb, iValueOffset, iValueLength,
|
||||
ett_amf_array_element, &subval_ti, "Reference %u:", iIntegerValue >> 1);
|
||||
proto_tree_add_uint(subval_tree, hf_amf_string_reference, tvb, iValueOffset, iValueLength, iIntegerValue >> 1);
|
||||
}
|
||||
|
||||
|
@ -1408,22 +1403,21 @@ dissect_amf3_value_type(tvbuff_t *tvb, gint offset, proto_tree *tree, proto_item
|
|||
/* the upper 28 bits of the integer value is a string length */
|
||||
iStringLength = iIntegerValue >> 1;
|
||||
iStringValue = tvb_get_string_enc(wmem_packet_scope(), tvb, iValueOffset+iValueLength, iStringLength, ENC_UTF_8|ENC_NA);
|
||||
traits_ti = proto_tree_add_text(val_tree, tvb, iValueOffset, -1, "Traits for class %s (%u member names)", iStringValue, iTraitCount);
|
||||
traits_tree = proto_item_add_subtree(traits_ti, ett_amf_traits);
|
||||
name_ti = proto_tree_add_text(traits_tree, tvb,
|
||||
traits_tree = proto_tree_add_subtree_format(val_tree, tvb, iValueOffset, -1,
|
||||
ett_amf_traits, &traits_ti, "Traits for class %s (%u member names)", iStringValue, iTraitCount);
|
||||
name_tree = proto_tree_add_subtree_format(traits_tree, tvb,
|
||||
iValueOffset,
|
||||
iValueLength+iStringLength,
|
||||
"Class name: %s",
|
||||
ett_amf_string, NULL, "Class name: %s",
|
||||
iStringValue);
|
||||
name_tree = proto_item_add_subtree(name_ti, ett_amf_string);
|
||||
proto_tree_add_uint(name_tree, hf_amf_classnamelength, tvb, iValueOffset, iValueLength, iStringLength);
|
||||
iValueOffset += iValueLength;
|
||||
proto_tree_add_string(name_tree, hf_amf_classname, tvb, iValueOffset, iStringLength, iStringValue);
|
||||
iValueOffset += iStringLength;
|
||||
} else {
|
||||
/* the upper 28 bits of the integer value are a string reference index */
|
||||
traits_ti = proto_tree_add_text(val_tree, tvb, iValueOffset, iValueLength, "Traits for class (reference %u for name)", iIntegerValue >> 1);
|
||||
traits_tree = proto_item_add_subtree(traits_ti, ett_amf_traits);
|
||||
traits_tree = proto_tree_add_subtree_format(val_tree, tvb, iValueOffset, iValueLength,
|
||||
ett_amf_traits, &traits_ti, "Traits for class (reference %u for name)", iIntegerValue >> 1);
|
||||
proto_tree_add_uint(traits_tree, hf_amf_string_reference, tvb, iValueOffset, iValueLength, iIntegerValue >> 1);
|
||||
iValueOffset += iValueLength;
|
||||
}
|
||||
|
@ -1433,8 +1427,8 @@ dissect_amf3_value_type(tvbuff_t *tvb, gint offset, proto_tree *tree, proto_item
|
|||
/* the upper 28 bits of the integer value is a string length */
|
||||
iStringLength = iIntegerValue >> 1;
|
||||
iStringValue = tvb_get_string_enc(wmem_packet_scope(), tvb, iValueOffset+iValueLength, iStringLength, ENC_UTF_8|ENC_NA);
|
||||
member_ti = proto_tree_add_text(traits_tree, tvb, iValueOffset, iValueLength+iStringLength, "Member '%s'", iStringValue);
|
||||
member_tree = proto_item_add_subtree(member_ti, ett_amf_trait_member);
|
||||
member_tree = proto_tree_add_subtree_format(traits_tree, tvb, iValueOffset, iValueLength+iStringLength,
|
||||
ett_amf_trait_member, NULL, "Member '%s'", iStringValue);
|
||||
proto_tree_add_uint(member_tree, hf_amf_membernamelength, tvb, iValueOffset, iValueLength, iStringLength);
|
||||
iValueOffset += iValueLength;
|
||||
proto_tree_add_string(member_tree, hf_amf_membername, tvb, iValueOffset, iStringLength, iStringValue);
|
||||
|
@ -1461,22 +1455,21 @@ dissect_amf3_value_type(tvbuff_t *tvb, gint offset, proto_tree *tree, proto_item
|
|||
break;
|
||||
}
|
||||
iStringValue = tvb_get_string_enc(wmem_packet_scope(), tvb, iValueOffset+iValueLength, iStringLength, ENC_UTF_8|ENC_NA);
|
||||
subval_ti = proto_tree_add_text(traits_tree, tvb, iValueOffset, -1, "%s:", iStringValue);
|
||||
subval_tree = proto_item_add_subtree(subval_ti, ett_amf_array_element);
|
||||
name_ti = proto_tree_add_text(subval_tree, tvb,
|
||||
subval_tree = proto_tree_add_subtree_format(traits_tree, tvb, iValueOffset, -1,
|
||||
ett_amf_array_element, &subval_ti, "%s:", iStringValue);
|
||||
name_tree = proto_tree_add_subtree_format(subval_tree, tvb,
|
||||
iValueOffset,
|
||||
iValueLength+iStringLength,
|
||||
"Member name: %s",
|
||||
ett_amf_string, NULL, "Member name: %s",
|
||||
iStringValue);
|
||||
name_tree = proto_item_add_subtree(name_ti, ett_amf_string);
|
||||
proto_tree_add_uint(name_tree, hf_amf_membernamelength, tvb, iValueOffset, iValueLength, iStringLength);
|
||||
iValueOffset += iValueLength;
|
||||
proto_tree_add_string(name_tree, hf_amf_membername, tvb, iValueOffset, iStringLength, iStringValue);
|
||||
iValueOffset += iStringLength;
|
||||
} else {
|
||||
/* the upper 28 bits of the integer value are a string reference index */
|
||||
subval_ti = proto_tree_add_text(traits_tree, tvb, iValueOffset, iValueLength, "Reference %u:", iIntegerValue >> 1);
|
||||
subval_tree = proto_item_add_subtree(subval_ti, ett_amf_array_element);
|
||||
subval_tree = proto_tree_add_subtree_format(traits_tree, tvb, iValueOffset, iValueLength,
|
||||
ett_amf_array_element, &subval_ti, "Reference %u:", iIntegerValue >> 1);
|
||||
proto_tree_add_uint(subval_tree, hf_amf_string_reference, tvb, iValueOffset, iValueLength, iIntegerValue >> 1);
|
||||
iValueOffset += iValueLength;
|
||||
}
|
||||
|
@ -1633,11 +1626,9 @@ dissect_rtmpt_body_video(tvbuff_t *tvb, gint offset, proto_tree *rtmpt_tree)
|
|||
static void
|
||||
dissect_rtmpt_body_aggregate(tvbuff_t *tvb, gint offset, proto_tree *rtmpt_tree)
|
||||
{
|
||||
proto_item *tag_item = NULL;
|
||||
proto_tree *tag_tree = NULL;
|
||||
proto_tree *tag_tree;
|
||||
|
||||
proto_item *data_item = NULL;
|
||||
proto_tree *data_tree = NULL;
|
||||
proto_tree *data_tree;
|
||||
|
||||
while (tvb_length_remaining(tvb, offset) > 0) {
|
||||
guint8 iTagType;
|
||||
|
@ -1646,17 +1637,15 @@ dissect_rtmpt_body_aggregate(tvbuff_t *tvb, gint offset, proto_tree *rtmpt_tree)
|
|||
iTagType = tvb_get_guint8(tvb, offset + 0);
|
||||
iDataSize = tvb_get_ntoh24(tvb, offset + 1);
|
||||
|
||||
tag_item = proto_tree_add_text(rtmpt_tree, tvb, offset, 11+iDataSize+4, "%s",
|
||||
tag_tree = proto_tree_add_subtree(rtmpt_tree, tvb, offset, 11+iDataSize+4, ett_rtmpt_tag, NULL,
|
||||
val_to_str_const(iTagType, rtmpt_tag_vals, "Unknown Tag"));
|
||||
tag_tree = proto_item_add_subtree(tag_item, ett_rtmpt_tag);
|
||||
proto_tree_add_item(tag_tree, hf_rtmpt_tag_type, tvb, offset+0, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(tag_tree, hf_rtmpt_tag_datasize, tvb, offset+1, 3, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(tag_tree, hf_rtmpt_tag_timestamp, tvb, offset+4, 3, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(tag_tree, hf_rtmpt_tag_ets, tvb, offset+7, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(tag_tree, hf_rtmpt_tag_streamid, tvb, offset+8, 3, ENC_BIG_ENDIAN);
|
||||
|
||||
data_item = proto_tree_add_text(tag_tree, tvb, offset+11, iDataSize, "Data");
|
||||
data_tree = proto_item_add_subtree(data_item, ett_rtmpt_tag_data);
|
||||
data_tree = proto_tree_add_subtree(tag_tree, tvb, offset+11, iDataSize, ett_rtmpt_tag_data, NULL, "Data");
|
||||
|
||||
switch (iTagType) {
|
||||
case 8:
|
||||
|
@ -1764,9 +1753,8 @@ dissect_rtmpt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, rtmpt_conv_t
|
|||
proto_item_append_text(ti, " (%s)",
|
||||
val_to_str(tp->id, rtmpt_handshake_vals, "Unknown (0x%01x)"));
|
||||
rtmptroot_tree = proto_item_add_subtree(ti, ett_rtmpt);
|
||||
ti = proto_tree_add_text(rtmptroot_tree, tvb, offset, -1, "%s",
|
||||
rtmpt_tree = proto_tree_add_subtree(rtmptroot_tree, tvb, offset, -1, ett_rtmpt_handshake, NULL,
|
||||
val_to_str(tp->id, rtmpt_handshake_vals, "Unknown (0x%01x)"));
|
||||
rtmpt_tree = proto_item_add_subtree(ti, ett_rtmpt_handshake);
|
||||
|
||||
if (tp->id == RTMPT_TYPE_HANDSHAKE_1)
|
||||
{
|
||||
|
@ -1807,9 +1795,8 @@ dissect_rtmpt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, rtmpt_conv_t
|
|||
}
|
||||
|
||||
/* Dissect header fields */
|
||||
ti = proto_tree_add_text(rtmptroot_tree, tvb, offset, tp->bhlen+tp->mhlen, RTMPT_TEXT_RTMP_HEADER);
|
||||
rtmpt_tree = proto_tree_add_subtree(rtmptroot_tree, tvb, offset, tp->bhlen+tp->mhlen, ett_rtmpt_header, NULL, RTMPT_TEXT_RTMP_HEADER);
|
||||
/* proto_item_append_text(ti, " (%s)", val_to_str(tp->cmd, rtmpt_opcode_vals, "Unknown (0x%01x)")); */
|
||||
rtmpt_tree = proto_item_add_subtree(ti, ett_rtmpt_header);
|
||||
|
||||
if (tp->fmt <= 3) proto_tree_add_item(rtmpt_tree, hf_rtmpt_header_format, tvb, offset + 0, 1, ENC_BIG_ENDIAN);
|
||||
if (tp->fmt <= 3) proto_tree_add_item(rtmpt_tree, hf_rtmpt_header_csid, tvb, offset + 0, tp->bhlen, ENC_BIG_ENDIAN);
|
||||
|
@ -1834,8 +1821,7 @@ dissect_rtmpt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, rtmpt_conv_t
|
|||
if (tp->len == 0) return;
|
||||
offset = iBodyOffset;
|
||||
|
||||
ti = proto_tree_add_text(rtmptroot_tree, tvb, offset, -1, RTMPT_TEXT_RTMP_BODY);
|
||||
rtmpt_tree = proto_item_add_subtree(ti, ett_rtmpt_body);
|
||||
rtmpt_tree = proto_tree_add_subtree(rtmptroot_tree, tvb, offset, -1, ett_rtmpt_body, NULL, RTMPT_TEXT_RTMP_BODY);
|
||||
|
||||
switch (tp->cmd) {
|
||||
case RTMPT_TYPE_CHUNK_SIZE:
|
||||
|
@ -2498,8 +2484,7 @@ dissect_amf(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree)
|
|||
proto_tree_add_uint(amf_tree, hf_amf_header_count, tvb, offset, 2, header_count);
|
||||
offset += 2;
|
||||
if (header_count != 0) {
|
||||
ti = proto_tree_add_text(amf_tree, tvb, offset, -1, "Headers");
|
||||
headers_tree = proto_item_add_subtree(ti, ett_amf_headers);
|
||||
headers_tree = proto_tree_add_subtree(amf_tree, tvb, offset, -1, ett_amf_headers, NULL, "Headers");
|
||||
for (i = 0; i < header_count; i++) {
|
||||
string_length = tvb_get_ntohs(tvb, offset);
|
||||
proto_tree_add_item(headers_tree, hf_amf_header_name, tvb, offset, 2, ENC_BIG_ENDIAN|ENC_UTF_8);
|
||||
|
@ -2522,8 +2507,7 @@ dissect_amf(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree)
|
|||
proto_tree_add_uint(amf_tree, hf_amf_message_count, tvb, offset, 2, message_count);
|
||||
offset += 2;
|
||||
if (message_count != 0) {
|
||||
ti = proto_tree_add_text(amf_tree, tvb, offset, -1, "Messages");
|
||||
messages_tree = proto_item_add_subtree(ti, ett_amf_messages);
|
||||
messages_tree = proto_tree_add_subtree(amf_tree, tvb, offset, -1, ett_amf_messages, NULL, "Messages");
|
||||
for (i = 0; i < message_count; i++) {
|
||||
string_length = tvb_get_ntohs(tvb, offset);
|
||||
proto_tree_add_item(messages_tree, hf_amf_message_target_uri, tvb, offset, 2, ENC_BIG_ENDIAN|ENC_UTF_8);
|
||||
|
|
|
@ -1718,8 +1718,8 @@ dissect_rtp_rfc2198(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
guint8 octet1;
|
||||
int cnt;
|
||||
gboolean hdr_follow = TRUE;
|
||||
proto_item *ti = NULL;
|
||||
proto_tree *rfc2198_tree = NULL;
|
||||
proto_item *ti;
|
||||
proto_tree *rfc2198_tree;
|
||||
proto_tree *rfc2198_hdr_tree = NULL;
|
||||
rfc2198_hdr *hdr_last, *hdr_new;
|
||||
rfc2198_hdr *hdr_chain = NULL;
|
||||
|
@ -1730,8 +1730,7 @@ dissect_rtp_rfc2198(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
p_conv_data = (struct _rtp_conversation_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rtp, 0);
|
||||
|
||||
/* Add try to RFC 2198 data */
|
||||
ti = proto_tree_add_text(tree, tvb, offset, -1, "RFC 2198: Redundant Audio Data");
|
||||
rfc2198_tree = proto_item_add_subtree(ti, ett_rtp_rfc2198);
|
||||
rfc2198_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_rtp_rfc2198, NULL, "RFC 2198: Redundant Audio Data");
|
||||
|
||||
hdr_last = NULL;
|
||||
cnt = 0;
|
||||
|
@ -1753,8 +1752,8 @@ dissect_rtp_rfc2198(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
}
|
||||
}
|
||||
/* Add a subtree for this header and add items */
|
||||
ti = proto_tree_add_text(rfc2198_tree, tvb, offset, (hdr_follow)?4:1, "Header %u", cnt);
|
||||
rfc2198_hdr_tree = proto_item_add_subtree(ti, ett_rtp_rfc2198_hdr);
|
||||
rfc2198_hdr_tree = proto_tree_add_subtree_format(rfc2198_tree, tvb, offset, (hdr_follow)?4:1,
|
||||
ett_rtp_rfc2198_hdr, &ti, "Header %u", cnt);
|
||||
proto_tree_add_item(rfc2198_hdr_tree, hf_rtp_rfc2198_follow, tvb, offset, 1, ENC_BIG_ENDIAN );
|
||||
proto_tree_add_uint_format_value(rfc2198_hdr_tree, hf_rtp_payload_type, tvb,
|
||||
offset, 1, octet1, "%s (%u)",
|
||||
|
@ -1802,7 +1801,6 @@ static void
|
|||
dissect_rtp_hext_rfc5215_onebyte( tvbuff_t *tvb, packet_info *pinfo,
|
||||
proto_tree *rtp_hext_tree )
|
||||
{
|
||||
proto_item *ti = NULL;
|
||||
proto_tree *rtp_hext_rfc5285_tree = NULL;
|
||||
guint ext_offset = 0, start_ext_offset;
|
||||
|
||||
|
@ -1833,8 +1831,8 @@ dissect_rtp_hext_rfc5215_onebyte( tvbuff_t *tvb, packet_info *pinfo,
|
|||
|
||||
ext_length = (ext_hdr_hdr & 0x0F) + 1;
|
||||
if (rtp_hext_tree) {
|
||||
ti = proto_tree_add_text(rtp_hext_tree, tvb, ext_offset, ext_length + 1, "RFC 5285 Header Extension (One-Byte Header)");
|
||||
rtp_hext_rfc5285_tree = proto_item_add_subtree( ti, ett_hdr_ext_rfc5285);
|
||||
rtp_hext_rfc5285_tree = proto_tree_add_subtree(rtp_hext_tree, tvb, ext_offset, ext_length + 1,
|
||||
ett_hdr_ext_rfc5285, NULL, "RFC 5285 Header Extension (One-Byte Header)");
|
||||
|
||||
proto_tree_add_uint( rtp_hext_rfc5285_tree, hf_rtp_ext_rfc5285_id, tvb, ext_offset, 1, ext_id);
|
||||
proto_tree_add_uint( rtp_hext_rfc5285_tree, hf_rtp_ext_rfc5285_length, tvb, ext_offset, 1, ext_length);
|
||||
|
@ -1856,7 +1854,6 @@ static void
|
|||
dissect_rtp_hext_rfc5215_twobytes(tvbuff_t *parent_tvb, guint id_offset,
|
||||
guint8 id, tvbuff_t *tvb, packet_info *pinfo, proto_tree *rtp_hext_tree)
|
||||
{
|
||||
proto_item *ti = NULL;
|
||||
proto_tree *rtp_hext_rfc5285_tree = NULL;
|
||||
guint ext_offset = 0, start_ext_offset;
|
||||
|
||||
|
@ -1880,8 +1877,8 @@ dissect_rtp_hext_rfc5215_twobytes(tvbuff_t *parent_tvb, guint id_offset,
|
|||
ext_length = tvb_get_guint8 (tvb, ext_offset + 1);
|
||||
|
||||
if (rtp_hext_tree) {
|
||||
ti = proto_tree_add_text(rtp_hext_tree, tvb, ext_offset, ext_length + 2, "RFC 5285 Header Extension (Two-Byte Header)");
|
||||
rtp_hext_rfc5285_tree = proto_item_add_subtree( ti, ett_hdr_ext_rfc5285);
|
||||
rtp_hext_rfc5285_tree = proto_tree_add_subtree(rtp_hext_tree, tvb, ext_offset, ext_length + 2,
|
||||
ett_hdr_ext_rfc5285, NULL, "RFC 5285 Header Extension (Two-Byte Header)");
|
||||
|
||||
proto_tree_add_uint( rtp_hext_rfc5285_tree, hf_rtp_ext_rfc5285_appbits, parent_tvb, id_offset + 1, 1, id & 0x000F);
|
||||
proto_tree_add_uint( rtp_hext_rfc5285_tree, hf_rtp_ext_rfc5285_id, tvb, ext_offset, 1, ext_id);
|
||||
|
|
|
@ -1051,13 +1051,12 @@ guint16 rtps_util_add_vendor_id(proto_tree *tree,
|
|||
void rtps_util_add_locator_t(proto_tree *tree, packet_info *pinfo, tvbuff_t * tvb, gint offset,
|
||||
gboolean little_endian, const guint8 * label) {
|
||||
|
||||
proto_item * ti;
|
||||
proto_tree * ti;
|
||||
proto_tree * locator_tree;
|
||||
gint32 kind;
|
||||
guint32 port;
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb, offset, 24, "%s", label);
|
||||
locator_tree = proto_item_add_subtree(ti, ett_rtps_locator);
|
||||
locator_tree = proto_tree_add_subtree(tree, tvb, offset, 24, ett_rtps_locator, NULL, label);
|
||||
|
||||
kind = NEXT_guint32(tvb, offset, little_endian);
|
||||
port = NEXT_guint32(tvb, offset+4, little_endian);
|
||||
|
@ -1087,24 +1086,21 @@ void rtps_util_add_locator_t(proto_tree *tree, packet_info *pinfo, tvbuff_t * tv
|
|||
int rtps_util_add_locator_list(proto_tree *tree, packet_info *pinfo, tvbuff_t * tvb,
|
||||
gint offset, const guint8* label, gboolean little_endian) {
|
||||
|
||||
proto_item *ti;
|
||||
proto_tree *locator_tree;
|
||||
guint32 num_locators;
|
||||
|
||||
num_locators = NEXT_guint32(tvb, offset, little_endian);
|
||||
if (tree) {
|
||||
ti = proto_tree_add_text(tree, tvb, offset, 4,
|
||||
"%s: %d Locators", label, num_locators);
|
||||
} else {
|
||||
if (tree == NULL) {
|
||||
return offset + 4 + ((num_locators > 0) ? (24 * num_locators) : 0);
|
||||
}
|
||||
|
||||
locator_tree = proto_tree_add_subtree_format(tree, tvb, offset, 4,
|
||||
ett_rtps_locator_udp_v4, NULL, "%s: %d Locators", label, num_locators);
|
||||
offset += 4;
|
||||
if (num_locators > 0) {
|
||||
guint32 i;
|
||||
char temp_buff[20];
|
||||
|
||||
locator_tree = proto_item_add_subtree(ti, ett_rtps_locator_udp_v4);
|
||||
|
||||
for (i = 0; i < num_locators; ++i) {
|
||||
g_snprintf(temp_buff, 20, "Locator[%d]", i);
|
||||
rtps_util_add_locator_t(locator_tree, pinfo, tvb, offset,
|
||||
|
@ -1151,8 +1147,7 @@ void rtps_util_add_locator_udp_v4(proto_tree *tree, packet_info *pinfo, tvbuff_t
|
|||
proto_tree * locator_tree;
|
||||
guint32 port;
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb, offset, 8, "%s", label);
|
||||
locator_tree = proto_item_add_subtree(ti, ett_rtps_locator_udp_v4);
|
||||
locator_tree = proto_tree_add_subtree(tree, tvb, offset, 8, ett_rtps_locator_udp_v4, NULL, label);
|
||||
|
||||
rtps_util_add_ipv4_address_t(locator_tree, pinfo, tvb, offset,
|
||||
little_endian, hf_rtps_locator_udp_v4);
|
||||
|
@ -1229,12 +1224,11 @@ static void rtps_util_add_guid_prefix_v2(proto_tree *tree, tvbuff_t *tvb, gint o
|
|||
safe_label = (label == NULL) ? (const guint8 *)"guidPrefix" : label;
|
||||
|
||||
if (tree) {
|
||||
proto_item * ti, *hidden_item;
|
||||
proto_tree * guid_tree;
|
||||
proto_item *hidden_item;
|
||||
proto_tree *guid_tree;
|
||||
|
||||
/* The text node (root of the guid prefix sub-tree) */
|
||||
ti = proto_tree_add_text(tree, tvb, offset, 12, "%s", safe_label);
|
||||
guid_tree = proto_item_add_subtree(ti, ett_rtps_guid_prefix);
|
||||
guid_tree = proto_tree_add_subtree(tree, tvb, offset, 12, ett_rtps_guid_prefix, NULL, safe_label);
|
||||
|
||||
/* The numeric value (used for searches) */
|
||||
hidden_item = proto_tree_add_item(guid_tree, hf_prefix, tvb, offset, 8, ENC_NA);
|
||||
|
@ -1521,11 +1515,9 @@ void rtps_util_add_durability_service_qos(proto_tree *tree,
|
|||
tvbuff_t * tvb,
|
||||
gint offset,
|
||||
gboolean little_endian) {
|
||||
proto_item *ti;
|
||||
proto_tree *subtree;
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb, offset, 28, "PID_DURABILITY_SERVICE");
|
||||
subtree = proto_item_add_subtree(ti, ett_rtps_durability_service);
|
||||
subtree = proto_tree_add_subtree(tree, tvb, offset, 28, ett_rtps_durability_service, NULL, "PID_DURABILITY_SERVICE");
|
||||
|
||||
rtps_util_add_ntp_time(subtree, tvb, offset, little_endian, hf_rtps_durability_service_cleanup_delay);
|
||||
proto_tree_add_item(subtree, hf_rtps_durability_service_history_kind, tvb, offset+8, 4,
|
||||
|
@ -1546,11 +1538,9 @@ void rtps_util_add_durability_service_qos(proto_tree *tree,
|
|||
*/
|
||||
void rtps_util_add_liveliness_qos(proto_tree *tree, tvbuff_t * tvb, gint offset, gboolean little_endian) {
|
||||
|
||||
proto_item *ti;
|
||||
proto_tree *subtree;
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb, offset, 12, "PID_LIVELINESS");
|
||||
subtree = proto_item_add_subtree(ti, ett_rtps_liveliness);
|
||||
subtree = proto_tree_add_subtree(tree, tvb, offset, 12, ett_rtps_liveliness, NULL, "PID_LIVELINESS");
|
||||
|
||||
proto_tree_add_item(subtree, hf_rtps_liveliness_kind, tvb, offset, 4,
|
||||
little_endian ? ENC_LITTLE_ENDIAN : ENC_BIG_ENDIAN);
|
||||
|
@ -1569,15 +1559,13 @@ gint rtps_util_add_seq_string(proto_tree *tree, tvbuff_t* tvb, gint offset,
|
|||
guint32 i, num_strings, size;
|
||||
const guint8 * retVal;
|
||||
proto_tree *string_tree;
|
||||
proto_item *ti;
|
||||
|
||||
num_strings = NEXT_guint32(tvb, offset, little_endian);
|
||||
proto_tree_add_int(tree, hf_numstring, tvb, offset, 4, num_strings);
|
||||
offset += 4;
|
||||
|
||||
/* Create the string node with a fake string, the replace it later */
|
||||
ti = proto_tree_add_text(tree, tvb, offset, param_length-8, "%s", label);
|
||||
string_tree = proto_item_add_subtree(ti, ett_rtps_seq_string);
|
||||
string_tree = proto_tree_add_subtree(tree, tvb, offset, param_length-8, ett_rtps_seq_string, NULL, label);
|
||||
|
||||
for (i = 0; i < num_strings; ++i) {
|
||||
size = NEXT_guint32(tvb, offset, little_endian);
|
||||
|
@ -1608,14 +1596,13 @@ gint rtps_util_add_seq_ulong(proto_tree *tree, tvbuff_t * tvb, gint offset, int
|
|||
guint32 num_elem;
|
||||
guint32 i;
|
||||
proto_tree *string_tree;
|
||||
proto_item *ti;
|
||||
|
||||
num_elem = NEXT_guint32(tvb, offset, little_endian);
|
||||
offset += 4;
|
||||
|
||||
/* Create the string node with an empty string, the replace it later */
|
||||
ti = proto_tree_add_text(tree, tvb, offset, num_elem*4, "%s (%d elements)", label, num_elem);
|
||||
string_tree = proto_item_add_subtree(ti, ett_rtps_seq_ulong);
|
||||
string_tree = proto_tree_add_subtree_format(tree, tvb, offset, num_elem*4,
|
||||
ett_rtps_seq_ulong, NULL, "%s (%d elements)", label, num_elem);
|
||||
|
||||
for (i = 0; i < num_elem; ++i) {
|
||||
proto_tree_add_item(string_tree, hf_item, tvb, offset, 4, little_endian ? ENC_LITTLE_ENDIAN : ENC_BIG_ENDIAN);
|
||||
|
@ -2268,8 +2255,7 @@ static int rtps_util_add_bitmap(proto_tree *tree,
|
|||
const gint original_offset = offset;
|
||||
guint32 datamask;
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb, original_offset, offset-original_offset, "%s", label);
|
||||
bitmap_tree = proto_item_add_subtree(ti, ett_rtps_bitmap);
|
||||
bitmap_tree = proto_tree_add_subtree(tree, tvb, original_offset, offset-original_offset, ett_rtps_bitmap, &ti, label);
|
||||
|
||||
/* Bitmap base sequence number */
|
||||
rtps_util_add_seq_number(bitmap_tree, tvb, offset, little_endian, "bitmapBase");
|
||||
|
@ -2339,7 +2325,7 @@ static int rtps_util_add_fragment_number_set(proto_tree *tree, packet_info *pinf
|
|||
gint expected_size;
|
||||
gint base_size;
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb, original_offset, offset-original_offset, "%s", label);
|
||||
bitmap_tree = proto_tree_add_subtree(tree, tvb, original_offset, offset-original_offset, ett_rtps_bitmap, &ti, label);
|
||||
|
||||
/* RTI DDS 4.2d was sending the FragmentNumber_t as a 64-bit long integer
|
||||
* instead of 32-bit long.
|
||||
|
@ -2391,8 +2377,6 @@ static int rtps_util_add_fragment_number_set(proto_tree *tree, packet_info *pinf
|
|||
wmem_strbuf_truncate(temp_buff, (gsize) (last_one - wmem_strbuf_get_str(temp_buff)));
|
||||
}
|
||||
|
||||
bitmap_tree = proto_item_add_subtree(ti, ett_rtps_bitmap);
|
||||
|
||||
if (base_size == 8) {
|
||||
proto_tree_add_uint64(bitmap_tree, hf_rtps_fragment_number_base64, tvb, original_offset, 8,
|
||||
base);
|
||||
|
@ -2502,7 +2486,6 @@ static gboolean dissect_parameter_sequence_v1(proto_tree *rtps_parameter_tree, p
|
|||
proto_item* parameter_item, proto_item* param_len_item, gint offset,
|
||||
gboolean little_endian, int size, int param_length,
|
||||
guint16 parameter, guint16 version) {
|
||||
proto_item *ti;
|
||||
proto_tree *subtree;
|
||||
|
||||
switch(parameter) {
|
||||
|
@ -3054,8 +3037,7 @@ static gboolean dissect_parameter_sequence_v1(proto_tree *rtps_parameter_tree, p
|
|||
*/
|
||||
case PID_RESOURCE_LIMIT:
|
||||
ENSURE_LENGTH(12);
|
||||
ti = proto_tree_add_text(rtps_parameter_tree, tvb, offset, 12, "Resource Limit");
|
||||
subtree = proto_item_add_subtree(ti, ett_rtps_resource_limit);
|
||||
subtree = proto_tree_add_subtree(rtps_parameter_tree, tvb, offset, 12, ett_rtps_resource_limit, NULL, "Resource Limit");
|
||||
proto_tree_add_item(subtree, hf_rtps_resource_limit_max_samples, tvb, offset, 4, little_endian ? ENC_LITTLE_ENDIAN : ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(subtree, hf_rtps_resource_limit_max_instances, tvb, offset+4, 4, little_endian ? ENC_LITTLE_ENDIAN : ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(subtree, hf_rtps_resource_limit_max_samples_per_instances, tvb, offset+8, 4, little_endian ? ENC_LITTLE_ENDIAN : ENC_BIG_ENDIAN);
|
||||
|
@ -3394,8 +3376,7 @@ static gboolean dissect_parameter_sequence_v1(proto_tree *rtps_parameter_tree, p
|
|||
int i = 0;
|
||||
guint32 manager_key;
|
||||
|
||||
ti = proto_tree_add_text(rtps_parameter_tree, tvb, offset, param_length, "Manager Keys");
|
||||
subtree = proto_item_add_subtree(ti, ett_rtps_manager_key);
|
||||
subtree = proto_tree_add_subtree(rtps_parameter_tree, tvb, offset, param_length, ett_rtps_manager_key, NULL, "Manager Keys");
|
||||
|
||||
while (param_length >= 4) {
|
||||
manager_key = NEXT_guint32(tvb, offset, little_endian);
|
||||
|
@ -3845,8 +3826,8 @@ static gboolean dissect_parameter_sequence_v2(proto_tree *rtps_parameter_tree, p
|
|||
for (ch = 0; ch < number_of_channels; ++ch) {
|
||||
g_snprintf(temp_buff, 20, "Channel[%u]", ch);
|
||||
old_offset = off;
|
||||
ti_channel = proto_tree_add_text(rtps_parameter_tree, tvb, off, 0, "Channel[%u]", ch);
|
||||
channel_tree = proto_item_add_subtree(ti_channel, ett_rtps_locator_filter_channel);
|
||||
channel_tree = proto_tree_add_subtree_format(rtps_parameter_tree, tvb, off, 0,
|
||||
ett_rtps_locator_filter_channel, &ti_channel, "Channel[%u]", ch);
|
||||
|
||||
off = rtps_util_add_locator_list(channel_tree, pinfo, tvb, off, temp_buff, little_endian);
|
||||
/* Filter expression */
|
||||
|
@ -3907,8 +3888,7 @@ static gint dissect_parameter_sequence(proto_tree *tree, packet_info *pinfo, tvb
|
|||
guint16 parameter, param_length;
|
||||
gint original_offset = offset;
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb, offset, -1, "%s:", label);
|
||||
rtps_parameter_sequence_tree = proto_item_add_subtree(ti, ett_rtps_parameter_sequence);
|
||||
rtps_parameter_sequence_tree = proto_tree_add_subtree_format(tree, tvb, offset, -1, ett_rtps_parameter_sequence, &ti, "%s:", label);
|
||||
|
||||
/* Loop through all the parameters defined until PID_SENTINEL is found */
|
||||
for (;;) {
|
||||
|
@ -3925,15 +3905,13 @@ static gint dissect_parameter_sequence(proto_tree *tree, packet_info *pinfo, tvb
|
|||
*/
|
||||
parameter = NEXT_guint16(tvb, offset, little_endian);
|
||||
if (version < 0x0200) {
|
||||
param_item = proto_tree_add_text(rtps_parameter_sequence_tree, tvb, offset, -1,
|
||||
"%s", val_to_str(parameter, parameter_id_vals, "Unknown (0x%04x)"));
|
||||
rtps_parameter_tree = proto_item_add_subtree(param_item, ett_rtps_parameter);
|
||||
rtps_parameter_tree = proto_tree_add_subtree(rtps_parameter_sequence_tree, tvb, offset, -1,
|
||||
ett_rtps_parameter, ¶m_item, val_to_str(parameter, parameter_id_vals, "Unknown (0x%04x)"));
|
||||
|
||||
proto_tree_add_uint(rtps_parameter_tree, hf_rtps_parameter_id, tvb, offset, 2, parameter);
|
||||
} else {
|
||||
param_item = proto_tree_add_text(rtps_parameter_sequence_tree, tvb, offset, -1,
|
||||
"%s", val_to_str(parameter, parameter_id_v2_vals, "Unknown (0x%04x)"));
|
||||
rtps_parameter_tree = proto_item_add_subtree(param_item, ett_rtps_parameter);
|
||||
rtps_parameter_tree = proto_tree_add_subtree(rtps_parameter_sequence_tree, tvb, offset, -1,
|
||||
ett_rtps_parameter, ¶m_item, val_to_str(parameter, parameter_id_v2_vals, "Unknown (0x%04x)"));
|
||||
|
||||
proto_tree_add_uint(rtps_parameter_tree, hf_rtps_parameter_id_v2, tvb, offset, 2, parameter);
|
||||
}
|
||||
|
@ -4006,8 +3984,7 @@ static void dissect_serialized_data(proto_tree *tree, packet_info *pinfo, tvbuff
|
|||
gboolean encapsulation_little_endian = FALSE;
|
||||
|
||||
/* Creates the sub-tree */
|
||||
ti = proto_tree_add_text(tree, tvb, offset, -1, "%s", label);
|
||||
rtps_parameter_sequence_tree = proto_item_add_subtree(ti, ett_rtps_serialized_data);
|
||||
rtps_parameter_sequence_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_rtps_serialized_data, &ti, label);
|
||||
|
||||
/* Encapsulation ID */
|
||||
encapsulation_id = NEXT_guint16(tvb, offset, FALSE); /* Always big endian */
|
||||
|
@ -5337,11 +5314,11 @@ static void dissect_RTPS_DATA(tvbuff_t *tvb, packet_info *pinfo, gint offset, gu
|
|||
guint16 encapsulation_id;
|
||||
guint16 encapsulation_len;
|
||||
/*int encapsulation_little_endian = 0;*/
|
||||
proto_item * ti = proto_tree_add_text(tree, tvb, offset,
|
||||
proto_item *ti;
|
||||
rtps_pm_tree = proto_tree_add_subtree(tree, tvb, offset,
|
||||
octets_to_next_header - (offset - old_offset) + 4,
|
||||
"ParticipantMessageData");
|
||||
ett_rtps_part_message_data, &ti, "ParticipantMessageData");
|
||||
|
||||
rtps_pm_tree = proto_item_add_subtree(ti, ett_rtps_part_message_data);
|
||||
/* Encapsulation ID */
|
||||
encapsulation_id = NEXT_guint16(tvb, offset, FALSE); /* Always big endian */
|
||||
|
||||
|
@ -5729,8 +5706,7 @@ static void dissect_RTPS_DATA_BATCH(tvbuff_t *tvb, packet_info *pinfo, gint offs
|
|||
proto_tree *sil_tree;
|
||||
sample_info_count = 0;
|
||||
|
||||
list_item = proto_tree_add_text(tree, tvb, offset, -1, "Sample Info List");
|
||||
sil_tree = proto_item_add_subtree(list_item, ett_rtps_sample_info_list);
|
||||
sil_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_rtps_sample_info_list, &list_item, "Sample Info List");
|
||||
|
||||
/* Allocate sample_info_flags and sample_info_length
|
||||
* to store a copy of the flags for each sample info */
|
||||
|
@ -5755,8 +5731,7 @@ static void dissect_RTPS_DATA_BATCH(tvbuff_t *tvb, packet_info *pinfo, gint offs
|
|||
break;
|
||||
}
|
||||
|
||||
ti = proto_tree_add_text(sil_tree, tvb, offset, -1, "sampleInfo[%d]", sample_info_count);
|
||||
si_tree = proto_item_add_subtree(ti, ett_rtps_sample_info);
|
||||
si_tree = proto_tree_add_subtree_format(sil_tree, tvb, offset, -1, ett_rtps_sample_info, &ti, "sampleInfo[%d]", sample_info_count);
|
||||
|
||||
flags2 = NEXT_guint16(tvb, offset, FALSE); /* Flags are always big endian */
|
||||
sample_info_flags[sample_info_count] = flags2;
|
||||
|
@ -5835,8 +5810,7 @@ static void dissect_RTPS_DATA_BATCH(tvbuff_t *tvb, packet_info *pinfo, gint offs
|
|||
gint count = 0;
|
||||
const char * label;
|
||||
|
||||
ti = proto_tree_add_text(tree, tvb, offset, -1, "Serialized Sample List");
|
||||
sil_tree = proto_item_add_subtree(ti, ett_rtps_sample_batch_list);
|
||||
sil_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_rtps_sample_batch_list, &ti, "Serialized Sample List");
|
||||
for (count = 0; count < sample_info_count; ++count) {
|
||||
/* Ensure there are enough bytes in the buffer to dissect the next sample */
|
||||
if (octets_to_next_header - (offset - old_offset) + 4 < (gint)sample_info_length[count]) {
|
||||
|
@ -6506,20 +6480,19 @@ static gboolean dissect_rtps(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
|
|||
|
||||
if ((nature == PORT_METATRAFFIC_UNICAST) || (nature == PORT_USERTRAFFIC_UNICAST) ||
|
||||
(version < 0x0200)) {
|
||||
ti = proto_tree_add_text(rtps_tree, tvb, 0, 0,
|
||||
"Default port mapping: domainId=%d, "
|
||||
mapping_tree = proto_tree_add_subtree_format(rtps_tree, tvb, 0, 0,
|
||||
ett_rtps_default_mapping, NULL, "Default port mapping: domainId=%d, "
|
||||
"participantIdx=%d, nature=%s",
|
||||
domain_id,
|
||||
participant_idx,
|
||||
val_to_str(nature, nature_type_vals, "%02x"));
|
||||
} else {
|
||||
ti = proto_tree_add_text(rtps_tree, tvb, 0, 0,
|
||||
"Default port mapping: %s, domainId=%d",
|
||||
mapping_tree = proto_tree_add_subtree_format(rtps_tree, tvb, 0, 0,
|
||||
ett_rtps_default_mapping, NULL, "Default port mapping: %s, domainId=%d",
|
||||
val_to_str(nature, nature_type_vals, "%02x"),
|
||||
domain_id);
|
||||
}
|
||||
|
||||
mapping_tree = proto_item_add_subtree(ti, ett_rtps_default_mapping);
|
||||
ti = proto_tree_add_uint(mapping_tree, hf_rtps_domain_id, tvb, 0, 0, domain_id);
|
||||
PROTO_ITEM_SET_GENERATED(ti);
|
||||
if ((nature == PORT_METATRAFFIC_UNICAST) || (nature == PORT_USERTRAFFIC_UNICAST) ||
|
||||
|
|
Loading…
Reference in New Issue