diff options
author | Gilbert Ramirez <gram@alumni.rice.edu> | 2000-05-11 08:18:09 +0000 |
---|---|---|
committer | Gilbert Ramirez <gram@alumni.rice.edu> | 2000-05-11 08:18:09 +0000 |
commit | 292e38e2c61edcd14bfa30ca3c72bacda1bcbe32 (patch) | |
tree | db4edef02456a48d0f6d505166ac7d70f6c0f644 /packet-q2931.c | |
parent | 162800efb308901e0c302517be01226130e39b19 (diff) | |
download | wireshark-292e38e2c61edcd14bfa30ca3c72bacda1bcbe32.tar.gz wireshark-292e38e2c61edcd14bfa30ca3c72bacda1bcbe32.tar.bz2 wireshark-292e38e2c61edcd14bfa30ca3c72bacda1bcbe32.zip |
Add tvbuff class.
Add exceptions routines.
Convert proto_tree_add_*() routines to require tvbuff_t* argument.
Convert all dissectors to pass NULL argument ("NullTVB" macro == NULL) as
the tvbuff_t* argument to proto_tree_add_*() routines.
dissect_packet() creates a tvbuff_t, wraps the next dissect call in
a TRY block, will print "Short Frame" on the proto_tree if a BoundsError
exception is caught.
The FDDI dissector is converted to use tvbuff's.
svn path=/trunk/; revision=1939
Diffstat (limited to 'packet-q2931.c')
-rw-r--r-- | packet-q2931.c | 234 |
1 files changed, 117 insertions, 117 deletions
diff --git a/packet-q2931.c b/packet-q2931.c index 206b575488..92361aa137 100644 --- a/packet-q2931.c +++ b/packet-q2931.c @@ -2,7 +2,7 @@ * Routines for Q.2931 frame disassembly * Guy Harris <guy@alum.mit.edu> * - * $Id: packet-q2931.c,v 1.7 2000/01/13 05:41:22 guy Exp $ + * $Id: packet-q2931.c,v 1.8 2000/05/11 08:15:36 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@zing.org> @@ -259,7 +259,7 @@ dissect_q2931_shift_ie(const u_char *pd, int offset, int len, non_locking_shift = (info_element == Q2931_IE_BBAND_NLOCKING_SHIFT); codeset = pd[offset] & 0x07; - proto_tree_add_text(tree, offset, 1, "%s shift to codeset %u: %s", + proto_tree_add_text(tree, NullTVB, offset, 1, "%s shift to codeset %u: %s", (non_locking_shift ? "Non-locking" : "Locking"), codeset, val_to_str(codeset, q2931_codeset_vals, "Unknown (0x%02X)")); @@ -347,7 +347,7 @@ dissect_q2931_aal_parameters_ie(const u_char *pd, int offset, int len, if (len == 0) return; aal_type = pd[offset]; - proto_tree_add_text(tree, offset, 1, "AAL type: %s", + proto_tree_add_text(tree, NullTVB, offset, 1, "AAL type: %s", val_to_str(aal_type, q9231_aal_type_vals, "Unknown (0x%02X)")); offset += 1; len -= 1; @@ -361,7 +361,7 @@ dissect_q2931_aal_parameters_ie(const u_char *pd, int offset, int len, */ if (len > 4) len = 4; - proto_tree_add_text(tree, offset, len, + proto_tree_add_text(tree, NullTVB, offset, len, "User defined AAL information: %s", bytes_to_str(&pd[offset], len)); return; @@ -375,7 +375,7 @@ dissect_q2931_aal_parameters_ie(const u_char *pd, int offset, int len, if (len < 2) return; value = pd[offset + 1]; - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "Subtype: %s", val_to_str(value, q9231_aal1_subtype_vals, "Unknown (0x%02X)")); @@ -387,7 +387,7 @@ dissect_q2931_aal_parameters_ie(const u_char *pd, int offset, int len, if (len < 2) return; value = pd[offset + 1]; - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "CBR rate: %s", val_to_str(value, q9231_aal1_cbr_rate_vals, "Unknown (0x%02X)")); @@ -399,7 +399,7 @@ dissect_q2931_aal_parameters_ie(const u_char *pd, int offset, int len, if (len < 3) return; value = pntohs(&pd[offset + 1]); - proto_tree_add_text(tree, offset, 3, + proto_tree_add_text(tree, NullTVB, offset, 3, "Multiplier: %u", value); offset += 3; len -= 3; @@ -409,7 +409,7 @@ dissect_q2931_aal_parameters_ie(const u_char *pd, int offset, int len, if (len < 2) return; value = pd[offset + 1]; - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "Source clock frequency recovery method: %s", val_to_str(value, q2931_aal1_src_clk_rec_meth_vals, "Unknown (0x%02X)")); @@ -421,7 +421,7 @@ dissect_q2931_aal_parameters_ie(const u_char *pd, int offset, int len, if (len < 2) return; value = pd[offset + 1]; - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "Error correction method: %s", val_to_str(value, q2931_aal1_err_correction_method_vals, "Unknown (0x%02X)")); @@ -433,7 +433,7 @@ dissect_q2931_aal_parameters_ie(const u_char *pd, int offset, int len, if (len < 3) return; value = pntohs(&pd[offset + 1]); - proto_tree_add_text(tree, offset, 3, + proto_tree_add_text(tree, NullTVB, offset, 3, "Structured data transfer block size: %u", value); offset += 3; len -= 3; @@ -443,7 +443,7 @@ dissect_q2931_aal_parameters_ie(const u_char *pd, int offset, int len, if (len < 2) return; value = pd[offset + 1]; - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "Partially filled cells method: %u octets", value); offset += 2; len -= 2; @@ -453,7 +453,7 @@ dissect_q2931_aal_parameters_ie(const u_char *pd, int offset, int len, if (len < 3) return; value = pntohs(&pd[offset + 1]); - proto_tree_add_text(tree, offset, 3, + proto_tree_add_text(tree, NullTVB, offset, 3, "Forward maximum CPCS-SDU size: %u", value); offset += 3; len -= 3; @@ -463,7 +463,7 @@ dissect_q2931_aal_parameters_ie(const u_char *pd, int offset, int len, if (len < 3) return; value = pntohs(&pd[offset + 1]); - proto_tree_add_text(tree, offset, 3, + proto_tree_add_text(tree, NullTVB, offset, 3, "Backward maximum CPCS-SDU size: %u", value); offset += 3; len -= 3; @@ -474,7 +474,7 @@ dissect_q2931_aal_parameters_ie(const u_char *pd, int offset, int len, return; low_mid = pntohs(&pd[offset + 1]); high_mid = pntohs(&pd[offset + 3]); - proto_tree_add_text(tree, offset, 3, + proto_tree_add_text(tree, NullTVB, offset, 3, "MID range: %u - %u", low_mid, high_mid); offset += 5; len -= 5; @@ -484,7 +484,7 @@ dissect_q2931_aal_parameters_ie(const u_char *pd, int offset, int len, if (len < 2) return; value = pd[offset + 1]; - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "SSCS type: %s", val_to_str(value, q2931_sscs_type_vals, "Unknown (0x%02X)")); @@ -493,7 +493,7 @@ dissect_q2931_aal_parameters_ie(const u_char *pd, int offset, int len, break; default: /* unknown AAL parameter */ - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Unknown AAL parameter (0x%02X)", identifier); return; /* give up */ @@ -565,7 +565,7 @@ dissect_q2931_atm_cell_rate_ie(const u_char *pd, int offset, int len, value = (pd[offset + 1] << 16) | (pd[offset + 2] << 8) | (pd[offset + 3] << 0); - proto_tree_add_text(tree, offset, 4, + proto_tree_add_text(tree, NullTVB, offset, 4, "%s: %u cell%s/s", val_to_str(identifier, q2931_atm_td_subfield_vals, NULL), @@ -576,7 +576,7 @@ dissect_q2931_atm_cell_rate_ie(const u_char *pd, int offset, int len, case Q2931_ATM_CR_BEST_EFFORT_IND: /* Yes, its value *IS* 0xBE.... */ - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "%s", val_to_str(identifier, q2931_atm_td_subfield_vals, NULL)); @@ -588,20 +588,20 @@ dissect_q2931_atm_cell_rate_ie(const u_char *pd, int offset, int len, if (len < 2) return; value = pd[offset + 1]; - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "%s", val_to_str(identifier, q2931_atm_td_subfield_vals, NULL)); - proto_tree_add_text(tree, offset + 1, 1, + proto_tree_add_text(tree, NullTVB, offset + 1, 1, "%s allowed in forward direction", (value & 0x80) ? "Frame discard" : "No frame discard"); - proto_tree_add_text(tree, offset + 1, 1, + proto_tree_add_text(tree, NullTVB, offset + 1, 1, "%s allowed in backward direction", (value & 0x40) ? "Frame discard" : "No frame discard"); - proto_tree_add_text(tree, offset + 1, 1, + proto_tree_add_text(tree, NullTVB, offset + 1, 1, "Tagging %srequested in backward direction", (value & 0x02) ? "" : "not "); - proto_tree_add_text(tree, offset + 1, 1, + proto_tree_add_text(tree, NullTVB, offset + 1, 1, "Tagging %srequested in forward direction", (value & 0x01) ? "" : "not "); offset += 2; @@ -609,7 +609,7 @@ dissect_q2931_atm_cell_rate_ie(const u_char *pd, int offset, int len, break; default: /* unknown ATM traffic descriptor element */ - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Unknown ATM traffic descriptor element (0x%02X)", identifier); return; /* give up */ @@ -665,7 +665,7 @@ dissect_q2931_bband_bearer_cap_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Bearer class: %s", val_to_str(octet & 0x1F, q2931_bearer_class_vals, "Unknown (0x%02X)")); @@ -676,7 +676,7 @@ dissect_q2931_bband_bearer_cap_ie(const u_char *pd, int offset, int len, return; if (!(octet & Q2931_IE_EXTENSION)) { octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "ATM Transfer Capability: %s", val_to_str(octet & 0x1F, q2931_transfer_capability_vals, "Unknown (0x%02X)")); @@ -687,11 +687,11 @@ dissect_q2931_bband_bearer_cap_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Susceptibility to clipping: %s", val_to_str(octet & 0x60, q2931_susc_clip_vals, "Unknown (0x%02X)")); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "User-plane connection configuration: %s", val_to_str(octet & 0x03, q2931_up_conn_config_vals, "Unknown (0x%02X)")); @@ -717,7 +717,7 @@ dissect_q2931_bband_hi_layer_info_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "High layer information type: %s", val_to_str(octet & 0x7F, q2931_hi_layer_info_type_vals, "Unknown (0x%02X)")); @@ -800,7 +800,7 @@ dissect_q2931_bband_low_layer_info_ie(const u_char *pd, int offset, int len, /* * Layer 1 information. */ - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "User information layer 1 protocol: 0x%02X", octet & 0x1F); offset += 1; @@ -815,7 +815,7 @@ dissect_q2931_bband_low_layer_info_ie(const u_char *pd, int offset, int len, * Layer 2 information. */ uil2_protocol = octet & 0x1F; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "User information layer 2 protocol: %s", val_to_str(uil2_protocol, q2931_uil2_vals, "Unknown (0x%02X)")); @@ -828,11 +828,11 @@ dissect_q2931_bband_low_layer_info_ie(const u_char *pd, int offset, int len, return; octet = pd[offset]; if (uil2_protocol == Q2931_UIL2_USER_SPEC) { - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "User-specified layer 2 protocol information: 0x%02X", octet & 0x7F); } else { - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Mode: %s", val_to_str(octet & 0x60, q2931_mode_vals, "Unknown (0x%02X)")); @@ -845,7 +845,7 @@ dissect_q2931_bband_low_layer_info_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Window size: %u k", octet & 0x7F); offset += 1; len -= 1; @@ -861,7 +861,7 @@ l2_done: * Layer 3 information. */ uil3_protocol = octet & 0x1F; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "User information layer 3 protocol: %s", val_to_str(uil3_protocol, q2931_uil3_vals, "Unknown (0x%02X)")); @@ -882,7 +882,7 @@ l2_done: case Q2931_UIL3_X25_PL: case Q2931_UIL3_ISO_8208: case Q2931_UIL3_X223: - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Mode: %s", val_to_str(octet & 0x60, q2931_mode_vals, "Unknown (0x%02X)")); @@ -894,7 +894,7 @@ l2_done: if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Default packet size: %u", octet & 0x0F); offset += 1; len -= 1; @@ -904,14 +904,14 @@ l2_done: if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Packet window size: %u", octet & 0x7F); offset += 1; len -= 1; break; case Q2931_UIL3_USER_SPEC: - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Default packet size: %u octets", 1 << (octet & 0x0F)); offset += 1; @@ -925,7 +925,7 @@ l2_done: if (len < 2) return; add_l3_info |= (pd[offset + 1] & 0x40) >> 6; - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "Additional layer 3 protocol information: %s", val_to_str(add_l3_info, nlpid_vals, "Unknown (0x%02X)")); @@ -938,7 +938,7 @@ l2_done: len -= 1; organization_code = pd[offset] << 16 | pd[offset+1] << 8 | pd[offset+2]; - proto_tree_add_text(tree, offset, 3, + proto_tree_add_text(tree, NullTVB, offset, 3, "Organization Code: 0x%06X (%s)", organization_code, val_to_str(organization_code, oui_vals, @@ -952,21 +952,21 @@ l2_done: switch (organization_code) { case OUI_ENCAP_ETHER: - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "Ethernet type: %s", val_to_str(pid, etype_vals, "Unknown (0x%04X)")); break; case OUI_ATM_FORUM: - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "LANE Protocol ID: %s", val_to_str(pid, lane_pid_vals, "Unknown (0x%04X)")); break; default: - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "Protocol ID: 0x%04X", pid); break; } @@ -1098,7 +1098,7 @@ dissect_q2931_cause_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Location: %s", val_to_str(octet & 0x0F, q2931_cause_location_vals, "Unknown (0x%X)")); @@ -1109,7 +1109,7 @@ dissect_q2931_cause_ie(const u_char *pd, int offset, int len, return; octet = pd[offset]; cause_value = octet & 0x7F; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Cause value: %s", val_to_str(cause_value, q2931_cause_code_vals, "Unknown (0x%X)")); @@ -1124,13 +1124,13 @@ dissect_q2931_cause_ie(const u_char *pd, int offset, int len, case Q2931_CAUSE_NO_ROUTE_TO_DEST: case Q2931_CAUSE_QOS_UNAVAILABLE: octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Network service: %s", (octet & 0x80) ? "User" : "Provider"); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "%s", (octet & 0x40) ? "Abnormal" : "Normal"); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Condition: %s", val_to_str(octet & 0x03, q2931_cause_condition_vals, "Unknown (0x%X)")); @@ -1138,11 +1138,11 @@ dissect_q2931_cause_ie(const u_char *pd, int offset, int len, case Q2931_CAUSE_CALL_REJECTED: rejection_reason = octet & 0x7C; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Rejection reason: %s", val_to_str(octet & 0x7C, q2931_cause_condition_vals, "Unknown (0x%X)")); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Condition: %s", val_to_str(octet & 0x03, q2931_cause_condition_vals, "Unknown (0x%X)")); @@ -1154,27 +1154,27 @@ dissect_q2931_cause_ie(const u_char *pd, int offset, int len, switch (rejection_reason) { case Q2931_REJ_USER_SPECIFIC: - proto_tree_add_text(tree, offset, len, + proto_tree_add_text(tree, NullTVB, offset, len, "User specific diagnostic: %s", bytes_to_str(&pd[offset], len)); break; case Q2931_REJ_IE_MISSING: - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Missing information element: %s", val_to_str(pd[offset], q2931_info_element_vals, "Unknown (0x%02X)")); break; case Q2931_REJ_IE_INSUFFICIENT: - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Insufficient information element: %s", val_to_str(pd[offset], q2931_info_element_vals, "Unknown (0x%02X)")); break; default: - proto_tree_add_text(tree, offset, len, + proto_tree_add_text(tree, NullTVB, offset, len, "Diagnostic: %s", bytes_to_str(&pd[offset], len)); break; @@ -1206,7 +1206,7 @@ dissect_q2931_cause_ie(const u_char *pd, int offset, int len, case Q2931_CAUSE_IE_NONEX_OR_UNIMPL: case Q2931_CAUSE_INVALID_IE_CONTENTS: do { - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Information element: %s", val_to_str(pd[offset], q2931_info_element_vals, "Unknown (0x%02X)")); @@ -1217,7 +1217,7 @@ dissect_q2931_cause_ie(const u_char *pd, int offset, int len, case Q2931_CAUSE_CELL_RATE_UNAVAIL: do { - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Cell rate subfield identifier: %s", val_to_str(pd[offset], q2931_atm_td_subfield_vals, "Unknown (0x%02X)")); @@ -1229,20 +1229,20 @@ dissect_q2931_cause_ie(const u_char *pd, int offset, int len, case Q2931_CAUSE_CHAN_NONEXISTENT: if (len < 2) return; - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "VPCI: %u", pntohs(&pd[offset])); offset += 2; len -= 2; if (len < 2) return; - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "VCI: %u", pntohs(&pd[offset])); break; case Q2931_CAUSE_MT_NONEX_OR_UNIMPL: case Q2931_CAUSE_MSG_INCOMPAT_W_CS: - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Message type: %s", val_to_str(pd[offset], q2931_message_type_vals, "Unknown (0x%02X)")); @@ -1251,12 +1251,12 @@ dissect_q2931_cause_ie(const u_char *pd, int offset, int len, case Q2931_CAUSE_REC_TIMER_EXP: if (len < 3) return; - proto_tree_add_text(tree, offset, 3, + proto_tree_add_text(tree, NullTVB, offset, 3, "Timer: %.3s", &pd[offset]); break; default: - proto_tree_add_text(tree, offset, len, + proto_tree_add_text(tree, NullTVB, offset, len, "Diagnostics: %s", bytes_to_str(&pd[offset], len)); } @@ -1296,7 +1296,7 @@ dissect_q2931_call_state_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Call state: %s", val_to_str(octet & 0x3F, q2931_call_state_vals, "Unknown (0x%02X)")); @@ -1353,12 +1353,12 @@ dissect_q2931_number_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Type of number: %s", val_to_str(octet & 0x70, q2931_number_type_vals, "Unknown (0x%02X)")); numbering_plan = octet & 0x0F; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Numbering plan: %s", val_to_str(numbering_plan, q2931_numbering_plan_vals, "Unknown (0x%02X)")); @@ -1369,11 +1369,11 @@ dissect_q2931_number_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Presentation indicator: %s", val_to_str(octet & 0x60, q2931_presentation_indicator_vals, "Unknown (0x%X)")); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Screening indicator: %s", val_to_str(octet & 0x03, q2931_screening_indicator_vals, "Unknown (0x%X)")); @@ -1386,24 +1386,24 @@ dissect_q2931_number_ie(const u_char *pd, int offset, int len, switch (numbering_plan) { case Q2931_ISDN_NUMBERING: - proto_tree_add_text(tree, offset, len, "Number: %.*s", + proto_tree_add_text(tree, NullTVB, offset, len, "Number: %.*s", len, &pd[offset]); break; case Q2931_NSAP_ADDRESSING: if (len < 20) { - proto_tree_add_text(tree, offset, len, + proto_tree_add_text(tree, NullTVB, offset, len, "Number (too short): %s", bytes_to_str(&pd[offset], len)); return; } - ti = proto_tree_add_text(tree, offset, len, "Number"); + ti = proto_tree_add_text(tree, NullTVB, offset, len, "Number"); nsap_tree = proto_item_add_subtree(ti, ett_q2931_nsap); dissect_atm_nsap(pd, offset, len, nsap_tree); break; default: - proto_tree_add_text(tree, offset, len, "Number: %s", + proto_tree_add_text(tree, NullTVB, offset, len, "Number: %s", bytes_to_str(&pd[offset], len)); break; } @@ -1434,11 +1434,11 @@ dissect_q2931_party_subaddr_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Type of subaddress: %s", val_to_str(octet & 0x70, q2931_subaddress_type_vals, "Unknown (0x%02X)")); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Odd/even indicator: %s", val_to_str(octet & 0x10, q2931_odd_even_indicator_vals, NULL)); @@ -1447,7 +1447,7 @@ dissect_q2931_party_subaddr_ie(const u_char *pd, int offset, int len, if (len == 0) return; - proto_tree_add_text(tree, offset, len, "Subaddress: %s", + proto_tree_add_text(tree, NullTVB, offset, len, "Subaddress: %s", bytes_to_str(&pd[offset], len)); } @@ -1476,11 +1476,11 @@ dissect_q2931_connection_identifier_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "VP-associated signalling: %s", val_to_str(octet & 0x18, q2931_vp_associated_signalling_vals, "Unknown (0x%02X)")); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Preferred/exclusive: %s", val_to_str(octet & 0x07, q2931_preferred_exclusive_vals, "Unknown (0x%02X)")); @@ -1489,14 +1489,14 @@ dissect_q2931_connection_identifier_ie(const u_char *pd, int offset, int len, if (len < 2) return; - proto_tree_add_text(tree, offset, 2, "VPCI: %u", + proto_tree_add_text(tree, NullTVB, offset, 2, "VPCI: %u", pntohs(&pd[offset])); offset += 2; len -= 2; if (len < 2) return; - proto_tree_add_text(tree, offset, 2, "VCI: %u", + proto_tree_add_text(tree, NullTVB, offset, 2, "VCI: %u", pntohs(&pd[offset])); } @@ -1516,23 +1516,23 @@ dissect_q2931_e2e_transit_delay_ie(const u_char *pd, int offset, int len, switch (identifier) { case 0x01: /* Cumulative transit delay identifier */ - proto_tree_add_text(tree, offset, 3, + proto_tree_add_text(tree, NullTVB, offset, 3, "Cumulative transit delay: %u ms", value); break; case 0x03: /* Maximum transit delay identifier */ if (value == 0xFFFF) { - proto_tree_add_text(tree, offset, 3, + proto_tree_add_text(tree, NullTVB, offset, 3, "Any end-to-end transit delay value acceptable"); } else { - proto_tree_add_text(tree, offset, 3, + proto_tree_add_text(tree, NullTVB, offset, 3, "Maximum end-to-end transit delay: %u ms", value); } break; default: /* Unknown transit delay identifier */ - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Unknown transit delay identifier (0x%02X)", identifier); return; /* give up */ @@ -1557,7 +1557,7 @@ dissect_q2931_qos_parameter_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "QOS class forward: %s", val_to_str(octet, q2931_qos_parameter_vals, "Unknown (0x%02X)")); @@ -1567,7 +1567,7 @@ dissect_q2931_qos_parameter_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "QOS class backward: %s", val_to_str(octet, q2931_qos_parameter_vals, "Unknown (0x%02X)")); @@ -1590,7 +1590,7 @@ dissect_q2931_bband_rpt_indicator(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Broadband repeat indicator: %s", val_to_str(octet & 0x0F, q2931_bband_rpt_indicator_vals, "Unknown (0x%02X)")); @@ -1615,7 +1615,7 @@ dissect_q2931_restart_indicator(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Restart indicator: %s", val_to_str(octet & 0x07, q2931_class_vals, "Unknown (0x%02X)")); @@ -1635,14 +1635,14 @@ dissect_q2931_bband_sending_compl_ie(const u_char *pd, int offset, int len, switch (identifier) { case 0xA1: /* Sending complete indication */ - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Broadband sending complete indication"); offset += 1; len -= 1; break; default: /* unknown broadband sending complete element */ - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Unknown broadband sending complete element (0x%02X)", identifier); return; /* give up */ @@ -1676,11 +1676,11 @@ dissect_q2931_transit_network_sel_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Type of network identification: %s", val_to_str(octet & 0x70, q2931_netid_type_vals, "Unknown (0x%02X)")); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Network identification plan: %s", val_to_str(octet & 0x0F, q2931_netid_plan_vals, "Unknown (0x%02X)")); @@ -1689,7 +1689,7 @@ dissect_q2931_transit_network_sel_ie(const u_char *pd, int offset, int len, if (len == 0) return; - proto_tree_add_text(tree, offset, len, + proto_tree_add_text(tree, NullTVB, offset, len, "Network identification: %.*s", len, &pd[offset]); } @@ -1731,14 +1731,14 @@ dissect_q2931_oam_traffic_descriptor_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Shaping indicator: %s", val_to_str(octet & 0x60, q2931_shaping_indicator_vals, "Unknown (0x%02X)")); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Use of end-to-end OAM F5 flow is %s", (octet & 0x10) ? "mandatory" : "optional"); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "User-Network fault management indicator: %s", val_to_str(octet & 0x07, q2931_user_net_fault_mgmt_vals, "Unknown (0x%02X)")); @@ -1748,11 +1748,11 @@ dissect_q2931_oam_traffic_descriptor_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Forward end-to-end OAM F5 flow indicator: %s", val_to_str(octet & 0x70, q2931_fwd_e2e_oam_f5_flow_indicator_vals, "Unknown (0x%02X)")); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Backward end-to-end OAM F5 flow indicator: %s", val_to_str(octet & 0x07, q2931_bwd_e2e_oam_f5_flow_indicator_vals, "Unknown (0x%02X)")); @@ -1776,7 +1776,7 @@ dissect_q2931_endpoint_reference_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Endpoint reference type: %s", val_to_str(octet, q2931_endpoint_reference_type_vals, "Unknown (0x%02X)")); @@ -1786,11 +1786,11 @@ dissect_q2931_endpoint_reference_ie(const u_char *pd, int offset, int len, if (len < 2) return; value = pntohs(&pd[offset]); - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "Endpoint reference flag: %s", (value & 0x8000) ? "Message sent to side that originates the endpoint reference" : "Message sent from side that originates the endpoint reference"); - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "Endpoint reference identifier value: %u", value & 0x7FFF); } @@ -1817,7 +1817,7 @@ dissect_q2931_endpoint_state_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Endpoint reference party-state: %s", val_to_str(octet & 0x3F, q2931_endpoint_reference_party_state_vals, "Unknown (0x%02X)")); @@ -1935,34 +1935,34 @@ dissect_q2931_ie(const u_char *pd, int offset, int len, proto_tree *tree, proto_tree *ie_tree; proto_tree *ie_ext_tree; - ti = proto_tree_add_text(tree, offset, 1+1+2+len, "%s", + ti = proto_tree_add_text(tree, NullTVB, offset, 1+1+2+len, "%s", val_to_str(info_element, q2931_info_element_vals, "Unknown information element (0x%02X)")); ie_tree = proto_item_add_subtree(ti, ett_q2931_ie); - proto_tree_add_text(ie_tree, offset, 1, "Information element: %s", + proto_tree_add_text(ie_tree, NullTVB, offset, 1, "Information element: %s", val_to_str(info_element, q2931_info_element_vals, "Unknown (0x%02X)")); - ti = proto_tree_add_text(ie_tree, offset + 1, 1, + ti = proto_tree_add_text(ie_tree, NullTVB, offset + 1, 1, "Information element extension: 0x%02x", info_element_ext); ie_ext_tree = proto_item_add_subtree(ti, ett_q2931_ie_ext); - proto_tree_add_text(ie_ext_tree, offset + 1, 1, + proto_tree_add_text(ie_ext_tree, NullTVB, offset + 1, 1, decode_enumerated_bitfield(info_element_ext, Q2931_IE_COMPAT_CODING_STD, 8, coding_std_vals, "Coding standard: %s")); - proto_tree_add_text(ie_ext_tree, offset + 1, 1, + proto_tree_add_text(ie_ext_tree, NullTVB, offset + 1, 1, decode_boolean_bitfield(info_element_ext, Q2931_IE_COMPAT_FOLLOW_INST, 8, "Follow explicit error handling instructions", "Regular error handling procedures apply")); if (info_element_ext & Q2931_IE_COMPAT_FOLLOW_INST) { - proto_tree_add_text(ie_ext_tree, offset + 1, 1, + proto_tree_add_text(ie_ext_tree, NullTVB, offset + 1, 1, decode_enumerated_bitfield(info_element_ext, Q2931_IE_COMPAT_ACTION_IND, 8, ie_action_ind_vals, "Action indicator: %s")); } - proto_tree_add_text(ie_tree, offset + 2, 2, "Length: %u", len); + proto_tree_add_text(ie_tree, NullTVB, offset + 2, 2, "Length: %u", len); if ((info_element_ext & Q2931_IE_COMPAT_CODING_STD) == Q2931_ITU_STANDARDIZED_CODING) { @@ -1973,7 +1973,7 @@ dissect_q2931_ie(const u_char *pd, int offset, int len, proto_tree *tree, * We don't know how it's encoded, so just * dump it as data and be done with it. */ - proto_tree_add_text(ie_tree, offset + 4, len, + proto_tree_add_text(ie_tree, NullTVB, offset + 4, len, "Data: %s", bytes_to_str(&pd[offset + 4], len)); } } @@ -1999,22 +1999,22 @@ dissect_q2931(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) col_add_str(fd, COL_PROTOCOL, "Q.2931"); if (tree) { - ti = proto_tree_add_item(tree, proto_q2931, offset, + ti = proto_tree_add_item(tree, proto_q2931, NullTVB, offset, END_OF_FRAME, NULL); q2931_tree = proto_item_add_subtree(ti, ett_q2931); - proto_tree_add_item(q2931_tree, hf_q2931_discriminator, offset, 1, pd[offset]); + proto_tree_add_item(q2931_tree, hf_q2931_discriminator, NullTVB, offset, 1, pd[offset]); } offset += 1; call_ref_len = pd[offset] & 0xF; /* XXX - do as a bit field? */ if (q2931_tree != NULL) - proto_tree_add_item(q2931_tree, hf_q2931_call_ref_len, offset, 1, call_ref_len); + proto_tree_add_item(q2931_tree, hf_q2931_call_ref_len, NullTVB, offset, 1, call_ref_len); offset += 1; if (call_ref_len != 0) { /* XXX - split this into flag and value */ memcpy(call_ref, &pd[offset], call_ref_len); if (q2931_tree != NULL) - proto_tree_add_item(q2931_tree, hf_q2931_call_ref, offset, call_ref_len, call_ref); + proto_tree_add_item(q2931_tree, hf_q2931_call_ref, NullTVB, offset, call_ref_len, call_ref); offset += call_ref_len; } message_type = pd[offset]; @@ -2024,18 +2024,18 @@ dissect_q2931(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) "Unknown message type (0x%02X)")); } if (q2931_tree != NULL) - proto_tree_add_item(q2931_tree, hf_q2931_message_type, offset, 1, message_type); + proto_tree_add_item(q2931_tree, hf_q2931_message_type, NullTVB, offset, 1, message_type); offset += 1; message_type_ext = pd[offset]; if (q2931_tree != NULL) { - ti = proto_tree_add_item(q2931_tree, hf_q2931_message_type_ext, + ti = proto_tree_add_item(q2931_tree, hf_q2931_message_type_ext, NullTVB, offset, 1, message_type_ext); ext_tree = proto_item_add_subtree(ti, ett_q2931_ext); - proto_tree_add_item(ext_tree, hf_q2931_message_flag, + proto_tree_add_item(ext_tree, hf_q2931_message_flag, NullTVB, offset, 1, message_type_ext); if (message_type_ext & Q2931_MSG_TYPE_EXT_FOLLOW_INST) { - proto_tree_add_item(ext_tree, hf_q2931_message_action_indicator, + proto_tree_add_item(ext_tree, hf_q2931_message_action_indicator, NullTVB, offset, 1, message_type_ext); } } @@ -2043,7 +2043,7 @@ dissect_q2931(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) message_len = pntohs(&pd[offset]); if (q2931_tree != NULL) - proto_tree_add_item(q2931_tree, hf_q2931_message_len, offset, 2, message_len); + proto_tree_add_item(q2931_tree, hf_q2931_message_len, NullTVB, offset, 2, message_len); offset += 2; /* |