aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-lldp.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-lldp.c')
-rw-r--r--epan/dissectors/packet-lldp.c81
1 files changed, 32 insertions, 49 deletions
diff --git a/epan/dissectors/packet-lldp.c b/epan/dissectors/packet-lldp.c
index dfcb1cc4cf..c1fd099157 100644
--- a/epan/dissectors/packet-lldp.c
+++ b/epan/dissectors/packet-lldp.c
@@ -971,10 +971,9 @@ dissect_lldp_chassis_id(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gui
tlvsubType = tvb_get_guint8(tvb, (offset+2));
/* Set chassis tree */
- tf = proto_tree_add_text(tree, tvb, offset, (dataLen + 2), "Chassis Subtype = %s",
+ chassis_tree = proto_tree_add_subtree_format(tree, tvb, offset, (dataLen + 2), ett_chassis_id, &tf, "Chassis Subtype = %s",
val_to_str_const(tlvsubType, chassis_id_subtypes, "Reserved" ));
- chassis_tree = proto_item_add_subtree(tf, ett_chassis_id);
proto_tree_add_item(chassis_tree, hf_lldp_tlv_type, tvb, offset, 2, ENC_BIG_ENDIAN);
lf = proto_tree_add_item(chassis_tree, hf_lldp_tlv_len, tvb, offset, 2, ENC_BIG_ENDIAN);
@@ -1131,10 +1130,9 @@ dissect_lldp_port_id(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint3
tlvsubType = tvb_get_guint8(tvb, (offset+2));
/* Set port tree */
- tf = proto_tree_add_text(tree, tvb, offset, (dataLen + 2), "Port Subtype = %s",
+ port_tree = proto_tree_add_subtree_format(tree, tvb, offset, (dataLen + 2), ett_port_id, &tf, "Port Subtype = %s",
val_to_str_const(tlvsubType, port_id_subtypes, "Unknown" ));
- port_tree = proto_item_add_subtree(tf, ett_port_id);
proto_tree_add_item(port_tree, hf_lldp_tlv_type, tvb, offset, 2, ENC_BIG_ENDIAN);
lf = proto_tree_add_item(port_tree, hf_lldp_tlv_len, tvb, offset, 2, ENC_BIG_ENDIAN);
@@ -1259,8 +1257,7 @@ dissect_lldp_time_to_live(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, g
guint16 tempShort;
guint32 dataLen = 0;
- proto_tree *time_to_live_tree = NULL;
- proto_item *tf = NULL;
+ proto_tree *time_to_live_tree;
/* Get tlv type */
tempShort = tvb_get_ntohs(tvb, offset);
@@ -1275,8 +1272,8 @@ dissect_lldp_time_to_live(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, g
col_append_fstr(pinfo->cinfo, COL_INFO, "TTL = %u ", tempShort);
/* Set port tree */
- tf = proto_tree_add_text(tree, tvb, offset, (dataLen + 2), "Time To Live = %u sec", tempShort);
- time_to_live_tree = proto_item_add_subtree(tf, ett_time_to_live);
+ time_to_live_tree = proto_tree_add_subtree_format(tree, tvb, offset, (dataLen + 2),
+ ett_time_to_live, NULL, "Time To Live = %u sec", tempShort);
proto_tree_add_item(time_to_live_tree, hf_lldp_tlv_type, tvb, offset, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(time_to_live_tree, hf_lldp_tlv_len, tvb, offset, 2, ENC_BIG_ENDIAN);
@@ -1298,8 +1295,7 @@ dissect_lldp_end_of_lldpdu(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tr
guint16 dataLen;
guint16 tempShort;
- proto_tree *end_of_lldpdu_tree = NULL;
- proto_item *tf = NULL;
+ proto_tree *end_of_lldpdu_tree;
/* Get tlv type and length */
tempShort = tvb_get_ntohs(tvb, offset);
@@ -1308,8 +1304,7 @@ dissect_lldp_end_of_lldpdu(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tr
dataLen = TLV_INFO_LEN(tempShort);
/* Set port tree */
- tf = proto_tree_add_text(tree, tvb, offset, (dataLen + 2), "End of LLDPDU");
- end_of_lldpdu_tree = proto_item_add_subtree(tf, ett_end_of_lldpdu);
+ end_of_lldpdu_tree = proto_tree_add_subtree(tree, tvb, offset, (dataLen + 2), ett_end_of_lldpdu, NULL, "End of LLDPDU");
proto_tree_add_item(end_of_lldpdu_tree, hf_lldp_tlv_type, tvb, offset, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(end_of_lldpdu_tree, hf_lldp_tlv_len, tvb, offset, 2, ENC_BIG_ENDIAN);
@@ -1325,8 +1320,7 @@ dissect_lldp_port_desc(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
guint32 dataLen = 0;
const char *strPtr;
- proto_tree *port_desc_tree = NULL;
- proto_item *tf = NULL;
+ proto_tree *port_desc_tree;
/* Get tlv type and length */
tempShort = tvb_get_ntohs(tvb, offset);
@@ -1337,8 +1331,8 @@ dissect_lldp_port_desc(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
strPtr = tvb_format_stringzpad(tvb, (offset+2), dataLen);
/* Set port tree */
- tf = proto_tree_add_text(tree, tvb, offset, (dataLen + 2), "Port Description = %s", strPtr);
- port_desc_tree = proto_item_add_subtree(tf, ett_port_description);
+ port_desc_tree = proto_tree_add_subtree_format(tree, tvb, offset, (dataLen + 2),
+ ett_port_description, NULL, "Port Description = %s", strPtr);
proto_tree_add_item(port_desc_tree, hf_lldp_tlv_type, tvb, offset, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(port_desc_tree, hf_lldp_tlv_len, tvb, offset, 2, ENC_BIG_ENDIAN);
@@ -1361,8 +1355,7 @@ dissect_lldp_system_name(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree
guint8 tlvsubType;
const char *strPtr;
- proto_tree *system_subtree = NULL;
- proto_item *tf = NULL;
+ proto_tree *system_subtree;
/* Get tlv type and length */
tempShort = tvb_get_ntohs(tvb, offset);
@@ -1375,12 +1368,12 @@ dissect_lldp_system_name(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree
/* Set system name tree */
if (tlvsubType == SYSTEM_NAME_TLV_TYPE) {
- tf = proto_tree_add_text(tree, tvb, offset, (dataLen + 2), "System Name = %s", strPtr);
- system_subtree = proto_item_add_subtree(tf, ett_system_name);
+ system_subtree = proto_tree_add_subtree_format(tree, tvb, offset, (dataLen + 2),
+ ett_system_name, NULL, "System Name = %s", strPtr);
col_append_fstr(pinfo->cinfo, COL_INFO, "System Name = %s ", strPtr);
} else {
- tf = proto_tree_add_text(tree, tvb, offset, (dataLen + 2), "System Description = %s", strPtr);
- system_subtree = proto_item_add_subtree(tf, ett_system_desc);
+ system_subtree = proto_tree_add_subtree_format(tree, tvb, offset, (dataLen + 2),
+ ett_system_desc, NULL, "System Description = %s", strPtr);
col_append_fstr(pinfo->cinfo, COL_INFO, "System Description = %s ", strPtr);
}
@@ -1407,10 +1400,10 @@ dissect_lldp_system_capabilities(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tr
guint16 tempShort;
guint32 dataLen = 0;
- proto_tree *system_capabilities_tree = NULL;
- proto_tree *capabilities_summary_tree = NULL;
- proto_tree *capabilities_enabled_tree = NULL;
- proto_item *tf = NULL;
+ proto_tree *system_capabilities_tree;
+ proto_tree *capabilities_summary_tree;
+ proto_tree *capabilities_enabled_tree;
+ proto_item *tf;
/* Get tlv type and length */
tempShort = tvb_get_ntohs(tvb, offset);
@@ -1419,8 +1412,7 @@ dissect_lldp_system_capabilities(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tr
dataLen = TLV_INFO_LEN(tempShort);
/* Set system capabilities tree */
- tf = proto_tree_add_text(tree, tvb, offset, (dataLen + 2), "Capabilities");
- system_capabilities_tree = proto_item_add_subtree(tf, ett_system_cap);
+ system_capabilities_tree = proto_tree_add_subtree(tree, tvb, offset, (dataLen + 2), ett_system_cap, NULL, "Capabilities");
proto_tree_add_item(system_capabilities_tree, hf_lldp_tlv_type, tvb, offset, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(system_capabilities_tree, hf_lldp_tlv_len, tvb, offset, 2, ENC_BIG_ENDIAN);
@@ -1469,8 +1461,7 @@ dissect_lldp_management_address(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tre
guint8 subtypeByte;
guint8 stringLen = 0;
- proto_tree *system_mgm_addr = NULL;
- proto_item *tf = NULL;
+ proto_tree *system_mgm_addr;
/* Get tlv type and length */
tempShort = tvb_get_ntohs(tvb, offset);
@@ -1479,8 +1470,7 @@ dissect_lldp_management_address(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tre
dataLen = TLV_INFO_LEN(tempShort);
/* Set system capabilities tree */
- tf = proto_tree_add_text(tree, tvb, offset, (dataLen + 2), "Management Address");
- system_mgm_addr = proto_item_add_subtree(tf, ett_management_address);
+ system_mgm_addr = proto_tree_add_subtree(tree, tvb, offset, (dataLen + 2), ett_management_address, NULL, "Management Address");
proto_tree_add_item(system_mgm_addr, hf_lldp_tlv_type, tvb, offset, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(system_mgm_addr, hf_lldp_tlv_len, tvb, offset, 2, ENC_BIG_ENDIAN);
@@ -1709,9 +1699,9 @@ dissect_dcbx_tlv(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint3
while(appCount--) {
tempShort = tvb_get_ntohs(tvb, offset);
- tf = proto_tree_add_text(subtlv_tree, tvb, offset, 6, "%s Application",
+ apptlv_tree = proto_tree_add_subtree_format(subtlv_tree, tvb, offset, 6,
+ ett_org_spc_dcbx_cee_app, NULL, "%s Application",
val_to_str_const(tempShort, dcbx_app_types, "Unknown"));
- apptlv_tree = proto_item_add_subtree(tf, ett_org_spc_dcbx_cee_app);
proto_tree_add_item(apptlv_tree, hf_dcbx_feature_app_proto, tvb, offset, 2, ENC_BIG_ENDIAN);
@@ -2081,9 +2071,9 @@ dissect_ieee_802_1_tlv(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
while(appCount--) {
dcbApp = tvb_get_ntohs(tvb, offset + 1);
- tf = proto_tree_add_text(tree, tvb, offset, 3, "%s Application",
+ apptlv_tree = proto_tree_add_subtree_format(tree, tvb, offset, 3,
+ ett_org_spc_ieee_dcbx_app, NULL, "%s Application",
val_to_str_const(dcbApp, dcbx_app_types, "Unknown"));
- apptlv_tree = proto_item_add_subtree(tf, ett_org_spc_ieee_dcbx_app);
proto_tree_add_item(apptlv_tree, hf_ieee_8021az_app_prio, tvb, offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(apptlv_tree, hf_ieee_8021az_app_selector, tvb, offset, 1, ENC_BIG_ENDIAN);
@@ -2219,8 +2209,7 @@ dissect_ieee_802_3_tlv(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
proto_tree_add_item(autoneg_advertised_subtree, hf_ieee_802_3_pmd_auto_neg_advertised_caps_10base_t, tvb, offset, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(autoneg_advertised_subtree, hf_ieee_802_3_pmd_auto_neg_advertised_caps_other, tvb, offset, 2, ENC_BIG_ENDIAN);
- tf = proto_tree_add_text(tree, tvb, offset, 2, "Same in inverse (wrong) bitorder");
- autoneg_advertised_subtree = proto_item_add_subtree(tf, ett_802_3_autoneg_advertised);
+ autoneg_advertised_subtree = proto_tree_add_subtree(tree, tvb, offset, 2, ett_802_3_autoneg_advertised, NULL, "Same in inverse (wrong) bitorder");
proto_tree_add_item(autoneg_advertised_subtree, hf_ieee_802_3_pmd_auto_neg_advertised_caps_inv_1000base_tfd, tvb, offset, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(autoneg_advertised_subtree, hf_ieee_802_3_pmd_auto_neg_advertised_caps_inv_1000base_t, tvb, offset, 2, ENC_BIG_ENDIAN);
@@ -2759,14 +2748,11 @@ dissect_profinet_period(tvbuff_t *tvb, proto_tree *tree, guint32 offset, const g
{
guint32 period;
proto_tree *period_tree;
- proto_item *period_item;
-
period = tvb_get_ntohl(tvb, offset);
- period_item = proto_tree_add_text(tree, tvb, offset, 4, "%s: %s, %uns",
+ period_tree = proto_tree_add_subtree_format(tree, tvb, offset, 4, ett_profinet_period, NULL, "%s: %s, %uns",
name, (period & 0x80000000) ? "Valid" : "Invalid", period & 0x7FFFFFFF);
- period_tree = proto_item_add_subtree(period_item, ett_profinet_period);
proto_tree_add_uint(period_tree, hf_valid, tvb, offset, 4, period);
proto_tree_add_uint(period_tree, hf_value, tvb, offset, 4, period);
@@ -2951,7 +2937,7 @@ dissect_organizational_specific_tlv(tvbuff_t *tvb, packet_info *pinfo, proto_tre
const char *subTypeStr;
proto_tree *org_tlv_tree = NULL;
- proto_item *tf = NULL, *lf = NULL;
+ proto_item *lf = NULL;
/* Get tlv type and length */
tempShort = tvb_get_ntohs(tvb, offset);
@@ -3081,8 +3067,7 @@ dissect_organizational_specific_tlv(tvbuff_t *tvb, packet_info *pinfo, proto_tre
break;
}
- tf = proto_tree_add_text(tree, tvb, offset, tLength, "%s - %s", ouiStr, subTypeStr);
- org_tlv_tree = proto_item_add_subtree(tf, tempTree); /* change to temp: ett_org_spc_tlv */
+ org_tlv_tree = proto_tree_add_subtree_format(tree, tvb, offset, tLength, tempTree, NULL, "%s - %s", ouiStr, subTypeStr);
proto_tree_add_item(org_tlv_tree, hf_lldp_tlv_type, tvb, offset, 2, ENC_BIG_ENDIAN);
lf = proto_tree_add_item(org_tlv_tree, hf_lldp_tlv_len, tvb, offset, 2, ENC_BIG_ENDIAN);
@@ -3133,8 +3118,7 @@ dissect_lldp_unknown_tlv(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree
guint16 dataLen;
guint16 tempShort;
- proto_tree *unknown_tlv_tree = NULL;
- proto_item *tf = NULL;
+ proto_tree *unknown_tlv_tree;
/* Get tlv type and length */
tempShort = tvb_get_ntohs(tvb, offset);
@@ -3142,8 +3126,7 @@ dissect_lldp_unknown_tlv(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree
/* Get tlv length */
dataLen = TLV_INFO_LEN(tempShort);
- tf = proto_tree_add_text(tree, tvb, offset, (dataLen + 2), "Unknown TLV");
- unknown_tlv_tree = proto_item_add_subtree(tf, ett_unknown_tlv);
+ unknown_tlv_tree = proto_tree_add_subtree(tree, tvb, offset, (dataLen + 2), ett_unknown_tlv, NULL, "Unknown TLV");
proto_tree_add_item(unknown_tlv_tree, hf_lldp_tlv_type, tvb, offset, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(unknown_tlv_tree, hf_lldp_tlv_len, tvb, offset, 2, ENC_BIG_ENDIAN);