aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorGerasimos Dimitriadis <dimeg@intracom.gr>2009-11-23 20:23:30 +0000
committerGerasimos Dimitriadis <dimeg@intracom.gr>2009-11-23 20:23:30 +0000
commit029f3641ae1911536400a750bbdc341041a2109a (patch)
tree331b411078be29a364d1d1450f1e7128f347e6d2 /epan
parent5664dac535fa5f52742c94a0e9a14fb6ee25df7c (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
Diffstat (limited to 'epan')
-rw-r--r--epan/dissectors/packet-gsm_a_bssmap.c60
-rw-r--r--epan/dissectors/packet-gsm_a_common.c24
-rw-r--r--epan/dissectors/packet-gsm_a_dtap.c217
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 */