diff options
author | Gerasimos Dimitriadis <dimeg@intracom.gr> | 2009-11-23 20:23:30 +0000 |
---|---|---|
committer | Gerasimos Dimitriadis <dimeg@intracom.gr> | 2009-11-23 20:23:30 +0000 |
commit | 029f3641ae1911536400a750bbdc341041a2109a (patch) | |
tree | 331b411078be29a364d1d1450f1e7128f347e6d2 | |
parent | 5664dac535fa5f52742c94a0e9a14fb6ee25df7c (diff) |
Basic support for the DTAP User-User IE; print bitfields in a way more
similar to proto_tree_add_bits_item(); Minor comment edits
svn path=/trunk/; revision=31057
-rw-r--r-- | epan/dissectors/packet-gsm_a_bssmap.c | 60 | ||||
-rw-r--r-- | epan/dissectors/packet-gsm_a_common.c | 24 | ||||
-rw-r--r-- | epan/dissectors/packet-gsm_a_dtap.c | 217 |
3 files changed, 162 insertions, 139 deletions
diff --git a/epan/dissectors/packet-gsm_a_bssmap.c b/epan/dissectors/packet-gsm_a_bssmap.c index e741feaa2a..145a3ce7c3 100644 --- a/epan/dissectors/packet-gsm_a_bssmap.c +++ b/epan/dissectors/packet-gsm_a_bssmap.c @@ -594,14 +594,14 @@ be_cic(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *ad other_decode_bitfield_value(a_bigbuf, value, 0xffe0, 16); proto_tree_add_text(tree, tvb, curr_offset, 2, - "%s : PCM Multiplexer: %u", + "%s = PCM Multiplexer: %u", a_bigbuf, (value & 0xffe0) >> 5); other_decode_bitfield_value(a_bigbuf, value, 0x001f, 16); proto_tree_add_text(tree, tvb, curr_offset, 2, - "%s : Timeslot: %u", + "%s = Timeslot: %u", a_bigbuf, value & 0x001f); @@ -683,14 +683,14 @@ be_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_ other_decode_bitfield_value(a_bigbuf, oct, 0x70, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : Cause Class: %s", + "%s = Cause Class: %s", a_bigbuf, str); other_decode_bitfield_value(a_bigbuf, oct, 0x0f, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : National Cause", + "%s = National Cause", a_bigbuf); curr_offset++; @@ -710,7 +710,7 @@ be_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_ other_decode_bitfield_value(a_bigbuf, oct, 0x7f, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : Cause (MSB): %u", + "%s = Cause (MSB): %u", a_bigbuf, ((oct & 0x7f) << 8) | value); @@ -718,7 +718,7 @@ be_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_ other_decode_bitfield_value(a_bigbuf, value, 0xff, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : Cause (LSB)", + "%s = Cause (LSB)", a_bigbuf); curr_offset++; @@ -807,7 +807,7 @@ be_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_ other_decode_bitfield_value(a_bigbuf, oct, 0x7f, 8); proto_tree_add_uint_format(tree, hf_gsm_a_bssmap_cause, tvb, curr_offset, 1, oct & 0x7f, - "%s : Cause: (%u) %s", + "%s = Cause: (%u) %s", a_bigbuf, oct & 0x7f, str); @@ -902,14 +902,14 @@ be_l3_header_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc other_decode_bitfield_value(a_bigbuf, oct, 0x08, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : TI flag: %s", + "%s = TI flag: %s", a_bigbuf, ((oct & 0x08) ? "allocated by receiver" : "allocated by sender")); other_decode_bitfield_value(a_bigbuf, oct, 0x07, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : TIO: %u", + "%s = TIO: %u", a_bigbuf, oct & 0x07); @@ -943,7 +943,7 @@ be_enc_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *a other_decode_bitfield_value(a_bigbuf, oct, mask, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : GSM A5/%u: %spermitted", + "%s = GSM A5/%u: %spermitted", a_bigbuf, alg_id, (mask & oct) ? "" : "not "); @@ -956,7 +956,7 @@ be_enc_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *a other_decode_bitfield_value(a_bigbuf, oct, mask, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : No encryption: %spermitted", + "%s = No encryption: %spermitted", a_bigbuf, (mask & oct) ? "" : "not "); @@ -1009,7 +1009,7 @@ be_chan_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar * other_decode_bitfield_value(a_bigbuf, oct, 0x0f, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : Speech/Data Indicator: %s", + "%s = Speech/Data Indicator: %s", a_bigbuf, str); @@ -1078,7 +1078,7 @@ be_chan_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar * other_decode_bitfield_value(a_bigbuf, oct, 0x7f, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : Speech version identifier: %s", + "%s = Speech version identifier: %s", a_bigbuf, str); @@ -1149,7 +1149,7 @@ be_chan_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar * other_decode_bitfield_value(a_bigbuf, oct, 0x40, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : %sTransparent service", + "%s = %sTransparent service", a_bigbuf, (oct & 0x40) ? "Non-" : ""); @@ -1233,7 +1233,7 @@ be_chan_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar * other_decode_bitfield_value(a_bigbuf, oct, 0x3f, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : Rate: %s", + "%s = Rate: %s", a_bigbuf, str); @@ -1252,7 +1252,7 @@ be_chan_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar * other_decode_bitfield_value(a_bigbuf, oct, 0x08, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : 14.5 kbit/s (TCH/F14.4) %sallowed", + "%s = 14.5 kbit/s (TCH/F14.4) %sallowed", a_bigbuf, (oct & 0x08) ? "" : "not "); @@ -1261,14 +1261,14 @@ be_chan_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar * other_decode_bitfield_value(a_bigbuf, oct, 0x02, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : 12.0 kbit/s (TCH F/9.6) %sallowed", + "%s = 12.0 kbit/s (TCH F/9.6) %sallowed", a_bigbuf, (oct & 0x02) ? "" : "not "); other_decode_bitfield_value(a_bigbuf, oct, 0x01, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : 6.0 kbit/s (TCH F/4.8) %sallowed", + "%s = 6.0 kbit/s (TCH F/4.8) %sallowed", a_bigbuf, (oct & 0x01) ? "" : "not "); } @@ -1277,7 +1277,7 @@ be_chan_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar * other_decode_bitfield_value(a_bigbuf, oct, 0x08, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : 14.5/14.4 kbit/s (TCH/F14.4) %sallowed", + "%s = 14.5/14.4 kbit/s (TCH/F14.4) %sallowed", a_bigbuf, (oct & 0x08) ? "" : "not "); @@ -1286,14 +1286,14 @@ be_chan_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar * other_decode_bitfield_value(a_bigbuf, oct, 0x02, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : 12.0/9.6 kbit/s (TCH F/9.6) %sallowed", + "%s = 12.0/9.6 kbit/s (TCH F/9.6) %sallowed", a_bigbuf, (oct & 0x02) ? "" : "not "); other_decode_bitfield_value(a_bigbuf, oct, 0x01, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : 6.0/4.8 kbit/s (TCH F/4.8) %sallowed", + "%s = 6.0/4.8 kbit/s (TCH F/4.8) %sallowed", a_bigbuf, (oct & 0x01) ? "" : "not "); } @@ -1609,7 +1609,7 @@ be_prio(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *a other_decode_bitfield_value(a_bigbuf, oct, 0x40, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : Preemption Capability Indicator (PCI): this allocation request %s preempt an existing connection", + "%s = Preemption Capability Indicator (PCI): this allocation request %s preempt an existing connection", a_bigbuf, (oct & 0x40) ? "may" : "shall not"); @@ -1625,7 +1625,7 @@ be_prio(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *a other_decode_bitfield_value(a_bigbuf, oct, 0x3c, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : Priority Level: (%u) %s", + "%s = Priority Level: (%u) %s", a_bigbuf, (oct & 0x3c) >> 2, str); @@ -1636,14 +1636,14 @@ be_prio(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *a other_decode_bitfield_value(a_bigbuf, oct, 0x02, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : Queuing Allowed Indicator (QA): queuing %sallowed", + "%s = Queuing Allowed Indicator (QA): queuing %sallowed", a_bigbuf, (oct & 0x02) ? "" : "not "); other_decode_bitfield_value(a_bigbuf, oct, 0x01, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : Preemption Vulnerability Indicator (PVI): this connection %s be preempted by another allocation request", + "%s = Preemption Vulnerability Indicator (PVI): this connection %s be preempted by another allocation request", a_bigbuf, (oct & 0x01) ? "might" : "shall not"); @@ -1800,7 +1800,7 @@ be_down_dtx_flag(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, other_decode_bitfield_value(a_bigbuf, oct, 0x01, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : BSS is %s to activate DTX in the downlink direction", + "%s = BSS is %s to activate DTX in the downlink direction", a_bigbuf, (oct & 0x01) ? "forbidden" : "allowed"); @@ -2164,7 +2164,7 @@ be_ciph_resp_mode(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_ other_decode_bitfield_value(a_bigbuf, oct, 0x01, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : IMEISV must %sbe included by the mobile station", + "%s = IMEISV must %sbe included by the mobile station", a_bigbuf, (oct & 0x01) ? "" : "not "); @@ -2358,7 +2358,7 @@ be_for_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar other_decode_bitfield_value(a_bigbuf, oct, 0x0f, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : %s", + "%s = %s", a_bigbuf, str); @@ -2503,7 +2503,7 @@ be_que_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar other_decode_bitfield_value(a_bigbuf, oct, 0x02, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : qri: it is recommended %sto allow queuing", + "%s = qri: it is recommended %sto allow queuing", a_bigbuf, (oct & 0x02) ? "" : "not "); @@ -2562,7 +2562,7 @@ be_speech_ver(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gc other_decode_bitfield_value(a_bigbuf, oct, 0x7f, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : Speech version identifier: %s", + "%s = Speech version identifier: %s", a_bigbuf, str); diff --git a/epan/dissectors/packet-gsm_a_common.c b/epan/dissectors/packet-gsm_a_common.c index 9763d36f78..a94de68562 100644 --- a/epan/dissectors/packet-gsm_a_common.c +++ b/epan/dissectors/packet-gsm_a_common.c @@ -1187,7 +1187,7 @@ guint16 elem_tv_short(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type other_decode_bitfield_value(buf, oct, 0xf0, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Element ID", + "%s = Element ID", buf); if (elem_funcs[idx] == NULL) @@ -1752,7 +1752,7 @@ de_mid(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_st other_decode_bitfield_value(a_bigbuf, oct, 0xf0, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : Unused", + "%s = Unused", a_bigbuf); proto_tree_add_item(tree, hf_gsm_a_odd_even_ind, tvb, curr_offset, 1, FALSE); @@ -1780,7 +1780,7 @@ de_mid(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_st other_decode_bitfield_value(a_bigbuf, oct, 0xf0, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : Identity Digit 1: %c", + "%s = Identity Digit 1: %c", a_bigbuf, Dgt1_9_bcd.out[(oct & 0xf0) >> 4]); @@ -1825,7 +1825,7 @@ de_mid(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_st other_decode_bitfield_value(a_bigbuf, oct, 0xf0, 8); proto_tree_add_text(tree, tvb, curr_offset - 1, 1, - "%s : Filler", + "%s = Filler", a_bigbuf); } break; @@ -1834,7 +1834,7 @@ de_mid(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_st other_decode_bitfield_value(a_bigbuf, oct, 0xf0, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : Identity Digit 1: %c", + "%s = Identity Digit 1: %c", a_bigbuf, Dgt1_9_bcd.out[(oct & 0xf0) >> 4]); @@ -1867,7 +1867,7 @@ de_mid(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_st other_decode_bitfield_value(a_bigbuf, oct, 0xf0, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : Unused", + "%s = Unused", a_bigbuf); proto_tree_add_item(tree, hf_gsm_a_odd_even_ind, tvb, curr_offset, 1, FALSE); @@ -2722,21 +2722,21 @@ de_d_gb_call_ref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, other_decode_bitfield_value(a_bigbuf, value, 0xffffffe0, 32); proto_tree_add_text(tree, tvb, curr_offset, 4, - "%s : Group or Broadcast call reference: %u (0x%04x)", + "%s = Group or Broadcast call reference: %u (0x%04x)", a_bigbuf, (value & 0xffffffe0) >> 5, (value & 0xffffffe0) >> 5); other_decode_bitfield_value(a_bigbuf, value, 0x00000010, 32); proto_tree_add_text(tree, tvb, curr_offset, 4, - "%s : SF Service Flag: %s", + "%s = SF Service Flag: %s", a_bigbuf, (value & 0x00000010) ? "VGCS (Group call reference)" : "VBS (Broadcast call reference)"); other_decode_bitfield_value(a_bigbuf, value, 0x00000008, 32); proto_tree_add_text(tree, tvb, curr_offset, 4, - "%s : AF Acknowledgement Flag: acknowledgment is %srequired", + "%s = AF Acknowledgement Flag: acknowledgment is %srequired", a_bigbuf, (value & 0x00000008) ? "" : "not "); @@ -2756,7 +2756,7 @@ de_d_gb_call_ref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, other_decode_bitfield_value(a_bigbuf, value, 0x00000007, 32); proto_tree_add_text(tree, tvb, curr_offset, 4, - "%s : Call Priority: %s", + "%s = Call Priority: %s", a_bigbuf, str); @@ -2766,7 +2766,7 @@ de_d_gb_call_ref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, other_decode_bitfield_value(a_bigbuf, oct, 0xf0, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : Ciphering Information", + "%s = Ciphering Information", a_bigbuf); proto_tree_add_bits_item(tree, hf_gsm_a_spare_bits, tvb, (curr_offset<<3)+4, 4, FALSE); @@ -2813,7 +2813,7 @@ de_pd_sapi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar other_decode_bitfield_value(a_bigbuf, oct, 0x30, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : SAPI (Service Access Point Identifier): %s", + "%s = SAPI (Service Access Point Identifier): %s", a_bigbuf, str); diff --git a/epan/dissectors/packet-gsm_a_dtap.c b/epan/dissectors/packet-gsm_a_dtap.c index 4f5943586f..00d19af275 100644 --- a/epan/dissectors/packet-gsm_a_dtap.c +++ b/epan/dissectors/packet-gsm_a_dtap.c @@ -58,7 +58,8 @@ * Core network protocols; * Stage 3 * (3GPP TS 24.008 version 6.7.0 Release 6) - * (3GPP TS 24.008 version 6.8.0 Release 6) + * (3GPP TS 24.008 version 6.8.0 Release 6) + * * Reference [9] * Mobile radio interface Layer 3 specification; * Core network protocols; @@ -451,6 +452,7 @@ static int hf_gsm_a_dtap_location = -1; static int hf_gsm_a_dtap_progress_description = -1; static int hf_gsm_a_dtap_afi = -1; static int hf_gsm_a_dtap_rej_cause = -1; +static int hf_gsm_a_dtap_u2u_prot_discr = -1; /* Initialize the subtree pointers */ static gint ett_dtap_msg = -1; @@ -666,14 +668,14 @@ de_network_name(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha other_decode_bitfield_value(a_bigbuf, oct, 0x70, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : Coding Scheme: %s", + "%s = Coding Scheme: %s", a_bigbuf, str); other_decode_bitfield_value(a_bigbuf, oct, 0x08, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : Add CI: The MS should %s", + "%s = Add CI: The MS should %s", a_bigbuf, (oct & 0x08) ? "add the letters for the Country's Initials and a separator (e.g. a space) to the text string" : @@ -697,7 +699,7 @@ de_network_name(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha other_decode_bitfield_value(a_bigbuf, oct, 0x07, 8); item = proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : Number of spare bits in last octet: %s", + "%s = Number of spare bits in last octet: %s", a_bigbuf, str); @@ -982,7 +984,7 @@ de_day_saving_time(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g other_decode_bitfield_value(a_bigbuf, oct, 0x03, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : %s", + "%s = %s", a_bigbuf, str); @@ -1103,7 +1105,7 @@ de_aux_states(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar other_decode_bitfield_value(a_bigbuf, oct, 0x0c, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : Hold auxiliary state: %s", + "%s = Hold auxiliary state: %s", a_bigbuf, str); @@ -1120,7 +1122,7 @@ de_aux_states(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar other_decode_bitfield_value(a_bigbuf, oct, 0x03, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : Multi party auxiliary state: %s", + "%s = Multi party auxiliary state: %s", a_bigbuf, str); @@ -1274,21 +1276,21 @@ de_bearer_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar other_decode_bitfield_value(a_bigbuf, oct, 0x60, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Radio channel requirement: %s", + "%s = Radio channel requirement: %s", a_bigbuf, str); other_decode_bitfield_value(a_bigbuf, oct, 0x10, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Coding standard: %s", + "%s = Coding standard: %s", a_bigbuf, (oct & 0x10) ? "reserved" : "GSM standardized coding"); other_decode_bitfield_value(a_bigbuf, oct, 0x08, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Transfer mode: %s", + "%s = Transfer mode: %s", a_bigbuf, (oct & 0x08) ? "packet" : "circuit"); @@ -1326,7 +1328,7 @@ de_bearer_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar other_decode_bitfield_value(a_bigbuf, oct, 0x40, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Coding: octet used for %s", + "%s = Coding: octet used for %s", a_bigbuf, (oct & 0x40) ? "other extension of octet 3" : "extension of information transfer capability"); @@ -1361,7 +1363,7 @@ de_bearer_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar other_decode_bitfield_value(a_bigbuf, oct, 0x40, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Compression: data compression %s%s", + "%s = Compression: data compression %s%s", a_bigbuf, (oct & 0x40) ? "" : "not ", is_uplink ? "allowed" : "possible"); @@ -1378,28 +1380,28 @@ de_bearer_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar other_decode_bitfield_value(a_bigbuf, oct, 0x30, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Structure: %s", + "%s = Structure: %s", a_bigbuf, str); other_decode_bitfield_value(a_bigbuf, oct, 0x08, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Duplex mode: %s", + "%s = Duplex mode: %s", a_bigbuf, (oct & 0x08) ? "Full" : "Half"); other_decode_bitfield_value(a_bigbuf, oct, 0x04, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Configuration: %s", + "%s = Configuration: %s", a_bigbuf, (oct & 0x04) ? "Reserved" : "Point-to-point"); other_decode_bitfield_value(a_bigbuf, oct, 0x02, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : NIRR: %s", + "%s = NIRR: %s", a_bigbuf, (oct & 0x02) ? "Data up to and including 4.8 kb/s, full rate, non-transparent, 6 kb/s radio interface rate is requested" : @@ -1408,7 +1410,7 @@ de_bearer_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar other_decode_bitfield_value(a_bigbuf, oct, 0x01, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Establishment: %s", + "%s = Establishment: %s", a_bigbuf, (oct & 0x01) ? "Reserved" : "Demand"); @@ -1434,7 +1436,7 @@ de_bearer_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar other_decode_bitfield_value(a_bigbuf, oct, 0x60, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Access Identity: %s", + "%s = Access Identity: %s", a_bigbuf, (oct & 0x60) ? "Reserved" : "Octet identifier"); @@ -1451,7 +1453,7 @@ de_bearer_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar other_decode_bitfield_value(a_bigbuf, oct, 0x18, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Rate Adaption: %s", + "%s = Rate Adaption: %s", a_bigbuf, str); @@ -1471,7 +1473,7 @@ de_bearer_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar other_decode_bitfield_value(a_bigbuf, oct, 0x07, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Signalling Access Protocol: %s", + "%s = Signalling Access Protocol: %s", a_bigbuf, str); @@ -1499,7 +1501,7 @@ de_bearer_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar other_decode_bitfield_value(a_bigbuf, oct, 0x60, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Other ITC: %s", + "%s = Other ITC: %s", a_bigbuf, (oct & 0x60) ? "Reserved" : "Restricted digital information"); @@ -1516,7 +1518,7 @@ de_bearer_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar other_decode_bitfield_value(a_bigbuf, oct, 0x18, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Other Rate Adaption: %s", + "%s = Other Rate Adaption: %s", a_bigbuf, str); @@ -1546,42 +1548,42 @@ de_bearer_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar other_decode_bitfield_value(a_bigbuf, oct, 0x40, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Rate Adaption Header: %sincluded", + "%s = Rate Adaption Header: %sincluded", a_bigbuf, (oct & 0x40) ? "" : "not "); other_decode_bitfield_value(a_bigbuf, oct, 0x20, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Multiple frame establishment support in data link: %s", + "%s = Multiple frame establishment support in data link: %s", a_bigbuf, (oct & 0x20) ? "Supported" : "Not supported, only UI frames allowed"); other_decode_bitfield_value(a_bigbuf, oct, 0x10, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Mode of operation: %s", + "%s = Mode of operation: %s", a_bigbuf, (oct & 0x10) ? "Protocol sensitive" : "Bit transparent"); other_decode_bitfield_value(a_bigbuf, oct, 0x08, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Logical link identifier negotiation: %s", + "%s = Logical link identifier negotiation: %s", a_bigbuf, (oct & 0x08) ? "Full protocol negotiation" : "Default, LLI=256 only"); other_decode_bitfield_value(a_bigbuf, oct, 0x04, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Assignor/Assignee: Message originator is '%s'", + "%s = Assignor/Assignee: Message originator is '%s'", a_bigbuf, (oct & 0x04) ? "assignor only" : "default assignee"); other_decode_bitfield_value(a_bigbuf, oct, 0x02, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : In band/Out of band negotiation: Negotiation is done %s", + "%s = In band/Out of band negotiation: Negotiation is done %s", a_bigbuf, (oct & 0x02) ? "with USER INFORMATION messages on a temporary signalling connection" : @@ -1613,21 +1615,21 @@ bc_octet_6: other_decode_bitfield_value(a_bigbuf, oct, 0x60, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Layer 1 Identity: %s", + "%s = Layer 1 Identity: %s", a_bigbuf, ((oct & 0x60) == 0x20) ? "Octet identifier" : "Reserved"); other_decode_bitfield_value(a_bigbuf, oct, 0x1e, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : User information layer 1 protocol: %s", + "%s = User information layer 1 protocol: %s", a_bigbuf, (oct & 0x1e) ? "Reserved" : "Default layer 1 protocol"); other_decode_bitfield_value(a_bigbuf, oct, 0x01, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Synchronous/asynchronous: %s", + "%s = Synchronous/asynchronous: %s", a_bigbuf, (oct & 0x01) ? "Asynchronous" : "Synchronous"); @@ -1655,21 +1657,21 @@ bc_octet_6: other_decode_bitfield_value(a_bigbuf, oct, 0x40, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Number of Stop Bits: %s", + "%s = Number of Stop Bits: %s", a_bigbuf, (oct & 0x40) ? "2" : "1"); other_decode_bitfield_value(a_bigbuf, oct, 0x20, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Negotiation: %s", + "%s = Negotiation: %s", a_bigbuf, (oct & 0x20) ? "Reserved" : "In-band negotiation not possible"); other_decode_bitfield_value(a_bigbuf, oct, 0x10, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Number of data bits excluding parity bit if present: %s", + "%s = Number of data bits excluding parity bit if present: %s", a_bigbuf, (oct & 0x10) ? "8" : "7"); @@ -1690,7 +1692,7 @@ bc_octet_6: other_decode_bitfield_value(a_bigbuf, oct, 0x0f, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : User rate: %s", + "%s = User rate: %s", a_bigbuf, str); @@ -1727,21 +1729,21 @@ bc_octet_6: other_decode_bitfield_value(a_bigbuf, oct, 0x60, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : V.110/X.30 rate adaptation Intermediate rate: %s", + "%s = V.110/X.30 rate adaptation Intermediate rate: %s", a_bigbuf, str); other_decode_bitfield_value(a_bigbuf, oct, 0x10, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Network independent clock (NIC) on transmission (Tx): %s to send data with network independent clock", + "%s = Network independent clock (NIC) on transmission (Tx): %s to send data with network independent clock", a_bigbuf, (oct & 0x10) ? "requires" : "does not require"); other_decode_bitfield_value(a_bigbuf, oct, 0x08, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Network independent clock (NIC) on reception (Rx): %s accept data with network independent clock", + "%s = Network independent clock (NIC) on reception (Rx): %s accept data with network independent clock", a_bigbuf, (oct & 0x08) ? "can" : "cannot"); @@ -1760,7 +1762,7 @@ bc_octet_6: other_decode_bitfield_value(a_bigbuf, oct, 0x07, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Parity information: %s", + "%s = Parity information: %s", a_bigbuf, str); @@ -1798,7 +1800,7 @@ bc_octet_6: other_decode_bitfield_value(a_bigbuf, oct, 0x60, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Connection element: %s", + "%s = Connection element: %s", a_bigbuf, str); @@ -1821,7 +1823,7 @@ bc_octet_6: other_decode_bitfield_value(a_bigbuf, oct, 0x1f, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Modem type: %s", + "%s = Modem type: %s", a_bigbuf, str); @@ -1858,7 +1860,7 @@ bc_octet_6: other_decode_bitfield_value(a_bigbuf, oct, 0x60, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Other modem type: %s", + "%s = Other modem type: %s", a_bigbuf, str); @@ -1884,7 +1886,7 @@ bc_octet_6: other_decode_bitfield_value(a_bigbuf, oct, 0x1f, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Fixed network user rate: %s", + "%s = Fixed network user rate: %s", a_bigbuf, str); @@ -1914,34 +1916,34 @@ bc_octet_6: other_decode_bitfield_value(a_bigbuf, oct, 0x40, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Acceptable channel codings: TCH/F14.4 %sacceptable", + "%s = Acceptable channel codings: TCH/F14.4 %sacceptable", a_bigbuf, (oct & 0x40) ? "" : "not "); other_decode_bitfield_value(a_bigbuf, oct, 0x20, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Acceptable channel codings: Spare", + "%s = Acceptable channel codings: Spare", a_bigbuf); other_decode_bitfield_value(a_bigbuf, oct, 0x10, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Acceptable channel codings: TCH/F9.6 %sacceptable", + "%s = Acceptable channel codings: TCH/F9.6 %sacceptable", a_bigbuf, (oct & 0x10) ? "" : "not "); other_decode_bitfield_value(a_bigbuf, oct, 0x08, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Acceptable channel codings: TCH/F4.8 %sacceptable", + "%s = Acceptable channel codings: TCH/F4.8 %sacceptable", a_bigbuf, (oct & 0x08) ? "" : "not "); other_decode_bitfield_value(a_bigbuf, oct, 0x07, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Maximum number of traffic channels: %u TCH", + "%s = Maximum number of traffic channels: %u TCH", a_bigbuf, (oct & 0x07) + 1); } @@ -1950,13 +1952,13 @@ bc_octet_6: other_decode_bitfield_value(a_bigbuf, oct, 0x78, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Acceptable channel codings: Spare", + "%s = Acceptable channel codings: Spare", a_bigbuf); other_decode_bitfield_value(a_bigbuf, oct, 0x07, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Maximum number of traffic channels: Spare", + "%s = Maximum number of traffic channels: Spare", a_bigbuf); } @@ -1996,7 +1998,7 @@ bc_octet_6: other_decode_bitfield_value(a_bigbuf, oct, 0x70, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : UIMI, User initiated modification indication: %s", + "%s = UIMI, User initiated modification indication: %s", a_bigbuf, str); @@ -2024,7 +2026,7 @@ bc_octet_6: other_decode_bitfield_value(a_bigbuf, oct, 0x0f, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Wanted air interface user rate: %s", + "%s = Wanted air interface user rate: %s", a_bigbuf, str); } @@ -2033,7 +2035,7 @@ bc_octet_6: other_decode_bitfield_value(a_bigbuf, oct, 0x0f, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Wanted air interface user rate: Spare", + "%s = Wanted air interface user rate: Spare", a_bigbuf); } @@ -2063,28 +2065,28 @@ bc_octet_6: other_decode_bitfield_value(a_bigbuf, oct, 0x40, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Acceptable channel codings extended: TCH/F28.8 %sacceptable", + "%s = Acceptable channel codings extended: TCH/F28.8 %sacceptable", a_bigbuf, (oct & 0x40) ? "" : "not "); other_decode_bitfield_value(a_bigbuf, oct, 0x20, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Acceptable channel codings extended: TCH/F32.0 %sacceptable", + "%s = Acceptable channel codings extended: TCH/F32.0 %sacceptable", a_bigbuf, (oct & 0x20) ? "" : "not "); other_decode_bitfield_value(a_bigbuf, oct, 0x10, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Acceptable channel codings extended: TCH/F43.2 %sacceptable", + "%s = Acceptable channel codings extended: TCH/F43.2 %sacceptable", a_bigbuf, (oct & 0x10) ? "" : "not "); other_decode_bitfield_value(a_bigbuf, oct, 0x10, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Acceptable channel codings extended: TCH/F43.2 %sacceptable", + "%s = Acceptable channel codings extended: TCH/F43.2 %sacceptable", a_bigbuf, (oct & 0x10) ? "" : "not "); @@ -2101,7 +2103,7 @@ bc_octet_6: other_decode_bitfield_value(a_bigbuf, oct, 0x0c, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Channel Coding Asymmetry Indication: %s", + "%s = Channel Coding Asymmetry Indication: %s", a_bigbuf, str); } @@ -2110,7 +2112,7 @@ bc_octet_6: other_decode_bitfield_value(a_bigbuf, oct, 0x7c, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : EDGE Channel Codings: Spare", + "%s = EDGE Channel Codings: Spare", a_bigbuf); } @@ -2137,7 +2139,7 @@ bc_octet_7: other_decode_bitfield_value(a_bigbuf, oct, 0x60, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Layer 2 Identity: %s", + "%s = Layer 2 Identity: %s", a_bigbuf, ((oct & 0x60) == 0x40) ? "Octet identifier" : "Reserved"); @@ -2157,7 +2159,7 @@ bc_octet_7: other_decode_bitfield_value(a_bigbuf, oct, 0x1f, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : User information layer 2 protocol: %s", + "%s = User information layer 2 protocol: %s", a_bigbuf, str); break; @@ -2198,14 +2200,14 @@ de_cc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add case 0: proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : Maximum number of supported bearers: 1", + "%s = Maximum number of supported bearers: 1", a_bigbuf); break; default: proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : Maximum number of supported bearers: %u", + "%s = Maximum number of supported bearers: %u", a_bigbuf, (oct & 0xf0) >> 4); break; @@ -2216,14 +2218,14 @@ de_cc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add other_decode_bitfield_value(a_bigbuf, oct, 0x02, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : PCP: the mobile station %s the Prolonged Clearing Procedure", + "%s = PCP: the mobile station %s the Prolonged Clearing Procedure", a_bigbuf, (oct & 0x02) ? "supports" : "does not support"); other_decode_bitfield_value(a_bigbuf, oct, 0x01, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : DTMF: %s", + "%s = DTMF: %s", a_bigbuf, (oct & 0x01) ? "the mobile station supports DTMF as specified in subclause 5.5.7 of TS 24.008" : @@ -2240,7 +2242,7 @@ de_cc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add other_decode_bitfield_value(a_bigbuf, oct, 0x0f, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : Maximum number of speech bearers: %u", + "%s = Maximum number of speech bearers: %u", a_bigbuf, oct & 0x0f); @@ -2626,12 +2628,7 @@ de_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_ oct = tvb_get_guint8(tvb, curr_offset); - other_decode_bitfield_value(a_bigbuf, oct, 0x80, 8); - proto_tree_add_text(tree, - tvb, curr_offset, 1, - "%s : Extension: %s", - a_bigbuf, - (oct & 0x80) ? "not extended" : "extended"); + proto_tree_add_item(tree, hf_gsm_a_extension, tvb, curr_offset, 1, FALSE); switch ((oct & 0x60) >> 5) { @@ -2646,7 +2643,7 @@ de_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_ other_decode_bitfield_value(a_bigbuf, oct, 0x60, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : Coding standard: %s", + "%s = Coding standard: %s", a_bigbuf, str); @@ -2670,7 +2667,7 @@ de_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_ other_decode_bitfield_value(a_bigbuf, oct, 0x0f, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : Location: %s", + "%s = Location: %s", a_bigbuf, str); @@ -2685,7 +2682,7 @@ de_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_ other_decode_bitfield_value(a_bigbuf, oct, 0x7f, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : Recommendation", + "%s = Recommendation", a_bigbuf); curr_offset++; @@ -2761,7 +2758,7 @@ de_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_ other_decode_bitfield_value(a_bigbuf, oct, 0x7f, 8); proto_tree_add_uint_format(tree, hf_gsm_a_dtap_cause, tvb, curr_offset, 1, cause, - "%s : Cause: (%u) %s", + "%s = Cause: (%u) %s", a_bigbuf, cause, str); @@ -2931,7 +2928,7 @@ de_keypad_facility(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U other_decode_bitfield_value(a_bigbuf, oct, 0x7f, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : Keypad information: %c", + "%s = Keypad information: %c", a_bigbuf, oct & 0x7f); @@ -3131,7 +3128,7 @@ de_repeat_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gc other_decode_bitfield_value(a_bigbuf, oct, 0x0f, 8); proto_tree_add_text(tree, tvb, curr_offset, 1, - "%s : %s", + "%s = %s", a_bigbuf, str); @@ -3249,15 +3246,36 @@ through layer or layer 3 protocols All other values are reserved. */ +static const range_string gsm_a_dtap_u2u_prot_discr_vals[] = { + { 0x00, 0x00, "User specific protocol" }, + { 0x01, 0x01, "OSI high layer protocols" }, + { 0x02, 0x02, "X.244" }, + { 0x03, 0x03, "Reserved for system management convergence function" }, + { 0x04, 0x04, "IA5 characters" }, + { 0x07, 0x07, "Rec.V.120 rate adaption" }, + { 0x08, 0x08, "Q.931 (I.451) user-network call control messages" }, + { 0x10, 0x3F, "Reserved for other network layer or layer 3 protocols" }, + { 0x40, 0x4E, "National use" }, + { 0x4F, 0x4F, "3GPP capability exchange protocol" }, + { 0x50, 0xFE, "Reserved for other network layer or layer 3 protocols" }, + { 0, 0, NULL } +}; + static guint16 de_u2u(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_) { guint32 curr_offset; + proto_tree *subtree; + proto_item *item; curr_offset = offset; + proto_tree_add_item(tree, hf_gsm_a_dtap_u2u_prot_discr, tvb, curr_offset, 1, FALSE); + curr_offset++; - proto_tree_add_text(tree, tvb, curr_offset, len, "Not decoded yet"); - + item = proto_tree_add_text(tree, tvb, curr_offset, len - 1, "User-user information"); + subtree = proto_item_add_subtree(item, ett_gsm_dtap_elem[DE_USER_USER]); + proto_tree_add_text(subtree, tvb, curr_offset, len - 1, + "Data: %s", tvb_bytes_to_str(tvb, curr_offset, len - 1)); return(len); } @@ -4089,14 +4107,14 @@ dtap_mm_auth_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len) case 0x07: proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Ciphering Key Sequence Number: No key is available", + "%s = Ciphering Key Sequence Number: No key is available", a_bigbuf); break; default: proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Ciphering Key Sequence Number: %u", + "%s = Ciphering Key Sequence Number: %u", a_bigbuf, oct & 0x07); break; @@ -4199,14 +4217,14 @@ dtap_mm_cm_reestab_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint le case 0x07: proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Ciphering Key Sequence Number: No key is available", + "%s = Ciphering Key Sequence Number: No key is available", a_bigbuf); break; default: proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Ciphering Key Sequence Number: %u", + "%s = Ciphering Key Sequence Number: %u", a_bigbuf, oct & 0x07); break; @@ -4325,14 +4343,14 @@ dtap_mm_cm_srvc_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len) case 0x07: proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Ciphering Key Sequence Number: No key is available", + "%s = Ciphering Key Sequence Number: No key is available", a_bigbuf); break; default: proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Ciphering Key Sequence Number: %u", + "%s = Ciphering Key Sequence Number: %u", a_bigbuf, (oct & 0x70) >> 4); break; @@ -4362,7 +4380,7 @@ dtap_mm_cm_srvc_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len) other_decode_bitfield_value(a_bigbuf, oct, 0x0f, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Service Type: (%u) %s", + "%s = Service Type: (%u) %s", a_bigbuf, oct & 0x0f, str); @@ -4429,7 +4447,7 @@ dtap_mm_id_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len) other_decode_bitfield_value(a_bigbuf, oct, 0x07, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Type of identity: %s", + "%s = Type of identity: %s", a_bigbuf, str); @@ -4574,14 +4592,14 @@ dtap_mm_loc_upd_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len) case 0x07: proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Ciphering Key Sequence Number: No key is available", + "%s = Ciphering Key Sequence Number: No key is available", a_bigbuf); break; default: proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Ciphering Key Sequence Number: %u", + "%s = Ciphering Key Sequence Number: %u", a_bigbuf, (oct & 0x70) >> 4); break; @@ -4597,7 +4615,7 @@ dtap_mm_loc_upd_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len) other_decode_bitfield_value(a_bigbuf, oct, 0x08, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Follow-On Request (FOR): %s", + "%s = Follow-On Request (FOR): %s", a_bigbuf, (oct & 0x08) ? "Follow-on request pending" : "No follow-on request pending"); @@ -4616,7 +4634,7 @@ dtap_mm_loc_upd_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len) other_decode_bitfield_value(a_bigbuf, oct, 0x03, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Updating Type: %s", + "%s = Updating Type: %s", a_bigbuf, str); @@ -4857,7 +4875,7 @@ dtap_cc_congestion_control(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guin other_decode_bitfield_value(a_bigbuf, oct, 0x0f, 8); proto_tree_add_text(subtree, tvb, curr_offset, 1, - "%s : Congestion level: %s", + "%s = Congestion level: %s", a_bigbuf, str); @@ -6062,7 +6080,7 @@ dissect_dtap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) other_decode_bitfield_value(a_bigbuf, oct_1, 0x80, 8); proto_tree_add_text(pd_tree, tvb, 0, 1, - "%s : TI flag: %s", + "%s = TI flag: %s", a_bigbuf, ((oct_1 & 0x80) ? "allocated by receiver" : "allocated by sender")); @@ -6073,7 +6091,7 @@ dissect_dtap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) other_decode_bitfield_value(a_bigbuf, oct_1, 0x70, 8); proto_tree_add_text(pd_tree, tvb, 0, 1, - "%s : TIO: The TI value is given by the TIE in octet 2", + "%s = TIO: The TI value is given by the TIE in octet 2", a_bigbuf); } else @@ -6081,7 +6099,7 @@ dissect_dtap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) other_decode_bitfield_value(a_bigbuf, oct_1, 0x70, 8); proto_tree_add_text(pd_tree, tvb, 0, 1, - "%s : TIO: %u", + "%s = TIO: %u", a_bigbuf, ti & DTAP_TIE_PRES_MASK); } @@ -6097,7 +6115,7 @@ dissect_dtap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) other_decode_bitfield_value(a_bigbuf, oct_2, DTAP_TIE_MASK, 8); proto_tree_add_text(pd_tree, tvb, 1, 1, - "%s : TIE: %u", + "%s = TIE: %u", a_bigbuf, oct_2 & DTAP_TIE_MASK); } @@ -6479,6 +6497,11 @@ proto_register_gsm_a_dtap(void) FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_gsm_a_dtap_u2u_prot_discr, + { "User-user protocol discriminator", "gsm_a.dtap.u2u_prot_discr", + FT_UINT8, BASE_HEX|BASE_RANGE_STRING, RVALS(gsm_a_dtap_u2u_prot_discr_vals), 0x00, + NULL, HFILL } + }, }; /* Setup protocol subtree array */ |