aboutsummaryrefslogtreecommitdiffstats
path: root/packet-q2931.c
diff options
context:
space:
mode:
authorGilbert Ramirez <gram@alumni.rice.edu>2000-05-11 08:18:09 +0000
committerGilbert Ramirez <gram@alumni.rice.edu>2000-05-11 08:18:09 +0000
commit292e38e2c61edcd14bfa30ca3c72bacda1bcbe32 (patch)
treedb4edef02456a48d0f6d505166ac7d70f6c0f644 /packet-q2931.c
parent162800efb308901e0c302517be01226130e39b19 (diff)
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.c234
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;
/*