From Niel Percy:
authorAnders Broman <anders.broman@ericsson.com>
Fri, 5 Sep 2008 05:49:39 +0000 (05:49 -0000)
committerAnders Broman <anders.broman@ericsson.com>
Fri, 5 Sep 2008 05:49:39 +0000 (05:49 -0000)
Much as I hate white space changes, I got fed up of the huge variation of styles within these files, and tried to get to a much smaller range of variation. Also a few comment tidies, and use of _U_ for unused args rather than "arg = arg" lines.

svn path=/trunk/; revision=26140

epan/dissectors/packet-gsm_a_bssmap.c
epan/dissectors/packet-gsm_a_common.c
epan/dissectors/packet-gsm_a_common.h
epan/dissectors/packet-gsm_a_dtap.c
epan/dissectors/packet-gsm_a_gm.c
epan/dissectors/packet-gsm_a_rp.c
epan/dissectors/packet-gsm_a_rr.c

index 2780071fd55b23c96b5eedf6c3e5cafc88f04252..bf5faa21d2e35e29e32b53f3f30a25d043eb79fe 100644 (file)
@@ -365,34 +365,33 @@ gint ett_gsm_bssmap_elem[NUM_GSM_BSSMAP_ELEM];
  * [2] 3.2.2.2
  */
 static guint8
-be_cic(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+be_cic(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string, int string_len)
 {
        guint32 curr_offset;
        guint32 value;
 
-       len = len;
        curr_offset = offset;
 
        value = tvb_get_ntohs(tvb, curr_offset);
 
        other_decode_bitfield_value(a_bigbuf, value, 0xffe0, 16);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 2,
-       "%s :  PCM Multiplexer: %u",
-       a_bigbuf,
-       (value & 0xffe0) >> 5);
+               tvb, curr_offset, 2,
+               "%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",
-       a_bigbuf,
-       value & 0x001f);
+               tvb, curr_offset, 2,
+               "%s :  Timeslot: %u",
+               a_bigbuf,
+               value & 0x001f);
 
        curr_offset += 2;
 
        if (add_string)
-       g_snprintf(add_string, string_len, " - (%u) (0x%04x)", value, value);
+               g_snprintf(add_string, string_len, " - (%u) (0x%04x)", value, value);
 
        /* no length check possible */
 
@@ -416,154 +415,154 @@ be_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_
 
        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) ? "extended" : "not extended");
-
-       if (oct & 0x80)
-       {
-       /* 2 octet cause */
-
-       if ((oct & 0x0f) == 0x00)
-       {
-           /* national cause */
-           switch ((oct & 0x70) >> 4)
-           {
-           case 0: str = "Normal Event"; break;
-           case 1: str = "Normal Event"; break;
-           case 2: str = "Resource Unavailable"; break;
-           case 3: str = "Service or option not available"; break;
-           case 4: str = "Service or option not implemented"; break;
-           case 5: str = "Invalid message (e.g., parameter out of range)"; break;
-           case 6: str = "Protocol error"; break;
-           default:
-               str = "Interworking";
-               break;
-           }
-
-           other_decode_bitfield_value(a_bigbuf, oct, 0x70, 8);
-           proto_tree_add_text(tree,
                tvb, curr_offset, 1,
-               "%s :  Cause Class: %s",
+               "%s :  Extension: %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",
-               a_bigbuf);
-
-           curr_offset++;
-
-           proto_tree_add_text(tree, tvb, curr_offset, 1,
-               "Cause Value");
-
-           curr_offset++;
+               (oct & 0x80) ? "extended" : "not extended");
 
-           if (add_string)
-               g_snprintf(add_string, string_len, " - (National Cause)");
-       }
-       else
+       if (oct & 0x80)
        {
-           value = tvb_get_guint8(tvb, curr_offset + 1);
+               /* 2 octet cause */
 
-           other_decode_bitfield_value(a_bigbuf, oct, 0x7f, 8);
-           proto_tree_add_text(tree,
-               tvb, curr_offset, 1,
-               "%s :  Cause (MSB): %u",
-               a_bigbuf,
-               ((oct & 0x7f) << 8) | value);
+               if ((oct & 0x0f) == 0x00)
+               {
+                       /* national cause */
+                       switch ((oct & 0x70) >> 4)
+                       {
+                       case 0: str = "Normal Event"; break;
+                       case 1: str = "Normal Event"; break;
+                       case 2: str = "Resource Unavailable"; break;
+                       case 3: str = "Service or option not available"; break;
+                       case 4: str = "Service or option not implemented"; break;
+                       case 5: str = "Invalid message (e.g., parameter out of range)"; break;
+                       case 6: str = "Protocol error"; break;
+                       default:
+                               str = "Interworking";
+                               break;
+                       }
+
+                       other_decode_bitfield_value(a_bigbuf, oct, 0x70, 8);
+                       proto_tree_add_text(tree,
+                               tvb, curr_offset, 1,
+                               "%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",
+                               a_bigbuf);
+
+                       curr_offset++;
+
+                       proto_tree_add_text(tree, tvb, curr_offset, 1,
+                               "Cause Value");
+
+                       curr_offset++;
+
+                       if (add_string)
+                               g_snprintf(add_string, string_len, " - (National Cause)");
+               }
+               else
+               {
+                       value = tvb_get_guint8(tvb, curr_offset + 1);
 
-           curr_offset++;
+                       other_decode_bitfield_value(a_bigbuf, oct, 0x7f, 8);
+                       proto_tree_add_text(tree,
+                               tvb, curr_offset, 1,
+                               "%s :  Cause (MSB): %u",
+                               a_bigbuf,
+                               ((oct & 0x7f) << 8) | value);
 
-           other_decode_bitfield_value(a_bigbuf, value, 0xff, 8);
-           proto_tree_add_text(tree, tvb, curr_offset, 1,
-               "%s :  Cause (LSB)",
-               a_bigbuf);
+                       curr_offset++;
 
-           curr_offset++;
-       }
+                       other_decode_bitfield_value(a_bigbuf, value, 0xff, 8);
+                       proto_tree_add_text(tree, tvb, curr_offset, 1,
+                               "%s :  Cause (LSB)",
+                               a_bigbuf);
+
+                       curr_offset++;
+               }
        }
        else
        {
-       switch (oct)
-       {
-       case 0x00: str = "Radio interface message failure"; break;
-       case 0x01: str = "Radio interface failure"; break;
-       case 0x02: str = "Uplink quality"; break;
-       case 0x03: str = "Uplink strength"; break;
-       case 0x04: str = "Downlink quality"; break;
-       case 0x05: str = "Downlink strength"; break;
-       case 0x06: str = "Distance"; break;
-       case 0x07: str = "O and M intervention"; break;
-       case 0x08: str = "Response to MSC invocation"; break;
-       case 0x09: str = "Call control"; break;
-       case 0x0a: str = "Radio interface failure, reversion to old channel"; break;
-       case 0x0b: str = "Handover successful"; break;
-       case 0x0c: str = "Better Cell"; break;
-       case 0x0d: str = "Directed Retry"; break;
-       case 0x0e: str = "Joined group call channel"; break;
-       case 0x0f: str = "Traffic"; break;
-
-       case 0x20: str = "Equipment failure"; break;
-       case 0x21: str = "No radio resource available"; break;
-       case 0x22: str = "Requested terrestrial resource unavailable"; break;
-       case 0x23: str = "CCCH overload"; break;
-       case 0x24: str = "Processor overload"; break;
-       case 0x25: str = "BSS not equipped"; break;
-       case 0x26: str = "MS not equipped"; break;
-       case 0x27: str = "Invalid cell"; break;
-       case 0x28: str = "Traffic Load"; break;
-       case 0x29: str = "Preemption"; break;
-
-       case 0x30: str = "Requested transcoding/rate adaption unavailable"; break;
-       case 0x31: str = "Circuit pool mismatch"; break;
-       case 0x32: str = "Switch circuit pool"; break;
-       case 0x33: str = "Requested speech version unavailable"; break;
-       case 0x34: str = "LSA not allowed"; break;
-
-       case 0x40: str = "Ciphering algorithm not supported"; break;
-
-       case 0x50: str = "Terrestrial circuit already allocated"; break;
-       case 0x51: str = "Invalid message contents"; break;
-       case 0x52: str = "Information element or field missing"; break;
-       case 0x53: str = "Incorrect value"; break;
-       case 0x54: str = "Unknown Message type"; break;
-       case 0x55: str = "Unknown Information Element"; break;
-
-       case 0x60: str = "Protocol Error between BSS and MSC"; break;
-       case 0x61: str = "VGCS/VBS call non existent"; break;
+               switch (oct)
+               {
+               case 0x00: str = "Radio interface message failure"; break;
+               case 0x01: str = "Radio interface failure"; break;
+               case 0x02: str = "Uplink quality"; break;
+               case 0x03: str = "Uplink strength"; break;
+               case 0x04: str = "Downlink quality"; break;
+               case 0x05: str = "Downlink strength"; break;
+               case 0x06: str = "Distance"; break;
+               case 0x07: str = "O and M intervention"; break;
+               case 0x08: str = "Response to MSC invocation"; break;
+               case 0x09: str = "Call control"; break;
+               case 0x0a: str = "Radio interface failure, reversion to old channel"; break;
+               case 0x0b: str = "Handover successful"; break;
+               case 0x0c: str = "Better Cell"; break;
+               case 0x0d: str = "Directed Retry"; break;
+               case 0x0e: str = "Joined group call channel"; break;
+               case 0x0f: str = "Traffic"; break;
+
+               case 0x20: str = "Equipment failure"; break;
+               case 0x21: str = "No radio resource available"; break;
+               case 0x22: str = "Requested terrestrial resource unavailable"; break;
+               case 0x23: str = "CCCH overload"; break;
+               case 0x24: str = "Processor overload"; break;
+               case 0x25: str = "BSS not equipped"; break;
+               case 0x26: str = "MS not equipped"; break;
+               case 0x27: str = "Invalid cell"; break;
+               case 0x28: str = "Traffic Load"; break;
+               case 0x29: str = "Preemption"; break;
+
+               case 0x30: str = "Requested transcoding/rate adaption unavailable"; break;
+               case 0x31: str = "Circuit pool mismatch"; break;
+               case 0x32: str = "Switch circuit pool"; break;
+               case 0x33: str = "Requested speech version unavailable"; break;
+               case 0x34: str = "LSA not allowed"; break;
+
+               case 0x40: str = "Ciphering algorithm not supported"; break;
+
+               case 0x50: str = "Terrestrial circuit already allocated"; break;
+               case 0x51: str = "Invalid message contents"; break;
+               case 0x52: str = "Information element or field missing"; break;
+               case 0x53: str = "Incorrect value"; break;
+               case 0x54: str = "Unknown Message type"; break;
+               case 0x55: str = "Unknown Information Element"; break;
+
+               case 0x60: str = "Protocol Error between BSS and MSC"; break;
+               case 0x61: str = "VGCS/VBS call non existent"; break;
 
-       default:
-           if ((oct >= 0x10) && (oct <= 0x17)) { str = "Reserved for international use"; }
-           else if ((oct >= 0x18) && (oct <= 0x1f)) { str = "Reserved for national use"; }
-           else if ((oct >= 0x2a) && (oct <= 0x2f)) { str = "Reserved for national use"; }
-           else if ((oct >= 0x35) && (oct <= 0x3f)) { str = "Reserved for international use"; }
-           else if ((oct >= 0x41) && (oct <= 0x47)) { str = "Reserved for international use"; }
-           else if ((oct >= 0x48) && (oct <= 0x4f)) { str = "Reserved for national use"; }
-           else if ((oct >= 0x56) && (oct <= 0x57)) { str = "Reserved for international use"; }
-           else if ((oct >= 0x58) && (oct <= 0x5f)) { str = "Reserved for national use"; }
-           else if ((oct >= 0x62) && (oct <= 0x67)) { str = "Reserved for international use"; }
-           else if ((oct >= 0x68) && (oct <= 0x6f)) { str = "Reserved for national use"; }
-           else if ((oct >= 0x70) && (oct <= 0x77)) { str = "Reserved for international use"; }
-           else if ((oct >= 0x78) && (oct <= 0x7f)) { str = "Reserved for national use"; }
-           break;
-       }
+               default:
+                       if ((oct >= 0x10) && (oct <= 0x17)) { str = "Reserved for international use"; }
+                       else if ((oct >= 0x18) && (oct <= 0x1f)) { str = "Reserved for national use"; }
+                       else if ((oct >= 0x2a) && (oct <= 0x2f)) { str = "Reserved for national use"; }
+                       else if ((oct >= 0x35) && (oct <= 0x3f)) { str = "Reserved for international use"; }
+                       else if ((oct >= 0x41) && (oct <= 0x47)) { str = "Reserved for international use"; }
+                       else if ((oct >= 0x48) && (oct <= 0x4f)) { str = "Reserved for national use"; }
+                       else if ((oct >= 0x56) && (oct <= 0x57)) { str = "Reserved for international use"; }
+                       else if ((oct >= 0x58) && (oct <= 0x5f)) { str = "Reserved for national use"; }
+                       else if ((oct >= 0x62) && (oct <= 0x67)) { str = "Reserved for international use"; }
+                       else if ((oct >= 0x68) && (oct <= 0x6f)) { str = "Reserved for national use"; }
+                       else if ((oct >= 0x70) && (oct <= 0x77)) { str = "Reserved for international use"; }
+                       else if ((oct >= 0x78) && (oct <= 0x7f)) { str = "Reserved for national use"; }
+                       break;
+               }
 
-       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",
-           a_bigbuf,
-           oct & 0x7f,
-           str);
+               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",
+                       a_bigbuf,
+                       oct & 0x7f,
+                       str);
 
-       curr_offset++;
+               curr_offset++;
 
-       if (add_string)
-           g_snprintf(add_string, string_len, " - (%u) %s", oct & 0x7f, str);
+               if (add_string)
+                       g_snprintf(add_string, string_len, " - (%u) %s", oct & 0x7f, str);
        }
 
        EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
@@ -585,8 +584,8 @@ be_tmsi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_s
        value = tvb_get_ntohl(tvb, curr_offset);
 
        proto_tree_add_uint(tree, hf_gsm_a_tmsi,
-       tvb, curr_offset, 4,
-       value);
+               tvb, curr_offset, 4,
+               value);
 
        if (add_string)
        g_snprintf(add_string, string_len, " - (0x%04x)", value);
@@ -612,14 +611,13 @@ be_l3_header_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
        oct = tvb_get_guint8(tvb, curr_offset);
 
        other_decode_bitfield_value(a_bigbuf, oct, 0xf0, 8);
-       proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Spare",
-       a_bigbuf);
+               proto_tree_add_text(tree,
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        proto_tree_add_item(tree, hf_gsm_a_L3_protocol_discriminator, tvb, curr_offset, 1, FALSE);
 
-
        curr_offset++;
 
        NO_MORE_DATA_CHECK(len);
@@ -628,23 +626,23 @@ be_l3_header_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
 
        other_decode_bitfield_value(a_bigbuf, oct, 0xf0, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Spare",
-       a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x08, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  TI flag: %s",
-       a_bigbuf,
-       ((oct & 0x08) ?  "allocated by receiver" : "allocated by sender"));
+               tvb, curr_offset, 1,
+               "%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",
-       a_bigbuf,
-       oct & 0x07);
+               tvb, curr_offset, 1,
+               "%s :  TIO: %u",
+               a_bigbuf,
+               oct & 0x07);
 
        curr_offset++;
 
@@ -673,34 +671,34 @@ be_enc_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *a
 
        do
        {
-       other_decode_bitfield_value(a_bigbuf, oct, mask, 8);
-       proto_tree_add_text(tree,
-           tvb, curr_offset, 1,
-           "%s :  GSM A5/%u: %spermitted",
-           a_bigbuf,
-           alg_id,
-           (mask & oct) ? "" : "not ");
-
-       mask >>= 1;
-       alg_id--;
+               other_decode_bitfield_value(a_bigbuf, oct, mask, 8);
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, 1,
+                       "%s :  GSM A5/%u: %spermitted",
+                       a_bigbuf,
+                       alg_id,
+                       (mask & oct) ? "" : "not ");
+
+               mask >>= 1;
+               alg_id--;
        }
        while (mask != 0x01);
 
        other_decode_bitfield_value(a_bigbuf, oct, mask, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  No encryption: %spermitted",
-       a_bigbuf,
-       (mask & oct) ? "" : "not ");
+               tvb, curr_offset, 1,
+               "%s :  No encryption: %spermitted",
+               a_bigbuf,
+               (mask & oct) ? "" : "not ");
 
        curr_offset++;
 
        NO_MORE_DATA_CHECK(len);
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, len - (curr_offset - offset),
-                       "Key: %s",
-                       tvb_bytes_to_str(tvb, curr_offset, len-(curr_offset-offset) ));
+               tvb, curr_offset, len - (curr_offset - offset),
+               "Key: %s",
+               tvb_bytes_to_str(tvb, curr_offset, len-(curr_offset-offset) ));
 
        curr_offset += len - (curr_offset - offset);
 
@@ -727,9 +725,9 @@ be_chan_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *
 
        other_decode_bitfield_value(a_bigbuf, oct, 0xf0, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Spare",
-       a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        sdi = oct & 0x0f;
        switch (sdi)
@@ -738,19 +736,19 @@ be_chan_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *
        case 2: str = "Data"; break;
        case 3: str = "Signalling"; break;
        default:
-       str = "Reserved";
-       break;
+               str = "Reserved";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x0f, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Speech/Data Indicator: %s",
-       a_bigbuf,
-       str);
+               tvb, curr_offset, 1,
+               "%s :  Speech/Data Indicator: %s",
+               a_bigbuf,
+               str);
 
        if (add_string)
-       g_snprintf(add_string, string_len, " - (%s)", str);
+               g_snprintf(add_string, string_len, " - (%s)", str);
 
        curr_offset++;
 
@@ -760,344 +758,342 @@ be_chan_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *
 
        if (sdi == 0x01)
        {
-       /* speech */
+               /* speech */
 
-       switch (oct)
-       {
-       case 0x08: str = "Full rate TCH channel Bm.  Prefer full rate TCH"; break;
-       case 0x09: str = "Half rate TCH channel Lm.  Prefer half rate TCH"; break;
-       case 0x0a: str = "Full or Half rate channel, Full rate preferred changes allowed after first allocation"; break;
-       case 0x0b: str = "Full or Half rate channel, Half rate preferred changes allowed after first allocation"; break;
-       case 0x1a: str = "Full or Half rate channel, Full rate preferred changes between full and half rate not allowed after first allocation"; break;
-       case 0x1b: str = "Full or Half rate channel, Half rate preferred changes between full and half rate not allowed after first allocation"; break;
-       case 0x0f: str = "Full or Half rate channel, changes allowed after first allocation"; break;
-       case 0x1f: str = "Full or Half rate channel, changes between full and half rate not allowed after first allocation"; break;
-       default:
-           str = "Reserved";
-           break;
-       }
-
-       proto_tree_add_text(tree,
-           tvb, curr_offset, 1,
-           "Channel Rate and Type: %s",
-           str);
-
-       curr_offset++;
-
-       NO_MORE_DATA_CHECK(len);
-
-       do
-       {
-           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) ? "extended" : "not extended");
-
-           switch (oct & 0x7f)
-           {
-           case 0x01: str = "GSM speech full rate version 1"; break;
-           case 0x11: str = "GSM speech full rate version 2"; break;
-           case 0x21: str = "GSM speech full rate version 3 (AMR)"; break;
+               switch (oct)
+               {
+               case 0x08: str = "Full rate TCH channel Bm.  Prefer full rate TCH"; break;
+               case 0x09: str = "Half rate TCH channel Lm.  Prefer half rate TCH"; break;
+               case 0x0a: str = "Full or Half rate channel, Full rate preferred changes allowed after first allocation"; break;
+               case 0x0b: str = "Full or Half rate channel, Half rate preferred changes allowed after first allocation"; break;
+               case 0x1a: str = "Full or Half rate channel, Full rate preferred changes between full and half rate not allowed after first allocation"; break;
+               case 0x1b: str = "Full or Half rate channel, Half rate preferred changes between full and half rate not allowed after first allocation"; break;
+               case 0x0f: str = "Full or Half rate channel, changes allowed after first allocation"; break;
+               case 0x1f: str = "Full or Half rate channel, changes between full and half rate not allowed after first allocation"; break;
+               default:
+                       str = "Reserved";
+                       break;
+               }
 
-           case 0x05: str = "GSM speech half rate version 1"; break;
-           case 0x15: str = "GSM speech half rate version 2"; break;
-           case 0x25: str = "GSM speech half rate version 3 (AMR)"; break;
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, 1,
+                       "Channel Rate and Type: %s",
+                       str);
 
-           default:
-               str = "Reserved";
-               break;
-           }
+               curr_offset++;
 
-           other_decode_bitfield_value(a_bigbuf, oct, 0x7f, 8);
-           proto_tree_add_text(tree,
-               tvb, curr_offset, 1,
-               "%s :  Speech version identifier: %s",
-               a_bigbuf,
-               str);
+               NO_MORE_DATA_CHECK(len);
 
-           curr_offset++;
-       }
-       while ((len - (curr_offset - offset)) > 0);
+               do
+               {
+                       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) ? "extended" : "not extended");
+
+                       switch (oct & 0x7f)
+                       {
+                       case 0x01: str = "GSM speech full rate version 1"; break;
+                       case 0x11: str = "GSM speech full rate version 2"; break;
+                       case 0x21: str = "GSM speech full rate version 3 (AMR)"; break;
+
+                       case 0x05: str = "GSM speech half rate version 1"; break;
+                       case 0x15: str = "GSM speech half rate version 2"; break;
+                       case 0x25: str = "GSM speech half rate version 3 (AMR)"; break;
+
+                       default:
+                               str = "Reserved";
+                               break;
+                       }
+
+                       other_decode_bitfield_value(a_bigbuf, oct, 0x7f, 8);
+                       proto_tree_add_text(tree,
+                               tvb, curr_offset, 1,
+                               "%s :  Speech version identifier: %s",
+                               a_bigbuf,
+                               str);
+
+                       curr_offset++;
+               }
+               while ((len - (curr_offset - offset)) > 0);
        }
        else if (sdi == 0x02)
        {
-       /* data */
-
-       num_chan = 0;
-
-       switch (oct)
-       {
-       case 0x08: str = "Full rate TCH channel Bm"; break;
-       case 0x09: str = "Half rate TCH channel Lm"; break;
-       case 0x0a: str = "Full or Half rate TCH channel, Full rate preferred, changes allowed also after first channel allocation as a result of the request"; break;
-       case 0x0b: str = "Full or Half rate TCH channel, Half rate preferred, changes allowed also after first channel allocation as a result of the request"; break;
-       case 0x1a: str = "Full or Half rate TCH channel, Full rate preferred, changes not allowed after first channel allocation as a result of the request"; break;
-       case 0x1b: str = "Full or Half rate TCH channel. Half rate preferred, changes not allowed after first channel allocation as a result of the request"; break;
-       default:
-           if ((oct >= 0x20) && (oct <= 0x27))
-           {
-               str = "Full rate TCH channels in a multislot configuration, changes by the BSS of the the number of TCHs and if applicable the used radio interface rate per channel allowed after first channel allocation as a result of the request";
-
-               num_chan = (oct - 0x20) + 1;
-           }
-           else if ((oct >= 0x30) && (oct <= 0x37))
-           {
-               str = "Full rate TCH channels in a multislot configuration, changes by the BSS of the number of TCHs or the used radio interface rate per channel not allowed after first channel allocation as a result of the request";
-
-               num_chan = (oct - 0x30) + 1;
-           }
-           else
-           {
-               str = "Reserved";
-           }
-           break;
-       }
-
-       if (num_chan > 0)
-       {
-           proto_tree_add_text(tree,
-               tvb, curr_offset, 1,
-               "Channel Rate and Type: Max channels %u, %s",
-               num_chan,
-               str);
-       }
-       else
-       {
-           proto_tree_add_text(tree,
-               tvb, curr_offset, 1,
-               "Channel Rate and Type: %s",
-               str);
-       }
-
-       curr_offset++;
-
-       NO_MORE_DATA_CHECK(len);
-
-       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) ? "extended" : "not extended");
-
-       other_decode_bitfield_value(a_bigbuf, oct, 0x40, 8);
-       proto_tree_add_text(tree,
-           tvb, curr_offset, 1,
-           "%s :  %sTransparent service",
-           a_bigbuf,
-           (oct & 0x40) ? "Non-" : "");
+               /* data */
 
-       if (num_chan == 0)
-       {
-           if (oct & 0x40)
-           {
-               /* non-transparent */
+               num_chan = 0;
 
-               switch (oct & 0x3f)
-               {
-               case 0x00: str = "12 kbit/s if the channel is a full rate TCH, or 6 kbit/s if the channel is a half rate TCH"; break;
-               case 0x18: str = "14.5 kbit/s"; break;
-               case 0x10: str = "12 kbits/s"; break;
-               case 0x11: str = "6 kbits/s"; break;
-               default:
-                   str = "Reserved";
-                   break;
-               }
-           }
-           else
-           {
-               switch (oct & 0x3f)
+               switch (oct)
                {
-               case 0x18: str = "14.4 kbit/s"; break;
-               case 0x10: str = "9.6kbit/s"; break;
-               case 0x11: str = "4.8kbit/s"; break;
-               case 0x12: str = "2.4kbit/s"; break;
-               case 0x13: str = "1.2Kbit/s"; break;
-               case 0x14: str = "600 bit/s"; break;
-               case 0x15: str = "1200/75 bit/s (1200 network-to-MS / 75 MS-to-network)"; break;
+               case 0x08: str = "Full rate TCH channel Bm"; break;
+               case 0x09: str = "Half rate TCH channel Lm"; break;
+               case 0x0a: str = "Full or Half rate TCH channel, Full rate preferred, changes allowed also after first channel allocation as a result of the request"; break;
+               case 0x0b: str = "Full or Half rate TCH channel, Half rate preferred, changes allowed also after first channel allocation as a result of the request"; break;
+               case 0x1a: str = "Full or Half rate TCH channel, Full rate preferred, changes not allowed after first channel allocation as a result of the request"; break;
+               case 0x1b: str = "Full or Half rate TCH channel. Half rate preferred, changes not allowed after first channel allocation as a result of the request"; break;
                default:
-                   str = "Reserved";
-                   break;
+                       if ((oct >= 0x20) && (oct <= 0x27))
+                       {
+                               str = "Full rate TCH channels in a multislot configuration, changes by the BSS of the the number of TCHs and if applicable the used radio interface rate per channel allowed after first channel allocation as a result of the request";
+                               num_chan = (oct - 0x20) + 1;
+                       }
+                       else if ((oct >= 0x30) && (oct <= 0x37))
+                       {
+                               str = "Full rate TCH channels in a multislot configuration, changes by the BSS of the number of TCHs or the used radio interface rate per channel not allowed after first channel allocation as a result of the request";
+                               num_chan = (oct - 0x30) + 1;
+                       }
+                       else
+                       {
+                               str = "Reserved";
+                       }
+                       break;
                }
-           }
-       }
-       else
-       {
-           if (oct & 0x40)
-           {
-               /* non-transparent */
 
-               switch (oct & 0x3f)
+               if (num_chan > 0)
                {
-               case 0x16: str = "58 kbit/s (4x14.5 kbit/s)"; break;
-               case 0x14: str = "48.0 / 43.5 kbit/s (4x12 kbit/s or 3x14.5 kbit/s)"; break;
-               case 0x13: str = "36.0 / 29.0 kbit/s (3x12 kbit/s or 2x14.5 kbit/s)"; break;
-               case 0x12: str = "24.0 / 24.0 (4x6 kbit/s or 2x12 kbit/s)"; break;
-               case 0x11: str = "18.0 / 14.5 kbit/s (3x6 kbit/s or 1x14.5 kbit/s)"; break;
-               case 0x10: str = "12.0 / 12.0 kbit/s (2x6 kbit/s or 1x12 kbit/s)"; break;
-               default:
-                   str = "Reserved";
-                   break;
+                       proto_tree_add_text(tree,
+                               tvb, curr_offset, 1,
+                               "Channel Rate and Type: Max channels %u, %s",
+                               num_chan,
+                               str);
                }
-           }
-           else
-           {
-               switch (oct & 0x3f)
+               else
                {
-               case 0x1f: str = "64 kbit/s, bit transparent"; break;
-               case 0x1e: str = "56 kbit/s, bit transparent"; break;
-               case 0x1d: str = "56 kbit/s"; break;
-               case 0x1c: str = "48 kbit/s"; break;
-               case 0x1b: str = "38.4 kbit/s"; break;
-               case 0x1a: str = "28.8 kbit/s"; break;
-               case 0x19: str = "19.2 kbit/s"; break;
-               case 0x18: str = "14.4 kbit/s"; break;
-               case 0x10: str = "9.6 kbit/s"; break;
-               default:
-                   str = "Reserved";
-                   break;
+                       proto_tree_add_text(tree,
+                               tvb, curr_offset, 1,
+                               "Channel Rate and Type: %s",
+                               str);
                }
-           }
-       }
 
-       other_decode_bitfield_value(a_bigbuf, oct, 0x3f, 8);
-       proto_tree_add_text(tree,
-           tvb, curr_offset, 1,
-           "%s :  Rate: %s",
-           a_bigbuf,
-           str);
+               curr_offset++;
 
-       curr_offset++;
+               NO_MORE_DATA_CHECK(len);
 
-       NO_MORE_DATA_CHECK(len);
+               oct = tvb_get_guint8(tvb, curr_offset);
 
-       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) ? "extended" : "not extended");
 
-       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) ? "extended" : "not extended");
+               other_decode_bitfield_value(a_bigbuf, oct, 0x40, 8);
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, 1,
+                       "%s :  %sTransparent service",
+                       a_bigbuf,
+                       (oct & 0x40) ? "Non-" : "");
 
-       other_decode_bitfield_value(a_bigbuf, oct, 0x70, 8);
-       proto_tree_add_text(tree,
-           tvb, curr_offset, 1,
-           "%s :  Spare",
-           a_bigbuf);
+               if (num_chan == 0)
+               {
+                       if (oct & 0x40)
+                       {
+                               /* non-transparent */
+
+                               switch (oct & 0x3f)
+                               {
+                               case 0x00: str = "12 kbit/s if the channel is a full rate TCH, or 6 kbit/s if the channel is a half rate TCH"; break;
+                               case 0x18: str = "14.5 kbit/s"; break;
+                               case 0x10: str = "12 kbits/s"; break;
+                               case 0x11: str = "6 kbits/s"; break;
+                               default:
+                                       str = "Reserved";
+                                       break;
+                               }
+                       }
+                       else
+                       {
+                               switch (oct & 0x3f)
+                               {
+                               case 0x18: str = "14.4 kbit/s"; break;
+                               case 0x10: str = "9.6kbit/s"; break;
+                               case 0x11: str = "4.8kbit/s"; break;
+                               case 0x12: str = "2.4kbit/s"; break;
+                               case 0x13: str = "1.2Kbit/s"; break;
+                               case 0x14: str = "600 bit/s"; break;
+                               case 0x15: str = "1200/75 bit/s (1200 network-to-MS / 75 MS-to-network)"; break;
+                               default:
+                                       str = "Reserved";
+                                       break;
+                               }
+                       }
+               }
+               else
+               {
+                       if (oct & 0x40)
+                       {
+                               /* non-transparent */
+
+                               switch (oct & 0x3f)
+                               {
+                               case 0x16: str = "58 kbit/s (4x14.5 kbit/s)"; break;
+                               case 0x14: str = "48.0 / 43.5 kbit/s (4x12 kbit/s or 3x14.5 kbit/s)"; break;
+                               case 0x13: str = "36.0 / 29.0 kbit/s (3x12 kbit/s or 2x14.5 kbit/s)"; break;
+                               case 0x12: str = "24.0 / 24.0 (4x6 kbit/s or 2x12 kbit/s)"; break;
+                               case 0x11: str = "18.0 / 14.5 kbit/s (3x6 kbit/s or 1x14.5 kbit/s)"; break;
+                               case 0x10: str = "12.0 / 12.0 kbit/s (2x6 kbit/s or 1x12 kbit/s)"; break;
+                               default:
+                                       str = "Reserved";
+                                       break;
+                               }
+                       }
+                       else
+                       {
+                               switch (oct & 0x3f)
+                               {
+                               case 0x1f: str = "64 kbit/s, bit transparent"; break;
+                               case 0x1e: str = "56 kbit/s, bit transparent"; break;
+                               case 0x1d: str = "56 kbit/s"; break;
+                               case 0x1c: str = "48 kbit/s"; break;
+                               case 0x1b: str = "38.4 kbit/s"; break;
+                               case 0x1a: str = "28.8 kbit/s"; break;
+                               case 0x19: str = "19.2 kbit/s"; break;
+                               case 0x18: str = "14.4 kbit/s"; break;
+                               case 0x10: str = "9.6 kbit/s"; break;
+                               default:
+                                       str = "Reserved";
+                                       break;
+                               }
+                       }
+               }
 
-       if (num_chan == 0)
-       {
-           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",
-               a_bigbuf,
-               (oct & 0x08) ? "" : "not ");
+               other_decode_bitfield_value(a_bigbuf, oct, 0x3f, 8);
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, 1,
+                       "%s :  Rate: %s",
+                       a_bigbuf,
+                       str);
 
-           other_decode_bitfield_value(a_bigbuf, oct, 0x04, 8);
-           proto_tree_add_text(tree,
-               tvb, curr_offset, 1,
-               "%s :  Spare",
-               a_bigbuf);
+               curr_offset++;
 
-           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",
-               a_bigbuf,
-               (oct & 0x02) ? "" : "not ");
+               NO_MORE_DATA_CHECK(len);
 
-           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",
-               a_bigbuf,
-               (oct & 0x01) ? "" : "not ");
-       }
-       else
-       {
-           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",
-               a_bigbuf,
-               (oct & 0x08) ? "" : "not ");
+               oct = tvb_get_guint8(tvb, curr_offset);
 
-           other_decode_bitfield_value(a_bigbuf, oct, 0x04, 8);
-           proto_tree_add_text(tree,
-               tvb, curr_offset, 1,
-               "%s :  Spare",
-               a_bigbuf);
+               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) ? "extended" : "not extended");
 
-           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",
-               a_bigbuf,
-               (oct & 0x02) ? "" : "not ");
+               other_decode_bitfield_value(a_bigbuf, oct, 0x70, 8);
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, 1,
+                       "%s :  Spare",
+                       a_bigbuf);
 
-           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",
-               a_bigbuf,
-               (oct & 0x01) ? "" : "not ");
-       }
+               if (num_chan == 0)
+               {
+                       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",
+                               a_bigbuf,
+                               (oct & 0x08) ? "" : "not ");
+
+                       other_decode_bitfield_value(a_bigbuf, oct, 0x04, 8);
+                       proto_tree_add_text(tree,
+                               tvb, curr_offset, 1,
+                               "%s :  Spare",
+                               a_bigbuf);
+
+                       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",
+                               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",
+                               a_bigbuf,
+                               (oct & 0x01) ? "" : "not ");
+               }
+               else
+               {
+                       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",
+                               a_bigbuf,
+                               (oct & 0x08) ? "" : "not ");
+
+                       other_decode_bitfield_value(a_bigbuf, oct, 0x04, 8);
+                       proto_tree_add_text(tree,
+                               tvb, curr_offset, 1,
+                               "%s :  Spare",
+                               a_bigbuf);
+
+                       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",
+                               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",
+                               a_bigbuf,
+                               (oct & 0x01) ? "" : "not ");
+               }
 
-       curr_offset++;
+               curr_offset++;
        }
        else if (sdi == 0x03)
        {
-       /* signalling */
+               /* signalling */
 
-       switch (oct)
-       {
-       case 0x00: str = "SDCCH or Full rate TCH channel Bm or Half rate TCH channel Lm"; break;
-       case 0x01: str = "SDCCH"; break;
-       case 0x02: str = "SDCCH or Full rate TCH channel Bm"; break;
-       case 0x03: str = "SDCCH or Half rate TCH channel Lm"; break;
-       case 0x08: str = "Full rate TCH channel Bm"; break;
-       case 0x09: str = "Half rate TCH channel Lm"; break;
-       case 0x0a: str = "Full or Half rate TCH channel, Full rate preferred, changes allowed also after first channel allocation as a result of the request"; break;
-       case 0x0b: str = "Full or Half rate TCH channel, Half rate preferred, changes allowed also after first channel allocation as a result of the request"; break;
-       case 0x1a: str = "Full or Half rate TCH channel, Full rate preferred, changes not allowed after first channel allocation as a result of the request"; break;
-       case 0x1b: str = "Full or Half rate TCH channel. Half rate preferred, changes not allowed after first channel allocation as a result of the request"; break;
-       default:
-           str = "Reserved";
-           break;
-       }
+               switch (oct)
+               {
+               case 0x00: str = "SDCCH or Full rate TCH channel Bm or Half rate TCH channel Lm"; break;
+               case 0x01: str = "SDCCH"; break;
+               case 0x02: str = "SDCCH or Full rate TCH channel Bm"; break;
+               case 0x03: str = "SDCCH or Half rate TCH channel Lm"; break;
+               case 0x08: str = "Full rate TCH channel Bm"; break;
+               case 0x09: str = "Half rate TCH channel Lm"; break;
+               case 0x0a: str = "Full or Half rate TCH channel, Full rate preferred, changes allowed also after first channel allocation as a result of the request"; break;
+               case 0x0b: str = "Full or Half rate TCH channel, Half rate preferred, changes allowed also after first channel allocation as a result of the request"; break;
+               case 0x1a: str = "Full or Half rate TCH channel, Full rate preferred, changes not allowed after first channel allocation as a result of the request"; break;
+               case 0x1b: str = "Full or Half rate TCH channel. Half rate preferred, changes not allowed after first channel allocation as a result of the request"; break;
+               default:
+                       str = "Reserved";
+                       break;
+               }
 
-       proto_tree_add_text(tree,
-           tvb, curr_offset, 1,
-           "Channel Rate and Type: %s",
-           str);
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, 1,
+                       "Channel Rate and Type: %s",
+                       str);
 
-       curr_offset++;
+               curr_offset++;
 
-       NO_MORE_DATA_CHECK(len);
+               NO_MORE_DATA_CHECK(len);
 
-       proto_tree_add_text(tree,
-           tvb, curr_offset, len - (curr_offset - offset),
-           "Spare");
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, len - (curr_offset - offset),
+                       "Spare");
 
-       curr_offset += len - (curr_offset - offset);
+               curr_offset += len - (curr_offset - offset);
        }
        else
        {
-       /* unknown format */
+               /* unknown format */
 
-       proto_tree_add_text(tree,
-           tvb, curr_offset, len - (curr_offset - offset),
-           "Unknown format");
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, len - (curr_offset - offset),
+                       "Unknown format");
 
-       curr_offset += len - (curr_offset - offset);
+               curr_offset += len - (curr_offset - offset);
        }
 
        EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
@@ -1122,111 +1118,101 @@ be_cell_id_aux(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
        switch (disc)
        {
        case 0x00:
-       /* FALLTHRU */
+               /* FALLTHRU */
 
        case 0x04:
-       /* FALLTHRU */
+               /* FALLTHRU */
 
        case 0x08:  /* For intersystem handover from GSM to UMTS or cdma2000: */
-
-       curr_offset = dissect_e212_mcc_mnc(tvb, tree, curr_offset);
-
-       /* FALLTHRU */
+               curr_offset = dissect_e212_mcc_mnc(tvb, tree, curr_offset);
+               /* FALLTHRU */
 
        case 0x01:
        case 0x05:
        case 0x0a: /*For intersystem handover from GSM to UMTS or cdma2000: */
+               /* LAC */
+               value = tvb_get_ntohs(tvb, curr_offset);
+               proto_tree_add_item(tree, hf_gsm_a_cell_lac, tvb, curr_offset, 2, FALSE);
+               curr_offset += 2;
 
-       /* LAC */
+               if (add_string)
+                       g_snprintf(add_string, string_len, " - LAC (0x%04x)", value);
+               /* FALLTHRU */
 
-       value = tvb_get_ntohs(tvb, curr_offset);
+       case 0x09: /* For intersystem handover from GSM to UMTS or cdma2000: */
 
-       proto_tree_add_item(tree, hf_gsm_a_cell_lac, tvb, curr_offset, 2, FALSE);
-       
-       curr_offset += 2;
+               if ((disc == 0x08) ||(disc == 0x09) || (disc == 0x0a)){
+                       /* RNC-ID */
+                       value = tvb_get_ntohs(tvb, curr_offset);
+                       proto_tree_add_item(tree, hf_gsm_a_be_rnc_id, tvb, curr_offset, 2, FALSE);
+
+                       if (add_string)
+                       {
+                               if (add_string[0] == '\0')
+                               {
+                                       g_snprintf(add_string, string_len, " - RNC-ID (%u)", value);
+                               }
+                               else
+                               {
+                                       g_snprintf(add_string, string_len, "%s/RNC-ID (%u)", add_string, value);
+                               }
+                       }
+                       break;
+               }
 
-       if (add_string)
-           g_snprintf(add_string, string_len, " - LAC (0x%04x)", value);
+               if ((disc == 0x04) || (disc == 0x05) || (disc == 0x08)) break;
 
-       /* FALLTHRU */
+               /* FALLTHRU */
 
-       case 0x09: /* For intersystem handover from GSM to UMTS or cdma2000: */
+       case 0x02:
+               /* CI */
 
-       if ((disc == 0x08) ||(disc == 0x09) || (disc == 0x0a)){
-               /* RNC-ID */
                value = tvb_get_ntohs(tvb, curr_offset);
-               proto_tree_add_item(tree, hf_gsm_a_be_rnc_id, tvb, curr_offset, 2, FALSE);
+               proto_tree_add_uint(tree, hf_gsm_a_cell_ci, tvb,
+                       curr_offset, 2, value);
+
+               curr_offset += 2;
 
                if (add_string)
                {
-                   if (add_string[0] == '\0')
-                   {
-                       g_snprintf(add_string, string_len, " - RNC-ID (%u)", value);
-                   }
-                   else
-                   {
-                       g_snprintf(add_string, string_len, "%s/RNC-ID (%u)", add_string, value);
-                   }
+                       if (add_string[0] == '\0')
+                       {
+                               g_snprintf(add_string, string_len, " - CI (%u)", value);
+                       }
+                       else
+                       {
+                               g_snprintf(add_string, string_len, "%s/CI (%u)", add_string, value);
+                       }
                }
                break;
-       }
-
-       if ((disc == 0x04) || (disc == 0x05) || (disc == 0x08)) break;
-
-       /* FALLTHRU */
-
-       case 0x02:
-
-       /* CI */
-
-       value = tvb_get_ntohs(tvb, curr_offset);
-
-       proto_tree_add_uint(tree, hf_gsm_a_cell_ci, tvb,
-           curr_offset, 2, value);
-
-       curr_offset += 2;
-
-       if (add_string)
-       {
-           if (add_string[0] == '\0')
-           {
-               g_snprintf(add_string, string_len, " - CI (%u)", value);
-           }
-           else
-           {
-               g_snprintf(add_string, string_len, "%s/CI (%u)", add_string, value);
-           }
-       }
-       break;
 
        default:
-       proto_tree_add_text(tree, tvb, curr_offset, len,
-           "Cell ID - Unknown format");
+               proto_tree_add_text(tree, tvb, curr_offset, len,
+                       "Cell ID - Unknown format");
 
-       curr_offset += (len);
-       break;
+               curr_offset += (len);
+               break;
        }
 
        return(curr_offset - offset);
 }
 
 static guint8
-be_cell_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+be_cell_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string, int string_len)
 {
        guint8  oct;
        guint8  disc;
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
 
        other_decode_bitfield_value(a_bigbuf, oct, 0xf0, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Spare",
-       a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        proto_tree_add_item(tree, hf_gsm_a_be_cell_id_disc, tvb, curr_offset, 1, FALSE);
        disc = oct&0x0f;
@@ -1246,13 +1232,12 @@ be_cell_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *ad
  * [2] 3.2.2.18
  */
 static guint8
-be_prio(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+be_prio(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string, int string_len)
 {
        guint8  oct;
        guint32 curr_offset;
        const gchar *str;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -1261,44 +1246,44 @@ be_prio(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_s
 
        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",
-       a_bigbuf,
-       (oct & 0x40) ? "may" : "shall not");
+               tvb, curr_offset, 1,
+               "%s :  Preemption Capability Indicator (PCI): this allocation request %s preempt an existing connection",
+               a_bigbuf,
+               (oct & 0x40) ? "may" : "shall not");
 
        switch ((oct & 0x3c) >> 2)
        {
        case 0x00: str = "Spare"; break;
        case 0x0f: str = "priority not used"; break;
        default:
-       str = "1 is highest";
-       break;
+               str = "1 is highest";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x3c, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Priority Level: (%u) %s",
-       a_bigbuf,
-       (oct & 0x3c) >> 2,
-       str);
+               tvb, curr_offset, 1,
+               "%s :  Priority Level: (%u) %s",
+               a_bigbuf,
+               (oct & 0x3c) >> 2,
+               str);
 
        if (add_string)
-       g_snprintf(add_string, string_len, " - (%u)", (oct & 0x3c) >> 2);
+               g_snprintf(add_string, string_len, " - (%u)", (oct & 0x3c) >> 2);
 
        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",
-       a_bigbuf,
-       (oct & 0x02) ? "" : "not ");
+               tvb, curr_offset, 1,
+               "%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",
-       a_bigbuf,
-       (oct & 0x01) ? "might" : "shall not");
+               tvb, curr_offset, 1,
+               "%s :  Preemption Vulnerability Indicator (PVI): this connection %s be preempted by another allocation request",
+               a_bigbuf,
+               (oct & 0x01) ? "might" : "shall not");
 
        curr_offset++;
 
@@ -1319,7 +1304,7 @@ be_l3_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *ad
        curr_offset = offset;
 
        proto_tree_add_text(tree, tvb, curr_offset, len,
-       "Layer 3 Information value");
+               "Layer 3 Information value");
 
        /*
         * dissect the embedded DTAP message
@@ -1339,19 +1324,18 @@ be_l3_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *ad
  * [2] 3.2.2.25
  */
 static guint8
-be_dlci(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+be_dlci(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
        proto_item      *item = NULL;
        proto_tree      *subtree = NULL;
 
-       len = len;
        curr_offset = offset;
 
        item =
        proto_tree_add_text(tree, tvb, curr_offset, 1,
-           "Data Link Connection Identifier");
+               "Data Link Connection Identifier");
 
        subtree = proto_item_add_subtree(item, ett_dlci);
 
@@ -1372,28 +1356,27 @@ be_dlci(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_s
  * [2] 3.2.2.26
  */
 static guint8
-be_down_dtx_flag(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+be_down_dtx_flag(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint   oct;
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
 
        other_decode_bitfield_value(a_bigbuf, oct, 0xfe, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Spare",
-       a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        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",
-       a_bigbuf,
-       (oct & 0x01) ? "forbidden" : "allowed");
+               tvb, curr_offset, 1,
+               "%s :  BSS is %s to activate DTX in the downlink direction",
+               a_bigbuf,
+               (oct & 0x01) ? "forbidden" : "allowed");
 
        curr_offset++;
 
@@ -1422,9 +1405,9 @@ be_cell_id_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
 
        other_decode_bitfield_value(a_bigbuf, oct, 0xf0, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Spare",
-       a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        disc = oct & 0x0f;
        proto_tree_add_item(tree, hf_gsm_a_be_cell_id_disc, tvb, curr_offset, 1, FALSE);
@@ -1435,35 +1418,36 @@ be_cell_id_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
        num_cells = 0;
        do
        {
-       item =
-           proto_tree_add_text(tree,
-               tvb, curr_offset, -1,
-               "Cell %u",
-               num_cells + 1);
+               item =
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, -1,
+                       "Cell %u",
+                       num_cells + 1);
 
-       subtree = proto_item_add_subtree(item, ett_cell_list);
+               subtree = proto_item_add_subtree(item, ett_cell_list);
 
-       if (add_string)
-           add_string[0] = '\0';
-       consumed =
-           be_cell_id_aux(tvb, subtree, curr_offset, len - (curr_offset - offset), add_string, string_len, disc);
+               if (add_string)
+                       add_string[0] = '\0';
 
-       if (add_string && add_string[0] != '\0')
-       {
-           proto_item_append_text(item, "%s", add_string ? add_string : "");
-       }
+               consumed =
+                       be_cell_id_aux(tvb, subtree, curr_offset, len - (curr_offset - offset), add_string, string_len, disc);
 
-       proto_item_set_len(item, consumed);
+               if (add_string && add_string[0] != '\0')
+               {
+                       proto_item_append_text(item, "%s", add_string ? add_string : "");
+               }
+
+               proto_item_set_len(item, consumed);
 
-       curr_offset += consumed;
+               curr_offset += consumed;
 
-       num_cells++;
+               num_cells++;
        }
        while ((len - (curr_offset - offset)) > 0 && consumed > 0);
 
        if (add_string) {
-       g_snprintf(add_string, string_len, " - %u cell%s",
-           num_cells, plurality(num_cells, "", "s"));
+               g_snprintf(add_string, string_len, " - %u cell%s",
+                       num_cells, plurality(num_cells, "", "s"));
        }
 
        EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
@@ -1475,13 +1459,12 @@ be_cell_id_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
  * [2] 3.2.2.33
  */
 static guint8
-be_chosen_chan(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+be_chosen_chan(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
        const gchar *str = NULL;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -1496,16 +1479,16 @@ be_chosen_chan(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
        case 13: str = "Data, 3.6 kbit/s radio interface rate"; break;
        case 8: str = "Signalling only"; break;
        default:
-       str = "Reserved";
-       break;
+               str = "Reserved";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0xf0, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Channel mode: %s",
-       a_bigbuf,
-       str);
+               tvb, curr_offset, 1,
+               "%s :  Channel mode: %s",
+               a_bigbuf,
+               str);
 
        switch (oct & 0x0f)
        {
@@ -1521,16 +1504,16 @@ be_chosen_chan(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
        case 15: str = "7 Full Rate TCHs"; break;
        case 4: str = "8 Full Rate TCHs"; break;
        default:
-       str = "Reserved";
-       break;
+               str = "Reserved";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x0f, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Channel: %s",
-       a_bigbuf,
-       str);
+               tvb, curr_offset, 1,
+               "%s :  Channel: %s",
+               a_bigbuf,
+               str);
 
        curr_offset++;
 
@@ -1543,28 +1526,27 @@ be_chosen_chan(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
  * [2] 3.2.2.34
  */
 static guint8
-be_ciph_resp_mode(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+be_ciph_resp_mode(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
 
        other_decode_bitfield_value(a_bigbuf, oct, 0xfe, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Spare",
-       a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        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",
-       a_bigbuf,
-       (oct & 0x01) ? "" : "not ");
+               tvb, curr_offset, 1,
+               "%s :  IMEISV must %sbe included by the mobile station",
+               a_bigbuf,
+               (oct & 0x01) ? "" : "not ");
 
        curr_offset++;
 
@@ -1586,7 +1568,7 @@ be_l3_msg(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
        curr_offset = offset;
 
        proto_tree_add_text(tree, tvb, curr_offset, len,
-       "Layer 3 Message Contents");
+               "Layer 3 Message Contents");
 
        /*
         * dissect the embedded DTAP message
@@ -1606,56 +1588,55 @@ be_l3_msg(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
  * [2] 3.2.2.36 Channel Needed
  */
 static guint8
-be_cha_needed(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+be_cha_needed(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        /* no length check possible */
-       proto_tree_add_item(tree, hf_gsm_a_rr_chnl_needed_ch1, tvb, curr_offset, 1, FALSE);
-               curr_offset++;
+       proto_tree_add_item(tree, hf_gsm_a_rr_chnl_needed_ch1, tvb, curr_offset, 1, FALSE);
+
+       curr_offset++;
+
        return(curr_offset - offset);
 }
 
-
 /*
  * [2] 3.2.2.43
  */
 static guint8
-be_for_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+be_for_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
        const gchar *str = NULL;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
 
        other_decode_bitfield_value(a_bigbuf, oct, 0xf0, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Spare",
-       a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        switch (oct & 0x0f)
        {
        case 1: str = "forward to subsequent BSS, no trace at MSC"; break;
        case 2: str = "forward to subsequent BSS, and trace at MSC"; break;
        default:
-       str = "Reserved";
-       break;
+               str = "Reserved";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x0f, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  %s",
-       a_bigbuf,
-       str);
+               tvb, curr_offset, 1,
+               "%s :  %s",
+               a_bigbuf,
+               str);
 
        curr_offset++;
 
@@ -1668,13 +1649,12 @@ be_for_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *ad
  * [2] 3.2.2.44
  */
 static guint8
-be_chosen_enc_alg(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+be_chosen_enc_alg(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string, int string_len)
 {
        guint8  oct;
        guint32 curr_offset;
        const gchar *str = NULL;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -1690,19 +1670,19 @@ be_chosen_enc_alg(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
        case 0x07: str = "GSM A5/6"; break;
        case 0x08: str = "GSM A5/7"; break;
        default:
-       str = "Reserved";
-       break;
+               str = "Reserved";
+               break;
        }
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "Algorithm Identifier: %s",
-       str);
+               tvb, curr_offset, 1,
+               "Algorithm Identifier: %s",
+               str);
 
        curr_offset++;
 
        if (add_string)
-       g_snprintf(add_string, string_len, " - %s", str);
+               g_snprintf(add_string, string_len, " - %s", str);
 
        /* no length check possible */
 
@@ -1713,40 +1693,39 @@ be_chosen_enc_alg(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
  * [2] 3.2.2.45
  */
 static guint8
-be_cct_pool(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+be_cct_pool(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string, int string_len)
 {
        guint8  oct;
        guint32 curr_offset;
        const gchar *str = NULL;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
 
        if (oct <= 32)
        {
-       str = "";
+               str = "";
        }
        else if ((oct >= 0x80) && (oct <= 0x8f))
        {
-       str = ", for national/local use";
+               str = ", for national/local use";
        }
        else
        {
-       str = ", reserved for future international use";
+               str = ", reserved for future international use";
        }
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "Circuit pool number: %u%s",
-       oct,
-       str);
+               tvb, curr_offset, 1,
+               "Circuit pool number: %u%s",
+               oct,
+               str);
 
        curr_offset++;
 
        if (add_string)
-       g_snprintf(add_string, string_len, " - (%u)", oct);
+               g_snprintf(add_string, string_len, " - (%u)", oct);
 
        /* no length check possible */
 
@@ -1757,13 +1736,12 @@ be_cct_pool(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *a
  * [2] 3.2.2.49
  */
 static guint8
-be_curr_chan_1(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+be_curr_chan_1(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
        const gchar *str;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -1777,16 +1755,16 @@ be_curr_chan_1(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
        case 0x04: str = "Data, 6.0 kbit/s radio interface rate"; break;
        case 0x05: str = "Data, 3.6 kbit/s radio interface rate"; break;
        default:
-       str = "Reserved";
-       break;
+               str = "Reserved";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0xf0, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Channel Mode: %s",
-       a_bigbuf,
-       str);
+               tvb, curr_offset, 1,
+               "%s :  Channel Mode: %s",
+               a_bigbuf,
+               str);
 
        switch (oct & 0x0f)
        {
@@ -1801,17 +1779,17 @@ be_curr_chan_1(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
        case 0x0f: str = "7 Full Rate TCHs"; break;
        case 0x04: str = "8 Full Rate TCHs"; break;
        default:
-       str = "Reserved";
-       break;
+               str = "Reserved";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x0f, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Channel: (%u) %s",
-       a_bigbuf,
-       oct & 0x0f,
-       str);
+               tvb, curr_offset, 1,
+               "%s :  Channel: (%u) %s",
+               a_bigbuf,
+               oct & 0x0f,
+               str);
 
        curr_offset++;
 
@@ -1824,34 +1802,33 @@ be_curr_chan_1(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
  * [2] 3.2.2.50
  */
 static guint8
-be_que_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+be_que_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
 
        other_decode_bitfield_value(a_bigbuf, oct, 0xfc, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Spare",
-       a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        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",
-       a_bigbuf,
-       (oct & 0x02) ? "" : "not ");
+               tvb, curr_offset, 1,
+               "%s :  qri: it is recommended %sto allow queuing",
+               a_bigbuf,
+               (oct & 0x02) ? "" : "not ");
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x01, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Spare",
-       a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        curr_offset++;
 
@@ -1864,14 +1841,13 @@ be_que_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *ad
  * [2] 3.2.2.51
  */
 static guint8
-be_speech_ver(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+be_speech_ver(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string, int string_len)
 {
        guint8  oct;
        guint32 curr_offset;
        const gchar *str = NULL;
        const gchar     *short_str = NULL;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -1889,22 +1865,22 @@ be_speech_ver(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
        case 0x25: str = "GSM speech half rate version 3 (AMR)"; short_str = "HR3 (AMR)"; break;
 
        default:
-       str = "Reserved";
-       short_str = str;
+               str = "Reserved";
+               short_str = str;
        break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x7f, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Speech version identifier: %s",
-       a_bigbuf,
-       str);
+               tvb, curr_offset, 1,
+               "%s :  Speech version identifier: %s",
+               a_bigbuf,
+               str);
 
        curr_offset++;
 
        if (add_string)
-       g_snprintf(add_string, string_len, " - (%s)", short_str);
+               g_snprintf(add_string, string_len, " - (%s)", short_str);
 
        /* no length check possible */
 
@@ -1938,8 +1914,8 @@ be_apdu(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_s
        curr_offset = offset;
 
        /* curr_offset + 1 is a hack, the length part here is 2 octets and we are off by one */
-    proto_tree_add_text(tree, tvb, curr_offset+1, len,
-       "APDU");
+       proto_tree_add_text(tree, tvb, curr_offset+1, len,
+               "APDU");
 
        /*
         * dissect the embedded APDU message
@@ -3117,7 +3093,7 @@ dissect_bssmap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 
        if (check_col(pinfo->cinfo, COL_INFO))
        {
-       col_append_str(pinfo->cinfo, COL_INFO, "(BSSMAP) ");
+               col_append_str(pinfo->cinfo, COL_INFO, "(BSSMAP) ");
        }
 
        /*
@@ -3126,7 +3102,7 @@ dissect_bssmap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
        tap_current++;
        if (tap_current >= 4)
        {
-       tap_current = 0;
+               tap_current = 0;
        }
        tap_p = &tap_rec[tap_current];
 
@@ -3155,32 +3131,32 @@ dissect_bssmap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
         */
        if (str == NULL)
        {
-       bssmap_item =
-           proto_tree_add_protocol_format(tree, proto_a_bssmap, tvb, 0, len,
-               "GSM A-I/F BSSMAP - Unknown BSSMAP Message Type (0x%02x)",
-               oct);
+               bssmap_item =
+               proto_tree_add_protocol_format(tree, proto_a_bssmap, tvb, 0, len,
+                       "GSM A-I/F BSSMAP - Unknown BSSMAP Message Type (0x%02x)",
+                       oct);
 
-       bssmap_tree = proto_item_add_subtree(bssmap_item, ett_bssmap_msg);
+               bssmap_tree = proto_item_add_subtree(bssmap_item, ett_bssmap_msg);
        }
        else
        {
-       bssmap_item =
-           proto_tree_add_protocol_format(tree, proto_a_bssmap, tvb, 0, -1,
-               "GSM A-I/F BSSMAP - %s",
-               str);
+               bssmap_item =
+               proto_tree_add_protocol_format(tree, proto_a_bssmap, tvb, 0, -1,
+                       "GSM A-I/F BSSMAP - %s",
+                       str);
 
-       bssmap_tree = proto_item_add_subtree(bssmap_item, ett_gsm_bssmap_msg[idx]);
+               bssmap_tree = proto_item_add_subtree(bssmap_item, ett_gsm_bssmap_msg[idx]);
 
-       if (check_col(pinfo->cinfo, COL_INFO))
-       {
-           col_append_fstr(pinfo->cinfo, COL_INFO, "%s ", str);
-       }
+               if (check_col(pinfo->cinfo, COL_INFO))
+               {
+                       col_append_fstr(pinfo->cinfo, COL_INFO, "%s ", str);
+               }
 
-       /*
-        * add BSSMAP message name
-        */
-       proto_tree_add_uint_format(bssmap_tree, hf_gsm_a_bssmap_msg_type,
-       tvb, saved_offset, 1, oct, "Message Type %s",str);
+               /*
+                * add BSSMAP message name
+                */
+               proto_tree_add_uint_format(bssmap_tree, hf_gsm_a_bssmap_msg_type,
+               tvb, saved_offset, 1, oct, "Message Type %s",str);
        }
 
        tap_p->pdu_type = BSSAP_PDU_TYPE_BSSMAP;
@@ -3197,13 +3173,13 @@ dissect_bssmap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
         */
        if (bssmap_msg_fcn[idx] == NULL)
        {
-       proto_tree_add_text(bssmap_tree,
-           tvb, offset, len - offset,
-           "Message Elements");
+               proto_tree_add_text(bssmap_tree,
+                       tvb, offset, len - offset,
+                       "Message Elements");
        }
        else
        {
-       (*bssmap_msg_fcn[idx])(tvb, bssmap_tree, offset, len - offset);
+               (*bssmap_msg_fcn[idx])(tvb, bssmap_tree, offset, len - offset);
        }
 }
 
@@ -3219,49 +3195,49 @@ proto_register_gsm_a_bssmap(void)
        static hf_register_info hf[] =
        {
        { &hf_gsm_a_bssmap_msg_type,
-           { "BSSMAP Message Type",    "gsm_a.bssmap_msgtype",
-           FT_UINT8, BASE_HEX, VALS(gsm_a_bssmap_msg_strings), 0x0,
-           "", HFILL }
+               { "BSSMAP Message Type",        "gsm_a.bssmap_msgtype",
+               FT_UINT8, BASE_HEX, VALS(gsm_a_bssmap_msg_strings), 0x0,
+               "", HFILL }
        },
        { &hf_gsm_a_bssmap_elem_id,
-           { "Element ID",     "gsm_a_bssmap.elem_id",
-           FT_UINT8, BASE_DEC, NULL, 0,
-           "", HFILL }
+               { "Element ID", "gsm_a_bssmap.elem_id",
+               FT_UINT8, BASE_DEC, NULL, 0,
+               "", HFILL }
        },
        { &hf_gsm_a_length,
-           { "Length",         "gsm_a.len",
-           FT_UINT16, BASE_DEC, NULL, 0,
-           "", HFILL }
+               { "Length",             "gsm_a.len",
+               FT_UINT16, BASE_DEC, NULL, 0,
+               "", HFILL }
        },
        { &hf_gsm_a_cell_ci,
-           { "Cell CI",        "gsm_a.cell_ci",
-           FT_UINT16, BASE_HEX_DEC, 0, 0x0,
-           "", HFILL }
+               { "Cell CI",    "gsm_a.cell_ci",
+               FT_UINT16, BASE_HEX_DEC, 0, 0x0,
+               "", HFILL }
        },
        { &hf_gsm_a_cell_lac,
-           { "Cell LAC",       "gsm_a.cell_lac",
-           FT_UINT16, BASE_HEX_DEC, 0, 0x0,
-           "", HFILL }
+               { "Cell LAC",   "gsm_a.cell_lac",
+               FT_UINT16, BASE_HEX_DEC, 0, 0x0,
+               "", HFILL }
        },
        { &hf_gsm_a_dlci_cc,
-           { "Control Channel", "bssap.dlci.cc",
-           FT_UINT8, BASE_HEX, VALS(bssap_cc_values), 0xc0,
-           "", HFILL}
+               { "Control Channel", "bssap.dlci.cc",
+               FT_UINT8, BASE_HEX, VALS(bssap_cc_values), 0xc0,
+               "", HFILL}
        },
        { &hf_gsm_a_dlci_spare,
-           { "Spare", "bssap.dlci.spare",
-           FT_UINT8, BASE_HEX, NULL, 0x38,
-           "", HFILL}
+               { "Spare", "bssap.dlci.spare",
+               FT_UINT8, BASE_HEX, NULL, 0x38,
+               "", HFILL}
        },
        { &hf_gsm_a_dlci_sapi,
-           { "SAPI", "bssap.dlci.sapi",
-           FT_UINT8, BASE_HEX, VALS(bssap_sapi_values), 0x07,
-           "", HFILL}
+               { "SAPI", "bssap.dlci.sapi",
+               FT_UINT8, BASE_HEX, VALS(bssap_sapi_values), 0x07,
+               "", HFILL}
        },
        { &hf_gsm_a_bssmap_cause,
-           { "BSSMAP Cause",   "gsm_a_bssmap.cause",
-           FT_UINT8, BASE_HEX, 0, 0x0,
-           "", HFILL }
+               { "BSSMAP Cause",       "gsm_a_bssmap.cause",
+               FT_UINT8, BASE_HEX, 0, 0x0,
+               "", HFILL }
        },
        { &hf_gsm_a_be_cell_id_disc,
                { "Cell identification discriminator","gsm_a.be.cell_id_disc",
@@ -3293,20 +3269,20 @@ proto_register_gsm_a_bssmap(void)
 
        for (i=0; i < NUM_GSM_BSSMAP_MSG; i++, last_offset++)
        {
-       ett_gsm_bssmap_msg[i] = -1;
-       ett[last_offset] = &ett_gsm_bssmap_msg[i];
+               ett_gsm_bssmap_msg[i] = -1;
+               ett[last_offset] = &ett_gsm_bssmap_msg[i];
        }
 
        for (i=0; i < NUM_GSM_BSSMAP_ELEM; i++, last_offset++)
        {
-       ett_gsm_bssmap_elem[i] = -1;
-       ett[last_offset] = &ett_gsm_bssmap_elem[i];
+               ett_gsm_bssmap_elem[i] = -1;
+               ett[last_offset] = &ett_gsm_bssmap_elem[i];
        }
 
        /* Register the protocol name and description */
 
        proto_a_bssmap =
-       proto_register_protocol("GSM A-I/F BSSMAP", "GSM BSSMAP", "gsm_a_bssmap");
+               proto_register_protocol("GSM A-I/F BSSMAP", "GSM BSSMAP", "gsm_a_bssmap");
 
        proto_register_field_array(proto_a_bssmap, hf, array_length(hf));
 
index fa3dbc7aa64d2a81762757f303d054c1b63fe755..01c6649a81c49f5e35a591f394c8d81ffded7668 100644 (file)
@@ -60,7 +60,6 @@ const value_string gsm_common_elem_strings[] = {
        { 0x00, "Descriptive group or broadcast call reference" },
        { 0x00, "Group Cipher Key Number" },
        { 0x00, "PD and SAPI $(CCBS)$" },
-       /* Pos 10 */
        { 0x00, "Priority Level" },
        { 0x00, "PLMN List" },
        { 0, NULL }
@@ -73,130 +72,130 @@ const value_string gsm_common_elem_strings[] = {
  * Revision level
  */
 static const value_string gsm_a_msc_rev_vals[] = {
-       { 0,            "Reserved for GSM phase 1"},
-       { 1,            "Used by GSM phase 2 mobile stations"},
-       { 2,            "Used by mobile stations supporting R99 or later versions of the protocol"},
-       { 3,            "Reserved for future use"},
+       { 0,    "Reserved for GSM phase 1"},
+       { 1,    "Used by GSM phase 2 mobile stations"},
+       { 2,    "Used by mobile stations supporting R99 or later versions of the protocol"},
+       { 3,    "Reserved for future use"},
        { 0,    NULL }
 };
 
 /* ES IND (octet 3, bit 5) "Controlled Early Classmark Sending" option implementation */
 static const value_string ES_IND_vals[] = {
-       { 0,            "Controlled Early Classmark Sending option is not implemented in the MS"},
-       { 1,            "Controlled Early Classmark Sending option is implemented in the MS"},
+       { 0,    "Controlled Early Classmark Sending option is not implemented in the MS"},
+       { 1,    "Controlled Early Classmark Sending option is implemented in the MS"},
        { 0,    NULL }
 };
 /* A5/1 algorithm supported (octet 3, bit 4 */
 static const value_string A5_1_algorithm_sup_vals[] = {
-       { 0,            "encryption algorithm A5/1 available"},
-       { 1,            "encryption algorithm A5/1 not available"},
+       { 0,    "encryption algorithm A5/1 available"},
+       { 1,    "encryption algorithm A5/1 not available"},
        { 0,    NULL }
 };
 /* RF Power Capability (Octet 3) */
 static const value_string RF_power_capability_vals[] = {
-       { 0,            "class 1"},
-       { 1,            "class 2"},
-       { 2,            "class 3"},
-       { 3,            "class 4"},
-       { 4,            "class 5"},
-       { 7,            "RF Power capability is irrelevant in this information element"},
+       { 0,    "class 1"},
+       { 1,    "class 2"},
+       { 2,    "class 3"},
+       { 3,    "class 4"},
+       { 4,    "class 5"},
+       { 7,    "RF Power capability is irrelevant in this information element"},
        { 0,    NULL }
 };
 /* PS capability (pseudo-synchronization capability) (octet 4) */
 static const value_string ps_sup_cap_vals[] = {
-       { 0,            "PS capability not present"},
-       { 1,            "PS capability present"},
+       { 0,    "PS capability not present"},
+       { 1,    "PS capability present"},
        { 0,    NULL }
 };
 /* SS Screening Indicator (octet 4)defined in 3GPP TS 24.080 */
 static const value_string SS_screening_indicator_vals[] = {
-       { 0,            "Default value of phase 1"},
-       { 1,            "Capability of handling of ellipsis notation and phase 2 error handling "},
-       { 2,            "For future use"},
-       { 3,            "For future use"},
+       { 0,    "Default value of phase 1"},
+       { 1,    "Capability of handling of ellipsis notation and phase 2 error handling "},
+       { 2,    "For future use"},
+       { 3,    "For future use"},
        { 0,    NULL }
 };
 /* SM capability (MT SMS pt to pt capability) (octet 4)*/
 static const value_string SM_capability_vals[] = {
-       { 0,            "Mobile station does not support mobile terminated point to point SMS"},
-       { 1,            "Mobile station supports mobile terminated point to point SMS"},
+       { 0,    "Mobile station does not support mobile terminated point to point SMS"},
+       { 1,    "Mobile station supports mobile terminated point to point SMS"},
        { 0,    NULL }
 };
 /* VBS notification reception (octet 4) */
 static const value_string VBS_notification_rec_vals[] = {
-       { 0,            "no VBS capability or no notifications wanted"},
-       { 1,            "VBS capability and notifications wanted"},
+       { 0,    "no VBS capability or no notifications wanted"},
+       { 1,    "VBS capability and notifications wanted"},
        { 0,    NULL }
 };
 /* VGCS notification reception (octet 4) */
 static const value_string VGCS_notification_rec_vals[] = {
-       { 0,            "no VGCS capability or no notifications wanted"},
-       { 1,            "VGCS capability and notifications wanted"},
+       { 0,    "no VGCS capability or no notifications wanted"},
+       { 1,    "VGCS capability and notifications wanted"},
        { 0,    NULL }
 };
 /* FC Frequency Capability (octet 4 ) */
 static const value_string FC_frequency_cap_vals[] = {
-       { 0,            "The MS does not support the E-GSM or R-GSM band"},
-       { 1,            "The MS does support the E-GSM or R-GSM "},
+       { 0,    "The MS does not support the E-GSM or R-GSM band"},
+       { 1,    "The MS does support the E-GSM or R-GSM "},
        { 0,    NULL }
 };
 /* CM3 (octet 5, bit 8) */
 static const value_string CM3_vals[] = {
-       { 0,            "The MS does not support any options that are indicated in CM3"},
-       { 1,            "The MS supports options that are indicated in classmark 3 IE"},
+       { 0,    "The MS does not support any options that are indicated in CM3"},
+       { 1,    "The MS supports options that are indicated in classmark 3 IE"},
        { 0,    NULL }
 };
 /* LCS VA capability (LCS value added location request notification capability) (octet 5,bit 6) */
 static const value_string LCS_VA_cap_vals[] = {
-       { 0,            "LCS value added location request notification capability not supported"},
-       { 1,            "LCS value added location request notification capability supported"},
+       { 0,    "LCS value added location request notification capability not supported"},
+       { 1,    "LCS value added location request notification capability supported"},
        { 0,    NULL }
 };
 /* UCS2 treatment (octet 5, bit 5) */
 static const value_string UCS2_treatment_vals[] = {
-       { 0,            "the ME has a preference for the default alphabet"},
-       { 1,            "the ME has no preference between the use of the default alphabet and the use of UCS2"},
+       { 0,    "the ME has a preference for the default alphabet"},
+       { 1,    "the ME has no preference between the use of the default alphabet and the use of UCS2"},
        { 0,    NULL }
 };
 /* SoLSA (octet 5, bit 4) */
 static const value_string SoLSA_vals[] = {
-       { 0,            "The ME does not support SoLSA"},
-       { 1,            "The ME supports SoLSA"},
+       { 0,    "The ME does not support SoLSA"},
+       { 1,    "The ME supports SoLSA"},
        { 0,    NULL }
 };
 /* CMSP: CM Service Prompt (octet 5, bit 3) */
 static const value_string CMSP_vals[] = {
-       { 0,            "Network initiated MO CM connection request not supported"},
-       { 1,            "Network initiated MO CM connection request supported for at least one CM protocol"},
+       { 0,    "Network initiated MO CM connection request not supported"},
+       { 1,    "Network initiated MO CM connection request supported for at least one CM protocol"},
        { 0,    NULL }
 };
 /* A5/3 algorithm supported (octet 5, bit 2) */
 static const value_string A5_3_algorithm_sup_vals[] = {
-       { 0,            "encryption algorithm A5/3 not available"},
-       { 1,            "encryption algorithm A5/3 available"},
+       { 0,    "encryption algorithm A5/3 not available"},
+       { 1,    "encryption algorithm A5/3 available"},
        { 0,    NULL }
 };
 
 /* A5/2 algorithm supported (octet 5, bit 1) */
 static const value_string A5_2_algorithm_sup_vals[] = {
-       { 0,            "encryption algorithm A5/2 not available"},
-       { 1,            "encryption algorithm A5/2 available"},
+       { 0,    "encryption algorithm A5/2 not available"},
+       { 1,    "encryption algorithm A5/2 available"},
        { 0,    NULL }
 };
 
 static const value_string mobile_identity_type_vals[] = {
-       { 1,            "IMSI"},
-       { 2,            "IMEI"},
-       { 3,            "IMEISV"},
-       { 4,            "TMSI/P-TMSI"},
-       { 5,            "TMGI and optional MBMS Session Identity"}, /* ETSI TS 124 008 V6.8.0 (2005-03) p326 */
-       { 0,            "No Identity"},
+       { 1,    "IMSI"},
+       { 2,    "IMEI"},
+       { 3,    "IMEISV"},
+       { 4,    "TMSI/P-TMSI"},
+       { 5,    "TMGI and optional MBMS Session Identity"}, /* ETSI TS 124 008 V6.8.0 (2005-03) p326 */
+       { 0,    "No Identity"},
        { 0,    NULL }
 };
 
 static const value_string oddevenind_vals[] = {
-       { 0,            "Even number of identity digits"},
-       { 1,            "Odd number of identity digits"},
+       { 0,    "Even number of identity digits"},
+       { 1,    "Odd number of identity digits"},
        { 0,    NULL }
 };
 
@@ -312,9 +311,9 @@ static int get_hf_elem_id(int pdu_type)
 /*
  * Type Length Value (TLV) element dissector
  */
-guint8 elem_tlv(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, int idx, guint32 offset, guint len, const gchar *name_add)
+guint8 elem_tlv(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, int idx, guint32 offset, guint len _U_, const gchar *name_add)
 {
-    guint8             oct;
+       guint8          oct;
        guint16         parm_len;
        guint8          lengt_length = 1;
        guint8          consumed;
@@ -325,7 +324,6 @@ guint8 elem_tlv(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, int
        gint            *elem_ett;
        guint8 (**elem_funcs)(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
 
-       len = len;
        curr_offset = offset;
        consumed = 0;
 
@@ -333,7 +331,7 @@ guint8 elem_tlv(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, int
 
        oct = tvb_get_guint8(tvb, curr_offset);
 
-    if (oct == iei){
+       if (oct == iei){
                if (oct == GSM_BSSMAP_APDU_IE){
                        /* This elements length is in two octets (a bit of a hack here)*/
                        lengt_length = 2;
@@ -344,53 +342,53 @@ guint8 elem_tlv(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, int
                                DISSECTOR_ASSERT_NOT_REACHED();
                        }
                }else{
-       parm_len = tvb_get_guint8(tvb, curr_offset + 1);
+                       parm_len = tvb_get_guint8(tvb, curr_offset + 1);
                }
 
-       item =
-           proto_tree_add_text(tree,
-               tvb, curr_offset, parm_len + 1 + lengt_length,
-               "%s%s",
-               elem_names[idx].strptr,
-               (name_add == NULL) || (name_add[0] == '\0') ? "" : name_add);
+               item =
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, parm_len + 1 + lengt_length,
+                       "%s%s",
+                       elem_names[idx].strptr,
+                       (name_add == NULL) || (name_add[0] == '\0') ? "" : name_add);
 
-       subtree = proto_item_add_subtree(item, elem_ett[idx]);
+               subtree = proto_item_add_subtree(item, elem_ett[idx]);
 
-       proto_tree_add_uint(subtree,
-           get_hf_elem_id(pdu_type), tvb,
-           curr_offset, 1, oct);
+               proto_tree_add_uint(subtree,
+                       get_hf_elem_id(pdu_type), tvb,
+                       curr_offset, 1, oct);
 
-       proto_tree_add_uint(subtree, hf_gsm_a_length, tvb,
-           curr_offset + 1, lengt_length, parm_len);
+               proto_tree_add_uint(subtree, hf_gsm_a_length, tvb,
+                       curr_offset + 1, lengt_length, parm_len);
 
-       if (parm_len > 0)
-       {
-           if (elem_funcs[idx] == NULL)
-           {
-               proto_tree_add_text(subtree,
-                   tvb, curr_offset + 1 + lengt_length, parm_len,
-                   "Element Value");
-               /* See ASSERT above */
-               consumed = (guint8)parm_len;
-           }
-           else
-           {
+               if (parm_len > 0)
+               {
+                       if (elem_funcs[idx] == NULL)
+                       {
+                               proto_tree_add_text(subtree,
+                                       tvb, curr_offset + 1 + lengt_length, parm_len,
+                                       "Element Value");
+                               /* See ASSERT above */
+                               consumed = (guint8)parm_len;
+                       }
+                       else
+                       {
                                gchar *a_add_string;
 
-               a_add_string=ep_alloc(1024);
-               a_add_string[0] = '\0';
-               consumed =
-                   (*elem_funcs[idx])(tvb, subtree, curr_offset + 2,
-                       parm_len, a_add_string, 1024);
+                               a_add_string=ep_alloc(1024);
+                               a_add_string[0] = '\0';
+                               consumed =
+                               (*elem_funcs[idx])(tvb, subtree, curr_offset + 2,
+                                       parm_len, a_add_string, 1024);
 
-               if (a_add_string[0] != '\0')
-               {
-                   proto_item_append_text(item, "%s", a_add_string);
+                               if (a_add_string[0] != '\0')
+                               {
+                                       proto_item_append_text(item, "%s", a_add_string);
+                               }
+                       }
                }
-           }
-       }
 
-       consumed += 1 + lengt_length;
+               consumed += 1 + lengt_length;
        }
 
        return(consumed);
@@ -422,46 +420,46 @@ guint8 elem_tv(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, int i
 
        if (oct == iei)
        {
-       item =
-           proto_tree_add_text(tree,
-               tvb, curr_offset, -1,
-               "%s%s",
-               elem_names[idx].strptr,
-               (name_add == NULL) || (name_add[0] == '\0') ? "" : name_add);
+               item =
+                       proto_tree_add_text(tree,
+                       tvb, curr_offset, -1,
+                       "%s%s",
+                       elem_names[idx].strptr,
+                               (name_add == NULL) || (name_add[0] == '\0') ? "" : name_add);
 
-       subtree = proto_item_add_subtree(item, elem_ett[idx]);
+               subtree = proto_item_add_subtree(item, elem_ett[idx]);
 
-       proto_tree_add_uint(subtree,
-           get_hf_elem_id(pdu_type), tvb,
-           curr_offset, 1, oct);
+               proto_tree_add_uint(subtree,
+                       get_hf_elem_id(pdu_type), tvb,
+                       curr_offset, 1, oct);
 
-       if (elem_funcs[idx] == NULL)
-       {
-           /* BAD THING, CANNOT DETERMINE LENGTH */
+               if (elem_funcs[idx] == NULL)
+               {
+                       /* BAD THING, CANNOT DETERMINE LENGTH */
 
-           proto_tree_add_text(subtree,
-               tvb, curr_offset + 1, 1,
-               "No element dissector, rest of dissection may be incorrect");
+                       proto_tree_add_text(subtree,
+                               tvb, curr_offset + 1, 1,
+                               "No element dissector, rest of dissection may be incorrect");
 
-           consumed = 1;
-       }
-       else
-       {
+                       consumed = 1;
+               }
+               else
+               {
                        gchar *a_add_string;
 
-           a_add_string=ep_alloc(1024);
-           a_add_string[0] = '\0';
-           consumed = (*elem_funcs[idx])(tvb, subtree, curr_offset + 1, -1, a_add_string, 1024);
+                       a_add_string=ep_alloc(1024);
+                       a_add_string[0] = '\0';
+                       consumed = (*elem_funcs[idx])(tvb, subtree, curr_offset + 1, -1, a_add_string, 1024);
 
-           if (a_add_string[0] != '\0')
-           {
-               proto_item_append_text(item, "%s", a_add_string);
-           }
-       }
+                       if (a_add_string[0] != '\0')
+                       {
+                               proto_item_append_text(item, "%s", a_add_string);
+                       }
+               }
 
-       consumed++;
+               consumed++;
 
-       proto_item_set_len(item, consumed);
+               proto_item_set_len(item, consumed);
        }
 
        return(consumed);
@@ -495,46 +493,46 @@ guint8 elem_tv_short(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type,
 
        if ((oct & 0xf0) == (iei & 0xf0))
        {
-       item =
-           proto_tree_add_text(tree,
-               tvb, curr_offset, -1,
-               "%s%s",
-               elem_names[idx].strptr,
-               (name_add == NULL) || (name_add[0] == '\0') ? "" : name_add);
+               item =
+                       proto_tree_add_text(tree,
+                               tvb, curr_offset, -1,
+                               "%s%s",
+                               elem_names[idx].strptr,
+                               (name_add == NULL) || (name_add[0] == '\0') ? "" : name_add);
 
-       subtree = proto_item_add_subtree(item, elem_ett[idx]);
+               subtree = proto_item_add_subtree(item, elem_ett[idx]);
 
-       other_decode_bitfield_value(buf, oct, 0xf0, 8);
-       proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Element ID",
-           buf);
+               other_decode_bitfield_value(buf, oct, 0xf0, 8);
+               proto_tree_add_text(subtree,
+                       tvb, curr_offset, 1,
+                       "%s :  Element ID",
+                       buf);
 
-       if (elem_funcs[idx] == NULL)
-       {
-           /* BAD THING, CANNOT DETERMINE LENGTH */
+               if (elem_funcs[idx] == NULL)
+               {
+                       /* BAD THING, CANNOT DETERMINE LENGTH */
 
-           proto_tree_add_text(subtree,
-               tvb, curr_offset, 1,
-               "No element dissector, rest of dissection may be incorrect");
+                       proto_tree_add_text(subtree,
+                               tvb, curr_offset, 1,
+                               "No element dissector, rest of dissection may be incorrect");
 
-           consumed++;
-       }
-       else
-       {
+                       consumed++;
+               }
+               else
+               {
                        gchar *a_add_string;
 
-           a_add_string=ep_alloc(1024);
-           a_add_string[0] = '\0';
-           consumed = (*elem_funcs[idx])(tvb, subtree, curr_offset, -1, a_add_string, 1024);
+                       a_add_string=ep_alloc(1024);
+                       a_add_string[0] = '\0';
+                       consumed = (*elem_funcs[idx])(tvb, subtree, curr_offset, -1, a_add_string, 1024);
 
-           if (a_add_string[0] != '\0')
-           {
-               proto_item_append_text(item, "%s", a_add_string);
-           }
-       }
+                       if (a_add_string[0] != '\0')
+                       {
+                               proto_item_append_text(item, "%s", a_add_string);
+                       }
+               }
 
-       proto_item_set_len(item, consumed);
+               proto_item_set_len(item, consumed);
        }
 
        return(consumed);
@@ -561,14 +559,14 @@ guint8 elem_t(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, int id
 
        if (oct == iei)
        {
-       proto_tree_add_uint_format(tree,
-           get_hf_elem_id(pdu_type), tvb,
-           curr_offset, 1, oct,
-           "%s%s",
-           elem_names[idx].strptr,
-           (name_add == NULL) || (name_add[0] == '\0') ? "" : name_add);
-
-       consumed = 1;
+               proto_tree_add_uint_format(tree,
+                       get_hf_elem_id(pdu_type), tvb,
+                       curr_offset, 1, oct,
+                       "%s%s",
+                       elem_names[idx].strptr,
+                       (name_add == NULL) || (name_add[0] == '\0') ? "" : name_add);
+
+               consumed = 1;
        }
 
        return(consumed);
@@ -577,7 +575,7 @@ guint8 elem_t(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, int id
 /*
  * Length Value (LV) element dissector
  */
-guint8 elem_lv(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int idx, guint32 offset, guint len, const gchar *name_add)
+guint8 elem_lv(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int idx, guint32 offset, guint len _U_, const gchar *name_add)
 {
        guint8          parm_len;
        guint8          consumed;
@@ -588,7 +586,6 @@ guint8 elem_lv(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int idx, guint32
        gint            *elem_ett;
        guint8 (**elem_funcs)(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
 
-       len = len;
        curr_offset = offset;
        consumed = 0;
 
@@ -597,42 +594,42 @@ guint8 elem_lv(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int idx, guint32
        parm_len = tvb_get_guint8(tvb, curr_offset);
 
        item =
-       proto_tree_add_text(tree,
-           tvb, curr_offset, parm_len + 1,
-           "%s%s",
-           elem_names[idx].strptr,
-           (name_add == NULL) || (name_add[0] == '\0') ? "" : name_add);
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, parm_len + 1,
+                       "%s%s",
+                       elem_names[idx].strptr,
+                       (name_add == NULL) || (name_add[0] == '\0') ? "" : name_add);
 
        subtree = proto_item_add_subtree(item, elem_ett[idx]);
 
        proto_tree_add_uint(subtree, hf_gsm_a_length, tvb,
-       curr_offset, 1, parm_len);
+               curr_offset, 1, parm_len);
 
        if (parm_len > 0)
        {
-       if (elem_funcs[idx] == NULL)
-       {
-           proto_tree_add_text(subtree,
-               tvb, curr_offset + 1, parm_len,
-               "Element Value");
+               if (elem_funcs[idx] == NULL)
+               {
+                       proto_tree_add_text(subtree,
+                               tvb, curr_offset + 1, parm_len,
+                               "Element Value");
 
-           consumed = parm_len;
-       }
-       else
-       {
+                       consumed = parm_len;
+               }
+               else
+               {
                        gchar *a_add_string;
 
-           a_add_string=ep_alloc(1024);
-           a_add_string[0] = '\0';
-           consumed =
-               (*elem_funcs[idx])(tvb, subtree, curr_offset + 1,
-                   parm_len, a_add_string, 1024);
+                       a_add_string=ep_alloc(1024);
+                       a_add_string[0] = '\0';
+                       consumed =
+                               (*elem_funcs[idx])(tvb, subtree, curr_offset + 1,
+                                       parm_len, a_add_string, 1024);
 
-           if (a_add_string[0] != '\0')
-           {
-               proto_item_append_text(item, "%s", a_add_string);
-           }
-       }
+                       if (a_add_string[0] != '\0')
+                       {
+                               proto_item_append_text(item, "%s", a_add_string);
+                       }
+               }
        }
 
        return(consumed + 1);
@@ -659,21 +656,21 @@ guint8 elem_v(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int idx, guint32 o
 
        if (elem_funcs[idx] == NULL)
        {
-       /* BAD THING, CANNOT DETERMINE LENGTH */
+               /* BAD THING, CANNOT DETERMINE LENGTH */
 
-       proto_tree_add_text(tree,
-           tvb, curr_offset, 1,
-           "No element dissector, rest of dissection may be incorrect");
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, 1,
+                       "No element dissector, rest of dissection may be incorrect");
 
-       consumed = 1;
+               consumed = 1;
        }
        else
        {
                gchar *a_add_string;
 
-       a_add_string=ep_alloc(1024);
-       a_add_string[0] = '\0';
-       consumed = (*elem_funcs[idx])(tvb, tree, curr_offset, -1, a_add_string, 1024);
+               a_add_string=ep_alloc(1024);
+               a_add_string[0] = '\0';
+               consumed = (*elem_funcs[idx])(tvb, tree, curr_offset, -1, a_add_string, 1024);
        }
 
        return(consumed);
@@ -702,13 +699,13 @@ guint8 elem_v_short(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int idx, gui
 
        if (elem_funcs[idx] == NULL)
        {
-       /* NOT A BAD THING - LENGTH IS HALF NIBBLE */
+               /* NOT A BAD THING - LENGTH IS HALF NIBBLE */
 
-       proto_tree_add_text(tree,
-           tvb, curr_offset, 1,
-           "No element dissector");
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, 1,
+                       "No element dissector");
 
-       consumed = 1;
+               consumed = 1;
        }
        else
        {
@@ -766,24 +763,24 @@ my_dgt_tbcd_unpack(
 
        while (num_octs)
        {
-       /*
-        * unpack first value in byte
-        */
-       i = *in++;
-       *out++ = dgt->out[i & 0x0f];
-       cnt++;
-
-       /*
-        * unpack second value in byte
-        */
-       i >>= 4;
-
-       if (i == 0x0f)  /* odd number bytes - hit filler */
-           break;
-
-       *out++ = dgt->out[i];
-       cnt++;
-       num_octs--;
+               /*
+                * unpack first value in byte
+                */
+               i = *in++;
+               *out++ = dgt->out[i & 0x0f];
+               cnt++;
+
+               /*
+                * unpack second value in byte
+                */
+               i >>= 4;
+
+               if (i == 0x0f)  /* odd number bytes - hit filler */
+                       break;
+
+               *out++ = dgt->out[i];
+               cnt++;
+               num_octs--;
        }
 
        *out = '\0';
@@ -799,77 +796,77 @@ mcc_mnc_aux(guint8 *octs, gchar *mcc, gchar *mnc)
 {
        if ((octs[0] & 0x0f) <= 9)
        {
-       mcc[0] = Dgt_tbcd.out[octs[0] & 0x0f];
+               mcc[0] = Dgt_tbcd.out[octs[0] & 0x0f];
        }
        else
        {
-       mcc[0] = (octs[0] & 0x0f) + 55;
+               mcc[0] = (octs[0] & 0x0f) + 55;
        }
 
        if (((octs[0] & 0xf0) >> 4) <= 9)
        {
-       mcc[1] = Dgt_tbcd.out[(octs[0] & 0xf0) >> 4];
+               mcc[1] = Dgt_tbcd.out[(octs[0] & 0xf0) >> 4];
        }
        else
        {
-       mcc[1] = ((octs[0] & 0xf0) >> 4) + 55;
+               mcc[1] = ((octs[0] & 0xf0) >> 4) + 55;
        }
 
        if ((octs[1] & 0x0f) <= 9)
        {
-       mcc[2] = Dgt_tbcd.out[octs[1] & 0x0f];
+               mcc[2] = Dgt_tbcd.out[octs[1] & 0x0f];
        }
        else
        {
-       mcc[2] = (octs[1] & 0x0f) + 55;
+               mcc[2] = (octs[1] & 0x0f) + 55;
        }
 
        mcc[3] = '\0';
 
        if (((octs[1] & 0xf0) >> 4) <= 9)
        {
-       mnc[2] = Dgt_tbcd.out[(octs[1] & 0xf0) >> 4];
+               mnc[2] = Dgt_tbcd.out[(octs[1] & 0xf0) >> 4];
        }
        else
        {
-       mnc[2] = ((octs[1] & 0xf0) >> 4) + 55;
+               mnc[2] = ((octs[1] & 0xf0) >> 4) + 55;
        }
 
        if ((octs[2] & 0x0f) <= 9)
        {
-       mnc[0] = Dgt_tbcd.out[octs[2] & 0x0f];
+               mnc[0] = Dgt_tbcd.out[octs[2] & 0x0f];
        }
        else
        {
-       mnc[0] = (octs[2] & 0x0f) + 55;
+               mnc[0] = (octs[2] & 0x0f) + 55;
        }
 
        if (((octs[2] & 0xf0) >> 4) <= 9)
        {
-       mnc[1] = Dgt_tbcd.out[(octs[2] & 0xf0) >> 4];
+               mnc[1] = Dgt_tbcd.out[(octs[2] & 0xf0) >> 4];
        }
        else
        {
-       mnc[1] = ((octs[2] & 0xf0) >> 4) + 55;
+               mnc[1] = ((octs[2] & 0xf0) >> 4) + 55;
        }
 
        if (mnc[1] == 'F')
        {
-       /*
-        * only a 1 digit MNC (very old)
-        */
-       mnc[1] = '\0';
+               /*
+                * only a 1 digit MNC (very old)
+                */
+               mnc[1] = '\0';
        }
        else if (mnc[2] == 'F')
        {
-       /*
-        * only a 2 digit MNC
-        */
-       mnc[2] = '\0';
+               /*
+                * only a 2 digit MNC
+                */
+               mnc[2] = '\0';
        }
        else
        {
-       mnc[3] = '\0';
+               mnc[3] = '\0';
        }
 }
 
@@ -896,7 +893,7 @@ de_cell_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *ad
  * [3] 10.5.1.3
  */
 guint8
-de_lai(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_lai(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  octs[3];
        guint16 value;
@@ -906,13 +903,12 @@ de_lai(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_st
        gchar   mcc[4];
        gchar   mnc[4];
 
-       len = len;
        curr_offset = offset;
 
        item =
-       proto_tree_add_text(tree,
-           tvb, curr_offset, 5,
-           gsm_common_elem_strings[DE_LAI].strptr);
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, 5,
+                       gsm_common_elem_strings[DE_LAI].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_common_elem[DE_LAI]);
 
@@ -924,20 +920,20 @@ de_lai(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_st
 
 
        proto_tree_add_text(subtree,
-       tvb, curr_offset, 3,
-       "Mobile Country Code (MCC): %s, Mobile Network Code (MNC): %s",
-       mcc,
-       mnc);
+               tvb, curr_offset, 3,
+               "Mobile Country Code (MCC): %s, Mobile Network Code (MNC): %s",
+               mcc,
+               mnc);
 
        curr_offset += 3;
 
        value = tvb_get_ntohs(tvb, curr_offset);
 
        proto_tree_add_text(subtree,
-       tvb, curr_offset, 2,
-       "Location Area Code (LAC): 0x%04x (%u)",
-       value,
-       value);
+               tvb, curr_offset, 2,
+               "Location Area Code (LAC): 0x%04x (%u)",
+               value,
+               value);
 
        proto_item_append_text(item, " - LAC (0x%04x)", value);
 
@@ -974,149 +970,144 @@ de_mid(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_st
        switch (oct & 0x07)
        {
        case 0: /* No Identity */
-       other_decode_bitfield_value(a_bigbuf, oct, 0xf0, 8);
-       proto_tree_add_text(tree,
-           tvb, curr_offset, 1,
-           "%s :  Unused",
-           a_bigbuf);
+               other_decode_bitfield_value(a_bigbuf, oct, 0xf0, 8);
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, 1,
+                       "%s :  Unused",
+                       a_bigbuf);
 
-       proto_tree_add_item(tree, hf_gsm_a_odd_even_ind, tvb, curr_offset, 1, FALSE);
+               proto_tree_add_item(tree, hf_gsm_a_odd_even_ind, tvb, curr_offset, 1, FALSE);
 
-       proto_tree_add_item(tree, hf_gsm_a_mobile_identity_type, tvb, curr_offset, 1, FALSE);
+               proto_tree_add_item(tree, hf_gsm_a_mobile_identity_type, tvb, curr_offset, 1, FALSE);
 
-       if (add_string)
-           g_snprintf(add_string, string_len, " - No Identity Code");
+               if (add_string)
+                       g_snprintf(add_string, string_len, " - No Identity Code");
 
-       curr_offset++;
+               curr_offset++;
 
-       if (len > 1)
-       {
-           proto_tree_add_text(tree, tvb, curr_offset, len - 1,
-               "Format not supported");
-       }
+               if (len > 1)
+               {
+                       proto_tree_add_text(tree, tvb, curr_offset, len - 1,
+                               "Format not supported");
+               }
 
-       curr_offset += len - 1;
-       break;
+               curr_offset += len - 1;
+               break;
 
        case 3: /* IMEISV */
-
-       /* FALLTHRU */
+               /* FALLTHRU */
 
        case 1: /* IMSI */
+               other_decode_bitfield_value(a_bigbuf, oct, 0xf0, 8);
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, 1,
+                       "%s :  Identity Digit 1: %c",
+                       a_bigbuf,
+                       Dgt1_9_bcd.out[(oct & 0xf0) >> 4]);
 
-       other_decode_bitfield_value(a_bigbuf, oct, 0xf0, 8);
-       proto_tree_add_text(tree,
-           tvb, curr_offset, 1,
-           "%s :  Identity Digit 1: %c",
-           a_bigbuf,
-           Dgt1_9_bcd.out[(oct & 0xf0) >> 4]);
-
-       odd = oct & 0x08;
-
-       proto_tree_add_item(tree, hf_gsm_a_odd_even_ind, tvb, curr_offset, 1, FALSE);
+               odd = oct & 0x08;
 
-       proto_tree_add_item(tree, hf_gsm_a_mobile_identity_type, tvb, curr_offset, 1, FALSE);
+               proto_tree_add_item(tree, hf_gsm_a_odd_even_ind, tvb, curr_offset, 1, FALSE);
 
+               proto_tree_add_item(tree, hf_gsm_a_mobile_identity_type, tvb, curr_offset, 1, FALSE);
 
-       a_bigbuf[0] = Dgt1_9_bcd.out[(oct & 0xf0) >> 4];
-       curr_offset++;
+               a_bigbuf[0] = Dgt1_9_bcd.out[(oct & 0xf0) >> 4];
+               curr_offset++;
 
-       poctets = tvb_get_ephemeral_string(tvb, curr_offset, len - (curr_offset - offset));
+               poctets = tvb_get_ephemeral_string(tvb, curr_offset, len - (curr_offset - offset));
 
-       my_dgt_tbcd_unpack(&a_bigbuf[1], poctets, len - (curr_offset - offset),
-           &Dgt1_9_bcd);
+               my_dgt_tbcd_unpack(&a_bigbuf[1], poctets, len - (curr_offset - offset),
+                       &Dgt1_9_bcd);
 
-       proto_tree_add_string_format(tree,
-           ((oct & 0x07) == 3) ? hf_gsm_a_imeisv : hf_gsm_a_imsi,
-           tvb, curr_offset, len - (curr_offset - offset),
-           a_bigbuf,
-           "BCD Digits: %s",
-               a_bigbuf);
+               proto_tree_add_string_format(tree,
+                       ((oct & 0x07) == 3) ? hf_gsm_a_imeisv : hf_gsm_a_imsi,
+                       tvb, curr_offset, len - (curr_offset - offset),
+                       a_bigbuf,
+                       "BCD Digits: %s",
+                       a_bigbuf);
 
-       if (sccp_assoc && ! sccp_assoc->calling_party) {
-               sccp_assoc->calling_party = se_strdup_printf(
-                       ((oct & 0x07) == 3) ? "IMEISV: %s" : "IMSI: %s",
-                       a_bigbuf );
-       }
+               if (sccp_assoc && ! sccp_assoc->calling_party) {
+                       sccp_assoc->calling_party = se_strdup_printf(
+                               ((oct & 0x07) == 3) ? "IMEISV: %s" : "IMSI: %s",
+                               a_bigbuf );
+               }
 
-       if (add_string)
-           g_snprintf(add_string, string_len, " - %s (%s)",
-               ((oct & 0x07) == 3) ? "IMEISV" : "IMSI",
-               a_bigbuf);
+               if (add_string)
+                       g_snprintf(add_string, string_len, " - %s (%s)",
+                               ((oct & 0x07) == 3) ? "IMEISV" : "IMSI",
+                               a_bigbuf);
 
-       curr_offset += len - (curr_offset - offset);
+               curr_offset += len - (curr_offset - offset);
 
-       if (!odd)
-       {
-           oct = tvb_get_guint8(tvb, curr_offset - 1);
+               if (!odd)
+               {
+                       oct = tvb_get_guint8(tvb, curr_offset - 1);
 
-           other_decode_bitfield_value(a_bigbuf, oct, 0xf0, 8);
-           proto_tree_add_text(tree,
-               tvb, curr_offset - 1, 1,
-               "%s :  Filler",
-               a_bigbuf);
-       }
-       break;
+                       other_decode_bitfield_value(a_bigbuf, oct, 0xf0, 8);
+                       proto_tree_add_text(tree,
+                               tvb, curr_offset - 1, 1,
+                               "%s :  Filler",
+                               a_bigbuf);
+               }
+               break;
 
        case 2: /* IMEI */
-       other_decode_bitfield_value(a_bigbuf, oct, 0xf0, 8);
-       proto_tree_add_text(tree,
-           tvb, curr_offset, 1,
-           "%s :  Identity Digit 1: %c",
-           a_bigbuf,
-           Dgt1_9_bcd.out[(oct & 0xf0) >> 4]);
-
-       proto_tree_add_item(tree, hf_gsm_a_odd_even_ind, tvb, curr_offset, 1, FALSE);
+               other_decode_bitfield_value(a_bigbuf, oct, 0xf0, 8);
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, 1,
+                       "%s :  Identity Digit 1: %c",
+                       a_bigbuf,
+                       Dgt1_9_bcd.out[(oct & 0xf0) >> 4]);
 
-       proto_tree_add_item(tree, hf_gsm_a_mobile_identity_type, tvb, curr_offset, 1, FALSE);
+               proto_tree_add_item(tree, hf_gsm_a_odd_even_ind, tvb, curr_offset, 1, FALSE);
 
+               proto_tree_add_item(tree, hf_gsm_a_mobile_identity_type, tvb, curr_offset, 1, FALSE);
 
-       a_bigbuf[0] = Dgt1_9_bcd.out[(oct & 0xf0) >> 4];
-       curr_offset++;
+               a_bigbuf[0] = Dgt1_9_bcd.out[(oct & 0xf0) >> 4];
+               curr_offset++;
 
-       poctets = tvb_get_ephemeral_string(tvb, curr_offset, len - (curr_offset - offset));
+               poctets = tvb_get_ephemeral_string(tvb, curr_offset, len - (curr_offset - offset));
 
-       my_dgt_tbcd_unpack(&a_bigbuf[1], poctets, len - (curr_offset - offset),
-           &Dgt1_9_bcd);
+               my_dgt_tbcd_unpack(&a_bigbuf[1], poctets, len - (curr_offset - offset),
+                       &Dgt1_9_bcd);
 
-       proto_tree_add_string_format(tree,
-           hf_gsm_a_imei,
-           tvb, curr_offset, len - (curr_offset - offset),
-           a_bigbuf,
-           "BCD Digits: %s",
-           a_bigbuf);
+               proto_tree_add_string_format(tree,
+                       hf_gsm_a_imei,
+                       tvb, curr_offset, len - (curr_offset - offset),
+                       a_bigbuf,
+                       "BCD Digits: %s",
+                       a_bigbuf);
 
-       if (add_string)
-           g_snprintf(add_string, string_len, " - IMEI (%s)", a_bigbuf);
+               if (add_string)
+                       g_snprintf(add_string, string_len, " - IMEI (%s)", a_bigbuf);
 
-       curr_offset += len - (curr_offset - offset);
-       break;
+               curr_offset += len - (curr_offset - offset);
+               break;
 
        case 4: /* TMSI/P-TMSI */
-       other_decode_bitfield_value(a_bigbuf, oct, 0xf0, 8);
-       proto_tree_add_text(tree,
-           tvb, curr_offset, 1,
-           "%s :  Unused",
-           a_bigbuf);
-
-       proto_tree_add_item(tree, hf_gsm_a_odd_even_ind, tvb, curr_offset, 1, FALSE);
+               other_decode_bitfield_value(a_bigbuf, oct, 0xf0, 8);
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, 1,
+                       "%s :  Unused",
+                       a_bigbuf);
 
-       proto_tree_add_item(tree, hf_gsm_a_mobile_identity_type, tvb, curr_offset, 1, FALSE);
+               proto_tree_add_item(tree, hf_gsm_a_odd_even_ind, tvb, curr_offset, 1, FALSE);
 
+               proto_tree_add_item(tree, hf_gsm_a_mobile_identity_type, tvb, curr_offset, 1, FALSE);
 
-       curr_offset++;
+               curr_offset++;
 
-       value = tvb_get_ntohl(tvb, curr_offset);
+               value = tvb_get_ntohl(tvb, curr_offset);
 
-       proto_tree_add_uint(tree, hf_gsm_a_tmsi,
-           tvb, curr_offset, 4,
-           value);
+               proto_tree_add_uint(tree, hf_gsm_a_tmsi,
+                       tvb, curr_offset, 4,
+                       value);
 
-       if (add_string)
-           g_snprintf(add_string, string_len, " - TMSI/P-TMSI (0x%04x)", value);
+               if (add_string)
+                       g_snprintf(add_string, string_len, " - TMSI/P-TMSI (0x%04x)", value);
 
-       curr_offset += 4;
-       break;
+               curr_offset += 4;
+               break;
 
        case 5: /* TMGI and optional MBMS Session Identity */
                /* MBMS Session Identity indication (octet 3) Bit 6 */
@@ -1145,16 +1136,16 @@ de_mid(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_st
                break;
 
        default:        /* Reserved */
-       proto_tree_add_item(tree, hf_gsm_a_odd_even_ind, tvb, curr_offset, 1, FALSE);
-       proto_tree_add_item(tree, hf_gsm_a_mobile_identity_type, tvb, curr_offset, 1, FALSE);
-       proto_tree_add_text(tree, tvb, curr_offset, len,
-           "Mobile station identity Format %u, Format Unknown",(oct & 0x07));
+               proto_tree_add_item(tree, hf_gsm_a_odd_even_ind, tvb, curr_offset, 1, FALSE);
+               proto_tree_add_item(tree, hf_gsm_a_mobile_identity_type, tvb, curr_offset, 1, FALSE);
+               proto_tree_add_text(tree, tvb, curr_offset, len,
+                       "Mobile station identity Format %u, Format Unknown",(oct & 0x07));
 
-       if (add_string)
-           g_snprintf(add_string, string_len, " - Format Unknown");
+               if (add_string)
+                       g_snprintf(add_string, string_len, " - Format Unknown");
 
-       curr_offset += len;
-       break;
+               curr_offset += len;
+               break;
        }
 
        EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
@@ -1166,21 +1157,21 @@ de_mid(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_st
  * [3] 10.5.1.5
  */
 guint8
-de_ms_cm_1(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_ms_cm_1(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
        proto_tree      *subtree;
        proto_item      *item;
-       len = len;
+
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
 
        item =
        proto_tree_add_text(tree,
-           tvb, curr_offset, 1,
-           gsm_common_elem_strings[DE_MS_CM_1].strptr);
+               tvb, curr_offset, 1,
+               gsm_common_elem_strings[DE_MS_CM_1].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_common_elem[DE_MS_CM_1]);
 
@@ -1210,7 +1201,6 @@ de_ms_cm_2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *ad
        guint32 curr_offset;
        curr_offset = offset;
 
-
        proto_tree_add_item(tree, hf_gsm_a_b8spare, tvb, curr_offset, 1, FALSE);
 
        proto_tree_add_item(tree, hf_gsm_a_MSC_rev, tvb, curr_offset, 1, FALSE);
@@ -1271,16 +1261,15 @@ de_ms_cm_2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *ad
  * [3] 10.5.1.8
  */
 static guint8
-de_spare_nibble(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_spare_nibble(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "Spare Nibble");
+               tvb, curr_offset, 1,
+               "Spare Nibble");
 
        curr_offset++;
 
@@ -1293,37 +1282,36 @@ de_spare_nibble(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
  * [3] 10.5.1.9
  */
 guint8
-de_d_gb_call_ref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_d_gb_call_ref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 value;
        guint32 curr_offset;
        const gchar *str;
 
-       len = len;
        curr_offset = offset;
 
        value = tvb_get_ntohl(tvb, curr_offset);
 
        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)",
-       a_bigbuf,
-       (value & 0xffffffe0) >> 5,
-       (value & 0xffffffe0) >> 5);
+               "%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",
-       a_bigbuf,
-       (value & 0x00000010) ?
-           "VGCS (Group call reference)" : "VBS (Broadcast call reference)");
+               "%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",
-       a_bigbuf,
-       (value & 0x00000008) ? "" : "not ");
+               "%s :  AF Acknowledgement Flag: acknowledgment is %srequired",
+               a_bigbuf,
+               (value & 0x00000008) ? "" : "not ");
 
        switch (value & 0x00000007)
        {
@@ -1341,9 +1329,9 @@ de_d_gb_call_ref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gch
 
        other_decode_bitfield_value(a_bigbuf, value, 0x00000007, 32);
        proto_tree_add_text(tree, tvb, curr_offset, 4,
-       "%s :  Call Priority: %s",
-       a_bigbuf,
-       str);
+               "%s :  Call Priority: %s",
+               a_bigbuf,
+               str);
 
        curr_offset += 4;
 
@@ -1351,13 +1339,13 @@ de_d_gb_call_ref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gch
 
        other_decode_bitfield_value(a_bigbuf, oct, 0xf0, 8);
        proto_tree_add_text(tree, tvb, curr_offset, 1,
-       "%s :  Ciphering Information",
-       a_bigbuf);
+               "%s :  Ciphering Information",
+               a_bigbuf);
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x0f, 8);
        proto_tree_add_text(tree, tvb, curr_offset, 1,
-       "%s :  Spare",
-       a_bigbuf);
+               "%s :  Spare",
+               a_bigbuf);
 
        curr_offset++;
 
@@ -1370,7 +1358,7 @@ de_d_gb_call_ref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gch
  * [3] 10.5.1.10a
  */
 static guint8
-de_pd_sapi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_pd_sapi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
@@ -1378,22 +1366,21 @@ de_pd_sapi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *ad
        proto_item      *item;
        const gchar *str;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
 
        item =
        proto_tree_add_text(tree,
-           tvb, curr_offset, 1,
-           gsm_dtap_elem_strings[DE_PD_SAPI].strptr);
+               tvb, curr_offset, 1,
+               gsm_dtap_elem_strings[DE_PD_SAPI].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_dtap_elem[DE_PD_SAPI]);
 
        other_decode_bitfield_value(a_bigbuf, oct, 0xc0, 8);
        proto_tree_add_text(subtree, tvb, curr_offset, 1,
-       "%s :  Spare",
-       a_bigbuf);
+               "%s :  Spare",
+               a_bigbuf);
 
        switch ((oct & 0x30) >> 4)
        {
@@ -1406,9 +1393,9 @@ de_pd_sapi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *ad
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x30, 8);
        proto_tree_add_text(subtree, tvb, curr_offset, 1,
-       "%s :  SAPI (Sevice Access Point Identifier): %s",
-       a_bigbuf,
-       str);
+               "%s :  SAPI (Sevice Access Point Identifier): %s",
+               a_bigbuf,
+               str);
 
        proto_tree_add_item(tree, hf_gsm_a_L3_protocol_discriminator, tvb, curr_offset, 1, FALSE);
 
@@ -1423,23 +1410,22 @@ de_pd_sapi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *ad
  * [3] 10.5.1.11
  */
 static const value_string gsm_a_call_prio_vals[] = {
-       {  0x00,        "no priority applied" },
-       {  0x01,        "call priority level 4" },
-       {  0x02,        "call priority level 3" },
-       {  0x03,        "call priority level 2" },
-       {  0x04,        "call priority level 1" },
-       {  0x05,        "call priority level 0" },
-       {  0x06,        "call priority level B" },
-       {  0x07,        "call priority level A" },
+       { 0x00, "no priority applied" },
+       { 0x01, "call priority level 4" },
+       { 0x02, "call priority level 3" },
+       { 0x03, "call priority level 2" },
+       { 0x04, "call priority level 1" },
+       { 0x05, "call priority level 0" },
+       { 0x06, "call priority level B" },
+       { 0x07, "call priority level A" },
        { 0,                    NULL }
 };
 
 static guint8
-de_prio(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_prio(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        proto_tree_add_item(tree, hf_gsm_a_b8spare, tvb, curr_offset, 1, FALSE);
@@ -1475,11 +1461,11 @@ de_plmn_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *
        mcc_mnc_aux(octs, mcc, mnc);
 
        proto_tree_add_text(tree,
-           tvb, curr_offset, 3,
-           "PLMN[%u]  Mobile Country Code (MCC): %s, Mobile Network Code (MNC): %s",
-           num_plmn + 1,
-           mcc,
-           mnc);
+               tvb, curr_offset, 3,
+               "PLMN[%u]  Mobile Country Code (MCC): %s, Mobile Network Code (MNC): %s",
+               num_plmn + 1,
+               mcc,
+               mnc);
 
        curr_offset += 3;
 
@@ -1488,7 +1474,7 @@ de_plmn_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *
 
        if (add_string)
        g_snprintf(add_string, string_len, " - %u PLMN%s",
-           num_plmn, plurality(num_plmn, "", "s"));
+               num_plmn, plurality(num_plmn, "", "s"));
 
        EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
 
@@ -1518,120 +1504,120 @@ guint8 (*common_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, gui
 void
 proto_register_gsm_a_common(void)
 {
-       guint           i;
-       guint           last_offset;
+       guint   i;
+       guint   last_offset;
 
        /* Setup list of header fields */
        static hf_register_info hf[] =
        {
        { &hf_gsm_a_common_elem_id,
-           { "Element ID",     "gsm_a_common.elem_id",
-           FT_UINT8, BASE_DEC, NULL, 0,
-           "", HFILL }
+               { "Element ID", "gsm_a_common.elem_id",
+               FT_UINT8, BASE_DEC, NULL, 0,
+               "", HFILL }
        },
        { &hf_gsm_a_imsi,
-           { "IMSI",   "gsm_a.imsi",
-           FT_STRING, BASE_DEC, 0, 0,
-           "", HFILL }
+               { "IMSI",       "gsm_a.imsi",
+               FT_STRING, BASE_DEC, 0, 0,
+               "", HFILL }
        },
        { &hf_gsm_a_tmsi,
-           { "TMSI/P-TMSI",    "gsm_a.tmsi",
-           FT_UINT32, BASE_HEX, 0, 0x0,
-           "", HFILL }
+               { "TMSI/P-TMSI",        "gsm_a.tmsi",
+               FT_UINT32, BASE_HEX, 0, 0x0,
+               "", HFILL }
        },
        { &hf_gsm_a_imei,
-           { "IMEI",   "gsm_a.imei",
-           FT_STRING, BASE_DEC, 0, 0,
-           "", HFILL }
+               { "IMEI",       "gsm_a.imei",
+               FT_STRING, BASE_DEC, 0, 0,
+               "", HFILL }
        },
        { &hf_gsm_a_imeisv,
-           { "IMEISV", "gsm_a.imeisv",
-           FT_STRING, BASE_DEC, 0, 0,
-           "", HFILL }
+               { "IMEISV",     "gsm_a.imeisv",
+               FT_STRING, BASE_DEC, 0, 0,
+               "", HFILL }
        },
        { &hf_gsm_a_MSC_rev,
                { "Revision Level","gsm_a.MSC2_rev",
-               FT_UINT8,BASE_DEC,  VALS(gsm_a_msc_rev_vals), 0x60,
+               FT_UINT8,BASE_DEC, VALS(gsm_a_msc_rev_vals), 0x60,
                "Revision level", HFILL }
        },
        { &hf_gsm_a_ES_IND,
                { "ES IND","gsm_a.MSC2_rev",
-               FT_UINT8,BASE_DEC,  VALS(ES_IND_vals), 0x10,
+               FT_UINT8,BASE_DEC, VALS(ES_IND_vals), 0x10,
                        "ES IND", HFILL }
        },
        { &hf_gsm_a_A5_1_algorithm_sup,
                { "A5/1 algorithm supported","gsm_a.MSC2_rev",
-               FT_UINT8,BASE_DEC,  VALS(A5_1_algorithm_sup_vals), 0x08,
+               FT_UINT8,BASE_DEC, VALS(A5_1_algorithm_sup_vals), 0x08,
                "A5/1 algorithm supported ", HFILL }
        },
        { &hf_gsm_a_RF_power_capability,
                { "RF Power Capability","gsm_a.MSC2_rev",
-               FT_UINT8,BASE_DEC,  VALS(RF_power_capability_vals), 0x07,
+               FT_UINT8,BASE_DEC, VALS(RF_power_capability_vals), 0x07,
                "RF Power Capability", HFILL }
        },
        { &hf_gsm_a_ps_sup_cap,
                { "PS capability (pseudo-synchronization capability)","gsm_a.ps_sup_cap",
-               FT_UINT8,BASE_DEC,  VALS(ps_sup_cap_vals), 0x40,
+               FT_UINT8,BASE_DEC, VALS(ps_sup_cap_vals), 0x40,
                "PS capability (pseudo-synchronization capability)", HFILL }
        },
        { &hf_gsm_a_SS_screening_indicator,
                { "SS Screening Indicator","gsm_a.SS_screening_indicator",
-               FT_UINT8,BASE_DEC,  VALS(SS_screening_indicator_vals), 0x30,
+               FT_UINT8,BASE_DEC, VALS(SS_screening_indicator_vals), 0x30,
                "SS Screening Indicator", HFILL }
        },
        { &hf_gsm_a_SM_capability,
                { "SM capability (MT SMS pt to pt capability)","gsm_a.SM_cap",
-               FT_UINT8,BASE_DEC,  VALS(SM_capability_vals), 0x08,
+               FT_UINT8,BASE_DEC, VALS(SM_capability_vals), 0x08,
                "SM capability (MT SMS pt to pt capability)", HFILL }
        },
        { &hf_gsm_a_VBS_notification_rec,
                { "VBS notification reception ","gsm_a.VBS_notification_rec",
-               FT_UINT8,BASE_DEC,  VALS(VBS_notification_rec_vals), 0x04,
+               FT_UINT8,BASE_DEC, VALS(VBS_notification_rec_vals), 0x04,
                "VBS notification reception ", HFILL }
        },
        { &hf_gsm_a_VGCS_notification_rec,
                { "VGCS notification reception ","gsm_a.VGCS_notification_rec",
-               FT_UINT8,BASE_DEC,  VALS(VGCS_notification_rec_vals), 0x02,
+               FT_UINT8,BASE_DEC, VALS(VGCS_notification_rec_vals), 0x02,
                "VGCS notification reception", HFILL }
        },
        { &hf_gsm_a_FC_frequency_cap,
                { "FC Frequency Capability","gsm_a.FC_frequency_cap",
-               FT_UINT8,BASE_DEC,  VALS(FC_frequency_cap_vals), 0x01,
+               FT_UINT8,BASE_DEC, VALS(FC_frequency_cap_vals), 0x01,
                "FC Frequency Capability", HFILL }
        },
        { &hf_gsm_a_CM3,
                { "CM3","gsm_a.CM3",
-               FT_UINT8,BASE_DEC,  VALS(CM3_vals), 0x80,
+               FT_UINT8,BASE_DEC, VALS(CM3_vals), 0x80,
                "CM3", HFILL }
        },
        { &hf_gsm_a_LCS_VA_cap,
                { "LCS VA capability (LCS value added location request notification capability) ","gsm_a.LCS_VA_cap",
-               FT_UINT8,BASE_DEC,  VALS(LCS_VA_cap_vals), 0x20,
+               FT_UINT8,BASE_DEC, VALS(LCS_VA_cap_vals), 0x20,
                "LCS VA capability (LCS value added location request notification capability) ", HFILL }
        },
        { &hf_gsm_a_UCS2_treatment,
                { "UCS2 treatment ","gsm_a.UCS2_treatment",
-               FT_UINT8,BASE_DEC,  VALS(UCS2_treatment_vals), 0x10,
+               FT_UINT8,BASE_DEC, VALS(UCS2_treatment_vals), 0x10,
                "UCS2 treatment ", HFILL }
        },
        { &hf_gsm_a_SoLSA,
                { "SoLSA","gsm_a.SoLSA",
-               FT_UINT8,BASE_DEC,  VALS(SoLSA_vals), 0x08,
+               FT_UINT8,BASE_DEC, VALS(SoLSA_vals), 0x08,
                "SoLSA", HFILL }
        },
        { &hf_gsm_a_CMSP,
                { "CMSP: CM Service Prompt","gsm_a.CMSP",
-               FT_UINT8,BASE_DEC,  VALS(CMSP_vals), 0x04,
+               FT_UINT8,BASE_DEC, VALS(CMSP_vals), 0x04,
                "CMSP: CM Service Prompt", HFILL }
        },
        { &hf_gsm_a_A5_3_algorithm_sup,
                { "A5/3 algorithm supported","gsm_a.A5_3_algorithm_sup",
-               FT_UINT8,BASE_DEC,  VALS(A5_3_algorithm_sup_vals), 0x02,
+               FT_UINT8,BASE_DEC, VALS(A5_3_algorithm_sup_vals), 0x02,
                "A5/3 algorithm supported", HFILL }
        },
        { &hf_gsm_a_A5_2_algorithm_sup,
                { "A5/2 algorithm supported","gsm_a.A5_2_algorithm_sup",
-               FT_UINT8,BASE_DEC,  VALS(A5_2_algorithm_sup_vals), 0x01,
+               FT_UINT8,BASE_DEC, VALS(A5_2_algorithm_sup_vals), 0x01,
                "A5/2 algorithm supported", HFILL }
        },
        { &hf_gsm_a_mobile_identity_type,
@@ -1647,42 +1633,41 @@ proto_register_gsm_a_common(void)
        { &hf_gsm_a_tmgi_mcc_mnc_ind,
                { "MCC/MNC indication", "gsm_a.tmgi_mcc_mnc_ind",
                FT_BOOLEAN, 8, TFS(&gsm_a_present_vals), 0x10,
-               "MCC/MNC indication", HFILL}},
-
+               "MCC/MNC indication", HFILL}
+       },
        { &hf_gsm_a_mbs_ses_id_ind,
                { "MBMS Session Identity indication", "gsm_a.tmgi_mcc_mnc_ind",
                FT_BOOLEAN, 8, TFS(&gsm_a_present_vals), 0x20,
-               "MBMS Session Identity indication", HFILL}},
-
+               "MBMS Session Identity indication", HFILL}
+       },
        { &hf_gsm_a_mbs_service_id,
-               { "MBMS Service ID",           "gsm_a.mbs_service_id",
+               { "MBMS Service ID", "gsm_a.mbs_service_id",
                FT_BYTES, BASE_HEX, NULL, 0x0,
                "MBMS Service ID", HFILL }
        },
-
        { &hf_gsm_a_L3_protocol_discriminator,
                { "Protocol discriminator","gsm_a.L3_protocol_discriminator",
-               FT_UINT8,BASE_DEC,  VALS(protocol_discriminator_vals), 0x0f,
+               FT_UINT8,BASE_DEC, VALS(protocol_discriminator_vals), 0x0f,
                "Protocol discriminator", HFILL }
        },
        { &hf_gsm_a_call_prio,
-               { "Call priority",           "gsm_a.call_prio",
+               { "Call priority", "gsm_a.call_prio",
                FT_UINT8, BASE_DEC, VALS(gsm_a_call_prio_vals), 0x07,
                "Call priority", HFILL }
        },
        { &hf_gsm_a_skip_ind,
-               { "Skip Indicator",           "gsm_a.skip.ind",
+               { "Skip Indicator", "gsm_a.skip.ind",
                FT_UINT8, BASE_DEC, NULL, 0xf0,
                "Skip Indicator", HFILL }
        },
        { &hf_gsm_a_b7spare,
-               { "Spare","gsm_a.spareb7",
-               FT_UINT8,BASE_DEC,  NULL, 0x40,
-               "Spare", HFILL }
+               { "Spare","gsm_a.spareb7",
+               FT_UINT8,BASE_DEC, NULL, 0x40,
+               "Spare", HFILL }
        },
        { &hf_gsm_a_b8spare,
                { "Spare","gsm_a.spareb8",
-               FT_UINT8,BASE_DEC,  NULL, 0x80,          
+               FT_UINT8,BASE_DEC, NULL, 0x80,
                "Spare", HFILL }
        },
        };
@@ -1696,8 +1681,8 @@ proto_register_gsm_a_common(void)
 
        for (i=0; i < NUM_GSM_COMMON_ELEM; i++, last_offset++)
        {
-       ett_gsm_common_elem[i] = -1;
-       ett[last_offset] = &ett_gsm_common_elem[i];
+               ett_gsm_common_elem[i] = -1;
+               ett[last_offset] = &ett_gsm_common_elem[i];
        }
 
        /* Register the protocol name and description */
index 060b16f4e45d8fc466f280065cff89e843d1abc9..e7240a04146d69713ba174fee1ccedee053c10e1 100644 (file)
@@ -2,6 +2,31 @@
  *
  * $Id$
  *
+ *   Reference [3]
+ *   Mobile radio interface Layer 3 specification;
+ *   Core network protocols;
+ *   Stage 3
+ *   (3GPP TS 24.008 version 4.7.0 Release 4)
+ *   (ETSI TS 124 008 V6.8.0 (2005-03))
+ *
+ *   Reference [5]
+ *   Point-to-Point (PP) Short Message Service (SMS)
+ *   support on mobile radio interface
+ *   (3GPP TS 24.011 version 4.1.1 Release 4)
+ *
+ *   Reference [7]
+ *   Mobile radio interface Layer 3 specification;
+ *   Core network protocols;
+ *   Stage 3
+ *   (3GPP TS 24.008 version 5.9.0 Release 5)
+ *
+ *   Reference [8]
+ *   Mobile radio interface Layer 3 specification;
+ *   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)
+ *
  * Copyright 2003, Michael Lum <mlum [AT] telostech.com>,
  * In association with Telos Technology Inc.
  *
@@ -130,8 +155,8 @@ extern const char* get_gsm_a_msg_string(int pdu_type, int idx);
  * changed here to unsigned integer as it wouldn't compile (Warnings on Ubuntu)
  * uggly hack...
  */
-#define UPPER_NIBBLE    (2)
-#define LOWER_NIBBLE    (1)
+#define UPPER_NIBBLE   (2)
+#define LOWER_NIBBLE   (1)
 
 /* FUNCTIONS */
 
@@ -140,72 +165,71 @@ extern const char* get_gsm_a_msg_string(int pdu_type, int idx);
 #define        EXTRANEOUS_DATA_CHECK(edc_len, edc_max_len) \
        if (((edc_len) > (edc_max_len))||lower_nibble) \
        { \
-       proto_tree_add_text(tree, tvb, \
-           curr_offset, (edc_len) - (edc_max_len), "Extraneous Data"); \
-       curr_offset += ((edc_len) - (edc_max_len)); \
+               proto_tree_add_text(tree, tvb, \
+                       curr_offset, (edc_len) - (edc_max_len), "Extraneous Data"); \
+               curr_offset += ((edc_len) - (edc_max_len)); \
        }
 
 #define        SHORT_DATA_CHECK(sdc_len, sdc_min_len) \
        if ((sdc_len) < (sdc_min_len)) \
        { \
-       proto_tree_add_text(tree, tvb, \
-           curr_offset, (sdc_len), "Short Data (?)"); \
-       curr_offset += (sdc_len); \
-       return(curr_offset - offset); \
+               proto_tree_add_text(tree, tvb, \
+                       curr_offset, (sdc_len), "Short Data (?)"); \
+               curr_offset += (sdc_len); \
+               return(curr_offset - offset); \
        }
 
 #define        EXACT_DATA_CHECK(edc_len, edc_eq_len) \
        if ((edc_len) != (edc_eq_len)) \
        { \
-       proto_tree_add_text(tree, tvb, \
-           curr_offset, (edc_len), "Unexpected Data Length"); \
-       curr_offset += (edc_len); \
-       return(curr_offset - offset); \
+               proto_tree_add_text(tree, tvb, \
+                       curr_offset, (edc_len), "Unexpected Data Length"); \
+               curr_offset += (edc_len); \
+               return(curr_offset - offset); \
        }
 
 #define        NO_MORE_DATA_CHECK(nmdc_len) \
        if ((nmdc_len) == (curr_offset - offset)) return(nmdc_len);
 
 #define        SET_ELEM_VARS(SEV_pdu_type, SEV_elem_names, SEV_elem_ett, SEV_elem_funcs) \
-    switch (SEV_pdu_type) \
-    { \
-    case GSM_A_PDU_TYPE_BSSMAP: \
-       SEV_elem_names = gsm_bssmap_elem_strings; \
-       SEV_elem_ett = ett_gsm_bssmap_elem; \
-       SEV_elem_funcs = bssmap_elem_fcn; \
-       break; \
-    case GSM_A_PDU_TYPE_DTAP: \
-       SEV_elem_names = gsm_dtap_elem_strings; \
-       SEV_elem_ett = ett_gsm_dtap_elem; \
-       SEV_elem_funcs = dtap_elem_fcn; \
-       break; \
-    case GSM_A_PDU_TYPE_RP: \
-       SEV_elem_names = gsm_rp_elem_strings; \
-       SEV_elem_ett = ett_gsm_rp_elem; \
-       SEV_elem_funcs = rp_elem_fcn; \
-       break; \
-    case GSM_A_PDU_TYPE_RR: \
-       SEV_elem_names = gsm_rr_elem_strings; \
-       SEV_elem_ett = ett_gsm_rr_elem; \
-       SEV_elem_funcs = rr_elem_fcn; \
-       break; \
-    case GSM_A_PDU_TYPE_COMMON: \
-       SEV_elem_names = gsm_common_elem_strings; \
-       SEV_elem_ett = ett_gsm_common_elem; \
-       SEV_elem_funcs = common_elem_fcn; \
-       break; \
-    case GSM_A_PDU_TYPE_GM: \
-       SEV_elem_names = gsm_gm_elem_strings; \
-       SEV_elem_ett = ett_gsm_gm_elem; \
-       SEV_elem_funcs = gm_elem_fcn; \
-       break; \
-    default: \
-       proto_tree_add_text(tree, \
-           tvb, curr_offset, -1, \
-           "Unknown PDU type (%u)", SEV_pdu_type); \
-       return(consumed); \
-    }
-
+       switch (SEV_pdu_type) \
+       { \
+       case GSM_A_PDU_TYPE_BSSMAP: \
+               SEV_elem_names = gsm_bssmap_elem_strings; \
+               SEV_elem_ett = ett_gsm_bssmap_elem; \
+               SEV_elem_funcs = bssmap_elem_fcn; \
+               break; \
+       case GSM_A_PDU_TYPE_DTAP: \
+               SEV_elem_names = gsm_dtap_elem_strings; \
+               SEV_elem_ett = ett_gsm_dtap_elem; \
+               SEV_elem_funcs = dtap_elem_fcn; \
+               break; \
+       case GSM_A_PDU_TYPE_RP: \
+               SEV_elem_names = gsm_rp_elem_strings; \
+               SEV_elem_ett = ett_gsm_rp_elem; \
+               SEV_elem_funcs = rp_elem_fcn; \
+               break; \
+       case GSM_A_PDU_TYPE_RR: \
+               SEV_elem_names = gsm_rr_elem_strings; \
+               SEV_elem_ett = ett_gsm_rr_elem; \
+               SEV_elem_funcs = rr_elem_fcn; \
+               break; \
+       case GSM_A_PDU_TYPE_COMMON: \
+               SEV_elem_names = gsm_common_elem_strings; \
+               SEV_elem_ett = ett_gsm_common_elem; \
+               SEV_elem_funcs = common_elem_fcn; \
+               break; \
+       case GSM_A_PDU_TYPE_GM: \
+               SEV_elem_names = gsm_gm_elem_strings; \
+               SEV_elem_ett = ett_gsm_gm_elem; \
+               SEV_elem_funcs = gm_elem_fcn; \
+               break; \
+       default: \
+               proto_tree_add_text(tree, \
+                       tvb, curr_offset, -1, \
+                       "Unknown PDU type (%u)", SEV_pdu_type); \
+               return(consumed); \
+       }
 
 /*
  * Type Length Value (TLV) element dissector
@@ -262,18 +286,18 @@ extern guint8 elem_v_short(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int i
 {\
        if ((consumed = elem_tlv(tvb, tree, (guint8) EMT_iei, EMT_pdu_type, EMT_elem_idx, curr_offset, curr_len, EMT_elem_name_addition)) > 0) \
        { \
-       curr_offset += consumed; \
-       curr_len -= consumed; \
+               curr_offset += consumed; \
+               curr_len -= consumed; \
        } \
        else \
        { \
-       proto_tree_add_text(tree, \
-           tvb, curr_offset, 0, \
-           "Missing Mandatory element (0x%02x) %s%s, rest of dissection is suspect", \
-               EMT_iei, \
-               get_gsm_a_msg_string(EMT_pdu_type, EMT_elem_idx), \
-               (EMT_elem_name_addition == NULL) || (EMT_elem_name_addition[0] == '\0') ? "" : EMT_elem_name_addition \
-           ); \
+               proto_tree_add_text(tree, \
+                       tvb, curr_offset, 0, \
+                       "Missing Mandatory element (0x%02x) %s%s, rest of dissection is suspect", \
+                       EMT_iei, \
+                       get_gsm_a_msg_string(EMT_pdu_type, EMT_elem_idx), \
+                       (EMT_elem_name_addition == NULL) || (EMT_elem_name_addition[0] == '\0') ? "" : EMT_elem_name_addition \
+                       ); \
        } \
        if (curr_len <= 0) return; \
 }
@@ -282,8 +306,8 @@ extern guint8 elem_v_short(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int i
 {\
        if ((consumed = elem_tlv(tvb, tree, (guint8) EOT_iei, EOT_pdu_type, EOT_elem_idx, curr_offset, curr_len, EOT_elem_name_addition)) > 0) \
        { \
-       curr_offset += consumed; \
-       curr_len -= consumed; \
+               curr_offset += consumed; \
+               curr_len -= consumed; \
        } \
        if (curr_len <= 0) return; \
 }
@@ -292,18 +316,18 @@ extern guint8 elem_v_short(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int i
 {\
        if ((consumed = elem_tv(tvb, tree, (guint8) EMT_iei, EMT_pdu_type, EMT_elem_idx, curr_offset, EMT_elem_name_addition)) > 0) \
        { \
-       curr_offset += consumed; \
-       curr_len -= consumed; \
+               curr_offset += consumed; \
+               curr_len -= consumed; \
        } \
        else \
        { \
-       proto_tree_add_text(tree, \
-           tvb, curr_offset, 0, \
-           "Missing Mandatory element (0x%02x) %s%s, rest of dissection is suspect", \
-               EMT_iei, \
-               get_gsm_a_msg_string(EMT_pdu_type, EMT_elem_idx), \
-               (EMT_elem_name_addition == NULL) || (EMT_elem_name_addition[0] == '\0') ? "" : EMT_elem_name_addition \
-           ); \
+               proto_tree_add_text(tree, \
+                       tvb, curr_offset, 0, \
+                       "Missing Mandatory element (0x%02x) %s%s, rest of dissection is suspect", \
+                       EMT_iei, \
+                       get_gsm_a_msg_string(EMT_pdu_type, EMT_elem_idx), \
+                       (EMT_elem_name_addition == NULL) || (EMT_elem_name_addition[0] == '\0') ? "" : EMT_elem_name_addition \
+               ); \
        } \
        if (curr_len <= 0) return; \
 }
@@ -312,8 +336,8 @@ extern guint8 elem_v_short(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int i
 {\
        if ((consumed = elem_tv(tvb, tree, (guint8) EOT_iei, EOT_pdu_type, EOT_elem_idx, curr_offset, EOT_elem_name_addition)) > 0) \
        { \
-       curr_offset += consumed; \
-       curr_len -= consumed; \
+               curr_offset += consumed; \
+               curr_len -= consumed; \
        } \
        if (curr_len <= 0) return; \
 }
@@ -322,8 +346,8 @@ extern guint8 elem_v_short(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int i
 {\
        if ((consumed = elem_tv_short(tvb, tree, EOT_iei, EOT_pdu_type, EOT_elem_idx, curr_offset, EOT_elem_name_addition)) > 0) \
        { \
-       curr_offset += consumed; \
-       curr_len -= consumed; \
+               curr_offset += consumed; \
+               curr_len -= consumed; \
        } \
        if (curr_len <= 0) return; \
 }
@@ -332,8 +356,8 @@ extern guint8 elem_v_short(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int i
 {\
        if ((consumed = elem_t(tvb, tree, (guint8) EOT_iei, EOT_pdu_type, EOT_elem_idx, curr_offset, EOT_elem_name_addition)) > 0) \
        { \
-       curr_offset += consumed; \
-       curr_len -= consumed; \
+               curr_offset += consumed; \
+               curr_len -= consumed; \
        } \
        if (curr_len <= 0) return; \
 }
@@ -342,12 +366,12 @@ extern guint8 elem_v_short(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int i
 {\
        if ((consumed = elem_lv(tvb, tree, EML_pdu_type, EML_elem_idx, curr_offset, curr_len, EML_elem_name_addition)) > 0) \
        { \
-       curr_offset += consumed; \
-       curr_len -= consumed; \
+               curr_offset += consumed; \
+               curr_len -= consumed; \
        } \
        else \
        { \
-       /* Mandatory, but nothing we can do */ \
+               /* Mandatory, but nothing we can do */ \
        } \
        if (curr_len <= 0) return; \
 }
@@ -356,12 +380,12 @@ extern guint8 elem_v_short(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int i
 {\
        if ((consumed = elem_v(tvb, tree, EMV_pdu_type, EMV_elem_idx, curr_offset)) > 0) \
        { \
-       curr_offset += consumed; \
-       curr_len -= consumed; \
+               curr_offset += consumed; \
+               curr_len -= consumed; \
        } \
        else \
        { \
-       /* Mandatory, but nothing we can do */ \
+               /* Mandatory, but nothing we can do */ \
        } \
        if (curr_len <= 0) return; \
 }
@@ -370,49 +394,48 @@ extern guint8 elem_v_short(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int i
 {\
        if ((consumed = elem_v_short(tvb, tree, EMV_pdu_type, EMV_elem_idx, curr_offset)) > 0) \
        { \
-       curr_offset += consumed; \
-       curr_len -= consumed; \
+               curr_offset += consumed; \
+               curr_len -= consumed; \
        } \
        else \
        { \
-       /* Mandatory, but nothing we can do */ \
+               /* Mandatory, but nothing we can do */ \
        } \
        if (curr_len <= 0) return; \
 }
 
-
 /*
  * this enum must be kept in-sync with 'gsm_a_pd_str'
  * it is used as an index into the array
  */
 typedef enum
 {
-    PD_GCC = 0,
-    PD_BCC,
-    PD_RSVD_1,
-    PD_CC,
-    PD_GTTP,
-    PD_MM,
-    PD_RR,
-    PD_UNK_1,
-    PD_GMM,
-    PD_SMS,
-    PD_SM,
-    PD_SS,
-    PD_LCS,
-    PD_UNK_2,
-    PD_RSVD_EXT,
-    PD_RSVD_TEST
+       PD_GCC = 0,
+       PD_BCC,
+       PD_RSVD_1,
+       PD_CC,
+       PD_GTTP,
+       PD_MM,
+       PD_RR,
+       PD_UNK_1,
+       PD_GMM,
+       PD_SMS,
+       PD_SM,
+       PD_SS,
+       PD_LCS,
+       PD_UNK_2,
+       PD_RSVD_EXT,
+       PD_RSVD_TEST
 }
 gsm_a_pd_str_e;
 
 typedef struct _gsm_a_tap_rec_t {
-    /*
-     * value from packet-bssap.h
-     */
-    guint8             pdu_type;
-    guint8             message_type;
-    gsm_a_pd_str_e     protocol_disc;
+       /*
+        * value from packet-bssap.h
+        */
+       guint8          pdu_type;
+       guint8          message_type;
+       gsm_a_pd_str_e  protocol_disc;
 } gsm_a_tap_rec_t;
 
 void dissect_bssmap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
@@ -483,8 +506,7 @@ extern const value_string gsm_a_numbering_plan_id_values[];
 
 typedef enum
 {
-       /* Common Information Elements 10.5.1 */
-       /* Pos 0 */
+       /* Common Information Elements [3] 10.5.1 */
        DE_CELL_ID,                             /* Cell Identity */
        DE_CIPH_KEY_SEQ_NUM,    /* Ciphering Key Sequence Number */
        DE_LAI,                                 /* Location Area Identification */
@@ -496,7 +518,6 @@ typedef enum
        DE_D_GB_CALL_REF,               /* Descriptive group or broadcast call reference */
        DE_G_CIPH_KEY_NUM,              /* Group Cipher Key Number */
        DE_PD_SAPI,                             /* PD and SAPI $(CCBS)$ */
-       /* Pos 10 */
        DE_PRIO,                                /* Priority Level */
        DE_PLMN_LIST,                   /* PLMN List */
 
@@ -506,7 +527,7 @@ common_elem_idx_t;
 
 typedef enum
 {
-       /* Mobility Management Information Elements 10.5.3 */
+       /* Mobility Management Information Elements [3] 10.5.3 */
        DE_AUTH_PARAM_RAND,                             /* Authentication Parameter RAND */
        DE_AUTH_PARAM_AUTN,                             /* Authentication Parameter AUTN (UMTS authentication challenge only) */
        DE_AUTH_RESP_PARAM,                             /* Authentication Response Parameter */
@@ -566,25 +587,25 @@ typedef enum
        /* Short Message Service Information Elements [5] 8.1.4 */
        DE_CP_USER_DATA,                                /* CP-User Data */
        DE_CP_CAUSE,                                    /* CP-Cause */
-    /* Tests procedures information elements 3GPP TS 44.014 6.4.0 and 3GPP TS 34.109 6.4.0 */
-    DE_TP_SUB_CHANNEL,                 /* Close TCH Loop Cmd Sub-channel */
-    DE_TP_ACK,                 /* Open Loop Cmd Ack */
-    DE_TP_LOOP_TYPE,                   /* Close Multi-slot Loop Cmd Loop type*/
-    DE_TP_LOOP_ACK,                    /* Close Multi-slot Loop Ack Result */
-    DE_TP_TESTED_DEVICE,                       /* Test Interface Tested device */
-    DE_TP_PDU_DESCRIPTION,                     /* GPRS Test Mode Cmd PDU description */
-    DE_TP_MODE_FLAG,                   /* GPRS Test Mode Cmd Mode flag */
-    DE_TP_EGPRS_MODE_FLAG,                     /* EGPRS Start Radio Block Loopback Cmd Mode flag */
-    DE_TP_UE_TEST_LOOP_MODE,                   /* Close UE Test Loop Mode */
-    DE_TP_UE_POSITIONING_TECHNOLOGY,                   /* UE Positioning Technology */
-    DE_TP_RLC_SDU_COUNTER_VALUE,                       /* RLC SDU Counter Value */
+       /* Tests procedures information elements 3GPP TS 44.014 6.4.0 and 3GPP TS 34.109 6.4.0 */
+       DE_TP_SUB_CHANNEL,                      /* Close TCH Loop Cmd Sub-channel */
+       DE_TP_ACK,                      /* Open Loop Cmd Ack */
+       DE_TP_LOOP_TYPE,                        /* Close Multi-slot Loop Cmd Loop type*/
+       DE_TP_LOOP_ACK,                 /* Close Multi-slot Loop Ack Result */
+       DE_TP_TESTED_DEVICE,                    /* Test Interface Tested device */
+       DE_TP_PDU_DESCRIPTION,                  /* GPRS Test Mode Cmd PDU description */
+       DE_TP_MODE_FLAG,                        /* GPRS Test Mode Cmd Mode flag */
+       DE_TP_EGPRS_MODE_FLAG,                  /* EGPRS Start Radio Block Loopback Cmd Mode flag */
+       DE_TP_UE_TEST_LOOP_MODE,                        /* Close UE Test Loop Mode */
+       DE_TP_UE_POSITIONING_TECHNOLOGY,                        /* UE Positioning Technology */
+       DE_TP_RLC_SDU_COUNTER_VALUE,                    /* RLC SDU Counter Value */
        DE_NONE                                                 /* NONE */
 }
 dtap_elem_idx_t;
 
 typedef enum
 {
-       /* GPRS Mobility Management Information Elements 10.5.5 */
+       /* GPRS Mobility Management Information Elements [3] 10.5.5 */
        DE_ATTACH_RES,                                  /* [7] 10.5.1 Attach Result*/
        DE_ATTACH_TYPE,                                 /* [7] 10.5.2 Attach Type */
        DE_CIPH_ALG,                                    /* [7] 10.5.3 Cipher Algorithm */
@@ -612,7 +633,7 @@ typedef enum
        DE_NET_FEAT_SUP,                                /* [7] 10.5.23 Network Feature Support */
        DE_RAT_INFO_CONTAINER,                  /* [7] 10.5.24 Inter RAT information container */
        /* [7] 10.5.25 Requested MS information */
-       /* Session Management Information Elements 10.5.6 */
+       /* Session Management Information Elements [3] 10.5.6 */
        DE_ACC_POINT_NAME,                              /* Access Point Name */
        DE_NET_SAPI,                                    /* Network Service Access Point Identifier */
        DE_PRO_CONF_OPT,                                /* Protocol Configuration Options */
@@ -624,7 +645,7 @@ typedef enum
        DE_TEAR_DOWN_IND,                               /* Tear Down Indicator */
        DE_PACKET_FLOW_ID,                              /* Packet Flow Identifier */
        DE_TRAFFIC_FLOW_TEMPLATE,               /* Traffic Flow Template */
-       /* GPRS Common Information Elements 10.5.7 */
+       /* GPRS Common Information Elements [8] 10.5.7 */
        DE_PDP_CONTEXT_STAT,                    /* [8] 10.5.7.1         PDP Context Status */
        DE_RAD_PRIO,                                    /* [8] 10.5.7.2         Radio Priority */
        DE_GPRS_TIMER,                                  /* [8] 10.5.7.3         GPRS Timer */
index 79e2877e6915260c807946c2f9bb4a188da4da37..4dedd821210f6d300233e621748eb54bb868975a 100644 (file)
  *
  * Title               3GPP                    Other
  *
- *   Reference [1]
- *   Mobile radio interface signalling layer 3;
- *   General Aspects
- *   (3GPP TS 24.007 version 3.9.0 Release 1999)
- *
  *   Reference [3]
  *   Mobile radio interface Layer 3 specification;
  *   Core network protocols;
@@ -189,31 +184,31 @@ const value_string gsm_a_dtap_msg_ss_strings[] = {
 };
 
 const value_string gsm_a_dtap_msg_tp_strings[] = {
-    { 0x00, "Close TCH Loop Cmd" },
-    { 0x01, "Close TCH Loop Ack" },
-    { 0x06, "Open Loop Cmd" },
-    { 0x0c, "Act EMMI Cmd" },
-    { 0x0d, "Act EMMI Ack" },
-    { 0x10, "Deact EMMI" },
-    { 0x14, "Test Interface" },
-    { 0x20, "Close Multi-slot Loop Cmd" },
-    { 0x21, "Close Multi-slot Loop Ack" },
-    { 0x22, "Open Multi-slot Loop Cmd" },
-    { 0x23, "Open Multi-slot Loop Ack" },
-    { 0x24, "GPRS Test Mode Cmd" },
-    { 0x25, "EGPRS Start Radio Block Loopback Cmd" },
-    { 0x40, "Close UE Test Loop" },
-    { 0x41, "Close UE Test Loop Complete" },
-    { 0x42, "Open UE Test Loop" },
-    { 0x43, "Open UE Test Loop Complete" },
-    { 0x44, "Activate RB Test Mode" },
-    { 0x45, "Activate RB Test Mode Complete" },
-    { 0x46, "Deactivate RB Test Mode" },
-    { 0x47, "Deactivate RB Test Mode Complete" },
-    { 0x48, "Reset UE Positioning Stored Information" },
-    { 0x49, "UE Test Loop Mode 3 RLC SDU Counter Request" },
-    { 0x4A, "UE Test Loop Mode 3 RLC SDU Counter Response" },
-    { 0, NULL }
+       { 0x00, "Close TCH Loop Cmd" },
+       { 0x01, "Close TCH Loop Ack" },
+       { 0x06, "Open Loop Cmd" },
+       { 0x0c, "Act EMMI Cmd" },
+       { 0x0d, "Act EMMI Ack" },
+       { 0x10, "Deact EMMI" },
+       { 0x14, "Test Interface" },
+       { 0x20, "Close Multi-slot Loop Cmd" },
+       { 0x21, "Close Multi-slot Loop Ack" },
+       { 0x22, "Open Multi-slot Loop Cmd" },
+       { 0x23, "Open Multi-slot Loop Ack" },
+       { 0x24, "GPRS Test Mode Cmd" },
+       { 0x25, "EGPRS Start Radio Block Loopback Cmd" },
+       { 0x40, "Close UE Test Loop" },
+       { 0x41, "Close UE Test Loop Complete" },
+       { 0x42, "Open UE Test Loop" },
+       { 0x43, "Open UE Test Loop Complete" },
+       { 0x44, "Activate RB Test Mode" },
+       { 0x45, "Activate RB Test Mode Complete" },
+       { 0x46, "Deactivate RB Test Mode" },
+       { 0x47, "Deactivate RB Test Mode Complete" },
+       { 0x48, "Reset UE Positioning Stored Information" },
+       { 0x49, "UE Test Loop Mode 3 RLC SDU Counter Request" },
+       { 0x4A, "UE Test Loop Mode 3 RLC SDU Counter Response" },
+       { 0, NULL }
 };
 
 const value_string gsm_dtap_elem_strings[] = {
@@ -225,7 +220,6 @@ const value_string gsm_dtap_elem_strings[] = {
        { 0x00, "Authentication Failure Parameter (UMTS authentication challenge only)" },
        { 0x00, "CM Service Type" },
        { 0x00, "Identity Type" },
-       /* Pos 50 */
        { 0x00, "Location Updating Type" },
        { 0x00, "Network Name" },
        { 0x00, "Reject Cause" },
@@ -237,7 +231,6 @@ const value_string gsm_dtap_elem_strings[] = {
        { 0x00, "Daylight Saving Time" },
        { 0x00, "Emergency Number List" },
        /* Call Control Information Elements 10.5.4 */
-       /* Pos 60 */
        { 0x00, "Auxiliary States" },                                   /* 10.5.4.4 Auxiliary states */
        { 0x00, "Bearer Capability" },                                  /* 10.5.4.4a Backup bearer capability */
        { 0x00, "Call Control Capabilities" },
@@ -288,18 +281,18 @@ const value_string gsm_dtap_elem_strings[] = {
        { 0x00, "RP-Destination Address" },
        { 0x00, "RP-User Data" },
        { 0x00, "RP-Cause" },
-    /* Tests procedures information elements 3GPP TS 44.014 6.4.0 and 3GPP TS 34.109 6.4.0 */
-    { 0x00, "Close TCH Loop Cmd Sub-channel"},
-    { 0x00, "Open Loop Cmd Ack"},
-    { 0x00, "Close Multi-slot Loop Cmd Loop type"},
-    { 0x00, "Close Multi-slot Loop Ack Result"},
-    { 0x00, "Test Interface Tested device"},
-    { 0x00, "GPRS Test Mode Cmd PDU description"},
-    { 0x00, "GPRS Test Mode Cmd Mode flag"},
-    { 0x00, "EGPRS Start Radio Block Loopback Cmd Mode flag"},
-    { 0x00, "Close UE Test Loop Mode"},
-    { 0x00, "UE Positioning Technology"},
-    { 0x00, "RLC SDU Counter Value"},
+       /* Tests procedures information elements 3GPP TS 44.014 6.4.0 and 3GPP TS 34.109 6.4.0 */
+       { 0x00, "Close TCH Loop Cmd Sub-channel"},
+       { 0x00, "Open Loop Cmd Ack"},
+       { 0x00, "Close Multi-slot Loop Cmd Loop type"},
+       { 0x00, "Close Multi-slot Loop Ack Result"},
+       { 0x00, "Test Interface Tested device"},
+       { 0x00, "GPRS Test Mode Cmd PDU description"},
+       { 0x00, "GPRS Test Mode Cmd Mode flag"},
+       { 0x00, "EGPRS Start Radio Block Loopback Cmd Mode flag"},
+       { 0x00, "Close UE Test Loop Mode"},
+       { 0x00, "UE Positioning Technology"},
+       { 0x00, "RLC SDU Counter Value"},
        { 0, NULL }
 };
 
@@ -319,7 +312,7 @@ const gchar *gsm_a_pd_str[] = {
        "Location Services",
        "Unknown",
        "Reserved for extension of the PD to one octet length",
-    "Special conformance testing functions"
+       "Special conformance testing functions"
 };
 /* L3 Protocol discriminator values according to TS 24 007 (6.4.0)  */
 const value_string protocol_discriminator_vals[] = {
@@ -457,9 +450,9 @@ de_auth_param_rand(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
 #define        AUTH_PARAM_RAND_LEN     16
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, AUTH_PARAM_RAND_LEN,
-                       "RAND value: %s",
-                       tvb_bytes_to_str(tvb, curr_offset, AUTH_PARAM_RAND_LEN));
+               tvb, curr_offset, AUTH_PARAM_RAND_LEN,
+               "RAND value: %s",
+               tvb_bytes_to_str(tvb, curr_offset, AUTH_PARAM_RAND_LEN));
 
        curr_offset += AUTH_PARAM_RAND_LEN;
 
@@ -479,9 +472,9 @@ de_auth_param_autn(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
        curr_offset = offset;
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, len,
-       "AUTN value: %s",
-       tvb_bytes_to_str(tvb, curr_offset, len));
+               tvb, curr_offset, len,
+               "AUTN value: %s",
+               tvb_bytes_to_str(tvb, curr_offset, len));
 
        curr_offset += len;
 
@@ -507,9 +500,9 @@ de_auth_resp_param(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
 #define        AUTH_PARAM_SRES_LEN     4
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, AUTH_PARAM_SRES_LEN,
-                       "SRES value: %s",
-                       tvb_bytes_to_str(tvb, curr_offset, AUTH_PARAM_SRES_LEN));
+               tvb, curr_offset, AUTH_PARAM_SRES_LEN,
+               "SRES value: %s",
+               tvb_bytes_to_str(tvb, curr_offset, AUTH_PARAM_SRES_LEN));
 
        curr_offset += AUTH_PARAM_SRES_LEN;
 
@@ -529,9 +522,9 @@ de_auth_resp_param_ext(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint le
        curr_offset = offset;
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, len,
-        "XRES value: %s",
-        tvb_bytes_to_str(tvb, curr_offset, len));
+               tvb, curr_offset, len,
+               "XRES value: %s",
+               tvb_bytes_to_str(tvb, curr_offset, len));
 
        curr_offset += len;
 
@@ -551,9 +544,9 @@ de_auth_fail_param(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
        curr_offset = offset;
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, len,
-       "AUTS value: %s",
-       tvb_bytes_to_str(tvb, curr_offset, len));
+               tvb, curr_offset, len,
+               "AUTS value: %s",
+               tvb_bytes_to_str(tvb, curr_offset, len));
 
        curr_offset += len;
 
@@ -583,25 +576,25 @@ de_network_name(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
        case 0x00: str = "Cell Broadcast data coding scheme, GSM default alphabet, language unspecified, defined in 3GPP TS 03.38"; break;
        case 0x01: str = "UCS2 (16 bit)"; break;
        default:
-       str = "Reserved";
+               str = "Reserved";
        break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x70, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Coding Scheme: %s",
-       a_bigbuf,
-       str);
+               tvb, curr_offset, 1,
+               "%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",
-       a_bigbuf,
-       (oct & 0x08) ?
-           "add the letters for the Country's Initials and a separator (e.g. a space) to the text string" :
-           "The MS should not add the letters for the Country's Initials to the text string");
+               tvb, curr_offset, 1,
+               "%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" :
+                       "The MS should not add the letters for the Country's Initials to the text string");
 
        switch (oct & 0x07)
        {
@@ -613,24 +606,24 @@ de_network_name(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
        case 6: str = "bits 3 to 8(inclusive) are spare and set to '0' in octet n"; break;
        case 7: str = "bits 2 to 8(inclusive) are spare and set to '0' in octet n"; break;
        default:
-       str = "this field carries no information about the number of spare bits in octet n";
+               str = "this field carries no information about the number of spare bits in octet n";
        break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x07, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Number of spare bits in last octet: %s",
-       a_bigbuf,
-       str);
+               tvb, curr_offset, 1,
+               "%s :  Number of spare bits in last octet: %s",
+               a_bigbuf,
+               str);
 
        curr_offset++;
 
        NO_MORE_DATA_CHECK(len);
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, len - 1,
-       "Text string encoded according to Coding Scheme");
+               tvb, curr_offset, len - 1,
+               "Text string encoded according to Coding Scheme");
 
        curr_offset += len - 1;
 
@@ -643,13 +636,12 @@ de_network_name(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
  * [3] 10.5.3.6 Reject cause
  */
 guint8
-de_rej_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rej_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
        const gchar *str;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -683,24 +675,24 @@ de_rej_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *
        case 0x65: str = "Message not compatible with the protocol state"; break;
        case 0x6f: str = "Protocol error, unspecified"; break;
        default:
-       switch (is_uplink)
-       {
-       case IS_UPLINK_FALSE:
-           str = "Service option temporarily out of order";
-           break;
-       default:
-           str = "Protocol error, unspecified";
-           break;
-       }
-       break;
+               switch (is_uplink)
+               {
+               case IS_UPLINK_FALSE:
+                       str = "Service option temporarily out of order";
+                       break;
+               default:
+                       str = "Protocol error, unspecified";
+                       break;
+               }
+               break;
        }
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "Reject Cause value: 0x%02x (%u) %s",
-       oct,
-       oct,
-       str);
+               tvb, curr_offset, 1,
+               "Reject Cause value: 0x%02x (%u) %s",
+               oct,
+               oct,
+               str);
 
        curr_offset++;
 
@@ -713,13 +705,12 @@ de_rej_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *
  * [3] 10.5.3.8
  */
 static guint8
-de_time_zone(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_time_zone(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
        char sign;
 
-       len = len;
        curr_offset = offset;
 
        /* 3GPP TS 23.040 version 6.6.0 Release 6
@@ -736,9 +727,9 @@ de_time_zone(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *
        oct = (oct >> 4) + (oct & 0x07) * 10;
 
        proto_tree_add_text(tree,
-       tvb, offset, 1,
-       "Timezone: GMT %c %d hours %d minutes",
-       sign, oct / 4, oct % 4 * 15);
+               tvb, offset, 1,
+               "Timezone: GMT %c %d hours %d minutes",
+               sign, oct / 4, oct % 4 * 15);
        curr_offset++;
 
        /* no length check possible */
@@ -750,13 +741,12 @@ de_time_zone(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *
  * [3] 10.5.3.9
  */
 static guint8
-de_time_zone_time(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_time_zone_time(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct, oct2, oct3;
        guint32 curr_offset;
        char sign;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -764,14 +754,14 @@ de_time_zone_time(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
        oct3 = tvb_get_guint8(tvb, curr_offset+2);
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 3,
-       "Year %u%u, Month %u%u, Day %u%u",
-       oct & 0x0f,
-       (oct & 0xf0) >> 4,
-       oct2 & 0x0f,
-       (oct2 & 0xf0) >> 4,
-       oct3 & 0x0f,
-       (oct3 & 0xf0) >> 4);
+               tvb, curr_offset, 3,
+               "Year %u%u, Month %u%u, Day %u%u",
+               oct & 0x0f,
+               (oct & 0xf0) >> 4,
+               oct2 & 0x0f,
+               (oct2 & 0xf0) >> 4,
+               oct3 & 0x0f,
+               (oct3 & 0xf0) >> 4);
 
        curr_offset += 3;
 
@@ -780,14 +770,14 @@ de_time_zone_time(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
        oct3 = tvb_get_guint8(tvb, curr_offset+2);
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 3,
-       "Hour %u%u, Minutes %u%u, Seconds %u%u",
-       oct & 0x0f,
-       (oct & 0xf0) >> 4,
-       oct2 & 0x0f,
-       (oct2 & 0xf0) >> 4,
-       oct3 & 0x0f,
-       (oct3 & 0xf0) >> 4);
+               tvb, curr_offset, 3,
+               "Hour %u%u, Minutes %u%u, Seconds %u%u",
+               oct & 0x0f,
+               (oct & 0xf0) >> 4,
+               oct2 & 0x0f,
+               (oct2 & 0xf0) >> 4,
+               oct3 & 0x0f,
+               (oct3 & 0xf0) >> 4);
 
        curr_offset += 3;
 
@@ -805,9 +795,9 @@ de_time_zone_time(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
        oct = (oct >> 4) + (oct & 0x07) * 10;
 
        proto_tree_add_text(tree,
-       tvb, offset, 1,
-       "Timezone: GMT %c %d hours %d minutes",
-       sign, oct / 4, oct % 4 * 15);
+               tvb, offset, 1,
+               "Timezone: GMT %c %d hours %d minutes",
+               sign, oct / 4, oct % 4 * 15);
 
        curr_offset++;
 
@@ -855,9 +845,9 @@ de_day_saving_time(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
 
        other_decode_bitfield_value(a_bigbuf, oct, 0xfc, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Spare",
-       a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        switch (oct & 0x03)
        {
@@ -865,16 +855,16 @@ de_day_saving_time(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
        case 1: str = "+1 hour adjustment for Daylight Saving Time"; break;
        case 2: str = "+2 hours adjustment for Daylight Saving Time"; break;
        default:
-       str = "Reserved";
-       break;
+               str = "Reserved";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x03, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  %s",
-       a_bigbuf,
-       str);
+               tvb, curr_offset, 1,
+               "%s :  %s",
+               a_bigbuf,
+               str);
 
        curr_offset++;
 
@@ -901,9 +891,9 @@ de_aux_states(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x70, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Spare",
-       a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        switch ((oct & 0x0c) >> 2)
        {
@@ -911,16 +901,16 @@ de_aux_states(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
        case 1: str = "Hold request"; break;
        case 2: str = "Call held"; break;
        default:
-       str = "Retrieve request";
-       break;
+               str = "Retrieve request";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x0c, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Hold auxiliary state: %s",
-       a_bigbuf,
-       str);
+               tvb, curr_offset, 1,
+               "%s :  Hold auxiliary state: %s",
+               a_bigbuf,
+               str);
 
        switch (oct & 0x03)
        {
@@ -928,16 +918,16 @@ de_aux_states(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
        case 1: str = "MPTY request"; break;
        case 2: str = "Call in MPTY"; break;
        default:
-       str = "Split request";
-       break;
+               str = "Split request";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x03, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Multi party auxiliary state: %s",
-       a_bigbuf,
-       str);
+               tvb, curr_offset, 1,
+               "%s :  Multi party auxiliary state: %s",
+               a_bigbuf,
+               str);
 
        curr_offset++;
 
@@ -983,68 +973,68 @@ de_bearer_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x80, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Extension: %s",
-       a_bigbuf,
-       extended ? "extended" : "not extended");
+               tvb, curr_offset, 1,
+               "%s :  Extension: %s",
+               a_bigbuf,
+               extended ? "extended" : "not extended");
 
        switch (is_uplink)
        {
        case IS_UPLINK_FALSE:
-       str = "Spare";
-       break;
+               str = "Spare";
+               break;
 
        case IS_UPLINK_TRUE:
-       /*
-        * depends on Information transfer capability
-        */
-       switch (itc)
-       {
-       case DE_BC_ITC_SPEECH:
-           if (extended)
-           {
-               switch ((oct & 0x60) >> 5)
-               {
-               case 1: str = "MS supports at least full rate speech version 1 but does not support half rate speech version 1"; break;
-               case 2: str = "MS supports at least full rate speech version 1 and half rate speech version 1. MS has a greater preference for half rate speech version 1 than for full rate speech version 1"; break;
-               case 3: str = "MS supports at least full rate speech version 1 and half rate speech version 1. MS has a greater preference for full rate speech version 1 than for half rate speech version 1"; break;
-               default:
-                   str = "Reserved";
-                   break;
-               }
-           }
-           else
-           {
-               switch ((oct & 0x60) >> 5)
+               /*
+                * depends on Information transfer capability
+                */
+               switch (itc)
                {
-               case 1: str = "Full rate support only MS/fullrate speech version 1 supported"; break;
-               case 2: str = "Dual rate support MS/half rate speech version 1 preferred, full rate speech version 1 also supported"; break;
-               case 3: str = "Dual rate support MS/full rate speech version 1 preferred, half rate speech version 1 also supported"; break;
+               case DE_BC_ITC_SPEECH:
+                       if (extended)
+                       {
+                               switch ((oct & 0x60) >> 5)
+                               {
+                               case 1: str = "MS supports at least full rate speech version 1 but does not support half rate speech version 1"; break;
+                               case 2: str = "MS supports at least full rate speech version 1 and half rate speech version 1. MS has a greater preference for half rate speech version 1 than for full rate speech version 1"; break;
+                               case 3: str = "MS supports at least full rate speech version 1 and half rate speech version 1. MS has a greater preference for full rate speech version 1 than for half rate speech version 1"; break;
+                               default:
+                                       str = "Reserved";
+                                       break;
+                               }
+                       }
+                       else
+                       {
+                               switch ((oct & 0x60) >> 5)
+                               {
+                               case 1: str = "Full rate support only MS/fullrate speech version 1 supported"; break;
+                               case 2: str = "Dual rate support MS/half rate speech version 1 preferred, full rate speech version 1 also supported"; break;
+                               case 3: str = "Dual rate support MS/full rate speech version 1 preferred, half rate speech version 1 also supported"; break;
+                               default:
+                                       str = "Reserved";
+                                       break;
+                               }
+                       }
+                       break;
+
                default:
-                   str = "Reserved";
-                   break;
+                       switch ((oct & 0x60) >> 5)
+                       {
+                       case 1: str = "Full rate support only MS"; break;
+                       case 2: str = "Dual rate support MS/half rate preferred"; break;
+                       case 3: str = "Dual rate support MS/full rate preferred"; break;
+                       default:
+                               str = "Reserved";
+                               break;
+                       }
+                       break;
                }
-           }
-           break;
-
-       default:
-           switch ((oct & 0x60) >> 5)
-           {
-           case 1: str = "Full rate support only MS"; break;
-           case 2: str = "Dual rate support MS/half rate preferred"; break;
-           case 3: str = "Dual rate support MS/full rate preferred"; break;
-           default:
-               str = "Reserved";
                break;
-           }
-           break;
-       }
-       break;
 
-       default:
-       str = "(dissect problem)";
-       break;
-       }
+               default:
+                       str = "(dissect problem)";
+                       break;
+               }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x60, 8);
        proto_tree_add_text(tree,
@@ -1055,17 +1045,17 @@ de_bearer_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x10, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Coding standard: %s",
-       a_bigbuf,
-       (oct & 0x10) ? "reserved" : "GSM standardized coding");
+               tvb, curr_offset, 1,
+               "%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(tree,
-       tvb, curr_offset, 1,
-       "%s :  Transfer mode: %s",
-       a_bigbuf,
-       (oct & 0x08) ? "packet" : "circuit");
+               tvb, curr_offset, 1,
+               "%s :  Transfer mode: %s",
+               a_bigbuf,
+               (oct & 0x08) ? "packet" : "circuit");
 
        switch (itc)
        {
@@ -1076,19 +1066,19 @@ de_bearer_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
        case DE_BC_ITC_OTHER_ITC: str = "Other ITC (See Octet 5a)"; break;
        case DE_BC_ITC_RSVD_NET: str = "Reserved, to be used in the network"; break;
        default:
-       str = "Reserved";
-       break;
+               str = "Reserved";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x07, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Information transfer capability: %s",
-       a_bigbuf,
-       str);
+               tvb, curr_offset, 1,
+               "%s :  Information transfer capability: %s",
+               a_bigbuf,
+               str);
 
        if (add_string)
-       g_snprintf(add_string, string_len, " - (%s)", str);
+               g_snprintf(add_string, string_len, " - (%s)", str);
 
        curr_offset++;
 
@@ -1097,154 +1087,154 @@ de_bearer_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
        switch (itc)
        {
        case DE_BC_ITC_SPEECH:
-       /* octets 3a */
-
-       item =
-           proto_tree_add_text(tree,
-               tvb, curr_offset, -1,
-               "Octets 3a - Speech Versions");
-
-       subtree = proto_item_add_subtree(item, ett_bc_oct_3a);
-
-       saved_offset = curr_offset;
-
-       do
-       {
-           oct = tvb_get_guint8(tvb, curr_offset);
+               /* octets 3a */
 
-           extended = (oct & 0x80) ? FALSE : TRUE;
+               item =
+                       proto_tree_add_text(tree,
+                       tvb, curr_offset, -1,
+                       "Octets 3a - Speech Versions");
 
-           other_decode_bitfield_value(a_bigbuf, oct, 0x80, 8);
-           proto_tree_add_text(subtree,
-               tvb, curr_offset, 1,
-               "%s :  Extension: %s",
-               a_bigbuf,
-               extended ? "extended" : "not extended");
+               subtree = proto_item_add_subtree(item, ett_bc_oct_3a);
 
-           other_decode_bitfield_value(a_bigbuf, oct, 0x40, 8);
-           proto_tree_add_text(subtree,
-               tvb, curr_offset, 1,
-               "%s :  Coding: octet used for %s",
-               a_bigbuf,
-               (oct & 0x40) ? "other extension of octet 3" :
-                   "extension of information transfer capability");
+               saved_offset = curr_offset;
 
-           other_decode_bitfield_value(a_bigbuf, oct, 0x30, 8);
-           proto_tree_add_text(subtree,
-               tvb, curr_offset, 1,
-               "%s :  Spare",
-               a_bigbuf);
+               do
+               {
+                       oct = tvb_get_guint8(tvb, curr_offset);
+
+                       extended = (oct & 0x80) ? FALSE : TRUE;
+
+                       other_decode_bitfield_value(a_bigbuf, oct, 0x80, 8);
+                       proto_tree_add_text(subtree,
+                               tvb, curr_offset, 1,
+                               "%s :  Extension: %s",
+                               a_bigbuf,
+                               extended ? "extended" : "not extended");
+
+                       other_decode_bitfield_value(a_bigbuf, oct, 0x40, 8);
+                       proto_tree_add_text(subtree,
+                               tvb, curr_offset, 1,
+                               "%s :  Coding: octet used for %s",
+                               a_bigbuf,
+                               (oct & 0x40) ? "other extension of octet 3" :
+                               "extension of information transfer capability");
+
+                       other_decode_bitfield_value(a_bigbuf, oct, 0x30, 8);
+                       proto_tree_add_text(subtree,
+                               tvb, curr_offset, 1,
+                               "%s :  Spare",
+                               a_bigbuf);
+
+                       switch (oct & 0x0f)
+                       {
+                       case 0: str = "GSM full rate speech version 1"; break;
+                       case 2: str = "GSM full rate speech version 2"; break;
+                       case 4: str = "GSM full rate speech version 3"; break;
+                       case 1: str = "GSM half rate speech version 1"; break;
+                       case 5: str = "GSM half rate speech version 3"; break;
+                       default:
+                               str = "Speech version TBD";
+                               break;
+                       }
+
+                       other_decode_bitfield_value(a_bigbuf, oct, 0x0f, 8);
+                       proto_tree_add_text(subtree,
+                               tvb, curr_offset, 1,
+                               "%s :  Speech version indication: %s",
+                               a_bigbuf,
+                               str);
+
+                       curr_offset++;
+               }
+               while (extended &&
+                       ((len - (curr_offset - offset)) > 0));
 
-           switch (oct & 0x0f)
-           {
-           case 0: str = "GSM full rate speech version 1"; break;
-           case 2: str = "GSM full rate speech version 2"; break;
-           case 4: str = "GSM full rate speech version 3"; break;
-           case 1: str = "GSM half rate speech version 1"; break;
-           case 5: str = "GSM half rate speech version 3"; break;
-           default:
-               str = "Speech version TBD";
+               proto_item_set_len(item, curr_offset - saved_offset);
                break;
-           }
-
-           other_decode_bitfield_value(a_bigbuf, oct, 0x0f, 8);
-           proto_tree_add_text(subtree,
-               tvb, curr_offset, 1,
-               "%s :  Speech version indication: %s",
-               a_bigbuf,
-               str);
-
-           curr_offset++;
-       }
-       while (extended &&
-           ((len - (curr_offset - offset)) > 0));
-
-       proto_item_set_len(item, curr_offset - saved_offset);
-       break;
 
-       default:
-       /* octet 4 */
-
-       item =
-           proto_tree_add_text(tree,
-               tvb, curr_offset, 1,
-               "Octet 4");
-
-       subtree = proto_item_add_subtree(item, ett_bc_oct_4);
-
-       oct = tvb_get_guint8(tvb, curr_offset);
-
-       extended = (oct & 0x80) ? FALSE : TRUE;
-
-       other_decode_bitfield_value(a_bigbuf, oct, 0x80, 8);
-       proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Extension: %s",
-           a_bigbuf,
-           extended ? "extended" : "not extended");
+               default:
+               /* octet 4 */
 
-       other_decode_bitfield_value(a_bigbuf, oct, 0x40, 8);
-       proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Compression: data compression %s%s",
-           a_bigbuf,
-           (oct & 0x40) ? "" : "not ",
-           is_uplink ? "allowed" : "possible");
+               item =
+                       proto_tree_add_text(tree,
+                               tvb, curr_offset, 1,
+                               "Octet 4");
 
-       switch ((oct & 0x30) >> 4)
-       {
-       case 0x00: str = "Service data unit integrity"; break;
-       case 0x03: str = "Unstructured"; break;
-       default:
-           str = "Reserved";
-           break;
-       }
+               subtree = proto_item_add_subtree(item, ett_bc_oct_4);
 
-       other_decode_bitfield_value(a_bigbuf, oct, 0x30, 8);
-       proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Structure: %s",
-           a_bigbuf,
-           str);
+               oct = tvb_get_guint8(tvb, curr_offset);
 
-       other_decode_bitfield_value(a_bigbuf, oct, 0x08, 8);
-       proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Duplex mode: %s",
-           a_bigbuf,
-           (oct & 0x08) ? "Full" : "Half");
+               extended = (oct & 0x80) ? FALSE : TRUE;
 
-       other_decode_bitfield_value(a_bigbuf, oct, 0x04, 8);
-       proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Configuration: %s",
-           a_bigbuf,
-           (oct & 0x04) ? "Reserved" : "Point-to-point");
+               other_decode_bitfield_value(a_bigbuf, oct, 0x80, 8);
+               proto_tree_add_text(subtree,
+                       tvb, curr_offset, 1,
+                       "%s :  Extension: %s",
+                       a_bigbuf,
+                       extended ? "extended" : "not extended");
 
-       other_decode_bitfield_value(a_bigbuf, oct, 0x02, 8);
-       proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%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" :
-               "No meaning is associated with this value");
+               other_decode_bitfield_value(a_bigbuf, oct, 0x40, 8);
+               proto_tree_add_text(subtree,
+                       tvb, curr_offset, 1,
+                       "%s :  Compression: data compression %s%s",
+                       a_bigbuf,
+                       (oct & 0x40) ? "" : "not ",
+                       is_uplink ? "allowed" : "possible");
 
-       other_decode_bitfield_value(a_bigbuf, oct, 0x01, 8);
-       proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Establishment: %s",
-           a_bigbuf,
-           (oct & 0x01) ? "Reserved" : "Demand");
+               switch ((oct & 0x30) >> 4)
+               {
+               case 0x00: str = "Service data unit integrity"; break;
+               case 0x03: str = "Unstructured"; break;
+               default:
+                       str = "Reserved";
+                       break;
+               }
 
-       curr_offset++;
+               other_decode_bitfield_value(a_bigbuf, oct, 0x30, 8);
+               proto_tree_add_text(subtree,
+                       tvb, curr_offset, 1,
+                       "%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",
+                       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",
+                       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",
+                       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" :
+                       "No meaning is associated with this value");
+
+               other_decode_bitfield_value(a_bigbuf, oct, 0x01, 8);
+               proto_tree_add_text(subtree,
+                       tvb, curr_offset, 1,
+                       "%s :  Establishment: %s",
+                       a_bigbuf,
+                       (oct & 0x01) ? "Reserved" : "Demand");
+
+               curr_offset++;
 
        NO_MORE_DATA_CHECK(len);
 
        /* octet 5 */
 
        item =
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                tvb, curr_offset, 1,
                "Octet 5");
 
@@ -1256,17 +1246,17 @@ de_bearer_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x80, 8);
        proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Extension: %s",
-           a_bigbuf,
-           extended ? "extended" : "not extended");
+               tvb, curr_offset, 1,
+               "%s :  Extension: %s",
+               a_bigbuf,
+               extended ? "extended" : "not extended");
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x60, 8);
        proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Access Identity: %s",
-           a_bigbuf,
-           (oct & 0x60) ? "Reserved" : "Octet identifier");
+               tvb, curr_offset, 1,
+               "%s :  Access Identity: %s",
+               a_bigbuf,
+               (oct & 0x60) ? "Reserved" : "Octet identifier");
 
        switch ((oct & 0x18) >> 3)
        {
@@ -1274,16 +1264,16 @@ de_bearer_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
        case 0x01: str = "V.110, I.460/X.30 rate adaptation"; break;
        case 0x02: str = "ITU-T X.31 flag stuffing"; break;
        default:
-           str = "Other rate adaption (see octet 5a)";
-           break;
+               str = "Other rate adaption (see octet 5a)";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x18, 8);
        proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Rate Adaption: %s",
-           a_bigbuf,
-           str);
+               tvb, curr_offset, 1,
+               "%s :  Rate Adaption: %s",
+               a_bigbuf,
+               str);
 
        switch (oct & 0x07)
        {
@@ -1294,16 +1284,16 @@ de_bearer_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
        case 0x05: str = "Reserved: was allocated in earlier phases of the protocol"; break;
        case 0x06: str = "Reserved: was allocated in earlier phases of the protocol"; break;
        default:
-           str = "Reserved";
-           break;
+               str = "Reserved";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x07, 8);
        proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Signalling Access Protocol: %s",
-           a_bigbuf,
-           str);
+               tvb, curr_offset, 1,
+               "%s :  Signalling Access Protocol: %s",
+               a_bigbuf,
+               str);
 
        curr_offset++;
 
@@ -1314,7 +1304,7 @@ de_bearer_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
        /* octet 5a */
 
        item =
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                tvb, curr_offset, 1,
                "Octet 5a");
 
@@ -1326,17 +1316,17 @@ de_bearer_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x80, 8);
        proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Extension: %s",
-           a_bigbuf,
-           extended ? "extended" : "not extended");
+               tvb, curr_offset, 1,
+               "%s :  Extension: %s",
+               a_bigbuf,
+               extended ? "extended" : "not extended");
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x60, 8);
        proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Other ITC: %s",
-           a_bigbuf,
-           (oct & 0x60) ? "Reserved" : "Restricted digital information");
+               tvb, curr_offset, 1,
+               "%s :  Other ITC: %s",
+               a_bigbuf,
+               (oct & 0x60) ? "Reserved" : "Restricted digital information");
 
        switch ((oct & 0x18) >> 3)
        {
@@ -1344,22 +1334,22 @@ de_bearer_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
        case 0x01: str = "H.223 & H.245"; break;
        case 0x02: str = "PIAFS"; break;
        default:
-           str = "Reserved";
-           break;
+               str = "Reserved";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x18, 8);
        proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Other Rate Adaption: %s",
-           a_bigbuf,
-           str);
+               tvb, curr_offset, 1,
+               "%s :  Other Rate Adaption: %s",
+               a_bigbuf,
+               str);
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x07, 8);
        proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Spare",
-           a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        curr_offset++;
 
@@ -1370,7 +1360,7 @@ de_bearer_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
        /* octet 5b */
 
        item =
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                tvb, curr_offset, 1,
                "Octet 5b");
 
@@ -1382,60 +1372,60 @@ de_bearer_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x80, 8);
        proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Extension: %s",
-           a_bigbuf,
-           extended ? "extended" : "not extended");
+               tvb, curr_offset, 1,
+               "%s :  Extension: %s",
+               a_bigbuf,
+               extended ? "extended" : "not extended");
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x40, 8);
        proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Rate Adaption Header: %sincluded",
-           a_bigbuf,
-           (oct & 0x40) ? "" : "not ");
+               tvb, curr_offset, 1,
+               "%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",
-           a_bigbuf,
-           (oct & 0x20) ? "Supported" : "Not supported, only UI frames allowed");
+               tvb, curr_offset, 1,
+               "%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",
-           a_bigbuf,
-           (oct & 0x10) ? "Protocol sensitive" : "Bit transparent");
+               tvb, curr_offset, 1,
+               "%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",
-           a_bigbuf,
-           (oct & 0x08) ? "Full protocol negotiation" : "Default, LLI=256 only");
+               tvb, curr_offset, 1,
+               "%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'",
-           a_bigbuf,
-           (oct & 0x04) ? "assignor only" : "default assignee");
+               tvb, curr_offset, 1,
+               "%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",
-           a_bigbuf,
-           (oct & 0x02) ?
+               tvb, curr_offset, 1,
+               "%s :  In band/Out of band negotiation: Negotiation is done %s",
+               a_bigbuf,
+               (oct & 0x02) ?
                "with USER INFORMATION messages on a temporary signalling connection" :
                "in-band using logical link zero");
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x01, 8);
        proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Spare",
-           a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        curr_offset++;
 
@@ -1446,7 +1436,7 @@ bc_octet_6:
        /* octet 6 */
 
        item =
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                tvb, curr_offset, 1,
                "Octet 6");
 
@@ -1458,31 +1448,31 @@ bc_octet_6:
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x80, 8);
        proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Extension: %s",
-           a_bigbuf,
-           extended ? "extended" : "not extended");
+               tvb, curr_offset, 1,
+               "%s :  Extension: %s",
+               a_bigbuf,
+               extended ? "extended" : "not extended");
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x60, 8);
        proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Layer 1 Identity: %s",
-           a_bigbuf,
-           ((oct & 0x60) == 0x20) ? "Octet identifier" : "Reserved");
+               tvb, curr_offset, 1,
+               "%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",
-           a_bigbuf,
-           (oct & 0x1e) ? "Reserved" : "Default layer 1 protocol");
+               tvb, curr_offset, 1,
+               "%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",
-           a_bigbuf,
-           (oct & 0x01) ? "Asynchronous" : "Synchronous");
+               tvb, curr_offset, 1,
+               "%s :  Synchronous/asynchronous: %s",
+               a_bigbuf,
+               (oct & 0x01) ? "Asynchronous" : "Synchronous");
 
        curr_offset++;
 
@@ -1493,7 +1483,7 @@ bc_octet_6:
        /* octet 6a */
 
        item =
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                tvb, curr_offset, 1,
                "Octet 6a");
 
@@ -1505,31 +1495,31 @@ bc_octet_6:
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x80, 8);
        proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Extension: %s",
-           a_bigbuf,
-           extended ? "extended" : "not extended");
+               tvb, curr_offset, 1,
+               "%s :  Extension: %s",
+               a_bigbuf,
+               extended ? "extended" : "not extended");
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x40, 8);
        proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Number of Stop Bits: %s",
-           a_bigbuf,
-           (oct & 0x40) ? "2" : "1");
+               tvb, curr_offset, 1,
+               "%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",
-           a_bigbuf,
-           (oct & 0x20) ? "Reserved" : "In-band negotiation not possible");
+               tvb, curr_offset, 1,
+               "%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",
-           a_bigbuf,
-           (oct & 0x10) ? "8" : "7");
+               tvb, curr_offset, 1,
+               "%s :  Number of data bits excluding parity bit if present: %s",
+               a_bigbuf,
+               (oct & 0x10) ? "8" : "7");
 
        switch (oct & 0x0f)
        {
@@ -1541,16 +1531,16 @@ bc_octet_6:
        case 0x06: str = "12.0 kbit/s transparent (non compliance with X.1 and V.110)"; break;
        case 0x07: str = "Reserved: was allocated in earlier phases of the protocol"; break;
        default:
-           str = "Reserved";
-           break;
+               str = "Reserved";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x0f, 8);
        proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  User rate: %s",
-           a_bigbuf,
-           str);
+               tvb, curr_offset, 1,
+               "%s :  User rate: %s",
+               a_bigbuf,
+               str);
 
        curr_offset++;
 
@@ -1561,7 +1551,7 @@ bc_octet_6:
        /* octet 6b */
 
        item =
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                tvb, curr_offset, 1,
                "Octet 6b");
 
@@ -1573,40 +1563,40 @@ bc_octet_6:
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x80, 8);
        proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Extension: %s",
-           a_bigbuf,
-           extended ? "extended" : "not extended");
+               tvb, curr_offset, 1,
+               "%s :  Extension: %s",
+               a_bigbuf,
+               extended ? "extended" : "not extended");
 
        switch ((oct & 0x60) >> 5)
        {
        case 0x02: str = "8 kbit/s"; break;
        case 0x03: str = "16 kbit/s"; break;
        default:
-           str = "Reserved";
-           break;
+               str = "Reserved";
+               break;
        }
 
        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",
-           a_bigbuf,
-           str);
-
+               tvb, curr_offset, 1,
+               "%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",
-           a_bigbuf,
-           (oct & 0x10) ? "requires" : "does not require");
+               tvb, curr_offset, 1,
+               "%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",
-           a_bigbuf,
-           (oct & 0x08) ? "can" : "cannot");
+               tvb, curr_offset, 1,
+               "%s :  Network independent clock (NIC) on reception (Rx): %s accept data with network independent clock",
+               a_bigbuf,
+               (oct & 0x08) ? "can" : "cannot");
 
        switch (oct & 0x07)
        {
@@ -1616,16 +1606,16 @@ bc_octet_6:
        case 0x04: str = "Forced to 0"; break;
        case 0x05: str = "Forced to 1"; break;
        default:
-           str = "Reserved";
-           break;
+               str = "Reserved";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x07, 8);
        proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Parity information: %s",
-           a_bigbuf,
-           str);
+               tvb, curr_offset, 1,
+               "%s :  Parity information: %s",
+               a_bigbuf,
+               str);
 
        curr_offset++;
 
@@ -1636,7 +1626,7 @@ bc_octet_6:
        /* octet 6c */
 
        item =
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                tvb, curr_offset, 1,
                "Octet 6c");
 
@@ -1648,10 +1638,10 @@ bc_octet_6:
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x80, 8);
        proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Extension: %s",
-           a_bigbuf,
-           extended ? "extended" : "not extended");
+               tvb, curr_offset, 1,
+               "%s :  Extension: %s",
+               a_bigbuf,
+               extended ? "extended" : "not extended");
 
        switch ((oct & 0x60) >> 5)
        {
@@ -1659,16 +1649,16 @@ bc_octet_6:
        case 0x02: str = "Both, transparent preferred"; break;
        case 0x03: str = "Both, non transparent preferred"; break;
        default:
-           str = "Transparent";
-           break;
+               str = "Transparent";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x60, 8);
        proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Connection element: %s",
-           a_bigbuf,
-           str);
+               tvb, curr_offset, 1,
+               "%s :  Connection element: %s",
+               a_bigbuf,
+               str);
 
        switch (oct & 0x1f)
        {
@@ -1682,16 +1672,16 @@ bc_octet_6:
        case 0x07: str = "Modem for undefined interface"; break;
        case 0x08: str = "Autobauding type 1"; break;
        default:
-           str = "Reserved";
-           break;
+               str = "Reserved";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x1f, 8);
        proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Modem type: %s",
-           a_bigbuf,
-           str);
+               tvb, curr_offset, 1,
+               "%s :  Modem type: %s",
+               a_bigbuf,
+               str);
 
        curr_offset++;
 
@@ -1702,7 +1692,7 @@ bc_octet_6:
        /* octet 6d */
 
        item =
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                tvb, curr_offset, 1,
                "Octet 6d");
 
@@ -1714,26 +1704,26 @@ bc_octet_6:
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x80, 8);
        proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Extension: %s",
-           a_bigbuf,
-           extended ? "extended" : "not extended");
+               tvb, curr_offset, 1,
+               "%s :  Extension: %s",
+               a_bigbuf,
+               extended ? "extended" : "not extended");
 
        switch ((oct & 0x60) >> 5)
        {
        case 0x00: str = "No other modem type specified in this field"; break;
        case 0x02: str = "V.34"; break;
        default:
-           str = "Reserved";
-           break;
+               str = "Reserved";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x60, 8);
        proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Other modem type: %s",
-           a_bigbuf,
-           str);
+               tvb, curr_offset, 1,
+               "%s :  Other modem type: %s",
+               a_bigbuf,
+               str);
 
        switch (oct & 0x1f)
        {
@@ -1750,16 +1740,16 @@ bc_octet_6:
        case 0x0a: str = "32.0 kbit/s Recommendation I.460"; break;
        case 0x0b: str = "31.2 kbit/s Recommendation V.34"; break;
        default:
-           str = "Reserved";
-           break;
+               str = "Reserved";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x1f, 8);
        proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Fixed network user rate: %s",
-           a_bigbuf,
-           str);
+               tvb, curr_offset, 1,
+               "%s :  Fixed network user rate: %s",
+               a_bigbuf,
+               str);
 
        curr_offset++;
 
@@ -1770,7 +1760,7 @@ bc_octet_6:
        /* octet 6e */
 
        item =
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                tvb, curr_offset, 1,
                "Octet 6e");
 
@@ -1782,42 +1772,42 @@ bc_octet_6:
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x80, 8);
        proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Extension: %s",
-           a_bigbuf,
-           extended ? "extended" : "not extended");
+               tvb, curr_offset, 1,
+               "%s :  Extension: %s",
+               a_bigbuf,
+               extended ? "extended" : "not extended");
 
        if (is_uplink == IS_UPLINK_TRUE)
        {
-           other_decode_bitfield_value(a_bigbuf, oct, 0x40, 8);
-           proto_tree_add_text(subtree,
+               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",
                a_bigbuf,
                (oct & 0x40) ? "" : "not ");
 
-           other_decode_bitfield_value(a_bigbuf, oct, 0x20, 8);
-           proto_tree_add_text(subtree,
+               other_decode_bitfield_value(a_bigbuf, oct, 0x20, 8);
+               proto_tree_add_text(subtree,
                tvb, curr_offset, 1,
                "%s :  Acceptable channel codings: Spare",
                a_bigbuf);
 
-           other_decode_bitfield_value(a_bigbuf, oct, 0x10, 8);
-           proto_tree_add_text(subtree,
+               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",
                a_bigbuf,
                (oct & 0x10) ? "" : "not ");
 
-           other_decode_bitfield_value(a_bigbuf, oct, 0x08, 8);
-           proto_tree_add_text(subtree,
+               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",
                a_bigbuf,
                (oct & 0x08) ? "" : "not ");
 
-           other_decode_bitfield_value(a_bigbuf, oct, 0x07, 8);
-           proto_tree_add_text(subtree,
+               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",
                a_bigbuf,
@@ -1825,14 +1815,14 @@ bc_octet_6:
        }
        else
        {
-           other_decode_bitfield_value(a_bigbuf, oct, 0x78, 8);
-           proto_tree_add_text(subtree,
+               other_decode_bitfield_value(a_bigbuf, oct, 0x78, 8);
+               proto_tree_add_text(subtree,
                tvb, curr_offset, 1,
                "%s :  Acceptable channel codings: Spare",
                a_bigbuf);
 
-           other_decode_bitfield_value(a_bigbuf, oct, 0x07, 8);
-           proto_tree_add_text(subtree,
+               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",
                a_bigbuf);
@@ -1847,7 +1837,7 @@ bc_octet_6:
        /* octet 6f */
 
        item =
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                tvb, curr_offset, 1,
                "Octet 6f");
 
@@ -1859,10 +1849,10 @@ bc_octet_6:
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x80, 8);
        proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Extension: %s",
-           a_bigbuf,
-           extended ? "extended" : "not extended");
+               tvb, curr_offset, 1,
+               "%s :  Extension: %s",
+               a_bigbuf,
+               extended ? "extended" : "not extended");
 
        switch ((oct & 0x70) >> 4)
        {
@@ -1872,40 +1862,40 @@ bc_octet_6:
        case 0x03: str = "up to 3 TCH/F allowed/may be requested"; break;
        case 0x04: str = "up to 4 TCH/F allowed/may be requested"; break;
        default:
-           str = "up to 4 TCH/F may be requested";
-           break;
+               str = "up to 4 TCH/F may be requested";
+               break;
        }
 
        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",
-           a_bigbuf,
-           str);
+               tvb, curr_offset, 1,
+               "%s :  UIMI, User initiated modification indication: %s",
+               a_bigbuf,
+               str);
 
        if (is_uplink == IS_UPLINK_TRUE)
        {
-           switch (oct & 0x0f)
-           {
-           case 0x00: str = "Air interface user rate not applicable/No meaning associated with this value"; break;
-           case 0x01: str = "9.6 kbit/s"; break;
-           case 0x02: str = "14.4 kbit/s"; break;
-           case 0x03: str = "19.2 kbit/s"; break;
-           case 0x05: str = "28.8 kbit/s"; break;
-           case 0x06: str = "38.4 kbit/s"; break;
-           case 0x07: str = "43.2 kbit/s"; break;
-           case 0x08: str = "57.6 kbit/s"; break;
-           case 0x09: str = "interpreted by the network as 38.4 kbit/s in this version of the protocol"; break;
-           case 0x0a: str = "interpreted by the network as 38.4 kbit/s in this version of the protocol"; break;
-           case 0x0b: str = "interpreted by the network as 38.4 kbit/s in this version of the protocol"; break;
-           case 0x0c: str = "interpreted by the network as 38.4 kbit/s in this version of the protocol"; break;
-           default:
+               switch (oct & 0x0f)
+               {
+               case 0x00: str = "Air interface user rate not applicable/No meaning associated with this value"; break;
+               case 0x01: str = "9.6 kbit/s"; break;
+               case 0x02: str = "14.4 kbit/s"; break;
+               case 0x03: str = "19.2 kbit/s"; break;
+               case 0x05: str = "28.8 kbit/s"; break;
+               case 0x06: str = "38.4 kbit/s"; break;
+               case 0x07: str = "43.2 kbit/s"; break;
+               case 0x08: str = "57.6 kbit/s"; break;
+               case 0x09: str = "interpreted by the network as 38.4 kbit/s in this version of the protocol"; break;
+               case 0x0a: str = "interpreted by the network as 38.4 kbit/s in this version of the protocol"; break;
+               case 0x0b: str = "interpreted by the network as 38.4 kbit/s in this version of the protocol"; break;
+               case 0x0c: str = "interpreted by the network as 38.4 kbit/s in this version of the protocol"; break;
+               default:
                str = "Reserved";
                break;
-           }
+               }
 
-           other_decode_bitfield_value(a_bigbuf, oct, 0x0f, 8);
-           proto_tree_add_text(subtree,
+               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",
                a_bigbuf,
@@ -1913,8 +1903,8 @@ bc_octet_6:
        }
        else
        {
-           other_decode_bitfield_value(a_bigbuf, oct, 0x0f, 8);
-           proto_tree_add_text(subtree,
+               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",
                a_bigbuf);
@@ -1929,7 +1919,7 @@ bc_octet_6:
        /* octet 6g */
 
        item =
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                tvb, curr_offset, 1,
                "Octet 6g");
 
@@ -1941,53 +1931,53 @@ bc_octet_6:
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x80, 8);
        proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Extension: %s",
-           a_bigbuf,
-           extended ? "extended" : "not extended");
+               tvb, curr_offset, 1,
+               "%s :  Extension: %s",
+               a_bigbuf,
+               extended ? "extended" : "not extended");
 
        if (is_uplink == IS_UPLINK_TRUE)
        {
-           other_decode_bitfield_value(a_bigbuf, oct, 0x40, 8);
-           proto_tree_add_text(subtree,
+               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",
                a_bigbuf,
                (oct & 0x40) ? "" : "not ");
 
-           other_decode_bitfield_value(a_bigbuf, oct, 0x20, 8);
-           proto_tree_add_text(subtree,
+               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",
                a_bigbuf,
                (oct & 0x20) ? "" : "not ");
 
-           other_decode_bitfield_value(a_bigbuf, oct, 0x10, 8);
-           proto_tree_add_text(subtree,
+               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",
                a_bigbuf,
                (oct & 0x10) ? "" : "not ");
 
-           other_decode_bitfield_value(a_bigbuf, oct, 0x10, 8);
-           proto_tree_add_text(subtree,
+               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",
                a_bigbuf,
                (oct & 0x10) ? "" : "not ");
 
-           switch ((oct & 0x0c) >> 2)
-           {
-           case 0: str = "Channel coding symmetry preferred"; break;
-           case 2: str = "Downlink biased channel coding asymmetry is preferred"; break;
-           case 1: str = "Uplink biased channel coding asymmetry is preferred"; break;
-           default:
+               switch ((oct & 0x0c) >> 2)
+               {
+               case 0: str = "Channel coding symmetry preferred"; break;
+               case 2: str = "Downlink biased channel coding asymmetry is preferred"; break;
+               case 1: str = "Uplink biased channel coding asymmetry is preferred"; break;
+               default:
                str = "Unused, treat as Channel coding symmetry preferred";
                break;
-           }
+               }
 
-           other_decode_bitfield_value(a_bigbuf, oct, 0x0c, 8);
-           proto_tree_add_text(subtree,
+               other_decode_bitfield_value(a_bigbuf, oct, 0x0c, 8);
+               proto_tree_add_text(subtree,
                tvb, curr_offset, 1,
                "%s :  Channel Coding Asymmetry Indication: %s",
                a_bigbuf,
@@ -1995,8 +1985,8 @@ bc_octet_6:
        }
        else
        {
-           other_decode_bitfield_value(a_bigbuf, oct, 0x7c, 8);
-           proto_tree_add_text(subtree,
+               other_decode_bitfield_value(a_bigbuf, oct, 0x7c, 8);
+               proto_tree_add_text(subtree,
                tvb, curr_offset, 1,
                "%s :  EDGE Channel Codings: Spare",
                a_bigbuf);
@@ -2004,42 +1994,38 @@ bc_octet_6:
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x03, 8);
        proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Spare",
-           a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        curr_offset++;
 
        NO_MORE_DATA_CHECK(len);
 
 bc_octet_7:
-
        /* octet 7 */
 
        item =
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                tvb, curr_offset, 1,
                "Octet 7");
 
        subtree = proto_item_add_subtree(item, ett_bc_oct_7);
-
-       extended = (oct & 0x80) ? FALSE : TRUE;
-
-       oct = tvb_get_guint8(tvb, curr_offset);
-
-       other_decode_bitfield_value(a_bigbuf, oct, 0x80, 8);
+               extended = (oct & 0x80) ? FALSE : TRUE;
+               oct = tvb_get_guint8(tvb, curr_offset);
+               other_decode_bitfield_value(a_bigbuf, oct, 0x80, 8);
        proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Extension: %s",
-           a_bigbuf,
-           extended ? "extended" : "not extended");
+               tvb, curr_offset, 1,
+               "%s :  Extension: %s",
+               a_bigbuf,
+               extended ? "extended" : "not extended");
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x60, 8);
        proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Layer 2 Identity: %s",
-           a_bigbuf,
-           ((oct & 0x60) == 0x40) ? "Octet identifier" : "Reserved");
+               tvb, curr_offset, 1,
+               "%s :  Layer 2 Identity: %s",
+               a_bigbuf,
+               ((oct & 0x60) == 0x40) ? "Octet identifier" : "Reserved");
 
        switch (oct & 0x1f)
        {
@@ -2050,16 +2036,16 @@ bc_octet_7:
        case 0x0c: str = "COPnoFlCt (Character oriented Protocol with no Flow Control mechanism)"; break;
        case 0x0d: str = "Reserved: was allocated in earlier phases of the protocol"; break;
        default:
-           str = "Reserved";
-           break;
+               str = "Reserved";
+               break;
        }
 
        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",
-           a_bigbuf,
-           str);
+               tvb, curr_offset, 1,
+               "%s :  User information layer 2 protocol: %s",
+               a_bigbuf,
+               str);
        break;
        }
 
@@ -2087,41 +2073,41 @@ 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",
-           a_bigbuf);
+               tvb, curr_offset, 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",
-           a_bigbuf,
-           (oct & 0xf0) >> 4);
+               tvb, curr_offset, 1,
+               "%s :  Maximum number of supported bearers: %u",
+               a_bigbuf,
+               (oct & 0xf0) >> 4);
        break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x0c, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Spare",
-       a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        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",
-       a_bigbuf,
-       (oct & 0x02) ? "supports" : "does not support");
+               proto_tree_add_text(tree,
+               tvb, curr_offset, 1,
+               "%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",
-       a_bigbuf,
-       (oct & 0x01) ?
-           "the mobile station supports DTMF as specified in subclause 5.5.7 of TS 24.008" :
-           "reserved for earlier versions of the protocol");
+               tvb, curr_offset, 1,
+               "%s :  DTMF: %s",
+               a_bigbuf,
+               (oct & 0x01) ?
+                       "the mobile station supports DTMF as specified in subclause 5.5.7 of TS 24.008" :
+                       "reserved for earlier versions of the protocol");
 
        curr_offset++;
 
@@ -2131,16 +2117,16 @@ de_cc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
 
        other_decode_bitfield_value(a_bigbuf, oct, 0xf0, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Spare",
-       a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        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",
-       a_bigbuf,
-       oct & 0x0f);
+               tvb, curr_offset, 1,
+               "%s :  Maximum number of speech bearers: %u",
+               a_bigbuf,
+               oct & 0x0f);
 
        curr_offset++;
 
@@ -2153,7 +2139,7 @@ de_cc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
  * [3] 10.5.4.6
  */
 static guint8
-de_call_state(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_call_state(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
@@ -2161,15 +2147,14 @@ de_call_state(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
        proto_item      *item;
        const gchar *str;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
 
        item =
        proto_tree_add_text(tree,
-           tvb, curr_offset, 1,
-           gsm_dtap_elem_strings[DE_CALL_STATE].strptr);
+               tvb, curr_offset, 1,
+               gsm_dtap_elem_strings[DE_CALL_STATE].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_dtap_elem[DE_CALL_STATE]);
 
@@ -2179,16 +2164,16 @@ de_call_state(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
        case 1: str = "Reserved for other international standards"; break;
        case 2: str = "National standard"; break;
        default:
-       str = "Standard defined for the GSM PLMNS";
-       break;
+               str = "Standard defined for the GSM PLMNS";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0xc0, 8);
        proto_tree_add_text(subtree,
-       tvb, curr_offset, 1,
-       "%s :  Coding standard: %s",
-       a_bigbuf,
-       str);
+               tvb, curr_offset, 1,
+               "%s :  Coding standard: %s",
+               a_bigbuf,
+               str);
 
        switch (oct & 0x3f)
        {
@@ -2214,16 +2199,16 @@ de_call_state(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
        case 0x1b: str = "U27- mobile terminating modify            N27- mobile terminating modify"; break;
        case 0x1c: str = "                                          N28- connect indication"; break;
        default:
-       str = "Unknown";
-       break;
+               str = "Unknown";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x3f, 8);
        proto_tree_add_text(subtree,
-       tvb, curr_offset, 1,
-       "%s :  Call state value: %s",
-       a_bigbuf,
-       str);
+               tvb, curr_offset, 1,
+               "%s :  Call state value: %s",
+               a_bigbuf,
+               str);
 
        curr_offset++;
 
@@ -2233,32 +2218,32 @@ de_call_state(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
 }
 
 static const true_false_string gsm_a_extension_value = {
-  "No Extension",
-  "Extension"
+       "No Extension",
+       "Extension"
 };
 
 const value_string gsm_a_type_of_number_values[] = {
-       {   0x00,       "unknown" },
-       {   0x01,       "International Number" },
-       {   0x02,       "National number" },
-       {   0x03,       "Network Specific Number" },
-       {   0x04,       "Dedicated access, short code" },
-       {   0x05,       "Reserved" },
-       {   0x06,       "Reserved" },
-       {   0x07,       "Reserved for extension" },
+       { 0x00, "unknown" },
+       { 0x01, "International Number" },
+       { 0x02, "National number" },
+       { 0x03, "Network Specific Number" },
+       { 0x04, "Dedicated access, short code" },
+       { 0x05, "Reserved" },
+       { 0x06, "Reserved" },
+       { 0x07, "Reserved for extension" },
        { 0, NULL }
 };
 
 const value_string gsm_a_numbering_plan_id_values[] = {
-       {   0x00,       "unknown" },
-       {   0x01,       "ISDN/Telephony Numbering (Rec ITU-T E.164)" },
-       {   0x02,       "spare" },
-       {   0x03,       "Data Numbering (ITU-T Rec. X.121)" },
-       {   0x04,       "Telex Numbering (ITU-T Rec. F.69)" },
-       {   0x08,       "National Numbering" },
-       {   0x09,       "Private Numbering" },
-       {       0x0d,   "reserved for CTS (see 3GPP TS 44.056 [91])" },
-       {   0x0f,       "Reserved for extension" },
+       { 0x00, "unknown" },
+       { 0x01, "ISDN/Telephony Numbering (Rec ITU-T E.164)" },
+       { 0x02, "spare" },
+       { 0x03, "Data Numbering (ITU-T Rec. X.121)" },
+       { 0x04, "Telex Numbering (ITU-T Rec. F.69)" },
+       { 0x08, "National Numbering" },
+       { 0x09, "Private Numbering" },
+       { 0x0d, "reserved for CTS (see 3GPP TS 44.056 [91])" },
+       { 0x0f, "Reserved for extension" },
        { 0, NULL }
 };
 
@@ -2284,13 +2269,13 @@ de_cld_party_bcd_num(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
        poctets = tvb_get_ephemeral_string(tvb, curr_offset, len - (curr_offset - offset));
 
        my_dgt_tbcd_unpack(a_bigbuf, poctets, len - (curr_offset - offset),
-       &Dgt_mbcd);
+               &Dgt_mbcd);
 
        proto_tree_add_string_format(tree, hf_gsm_a_cld_party_bcd_num,
-       tvb, curr_offset, len - (curr_offset - offset),
-       a_bigbuf,
-       "BCD Digits: %s",
-       a_bigbuf);
+               tvb, curr_offset, len - (curr_offset - offset),
+               a_bigbuf,
+               "BCD Digits: %s",
+               a_bigbuf);
 
        if (sccp_assoc && ! sccp_assoc->called_party) {
                sccp_assoc->called_party = se_strdup(a_bigbuf);
@@ -2299,7 +2284,7 @@ de_cld_party_bcd_num(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
        curr_offset += len - (curr_offset - offset);
 
        if (add_string)
-       g_snprintf(add_string, string_len, " - (%s)", a_bigbuf);
+               g_snprintf(add_string, string_len, " - (%s)", a_bigbuf);
 
        EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
 
@@ -2327,38 +2312,38 @@ de_cld_party_sub_addr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
        case 0: str = "NSAP (X.213/ISO 8348 AD2)"; break;
        case 2: str = "User specified"; break;
        default:
-       str = "Reserved";
-       break;
+               str = "Reserved";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x70, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Type of subaddress: %s",
-       a_bigbuf,
-       str);
+               tvb, curr_offset, 1,
+               "%s :  Type of subaddress: %s",
+               a_bigbuf,
+               str);
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x08, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Odd/Even indicator: %s",
-       a_bigbuf,
-       (oct & 0x08) ?
-           "odd number of address signals" : "even number of address signals");
+               tvb, curr_offset, 1,
+               "%s :  Odd/Even indicator: %s",
+               a_bigbuf,
+               (oct & 0x08) ?
+                       "odd number of address signals" : "even number of address signals");
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x07, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Spare",
-       a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        curr_offset++;
 
        NO_MORE_DATA_CHECK(len);
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, len - (curr_offset - offset),
-       "Subaddress information");
+               tvb, curr_offset, len - (curr_offset - offset),
+               "Subaddress information");
 
        curr_offset += len - (curr_offset - offset);
 
@@ -2396,22 +2381,22 @@ de_clg_party_bcd_num(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
        case 1: str = "Presentation restricted"; break;
        case 2: str = "Number not available due to interworking"; break;
        default:
-       str = "Reserved";
-       break;
+               str = "Reserved";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x60, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Presentation indicator: %s",
-       a_bigbuf,
-       str);
+               tvb, curr_offset, 1,
+               "%s :  Presentation indicator: %s",
+               a_bigbuf,
+               str);
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x1c, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Spare",
-       a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        switch (oct & 0x03)
        {
@@ -2419,16 +2404,16 @@ de_clg_party_bcd_num(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
        case 1: str = "User-provided, verified and passed"; break;
        case 2: str = "User-provided, verified and failed"; break;
        default:
-       str = "Network provided";
-       break;
+               str = "Network provided";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x03, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Screening indicator: %s",
-       a_bigbuf,
-       str);
+               tvb, curr_offset, 1,
+               "%s :  Screening indicator: %s",
+               a_bigbuf,
+               str);
 
        curr_offset++;
 
@@ -2437,13 +2422,13 @@ de_clg_party_bcd_num(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
        poctets = tvb_get_ephemeral_string(tvb, curr_offset, len - (curr_offset - offset));
 
        my_dgt_tbcd_unpack(a_bigbuf, poctets, len - (curr_offset - offset),
-       &Dgt_mbcd);
+               &Dgt_mbcd);
 
        proto_tree_add_string_format(tree, hf_gsm_a_clg_party_bcd_num,
-       tvb, curr_offset, len - (curr_offset - offset),
-       a_bigbuf,
-       "BCD Digits: %s",
-       a_bigbuf);
+               tvb, curr_offset, len - (curr_offset - offset),
+               a_bigbuf,
+               "BCD Digits: %s",
+               a_bigbuf);
 
        curr_offset += len - (curr_offset - offset);
 
@@ -2476,38 +2461,38 @@ de_clg_party_sub_addr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
        case 0: str = "NSAP (X.213/ISO 8348 AD2)"; break;
        case 2: str = "User specified"; break;
        default:
-       str = "Reserved";
-       break;
+               str = "Reserved";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x70, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Type of subaddress: %s",
-       a_bigbuf,
-       str);
+               tvb, curr_offset, 1,
+               "%s :  Type of subaddress: %s",
+               a_bigbuf,
+               str);
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x08, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Odd/Even indicator: %s",
-       a_bigbuf,
-       (oct & 0x08) ?
-           "odd number of address signals" : "even number of address signals");
+               tvb, curr_offset, 1,
+               "%s :  Odd/Even indicator: %s",
+               a_bigbuf,
+               (oct & 0x08) ?
+                       "odd number of address signals" : "even number of address signals");
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x07, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Spare",
-       a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        curr_offset++;
 
        NO_MORE_DATA_CHECK(len);
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, len - (curr_offset - offset),
-       "Subaddress information");
+               tvb, curr_offset, len - (curr_offset - offset),
+               "Subaddress information");
 
        curr_offset += len - (curr_offset - offset);
 
@@ -2533,10 +2518,10 @@ de_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_
 
        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");
+               tvb, curr_offset, 1,
+               "%s :  Extension: %s",
+               a_bigbuf,
+               (oct & 0x80) ? "not extended" : "extended");
 
        switch ((oct & 0x60) >> 5)
        {
@@ -2544,8 +2529,8 @@ de_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_
        case 1: str = "Reserved for other international standards"; break;
        case 2: str = "National standard"; break;
        default:
-       str = "Standard defined for the GSM PLMNS";
-       break;
+               str = "Standard defined for the GSM PLMNS";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x60, 8);
@@ -2572,16 +2557,16 @@ de_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_
        case 7: str = "International network"; break;
        case 10: str = "Network beyond interworking point"; break;
        default:
-       str = "Reserved";
-       break;
+               str = "Reserved";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x0f, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Location: %s",
-       a_bigbuf,
-       str);
+               tvb, curr_offset, 1,
+               "%s :  Location: %s",
+               a_bigbuf,
+               str);
 
        curr_offset++;
 
@@ -2593,9 +2578,9 @@ 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",
-           a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Recommendation",
+               a_bigbuf);
 
        curr_offset++;
 
@@ -2657,34 +2642,34 @@ de_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_
        case 111: str = "Protocol error, unspecified"; break;
        case 127: str = "Interworking, unspecified"; break;
        default:
-       if (cause <= 31) { str = "Treat as Normal, unspecified"; }
-       else if ((cause >= 32) && (cause <= 47)) { str = "Treat as Resources unavailable, unspecified"; }
-       else if ((cause >= 48) && (cause <= 63)) { str = "Treat as Service or option not available, unspecified"; }
-       else if ((cause >= 64) && (cause <= 79)) { str = "Treat as Service or option not implemented, unspecified"; }
-       else if ((cause >= 80) && (cause <= 95)) { str = "Treat as Semantically incorrect message"; }
-       else if ((cause >= 96) && (cause <= 111)) { str = "Treat as Protocol error, unspecified"; }
-       else if ((cause >= 112) && (cause <= 127)) { str = "Treat as Interworking, unspecified"; }
-       break;
+               if (cause <= 31) { str = "Treat as Normal, unspecified"; }
+               else if ((cause >= 32) && (cause <= 47)) { str = "Treat as Resources unavailable, unspecified"; }
+               else if ((cause >= 48) && (cause <= 63)) { str = "Treat as Service or option not available, unspecified"; }
+               else if ((cause >= 64) && (cause <= 79)) { str = "Treat as Service or option not implemented, unspecified"; }
+               else if ((cause >= 80) && (cause <= 95)) { str = "Treat as Semantically incorrect message"; }
+               else if ((cause >= 96) && (cause <= 111)) { str = "Treat as Protocol error, unspecified"; }
+               else if ((cause >= 112) && (cause <= 127)) { str = "Treat as Interworking, unspecified"; }
+               break;
        }
 
        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",
-       a_bigbuf,
-       cause,
-       str);
+               tvb, curr_offset, 1, cause,
+               "%s :  Cause: (%u) %s",
+               a_bigbuf,
+               cause,
+               str);
 
        curr_offset++;
 
        if (add_string)
-       g_snprintf(add_string, string_len, " - (%u) %s", cause, str);
+               g_snprintf(add_string, string_len, " - (%u) %s", cause, str);
 
        NO_MORE_DATA_CHECK(len);
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, len - (curr_offset - offset),
-       "Diagnostics");
+               tvb, curr_offset, len - (curr_offset - offset),
+               "Diagnostics");
 
        curr_offset += len - (curr_offset - offset);
 
@@ -2731,7 +2716,6 @@ de_facility(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint fac_len, gcha
 
        asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, gsm_a_dtap_pinfo);
 
-
        save_private_data= gsm_a_dtap_pinfo->private_data;
        saved_offset = offset;
        gsm_a_dtap_pinfo->private_data = NULL;
@@ -2752,47 +2736,44 @@ de_facility(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint fac_len, gcha
                dissect_ROS_Component(FALSE, tvb, offset, &asn1_ctx, tree, hf_ROS_component);
                TODO Call gsm map here
                */
-           SS_tvb = tvb_new_subset(tvb, offset, component_len, component_len);
+               SS_tvb = tvb_new_subset(tvb, offset, component_len, component_len);
                call_dissector(gsm_map_handle, SS_tvb, gsm_a_dtap_pinfo, tree);
                offset = offset + component_len;
        }
        gsm_a_dtap_pinfo->private_data = save_private_data;
        return(fac_len);
-
-
 }
 
 /*
  * [3] 10.5.4.17
  */
 static guint8
-de_keypad_facility(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+de_keypad_facility(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string, int string_len)
 {
        guint8  oct;
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        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 :  Spare",
-       a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x7f, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Keypad information: %c",
-       a_bigbuf,
-       oct & 0x7f);
+               tvb, curr_offset, 1,
+               "%s :  Keypad information: %c",
+               a_bigbuf,
+               oct & 0x7f);
 
        curr_offset++;
 
        if (add_string)
-       g_snprintf(add_string, string_len, " - %c", oct & 0x7f);
+               g_snprintf(add_string, string_len, " - %c", oct & 0x7f);
 
        /* no length check possible */
 
@@ -2803,23 +2784,22 @@ de_keypad_facility(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
  * [3] 10.5.4.21
  */
 static guint8
-de_prog_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+de_prog_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string, int string_len)
 {
        guint8  oct;
        guint32 curr_offset;
        const gchar *str;
 
-       len = len;
        curr_offset = offset;
 
        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) ? "extended" : "not extended");
+               tvb, curr_offset, 1,
+               "%s :  Extension: %s",
+               a_bigbuf,
+               (oct & 0x80) ? "extended" : "not extended");
 
        switch ((oct & 0x60) >> 5)
        {
@@ -2827,22 +2807,22 @@ de_prog_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *a
        case 1: str = "Reserved for other international standards"; break;
        case 2: str = "National standard"; break;
        default:
-       str = "Standard defined for the GSM PLMNS";
-       break;
+               str = "Standard defined for the GSM PLMNS";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x60, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Coding standard: %s",
-       a_bigbuf,
-       str);
+               tvb, curr_offset, 1,
+               "%s :  Coding standard: %s",
+               a_bigbuf,
+               str);
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x10, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Spare",
-       a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        switch (oct & 0x0f)
        {
@@ -2853,16 +2833,16 @@ de_prog_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *a
        case 5: str = "Private network serving the remote user"; break;
        case 10: str = "Network beyond interworking point"; break;
        default:
-       str = "Reserved";
-       break;
+               str = "Reserved";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x0f, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Location: %s",
-       a_bigbuf,
-       str);
+               tvb, curr_offset, 1,
+               "%s :  Location: %s",
+               a_bigbuf,
+               str);
 
        curr_offset++;
 
@@ -2870,10 +2850,10 @@ de_prog_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *a
 
        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) ? "extended" : "not extended");
+               tvb, curr_offset, 1,
+               "%s :  Extension: %s",
+               a_bigbuf,
+               (oct & 0x80) ? "extended" : "not extended");
 
        switch (oct & 0x7f)
        {
@@ -2885,20 +2865,20 @@ de_prog_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *a
        case 32: str = "Call is end-to-end PLMN/ISDN"; break;
        case 64: str = "Queueing"; break;
        default:
-       str = "Unspecific";
-       break;
+               str = "Unspecific";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x7f, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Progress Description: %s (%d)",
-       a_bigbuf,
-       str,
-       oct & 0x7f);
+               tvb, curr_offset, 1,
+               "%s :  Progress Description: %s (%d)",
+               a_bigbuf,
+               str,
+               oct & 0x7f);
 
        if (add_string)
-       g_snprintf(add_string, string_len, " - %d", oct & 0x7f);
+               g_snprintf(add_string, string_len, " - %d", oct & 0x7f);
 
        curr_offset++;
 
@@ -2911,13 +2891,12 @@ de_prog_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *a
  * [3] 10.5.4.22
  */
 static guint8
-de_repeat_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_repeat_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
        const gchar *str;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -2925,19 +2904,19 @@ de_repeat_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
        switch (oct & 0x0f)
        {
        case 1: str = "Circular for successive selection 'mode 1 alternate mode 2'"; break;
-       case 2: str = "Support of fallback  mode 1 preferred, mode 2 selected if setup of mode 1 fails"; break;
+       case 2: str = "Support of fallback mode 1 preferred, mode 2 selected if setup of mode 1 fails"; break;
        case 3: str = "Reserved: was allocated in earlier phases of the protocol"; break;
        default:
-       str = "Reserved";
-       break;
+               str = "Reserved";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x0f, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  %s",
-       a_bigbuf,
-       str);
+               tvb, curr_offset, 1,
+               "%s :  %s",
+               a_bigbuf,
+               str);
 
        curr_offset++;
 
@@ -2965,14 +2944,14 @@ de_ss_ver_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
        case 0: str = "Phase 2 service, ellipsis notation, and phase 2 error handling is supported"; break;
        case 1: str = "SS-Protocol version 3 is supported, and phase 2 error handling is supported"; break;
        default:
-       str = "Reserved";
-       break;
+               str = "Reserved";
+               break;
        }
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s",
-       str);
+               tvb, curr_offset, 1,
+               "%s",
+               str);
 
        curr_offset++;
 
@@ -2993,7 +2972,7 @@ de_cp_user_data(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
        curr_offset = offset;
 
        proto_tree_add_text(tree, tvb, curr_offset, len,
-       "RPDU (not displayed)");
+               "RPDU (not displayed)");
 
        /*
         * dissect the embedded RP message
@@ -3013,13 +2992,12 @@ de_cp_user_data(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
  * [5] 8.1.4.2
  */
 static guint8
-de_cp_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+de_cp_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string, int string_len)
 {
        guint8  oct;
        guint32 curr_offset;
        const gchar *str;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -3036,20 +3014,20 @@ de_cp_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *a
        case 99: str = "Information element non-existent or not implemented"; break;
        case 111: str = "Protocol error, unspecified"; break;
        default:
-       str = "Reserved, treat as Protocol error, unspecified";
-       break;
+               str = "Reserved, treat as Protocol error, unspecified";
+               break;
        }
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "Cause: (%u) %s",
-       oct,
-       str);
+               tvb, curr_offset, 1,
+               "Cause: (%u) %s",
+               oct,
+               str);
 
        curr_offset++;
 
        if (add_string)
-       g_snprintf(add_string, string_len, " - (%u) %s", oct, str);
+               g_snprintf(add_string, string_len, " - (%u) %s", oct, str);
 
        /* no length check possible */
 
@@ -3059,346 +3037,346 @@ de_cp_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *a
 static guint8
 de_tp_sub_channel(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
-    guint32    curr_offset;
-    guchar  oct;
-    const gchar        *str;
-
-    curr_offset = offset;
-
-    oct = tvb_get_guint8(tvb, curr_offset) & 0x3f;
-    if ((oct & 0x38) == 0x38)
-        str = "I";
-    else if ((oct & 0x38) == 0x18)
-        str = "F";
-    else if ((oct & 0x38) == 0x10)
-        str = "E";
-    else if ((oct & 0x38) == 0x08)
-        str = "D";
-    else if ((oct & 0x3c) == 0x04)
-        str = "C";
-    else if ((oct & 0x3e) == 0x02)
-        str = "B";
-    else if ((oct & 0x3e) == 0x00)
-        str = "A";
-    else
-        str = "unknown";
-
-    proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "Test Loop %s",str);
-
-    if (oct & 0x01)
-        proto_tree_add_text(tree,
-               tvb, curr_offset, 1,
-               "Only one TCH active or sub-channel 0 of two half rate channels is to be looped");
-    else
-        proto_tree_add_text(tree,
-               tvb, curr_offset, 1,
-               "Sub-channel 1 of two half rate channels is to be looped");
-
-    curr_offset+= 1;
-
-    return(curr_offset - offset);
+       guint32 curr_offset;
+       guchar  oct;
+       const gchar     *str;
+
+       curr_offset = offset;
+
+       oct = tvb_get_guint8(tvb, curr_offset) & 0x3f;
+       if ((oct & 0x38) == 0x38)
+               str = "I";
+       else if ((oct & 0x38) == 0x18)
+               str = "F";
+       else if ((oct & 0x38) == 0x10)
+               str = "E";
+       else if ((oct & 0x38) == 0x08)
+               str = "D";
+       else if ((oct & 0x3c) == 0x04)
+               str = "C";
+       else if ((oct & 0x3e) == 0x02)
+               str = "B";
+       else if ((oct & 0x3e) == 0x00)
+               str = "A";
+       else
+               str = "unknown";
+
+       proto_tree_add_text(tree,
+               tvb, curr_offset, 1,
+               "Test Loop %s",str);
+
+       if (oct & 0x01)
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, 1,
+                       "Only one TCH active or sub-channel 0 of two half rate channels is to be looped");
+       else
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, 1,
+                       "Sub-channel 1 of two half rate channels is to be looped");
+
+       curr_offset+= 1;
+
+       return(curr_offset - offset);
 }
 
 static guint8
 de_tp_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
-    guint32    curr_offset;
-    guchar  oct;
+       guint32 curr_offset;
+       guchar  oct;
 
-    curr_offset = offset;
+       curr_offset = offset;
 
-    oct = tvb_get_guint8(tvb, curr_offset);
+       oct = tvb_get_guint8(tvb, curr_offset);
 
-    if ((oct & 0xF0) == 0x80)
-        proto_tree_add_text(tree,tvb, curr_offset, 1, "Acknowledgment element: %d",oct&0x01);
-    else
-        proto_tree_add_text(tree,tvb, curr_offset, 1, "No acknowledgment element present");
+       if ((oct & 0xF0) == 0x80)
+               proto_tree_add_text(tree,tvb, curr_offset, 1, "Acknowledgment element: %d",oct&0x01);
+       else
+               proto_tree_add_text(tree,tvb, curr_offset, 1, "No acknowledgment element present");
 
-    curr_offset+= 1;
+       curr_offset+= 1;
 
-    return(curr_offset - offset);
+       return(curr_offset - offset);
 }
 
 static guint8
 de_tp_loop_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
-    guint32    curr_offset;
-    guchar  oct;
-
-    curr_offset = offset;
-
-    oct = tvb_get_guint8(tvb, curr_offset);
-
-    switch (oct & 0x03)
-    {
-        case 0x00:
-            proto_tree_add_text(tree, tvb, curr_offset, 1, "Channel coding not needed. The Burst-by-Burst loop is activated, type G");
-            break;
-        case 0x01:
-            proto_tree_add_text(tree, tvb, curr_offset, 1, "Channel coding needed. Frame erasure is to be signalled, type H");
-            break;
-        default:
-            proto_tree_add_text(tree, tvb, curr_offset, 1, "Channel coding reserved (%d)",oct & 0x03);
-            break;
-    }
-
-    switch (oct & 0x1c)
-    {
-        case 0x00:
-            proto_tree_add_text(tree, tvb, curr_offset, 1, "Multi-slot mechanism 1");
-            proto_tree_add_text(tree, tvb, curr_offset, 1, "Timeslot number %d",(oct & 0xe0)>>5);
-            break;
-        case 0x04:
-            proto_tree_add_text(tree, tvb, curr_offset, 1, "Multi-slot mechanism 2");
-            break;
-        default:
-            proto_tree_add_text(tree, tvb, curr_offset, 1, "Loop mechanism reserved (%d)",(oct & 0x1c)>>2);
-            break;
-    }
-
-    curr_offset+= 1;
-
-    return(curr_offset - offset);
+       guint32 curr_offset;
+       guchar  oct;
+
+       curr_offset = offset;
+
+       oct = tvb_get_guint8(tvb, curr_offset);
+
+       switch (oct & 0x03)
+       {
+               case 0x00:
+                       proto_tree_add_text(tree, tvb, curr_offset, 1, "Channel coding not needed. The Burst-by-Burst loop is activated, type G");
+                       break;
+               case 0x01:
+                       proto_tree_add_text(tree, tvb, curr_offset, 1, "Channel coding needed. Frame erasure is to be signalled, type H");
+                       break;
+               default:
+                       proto_tree_add_text(tree, tvb, curr_offset, 1, "Channel coding reserved (%d)",oct & 0x03);
+                       break;
+       }
+
+       switch (oct & 0x1c)
+       {
+               case 0x00:
+                       proto_tree_add_text(tree, tvb, curr_offset, 1, "Multi-slot mechanism 1");
+                       proto_tree_add_text(tree, tvb, curr_offset, 1, "Timeslot number %d",(oct & 0xe0)>>5);
+                       break;
+               case 0x04:
+                       proto_tree_add_text(tree, tvb, curr_offset, 1, "Multi-slot mechanism 2");
+                       break;
+               default:
+                       proto_tree_add_text(tree, tvb, curr_offset, 1, "Loop mechanism reserved (%d)",(oct & 0x1c)>>2);
+                       break;
+       }
+
+       curr_offset+= 1;
+
+       return(curr_offset - offset);
 }
 
 static guint8
 de_tp_loop_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
-    guint32    curr_offset;
-    guchar  oct;
-
-    curr_offset = offset;
-
-    oct = tvb_get_guint8(tvb, curr_offset);
-
-    switch (oct & 0x30)
-    {
-        case 0x00:
-            proto_tree_add_text(tree, tvb, curr_offset, 1, "Channel coding not needed. The Burst-by-Burst loop is activated, type G");
-            break;
-        case 0x10:
-            proto_tree_add_text(tree, tvb, curr_offset, 1, "Channel coding needed. Frame erasure is to be signalled, type H");
-            break;
-        default:
-            proto_tree_add_text(tree, tvb, curr_offset, 1, "Channel coding reserved (%d)",(oct & 0x30)>>4);
-            break;
-    }
-
-    switch (oct & 0x0e)
-    {
-        case 0x00:
-            proto_tree_add_text(tree, tvb, curr_offset, 1, "Multi-slot mechanism 1");
-            break;
-        case 0x02:
-            proto_tree_add_text(tree, tvb, curr_offset, 1, "Multi-slot mechanism 2");
-            break;
-        default:
-            proto_tree_add_text(tree, tvb, curr_offset, 1, "Loop mechanism reserved (%d)",(oct & 0x0e)>>1);
-            break;
-    }
-
-    if (oct & 0x01)
-        proto_tree_add_text(tree, tvb, curr_offset, 1, "Multi-slot TCH loop was not closed due to error");
-    else
-        proto_tree_add_text(tree, tvb, curr_offset, 1, "Multi-slot TCH loop was closed successfully");
-
-    curr_offset+= 1;
-
-    return(curr_offset - offset);
+       guint32 curr_offset;
+       guchar  oct;
+
+       curr_offset = offset;
+
+       oct = tvb_get_guint8(tvb, curr_offset);
+
+       switch (oct & 0x30)
+       {
+               case 0x00:
+                       proto_tree_add_text(tree, tvb, curr_offset, 1, "Channel coding not needed. The Burst-by-Burst loop is activated, type G");
+                       break;
+               case 0x10:
+                       proto_tree_add_text(tree, tvb, curr_offset, 1, "Channel coding needed. Frame erasure is to be signalled, type H");
+                       break;
+               default:
+                       proto_tree_add_text(tree, tvb, curr_offset, 1, "Channel coding reserved (%d)",(oct & 0x30)>>4);
+                       break;
+       }
+
+       switch (oct & 0x0e)
+       {
+               case 0x00:
+                       proto_tree_add_text(tree, tvb, curr_offset, 1, "Multi-slot mechanism 1");
+                       break;
+               case 0x02:
+                       proto_tree_add_text(tree, tvb, curr_offset, 1, "Multi-slot mechanism 2");
+                       break;
+               default:
+                       proto_tree_add_text(tree, tvb, curr_offset, 1, "Loop mechanism reserved (%d)",(oct & 0x0e)>>1);
+                       break;
+       }
+
+       if (oct & 0x01)
+               proto_tree_add_text(tree, tvb, curr_offset, 1, "Multi-slot TCH loop was not closed due to error");
+       else
+               proto_tree_add_text(tree, tvb, curr_offset, 1, "Multi-slot TCH loop was closed successfully");
+
+       curr_offset+= 1;
+
+       return(curr_offset - offset);
 }
 
 static guint8
 de_tp_tested_device(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
-    guint32    curr_offset;
-    guchar  oct;
-
-    curr_offset = offset;
-
-    oct = tvb_get_guint8(tvb, curr_offset);
-
-    switch (oct)
-    {
-        case 0:
-            proto_tree_add_text(tree, tvb, curr_offset, 1, "Normal operation (no tested device via DAI)");
-            break;
-        case 1:
-            proto_tree_add_text(tree, tvb, curr_offset, 1, "Test of speech decoder / DTX functions (downlink)");
-            break;
-        case 2:
-            proto_tree_add_text(tree, tvb, curr_offset, 1, "Test of speech encoder / DTX functions (uplink)");
-            break;
-        case 4:
-            proto_tree_add_text(tree, tvb, curr_offset, 1, "Test of acoustic devices and A/D & D/A");
-            break;
-        default:
-            proto_tree_add_text(tree, tvb, curr_offset, 1, "Tested device reserved (%d)",oct);
-            break;
-    }
-
-    curr_offset+= 1;
-
-    return(curr_offset - offset);
+       guint32 curr_offset;
+       guchar  oct;
+
+       curr_offset = offset;
+
+       oct = tvb_get_guint8(tvb, curr_offset);
+
+       switch (oct)
+       {
+               case 0:
+                       proto_tree_add_text(tree, tvb, curr_offset, 1, "Normal operation (no tested device via DAI)");
+                       break;
+               case 1:
+                       proto_tree_add_text(tree, tvb, curr_offset, 1, "Test of speech decoder / DTX functions (downlink)");
+                       break;
+               case 2:
+                       proto_tree_add_text(tree, tvb, curr_offset, 1, "Test of speech encoder / DTX functions (uplink)");
+                       break;
+               case 4:
+                       proto_tree_add_text(tree, tvb, curr_offset, 1, "Test of acoustic devices and A/D & D/A");
+                       break;
+               default:
+                       proto_tree_add_text(tree, tvb, curr_offset, 1, "Tested device reserved (%d)",oct);
+                       break;
+       }
+
+       curr_offset+= 1;
+
+       return(curr_offset - offset);
 }
 
 static guint8
 de_tp_pdu_description(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
-    guint32    curr_offset;
-    guint16  value;
+       guint32 curr_offset;
+       guint16 value;
 
-    curr_offset = offset;
+       curr_offset = offset;
 
-    value = tvb_get_ntohs(tvb, curr_offset);
-    curr_offset += 2;
+       value = tvb_get_ntohs(tvb, curr_offset);
+       curr_offset += 2;
 
-    if (value & 0x8000)
-    {
-        if ((value & 0xfff) == 0)
-            proto_tree_add_text(tree, tvb, curr_offset, 1, "Infinite number of PDUs to be transmitted in the TBF");
-        else
-            proto_tree_add_text(tree, tvb, curr_offset, 1, "%d PDUs to be transmitted in the TBF",value & 0xfff);
-    }
-    else
-        proto_tree_add_text(tree, tvb, curr_offset, 1, "PDU description reserved");
+       if (value & 0x8000)
+       {
+               if ((value & 0xfff) == 0)
+                       proto_tree_add_text(tree, tvb, curr_offset, 1, "Infinite number of PDUs to be transmitted in the TBF");
+               else
+                       proto_tree_add_text(tree, tvb, curr_offset, 1, "%d PDUs to be transmitted in the TBF",value & 0xfff);
+       }
+       else
+               proto_tree_add_text(tree, tvb, curr_offset, 1, "PDU description reserved");
 
-    return(curr_offset - offset);
+       return(curr_offset - offset);
 }
 
 static guint8
 de_tp_mode_flag(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
-    guint32    curr_offset;
-    guchar  oct;
+       guint32 curr_offset;
+       guchar  oct;
 
-    curr_offset = offset;
+       curr_offset = offset;
 
-    oct = tvb_get_guint8(tvb, curr_offset);
+       oct = tvb_get_guint8(tvb, curr_offset);
 
-    if (oct & 0x01)
-        proto_tree_add_text(tree, tvb, curr_offset, 1, "MS shall select the loop back option");
-    else
-        proto_tree_add_text(tree, tvb, curr_offset, 1, "MS shall itself generate the pseudorandom data");
+       if (oct & 0x01)
+               proto_tree_add_text(tree, tvb, curr_offset, 1, "MS shall select the loop back option");
+       else
+               proto_tree_add_text(tree, tvb, curr_offset, 1, "MS shall itself generate the pseudorandom data");
 
-    proto_tree_add_text(tree, tvb, curr_offset, 1, "Downlink Timeslot Offset: timeslot number %d",(oct & 0x0e)>>1);
+       proto_tree_add_text(tree, tvb, curr_offset, 1, "Downlink Timeslot Offset: timeslot number %d",(oct & 0x0e)>>1);
 
-    curr_offset+= 1;
+       curr_offset+= 1;
 
-    return(curr_offset - offset);
+       return(curr_offset - offset);
 }
 
 static guint8
 de_tp_egprs_mode_flag(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
-    guint32    curr_offset;
-    guchar  oct;
+       guint32 curr_offset;
+       guchar  oct;
 
-    curr_offset = offset;
+       curr_offset = offset;
 
-    oct = tvb_get_guint8(tvb, curr_offset);
+       oct = tvb_get_guint8(tvb, curr_offset);
 
-    if (oct & 0x01)
-        proto_tree_add_text(tree, tvb, curr_offset, 1, "MS loops back blocks on the uplink using GMSK modulation only");
-    else
-        proto_tree_add_text(tree, tvb, curr_offset, 1, "MS loops back blocks on the uplink using either GMSK or 8-PSK modulation following the detected received modulation");
+       if (oct & 0x01)
+               proto_tree_add_text(tree, tvb, curr_offset, 1, "MS loops back blocks on the uplink using GMSK modulation only");
+       else
+               proto_tree_add_text(tree, tvb, curr_offset, 1, "MS loops back blocks on the uplink using either GMSK or 8-PSK modulation following the detected received modulation");
 
-    proto_tree_add_text(tree, tvb, curr_offset, 1, "Downlink Timeslot Offset: timeslot number %d",(oct & 0x0e)>>1);
+       proto_tree_add_text(tree, tvb, curr_offset, 1, "Downlink Timeslot Offset: timeslot number %d",(oct & 0x0e)>>1);
 
-    curr_offset+= 1;
+       curr_offset+= 1;
 
-    return(curr_offset - offset);
+       return(curr_offset - offset);
 }
 
 static guint8
 de_tp_ue_test_loop_mode(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
-    guint32    curr_offset;
-    guchar  oct;
-    guint8  lb_setup_length,i,j;
-    guint16 value;
-
-    curr_offset = offset;
-
-    oct = tvb_get_guint8(tvb, curr_offset);
-    curr_offset+= 1;
-
-    switch (oct & 0x03)
-    {
-        case 0:
-        {
-            proto_tree_add_text(tree, tvb, curr_offset, 1, "UE test loop mode 1 loop back (loopback of RLC SDUs or PDCP SDUs)");
-            lb_setup_length = tvb_get_guint8(tvb, curr_offset);
-            curr_offset += 1;
-            for (i=0,j=0; (i<lb_setup_length) && (j<4); i+=3,j++)
-            {
-                proto_tree_add_text(tree, tvb, curr_offset, 1, "LB setup RB IE %d",j+1);
-                value = tvb_get_ntohs(tvb, curr_offset);
-                curr_offset += 2;
-                proto_tree_add_text(tree, tvb, curr_offset, 1, "Uplink RLC SDU size is %d bits",value);
-                oct = tvb_get_guint8(tvb, curr_offset);
-                curr_offset+= 1;
-                proto_tree_add_text(tree, tvb, curr_offset, 1, "Radio Bearer %d",oct & 0x1f);
-            }
-            break;
-        }
-        case 1:
-            proto_tree_add_text(tree, tvb, curr_offset, 1, "UE test loop mode 2 loop back (loopback of transport block data and CRC bits)");
-            break;
-        case 2:
-            proto_tree_add_text(tree, tvb, curr_offset, 1, "UE test loop mode 3 RLC SDU counting (counting of received RLC SDUs)");
-            oct = tvb_get_guint8(tvb, curr_offset);
-            curr_offset+= 1;
-            proto_tree_add_text(tree, tvb, curr_offset, 1, "MBMS short transmission identity %d",(oct & 0x1f)+1);
-            break;
-        default:
-            proto_tree_add_text(tree, tvb, curr_offset, 1, "UE test loop mode reserved (%d)",oct & 0x03);
-            break;
-    }
-
-    return(curr_offset - offset);
+       guint32 curr_offset;
+       guchar  oct;
+       guint8  lb_setup_length,i,j;
+       guint16 value;
+
+       curr_offset = offset;
+
+       oct = tvb_get_guint8(tvb, curr_offset);
+       curr_offset+= 1;
+
+       switch (oct & 0x03)
+       {
+               case 0:
+               {
+                       proto_tree_add_text(tree, tvb, curr_offset, 1, "UE test loop mode 1 loop back (loopback of RLC SDUs or PDCP SDUs)");
+                       lb_setup_length = tvb_get_guint8(tvb, curr_offset);
+                       curr_offset += 1;
+                       for (i=0,j=0; (i<lb_setup_length) && (j<4); i+=3,j++)
+                       {
+                               proto_tree_add_text(tree, tvb, curr_offset, 1, "LB setup RB IE %d",j+1);
+                               value = tvb_get_ntohs(tvb, curr_offset);
+                               curr_offset += 2;
+                               proto_tree_add_text(tree, tvb, curr_offset, 1, "Uplink RLC SDU size is %d bits",value);
+                               oct = tvb_get_guint8(tvb, curr_offset);
+                               curr_offset+= 1;
+                               proto_tree_add_text(tree, tvb, curr_offset, 1, "Radio Bearer %d",oct & 0x1f);
+                       }
+                       break;
+               }
+               case 1:
+                       proto_tree_add_text(tree, tvb, curr_offset, 1, "UE test loop mode 2 loop back (loopback of transport block data and CRC bits)");
+                       break;
+               case 2:
+                       proto_tree_add_text(tree, tvb, curr_offset, 1, "UE test loop mode 3 RLC SDU counting (counting of received RLC SDUs)");
+                       oct = tvb_get_guint8(tvb, curr_offset);
+                       curr_offset+= 1;
+                       proto_tree_add_text(tree, tvb, curr_offset, 1, "MBMS short transmission identity %d",(oct & 0x1f)+1);
+                       break;
+               default:
+                       proto_tree_add_text(tree, tvb, curr_offset, 1, "UE test loop mode reserved (%d)",oct & 0x03);
+                       break;
+       }
+
+       return(curr_offset - offset);
 }
 
 static guint8
 de_tp_ue_positioning_technology(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
-    guint32    curr_offset;
-    guchar  oct;
+       guint32 curr_offset;
+       guchar  oct;
 
-    curr_offset = offset;
+       curr_offset = offset;
 
-    oct = tvb_get_guint8(tvb, curr_offset);
+       oct = tvb_get_guint8(tvb, curr_offset);
 
-    switch (oct)
-    {
-        case 0:
-            proto_tree_add_text(tree, tvb, curr_offset, 1, "AGPS");
-            break;
-        default:
-            proto_tree_add_text(tree, tvb, curr_offset, 1, "UE positioning technology reserved (%d)",oct);
-            break;
-    }
+       switch (oct)
+       {
+               case 0:
+                       proto_tree_add_text(tree, tvb, curr_offset, 1, "AGPS");
+                       break;
+               default:
+                       proto_tree_add_text(tree, tvb, curr_offset, 1, "UE positioning technology reserved (%d)",oct);
+                       break;
+       }
 
-    curr_offset+= 1;
+       curr_offset+= 1;
 
-    return(curr_offset - offset);
+       return(curr_offset - offset);
 }
 
 static guint8
 de_tp_rlc_sdu_counter_value(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
-    guint32    curr_offset;
-    guint32 value;
+       guint32 curr_offset;
+       guint32 value;
 
-    curr_offset = offset;
+       curr_offset = offset;
 
-    value = tvb_get_ntohl(tvb, curr_offset);
-    curr_offset+= 4;
+       value = tvb_get_ntohl(tvb, curr_offset);
+       curr_offset+= 4;
 
-    proto_tree_add_text(tree, tvb, curr_offset, 1, "UE received RLC SDU counter value %d",value);
+       proto_tree_add_text(tree, tvb, curr_offset, 1, "UE received RLC SDU counter value %d",value);
 
-    return(curr_offset - offset);
+       return(curr_offset - offset);
 }
 
 guint8 (*dtap_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len) = {
@@ -3410,7 +3388,6 @@ guint8 (*dtap_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
        de_auth_fail_param,     /* Authentication Failure Parameter (UMTS authentication challenge only) */
        NULL /* handled inline */,      /* CM Service Type */
        NULL /* handled inline */,      /* Identity Type */
-       /* Pos 50 */
        NULL /* handled inline */,      /* Location Updating Type */
        de_network_name,        /* Network Name */
        de_rej_cause,   /* Reject Cause */
@@ -3422,7 +3399,6 @@ guint8 (*dtap_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
        de_day_saving_time,     /* Daylight Saving Time */
        NULL, /* Emergency Number List */
        /* Call Control Information Elements 10.5.4 */
-       /* Pos 60 */
        de_aux_states,  /* Auxiliary States */
        de_bearer_cap,  /* Bearer Capability */
        de_cc_cap,      /* Call Control Capabilities */
@@ -3464,18 +3440,18 @@ guint8 (*dtap_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
        /* Short Message Service Information Elements [5] 8.1.4 */
        de_cp_user_data,        /* CP-User Data */
        de_cp_cause,    /* CP-Cause */
-    /* Tests procedures information elements 3GPP TS 44.014 6.4.0 and 3GPP TS 34.109 6.4.0 */
-    de_tp_sub_channel, /* Close TCH Loop Cmd Sub-channel */
-    de_tp_ack, /* Open Loop Cmd Ack */
-    de_tp_loop_type,                   /* Close Multi-slot Loop Cmd Loop type */
-    de_tp_loop_ack,                    /* Close Multi-slot Loop Ack Result */
-    de_tp_tested_device,                       /* Test Interface Tested device */
-    de_tp_pdu_description,                     /* GPRS Test Mode Cmd PDU description */
-    de_tp_mode_flag,                   /* GPRS Test Mode Cmd Mode flag */
-    de_tp_egprs_mode_flag,                     /* EGPRS Start Radio Block Loopback Cmd Mode flag */
-    de_tp_ue_test_loop_mode,                   /* Close UE Test Loop Mode */
-    de_tp_ue_positioning_technology,                   /* UE Positioning Technology */
-    de_tp_rlc_sdu_counter_value,                       /* RLC SDU Counter Value */
+       /* Tests procedures information elements 3GPP TS 44.014 6.4.0 and 3GPP TS 34.109 6.4.0 */
+       de_tp_sub_channel,      /* Close TCH Loop Cmd Sub-channel */
+       de_tp_ack,      /* Open Loop Cmd Ack */
+       de_tp_loop_type,                        /* Close Multi-slot Loop Cmd Loop type */
+       de_tp_loop_ack,                 /* Close Multi-slot Loop Ack Result */
+       de_tp_tested_device,                    /* Test Interface Tested device */
+       de_tp_pdu_description,                  /* GPRS Test Mode Cmd PDU description */
+       de_tp_mode_flag,                        /* GPRS Test Mode Cmd Mode flag */
+       de_tp_egprs_mode_flag,                  /* EGPRS Start Radio Block Loopback Cmd Mode flag */
+       de_tp_ue_test_loop_mode,                        /* Close UE Test Loop Mode */
+       de_tp_ue_positioning_technology,                        /* UE Positioning Technology */
+       de_tp_rlc_sdu_counter_value,                    /* RLC SDU Counter Value */
        NULL,   /* NONE */
 };
 
@@ -3506,41 +3482,41 @@ dtap_mm_auth_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
 
        other_decode_bitfield_value(a_bigbuf, oct, 0xf0, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Spare",
-       a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        item =
        proto_tree_add_text(tree,
-           tvb, curr_offset, 1,
-           gsm_common_elem_strings[DE_CIPH_KEY_SEQ_NUM].strptr);
+               tvb, curr_offset, 1,
+               gsm_common_elem_strings[DE_CIPH_KEY_SEQ_NUM].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_common_elem[DE_CIPH_KEY_SEQ_NUM]);
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x08, 8);
        proto_tree_add_text(subtree,
-       tvb, curr_offset, 1,
-       "%s :  Spare",
-       a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x07, 8);
 
        switch (oct & 0x07)
        {
        case 0x07:
-       proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Ciphering Key Sequence Number: No key is available",
-           a_bigbuf);
-       break;
+               proto_tree_add_text(subtree,
+                       tvb, curr_offset, 1,
+                       "%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",
-           a_bigbuf,
-           oct & 0x07);
-       break;
+               proto_tree_add_text(subtree,
+                       tvb, curr_offset, 1,
+                       "%s :  Ciphering Key Sequence Number: %u",
+                       a_bigbuf,
+                       oct & 0x07);
+               break;
        }
 
        curr_offset++;
@@ -3624,41 +3600,41 @@ dtap_mm_cm_reestab_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint le
 
        other_decode_bitfield_value(a_bigbuf, oct, 0xf0, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Spare",
-       a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        item =
        proto_tree_add_text(tree,
-           tvb, curr_offset, 1,
-           gsm_common_elem_strings[DE_CIPH_KEY_SEQ_NUM].strptr);
+               tvb, curr_offset, 1,
+               gsm_common_elem_strings[DE_CIPH_KEY_SEQ_NUM].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_common_elem[DE_CIPH_KEY_SEQ_NUM]);
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x08, 8);
        proto_tree_add_text(subtree,
-       tvb, curr_offset, 1,
-       "%s :  Spare",
-       a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x07, 8);
 
        switch (oct & 0x07)
        {
        case 0x07:
-       proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Ciphering Key Sequence Number: No key is available",
-           a_bigbuf);
-       break;
+               proto_tree_add_text(subtree,
+                       tvb, curr_offset, 1,
+                       "%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",
-           a_bigbuf,
-           oct & 0x07);
-       break;
+               proto_tree_add_text(subtree,
+                       tvb, curr_offset, 1,
+                       "%s :  Ciphering Key Sequence Number: %u",
+                       a_bigbuf,
+                       oct & 0x07);
+               break;
        }
 
        curr_offset++;
@@ -3761,41 +3737,41 @@ dtap_mm_cm_srvc_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
 
        item =
        proto_tree_add_text(tree,
-           tvb, curr_offset, 1,
-           gsm_common_elem_strings[DE_CIPH_KEY_SEQ_NUM].strptr);
+               tvb, curr_offset, 1,
+               gsm_common_elem_strings[DE_CIPH_KEY_SEQ_NUM].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_common_elem[DE_CIPH_KEY_SEQ_NUM]);
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x80, 8);
        proto_tree_add_text(subtree,
-       tvb, curr_offset, 1,
-       "%s :  Spare",
-       a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x70, 8);
 
        switch ((oct & 0x70) >> 4)
        {
        case 0x07:
-       proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Ciphering Key Sequence Number: No key is available",
-           a_bigbuf);
-       break;
+               proto_tree_add_text(subtree,
+                       tvb, curr_offset, 1,
+                       "%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",
-           a_bigbuf,
-           (oct & 0x70) >> 4);
-       break;
+               proto_tree_add_text(subtree,
+                       tvb, curr_offset, 1,
+                       "%s :  Ciphering Key Sequence Number: %u",
+                       a_bigbuf,
+                       (oct & 0x70) >> 4);
+               break;
        }
 
        item =
        proto_tree_add_text(tree,
-           tvb, curr_offset, 1,
-           gsm_dtap_elem_strings[DE_CM_SRVC_TYPE].strptr);
+               tvb, curr_offset, 1,
+               gsm_dtap_elem_strings[DE_CM_SRVC_TYPE].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_dtap_elem[DE_CM_SRVC_TYPE]);
 
@@ -3809,17 +3785,17 @@ dtap_mm_cm_srvc_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
        case 0x0a: str = "Voice broadcast call establishment"; break;
        case 0x0b: str = "Location Services"; break;
        default:
-       str = "Reserved";
-       break;
+               str = "Reserved";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x0f, 8);
        proto_tree_add_text(subtree,
-       tvb, curr_offset, 1,
-       "%s :  Service Type: (%u) %s",
-       a_bigbuf,
-       oct & 0x0f,
-       str);
+               tvb, curr_offset, 1,
+               "%s :  Service Type: (%u) %s",
+               a_bigbuf,
+               oct & 0x0f,
+               str);
 
        curr_offset++;
        curr_len--;
@@ -3860,22 +3836,22 @@ dtap_mm_id_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
 
        other_decode_bitfield_value(a_bigbuf, oct, 0xf0, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Spare",
-       a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        item =
        proto_tree_add_text(tree,
-           tvb, curr_offset, 1,
-           gsm_dtap_elem_strings[DE_ID_TYPE].strptr);
+               tvb, curr_offset, 1,
+               gsm_dtap_elem_strings[DE_ID_TYPE].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_dtap_elem[DE_ID_TYPE]);
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x08, 8);
        proto_tree_add_text(subtree,
-       tvb, curr_offset, 1,
-       "%s :  Spare",
-       a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        switch (oct & 0x07)
        {
@@ -3884,16 +3860,16 @@ dtap_mm_id_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
        case 3: str = "IMEISV"; break;
        case 4: str = "TMSI"; break;
        default:
-       str = "Reserved";
-       break;
+               str = "Reserved";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x07, 8);
        proto_tree_add_text(subtree,
-       tvb, curr_offset, 1,
-       "%s :  Type of identity: %s",
-       a_bigbuf,
-       str);
+               tvb, curr_offset, 1,
+               "%s :  Type of identity: %s",
+               a_bigbuf,
+               str);
 
        curr_offset++;
        curr_len--;
@@ -4017,56 +3993,56 @@ dtap_mm_loc_upd_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
 
        item =
        proto_tree_add_text(tree,
-           tvb, curr_offset, 1,
-           gsm_common_elem_strings[DE_CIPH_KEY_SEQ_NUM].strptr);
+               tvb, curr_offset, 1,
+               gsm_common_elem_strings[DE_CIPH_KEY_SEQ_NUM].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_common_elem[DE_CIPH_KEY_SEQ_NUM]);
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x80, 8);
        proto_tree_add_text(subtree,
-       tvb, curr_offset, 1,
-       "%s :  Spare",
-       a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x70, 8);
 
        switch ((oct & 0x70) >> 4)
        {
        case 0x07:
-       proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Ciphering Key Sequence Number: No key is available",
-           a_bigbuf);
-       break;
+               proto_tree_add_text(subtree,
+                       tvb, curr_offset, 1,
+                       "%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",
-           a_bigbuf,
-           (oct & 0x70) >> 4);
-       break;
+               proto_tree_add_text(subtree,
+                       tvb, curr_offset, 1,
+                       "%s :  Ciphering Key Sequence Number: %u",
+                       a_bigbuf,
+                       (oct & 0x70) >> 4);
+               break;
        }
 
        item =
        proto_tree_add_text(tree,
-           tvb, curr_offset, 1,
-           gsm_dtap_elem_strings[DE_LOC_UPD_TYPE].strptr);
+               tvb, curr_offset, 1,
+               gsm_dtap_elem_strings[DE_LOC_UPD_TYPE].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_dtap_elem[DE_LOC_UPD_TYPE]);
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x08, 8);
        proto_tree_add_text(subtree,
-       tvb, curr_offset, 1,
-       "%s :  Follow-On Request (FOR): %s",
-       a_bigbuf,
-       (oct & 0x08) ? "Follow-on request pending" : "No follow-on request pending");
+               tvb, curr_offset, 1,
+               "%s :  Follow-On Request (FOR): %s",
+               a_bigbuf,
+               (oct & 0x08) ? "Follow-on request pending" : "No follow-on request pending");
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x04, 8);
        proto_tree_add_text(subtree,
-       tvb, curr_offset, 1,
-       "%s :  Spare",
-       a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        switch (oct & 0x03)
        {
@@ -4074,16 +4050,16 @@ dtap_mm_loc_upd_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
        case 1: str = "Periodic"; break;
        case 2: str = "IMSI attach"; break;
        default:
-       str = "Reserved";
-       break;
+               str = "Reserved";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x03, 8);
        proto_tree_add_text(subtree,
-       tvb, curr_offset, 1,
-       "%s :  Updating Type: %s",
-       a_bigbuf,
-       str);
+               tvb, curr_offset, 1,
+               "%s :  Updating Type: %s",
+               a_bigbuf,
+               str);
 
        proto_item_append_text(item, " - %s", str);
 
@@ -4294,14 +4270,14 @@ dtap_cc_congestion_control(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guin
 
        other_decode_bitfield_value(a_bigbuf, oct, 0xf0, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Spare",
-       a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        item =
-       proto_tree_add_text(tree,
-           tvb, curr_offset, 1,
-           gsm_dtap_elem_strings[DE_CONGESTION].strptr);
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, 1,
+                       gsm_dtap_elem_strings[DE_CONGESTION].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_dtap_elem[DE_CONGESTION]);
 
@@ -4310,16 +4286,16 @@ dtap_cc_congestion_control(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guin
        case 0: str = "Receiver ready"; break;
        case 15: str = "Receiver not ready"; break;
        default:
-       str = "Reserved";
-       break;
+               str = "Reserved";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x0f, 8);
        proto_tree_add_text(subtree,
-       tvb, curr_offset, 1,
-       "%s :  Congestion level: %s",
-       a_bigbuf,
-       str);
+               tvb, curr_offset, 1,
+               "%s :  Congestion level: %s",
+               a_bigbuf,
+               str);
 
        curr_offset++;
        curr_len--;
@@ -5021,154 +4997,154 @@ dtap_sms_cp_error(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
 static void
 dtap_tp_close_tch_loop_cmd(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
 {
-    guint32    curr_offset;
-    guint32    consumed;
-    guint      curr_len;
+       guint32 curr_offset;
+       guint32 consumed;
+       guint   curr_len;
 
-    curr_len = len;
-    curr_offset = offset;
+       curr_len = len;
+       curr_offset = offset;
 
-    ELEM_MAND_V(GSM_A_PDU_TYPE_DTAP, DE_TP_SUB_CHANNEL );
+       ELEM_MAND_V(GSM_A_PDU_TYPE_DTAP, DE_TP_SUB_CHANNEL );
 
-    EXTRANEOUS_DATA_CHECK(curr_len, 0);
+       EXTRANEOUS_DATA_CHECK(curr_len, 0);
 }
 
 static void
 dtap_tp_open_loop_cmd(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
 {
-    guint32    curr_offset;
-    guint32    consumed;
-    guint      curr_len;
+       guint32 curr_offset;
+       guint32 consumed;
+       guint   curr_len;
 
-    curr_len = len;
-    curr_offset = offset;
+       curr_len = len;
+       curr_offset = offset;
 
-    if (curr_len)
-        ELEM_MAND_V(GSM_A_PDU_TYPE_DTAP, DE_TP_ACK );
+       if (curr_len)
+               ELEM_MAND_V(GSM_A_PDU_TYPE_DTAP, DE_TP_ACK );
 
-    EXTRANEOUS_DATA_CHECK(curr_len, 0);
+       EXTRANEOUS_DATA_CHECK(curr_len, 0);
 }
 
 static void
 dtap_tp_multi_slot_loop_cmd(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
 {
-    guint32    curr_offset;
-    guint32    consumed;
-    guint      curr_len;
+       guint32 curr_offset;
+       guint32 consumed;
+       guint   curr_len;
 
-    curr_len = len;
-    curr_offset = offset;
+       curr_len = len;
+       curr_offset = offset;
 
-    ELEM_MAND_V(GSM_A_PDU_TYPE_DTAP, DE_TP_LOOP_TYPE );
+       ELEM_MAND_V(GSM_A_PDU_TYPE_DTAP, DE_TP_LOOP_TYPE );
 
-    EXTRANEOUS_DATA_CHECK(curr_len, 0);
+       EXTRANEOUS_DATA_CHECK(curr_len, 0);
 }
 
 static void
 dtap_tp_multi_slot_loop_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
 {
-    guint32    curr_offset;
-    guint32    consumed;
-    guint      curr_len;
+       guint32 curr_offset;
+       guint32 consumed;
+       guint   curr_len;
 
-    curr_len = len;
-    curr_offset = offset;
+       curr_len = len;
+       curr_offset = offset;
 
-    ELEM_MAND_V(GSM_A_PDU_TYPE_DTAP, DE_TP_LOOP_ACK );
+       ELEM_MAND_V(GSM_A_PDU_TYPE_DTAP, DE_TP_LOOP_ACK );
 
-    EXTRANEOUS_DATA_CHECK(curr_len, 0);
+       EXTRANEOUS_DATA_CHECK(curr_len, 0);
 }
 
 static void
 dtap_tp_test_interface(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
 {
-    guint32    curr_offset;
-    guint32    consumed;
-    guint      curr_len;
+       guint32 curr_offset;
+       guint32 consumed;
+       guint   curr_len;
 
-    curr_len = len;
-    curr_offset = offset;
+       curr_len = len;
+       curr_offset = offset;
 
-    ELEM_MAND_V(GSM_A_PDU_TYPE_DTAP, DE_TP_TESTED_DEVICE );
+       ELEM_MAND_V(GSM_A_PDU_TYPE_DTAP, DE_TP_TESTED_DEVICE );
 
-    EXTRANEOUS_DATA_CHECK(curr_len, 0);
+       EXTRANEOUS_DATA_CHECK(curr_len, 0);
 }
 
 static void
 dtap_tp_gprs_test_mode_cmd(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
 {
-    guint32    curr_offset;
-    guint32    consumed;
-    guint      curr_len;
+       guint32 curr_offset;
+       guint32 consumed;
+       guint   curr_len;
 
-    curr_len = len;
-    curr_offset = offset;
+       curr_len = len;
+       curr_offset = offset;
 
-    ELEM_MAND_V(GSM_A_PDU_TYPE_DTAP, DE_TP_PDU_DESCRIPTION );
+       ELEM_MAND_V(GSM_A_PDU_TYPE_DTAP, DE_TP_PDU_DESCRIPTION );
 
-    ELEM_MAND_V(GSM_A_PDU_TYPE_DTAP, DE_TP_MODE_FLAG );
+       ELEM_MAND_V(GSM_A_PDU_TYPE_DTAP, DE_TP_MODE_FLAG );
 
-    EXTRANEOUS_DATA_CHECK(curr_len, 0);
+       EXTRANEOUS_DATA_CHECK(curr_len, 0);
 }
 
 static void
 dtap_tp_egprs_start_radio_block_loopback_cmd(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
 {
-    guint32    curr_offset;
-    guint32    consumed;
-    guint      curr_len;
+       guint32 curr_offset;
+       guint32 consumed;
+       guint   curr_len;
 
-    curr_len = len;
-    curr_offset = offset;
+       curr_len = len;
+       curr_offset = offset;
 
-    ELEM_MAND_V(GSM_A_PDU_TYPE_DTAP, DE_TP_EGPRS_MODE_FLAG );
+       ELEM_MAND_V(GSM_A_PDU_TYPE_DTAP, DE_TP_EGPRS_MODE_FLAG );
 
-    EXTRANEOUS_DATA_CHECK(curr_len, 0);
+       EXTRANEOUS_DATA_CHECK(curr_len, 0);
 }
 
 static void
 dtap_tp_close_ue_test_loop(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
 {
-    guint32    curr_offset;
-    guint32    consumed;
-    guint      curr_len;
+       guint32 curr_offset;
+       guint32 consumed;
+       guint   curr_len;
 
-    curr_len = len;
-    curr_offset = offset;
+       curr_len = len;
+       curr_offset = offset;
 
-    ELEM_MAND_V(GSM_A_PDU_TYPE_DTAP, DE_TP_UE_TEST_LOOP_MODE );
+       ELEM_MAND_V(GSM_A_PDU_TYPE_DTAP, DE_TP_UE_TEST_LOOP_MODE );
 
-    EXTRANEOUS_DATA_CHECK(curr_len, 0);
+       EXTRANEOUS_DATA_CHECK(curr_len, 0);
 }
 
 static void
 dtap_tp_reset_ue_positioning_ue_stored_information(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
 {
-    guint32    curr_offset;
-    guint32    consumed;
-    guint      curr_len;
+       guint32 curr_offset;
+       guint32 consumed;
+       guint   curr_len;
 
-    curr_len = len;
-    curr_offset = offset;
+       curr_len = len;
+       curr_offset = offset;
 
-    ELEM_MAND_V(GSM_A_PDU_TYPE_DTAP, DE_TP_UE_POSITIONING_TECHNOLOGY );
+       ELEM_MAND_V(GSM_A_PDU_TYPE_DTAP, DE_TP_UE_POSITIONING_TECHNOLOGY );
 
-    EXTRANEOUS_DATA_CHECK(curr_len, 0);
+       EXTRANEOUS_DATA_CHECK(curr_len, 0);
 }
 
 static void
 dtap_tp_ue_test_loop_mode_3_rlc_sdu_counter_response(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
 {
-    guint32    curr_offset;
-    guint32    consumed;
-    guint      curr_len;
+       guint32 curr_offset;
+       guint32 consumed;
+       guint   curr_len;
 
-    curr_len = len;
-    curr_offset = offset;
+       curr_len = len;
+       curr_offset = offset;
 
-    ELEM_MAND_V(GSM_A_PDU_TYPE_DTAP, DE_TP_RLC_SDU_COUNTER_VALUE );
+       ELEM_MAND_V(GSM_A_PDU_TYPE_DTAP, DE_TP_RLC_SDU_COUNTER_VALUE );
 
-    EXTRANEOUS_DATA_CHECK(curr_len, 0);
+       EXTRANEOUS_DATA_CHECK(curr_len, 0);
 }
 
 #define        NUM_GSM_DTAP_MSG_MM (sizeof(gsm_a_dtap_msg_mm_strings)/sizeof(value_string))
@@ -5262,31 +5238,31 @@ static void (*dtap_msg_ss_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset
 #define        NUM_GSM_DTAP_MSG_TP (sizeof(gsm_a_dtap_msg_tp_strings)/sizeof(value_string))
 static gint ett_gsm_dtap_msg_tp[NUM_GSM_DTAP_MSG_TP];
 static void (*dtap_msg_tp_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len) = {
-    dtap_tp_close_tch_loop_cmd,        /* CLOSE TCH LOOP CMD */
-    NULL,      /* CLOSE TCH LOOP ACK */
-    dtap_tp_open_loop_cmd,     /* OPEN LOOP CMD */
-    NULL,      /* ACT EMMI CMD */
-    NULL,      /* ACT EMMI ACK */
-    NULL,      /* DEACT EMMI */
-    dtap_tp_test_interface,    /* Test Interface */
-    dtap_tp_multi_slot_loop_cmd,       /* CLOSE Multi-slot LOOP CMD */
-    dtap_tp_multi_slot_loop_ack,       /* CLOSE Multi-slot LOOP ACK */
-    NULL,      /* OPEN Multi-slot LOOP CMD */
-    NULL,      /* OPEN Multi-slot LOOP ACK */
-    dtap_tp_gprs_test_mode_cmd,        /* GPRS TEST MODE CMD */
-    dtap_tp_egprs_start_radio_block_loopback_cmd,      /* EGPRS START RADIO BLOCK LOOPBACK CMD */
-    dtap_tp_close_ue_test_loop,        /* CLOSE UE TEST LOOP */
-    NULL,      /* CLOSE UE TEST LOOP COMPLETE */
-    NULL,      /* OPEN UE TEST LOOP */
-    NULL,      /* OPEN UE TEST LOOP COMPLETE */
-    NULL,      /* ACTIVATE RB TEST MODE */
-    NULL,      /* ACTIVATE RB TEST MODE COMPLETE */
-    NULL,      /* DEACTIVATE RB TEST MODE */
-    NULL,      /* DEACTIVATE RB TEST MODE COMPLETE */
-    dtap_tp_reset_ue_positioning_ue_stored_information,        /* RESET UE POSITIONING STORED INFORMATION */
-    NULL,      /* UE Test Loop Mode 3 RLC SDU Counter Request */
-    dtap_tp_ue_test_loop_mode_3_rlc_sdu_counter_response,      /* UE Test Loop Mode 3 RLC SDU Counter Response */
-    NULL,      /* NONE */
+       dtap_tp_close_tch_loop_cmd,     /* CLOSE TCH LOOP CMD */
+       NULL,   /* CLOSE TCH LOOP ACK */
+       dtap_tp_open_loop_cmd,  /* OPEN LOOP CMD */
+       NULL,   /* ACT EMMI CMD */
+       NULL,   /* ACT EMMI ACK */
+       NULL,   /* DEACT EMMI */
+       dtap_tp_test_interface, /* Test Interface */
+       dtap_tp_multi_slot_loop_cmd,    /* CLOSE Multi-slot LOOP CMD */
+       dtap_tp_multi_slot_loop_ack,    /* CLOSE Multi-slot LOOP ACK */
+       NULL,   /* OPEN Multi-slot LOOP CMD */
+       NULL,   /* OPEN Multi-slot LOOP ACK */
+       dtap_tp_gprs_test_mode_cmd,     /* GPRS TEST MODE CMD */
+       dtap_tp_egprs_start_radio_block_loopback_cmd,   /* EGPRS START RADIO BLOCK LOOPBACK CMD */
+       dtap_tp_close_ue_test_loop,     /* CLOSE UE TEST LOOP */
+       NULL,   /* CLOSE UE TEST LOOP COMPLETE */
+       NULL,   /* OPEN UE TEST LOOP */
+       NULL,   /* OPEN UE TEST LOOP COMPLETE */
+       NULL,   /* ACTIVATE RB TEST MODE */
+       NULL,   /* ACTIVATE RB TEST MODE COMPLETE */
+       NULL,   /* DEACTIVATE RB TEST MODE */
+       NULL,   /* DEACTIVATE RB TEST MODE COMPLETE */
+       dtap_tp_reset_ue_positioning_ue_stored_information,     /* RESET UE POSITIONING STORED INFORMATION */
+       NULL,   /* UE Test Loop Mode 3 RLC SDU Counter Request */
+       dtap_tp_ue_test_loop_mode_3_rlc_sdu_counter_response,   /* UE Test Loop Mode 3 RLC SDU Counter Response */
+       NULL,   /* NONE */
 };
 
 /* GENERIC DISSECTOR FUNCTIONS */
@@ -5319,16 +5295,16 @@ dissect_dtap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 
        if (len < 2)
        {
-       /*
-        * too short to be DTAP
-        */
-       call_dissector(data_handle, tvb, pinfo, tree);
-       return;
+               /*
+                * too short to be DTAP
+                */
+               call_dissector(data_handle, tvb, pinfo, tree);
+               return;
        }
 
        if (check_col(pinfo->cinfo, COL_INFO))
        {
-       col_append_str(pinfo->cinfo, COL_INFO, "(DTAP) ");
+               col_append_str(pinfo->cinfo, COL_INFO, "(DTAP) ");
        }
 
        /*
@@ -5337,7 +5313,7 @@ dissect_dtap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
        tap_current++;
        if (tap_current >= 4)
        {
-       tap_current = 0;
+               tap_current = 0;
        }
        tap_p = &tap_rec[tap_current];
 
@@ -5355,12 +5331,12 @@ dissect_dtap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 
        if ((((oct_1 & DTAP_TI_MASK) >> 4) & DTAP_TIE_PRES_MASK) == DTAP_TIE_PRES_MASK)
        {
-       /*
-        * eventhough we don't know if a TI should be in the message yet
-        * we rely on the TI/SKIP indicator to be 0 to avoid taking this
-        * octet
-        */
-       oct_2 = tvb_get_guint8(tvb, offset++);
+               /*
+                * eventhough we don't know if a TI should be in the message yet
+                * we rely on the TI/SKIP indicator to be 0 to avoid taking this
+                * octet
+                */
+               oct_2 = tvb_get_guint8(tvb, offset++);
        }
 
        oct = tvb_get_guint8(tvb, offset);
@@ -5374,7 +5350,7 @@ dissect_dtap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
        nsd = FALSE;
        if (check_col(pinfo->cinfo, COL_INFO))
        {
-       col_append_fstr(pinfo->cinfo, COL_INFO, "(%s) ",val_to_str(pd,gsm_a_pd_short_str_vals,"unknown"));
+               col_append_fstr(pinfo->cinfo, COL_INFO, "(%s) ",val_to_str(pd,gsm_a_pd_short_str_vals,"unknown"));
        }
 
        /*
@@ -5383,64 +5359,64 @@ dissect_dtap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
        switch (pd)
        {
        case 3:
-       msg_str = match_strval_idx((guint32) (oct & DTAP_CC_IEI_MASK), gsm_a_dtap_msg_cc_strings, &idx);
-       ett_tree = ett_gsm_dtap_msg_cc[idx];
-       hf_idx = hf_gsm_a_dtap_msg_cc_type;
-       msg_fcn = dtap_msg_cc_fcn[idx];
-       ti = (oct_1 & DTAP_TI_MASK) >> 4;
-       nsd = TRUE;
-       break;
+               msg_str = match_strval_idx((guint32) (oct & DTAP_CC_IEI_MASK), gsm_a_dtap_msg_cc_strings, &idx);
+               ett_tree = ett_gsm_dtap_msg_cc[idx];
+               hf_idx = hf_gsm_a_dtap_msg_cc_type;
+               msg_fcn = dtap_msg_cc_fcn[idx];
+               ti = (oct_1 & DTAP_TI_MASK) >> 4;
+               nsd = TRUE;
+               break;
 
        case 5:
-       msg_str = match_strval_idx((guint32) (oct & DTAP_MM_IEI_MASK), gsm_a_dtap_msg_mm_strings, &idx);
-       ett_tree = ett_gsm_dtap_msg_mm[idx];
-       hf_idx = hf_gsm_a_dtap_msg_mm_type;
-       msg_fcn = dtap_msg_mm_fcn[idx];
-       nsd = TRUE;
-       break;
+               msg_str = match_strval_idx((guint32) (oct & DTAP_MM_IEI_MASK), gsm_a_dtap_msg_mm_strings, &idx);
+               ett_tree = ett_gsm_dtap_msg_mm[idx];
+               hf_idx = hf_gsm_a_dtap_msg_mm_type;
+               msg_fcn = dtap_msg_mm_fcn[idx];
+               nsd = TRUE;
+               break;
 
        case 6:
                get_rr_msg_params(oct, &msg_str, &ett_tree, &hf_idx, &msg_fcn);
-       break;
+               break;
 
        case 8:
                get_gmm_msg_params(oct, &msg_str, &ett_tree, &hf_idx, &msg_fcn);
-       break;
+               break;
 
        case 9:
-       msg_str = match_strval_idx((guint32) (oct & DTAP_SMS_IEI_MASK), gsm_a_dtap_msg_sms_strings, &idx);
-       ett_tree = ett_gsm_dtap_msg_sms[idx];
-       hf_idx = hf_gsm_a_dtap_msg_sms_type;
-       msg_fcn = dtap_msg_sms_fcn[idx];
-       ti = (oct_1 & DTAP_TI_MASK) >> 4;
-       break;
+               msg_str = match_strval_idx((guint32) (oct & DTAP_SMS_IEI_MASK), gsm_a_dtap_msg_sms_strings, &idx);
+               ett_tree = ett_gsm_dtap_msg_sms[idx];
+               hf_idx = hf_gsm_a_dtap_msg_sms_type;
+               msg_fcn = dtap_msg_sms_fcn[idx];
+               ti = (oct_1 & DTAP_TI_MASK) >> 4;
+               break;
 
        case 10:
                get_sm_msg_params(oct, &msg_str, &ett_tree, &hf_idx, &msg_fcn);
-       ti = (oct_1 & DTAP_TI_MASK) >> 4;
-       break;
+               ti = (oct_1 & DTAP_TI_MASK) >> 4;
+               break;
 
        case 11:
-       msg_str = match_strval_idx((guint32) (oct & DTAP_SS_IEI_MASK), gsm_a_dtap_msg_ss_strings, &idx);
-       ett_tree = ett_gsm_dtap_msg_ss[idx];
-       hf_idx = hf_gsm_a_dtap_msg_ss_type;
-       msg_fcn = dtap_msg_ss_fcn[idx];
-       ti = (oct_1 & DTAP_TI_MASK) >> 4;
-       nsd = TRUE;
-       break;
+               msg_str = match_strval_idx((guint32) (oct & DTAP_SS_IEI_MASK), gsm_a_dtap_msg_ss_strings, &idx);
+               ett_tree = ett_gsm_dtap_msg_ss[idx];
+               hf_idx = hf_gsm_a_dtap_msg_ss_type;
+               msg_fcn = dtap_msg_ss_fcn[idx];
+               ti = (oct_1 & DTAP_TI_MASK) >> 4;
+               nsd = TRUE;
+               break;
 
-    case 15:
-       msg_str = match_strval_idx((guint32) (oct & DTAP_TP_IEI_MASK), gsm_a_dtap_msg_tp_strings, &idx);
-       ett_tree = ett_gsm_dtap_msg_tp[idx];
-       hf_idx = hf_gsm_a_dtap_msg_tp_type;
-       msg_fcn = dtap_msg_tp_fcn[idx];
-       ti = (oct_1 & DTAP_TI_MASK) >> 4;
-       nsd = TRUE;
-       break;
+       case 15:
+               msg_str = match_strval_idx((guint32) (oct & DTAP_TP_IEI_MASK), gsm_a_dtap_msg_tp_strings, &idx);
+               ett_tree = ett_gsm_dtap_msg_tp[idx];
+               hf_idx = hf_gsm_a_dtap_msg_tp_type;
+               msg_fcn = dtap_msg_tp_fcn[idx];
+               ti = (oct_1 & DTAP_TI_MASK) >> 4;
+               nsd = TRUE;
+               break;
 
        default:
-       /* XXX - hf_idx is still -1! this is a bug in the implementation, and I don't know how to fix it so simple return here */
-       return;
+               /* XXX - hf_idx is still -1! this is a bug in the implementation, and I don't know how to fix it so simple return here */
+               return;
        }
 
        sccp_msg = pinfo->sccp_info;
@@ -5457,110 +5433,110 @@ dissect_dtap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
         */
        if (msg_str == NULL)
        {
-       dtap_item =
-           proto_tree_add_protocol_format(tree, proto_a_dtap, tvb, 0, len,
-               "GSM A-I/F DTAP - Unknown DTAP Message Type (0x%02x)",
-               oct);
+               dtap_item =
+                       proto_tree_add_protocol_format(tree, proto_a_dtap, tvb, 0, len,
+                       "GSM A-I/F DTAP - Unknown DTAP Message Type (0x%02x)",
+                       oct);
 
-       dtap_tree = proto_item_add_subtree(dtap_item, ett_dtap_msg);
+               dtap_tree = proto_item_add_subtree(dtap_item, ett_dtap_msg);
 
-       if (sccp_msg && !sccp_msg->data.co.label) {
-               sccp_msg->data.co.label = se_strdup_printf("DTAP (0x%02x)",oct);
-       }
+               if (sccp_msg && !sccp_msg->data.co.label) {
+                       sccp_msg->data.co.label = se_strdup_printf("DTAP (0x%02x)",oct);
+               }
 
 
        }
        else
        {
-       dtap_item =
-           proto_tree_add_protocol_format(tree, proto_a_dtap, tvb, 0, -1,
-               "GSM A-I/F DTAP - %s",
-               msg_str);
+               dtap_item =
+                       proto_tree_add_protocol_format(tree, proto_a_dtap, tvb, 0, -1,
+                               "GSM A-I/F DTAP - %s",
+                               msg_str);
 
-       dtap_tree = proto_item_add_subtree(dtap_item, ett_tree);
+               dtap_tree = proto_item_add_subtree(dtap_item, ett_tree);
 
-       if (sccp_msg && !sccp_msg->data.co.label) {
-               sccp_msg->data.co.label = se_strdup(msg_str);
-       }
+               if (sccp_msg && !sccp_msg->data.co.label) {
+                       sccp_msg->data.co.label = se_strdup(msg_str);
+               }
 
-       if (check_col(pinfo->cinfo, COL_INFO))
-       {
-           col_append_fstr(pinfo->cinfo, COL_INFO, "%s ", msg_str);
-       }
+               if (check_col(pinfo->cinfo, COL_INFO))
+               {
+                       col_append_fstr(pinfo->cinfo, COL_INFO, "%s ", msg_str);
+               }
        }
 
        oct_1_item =
        proto_tree_add_text(dtap_tree,
-           tvb, 0, 1,
-           "Protocol Discriminator: %s",
-           val_to_str(pd, protocol_discriminator_vals, "Unknown (%u)"));
+               tvb, 0, 1,
+               "Protocol Discriminator: %s",
+               val_to_str(pd, protocol_discriminator_vals, "Unknown (%u)"));
 
        pd_tree = proto_item_add_subtree(oct_1_item, ett_dtap_oct_1);
 
        if (ti == -1)
        {
-       proto_tree_add_item(pd_tree, hf_gsm_a_skip_ind, tvb, 0, 1, FALSE);
+               proto_tree_add_item(pd_tree, hf_gsm_a_skip_ind, tvb, 0, 1, FALSE);
        }
        else
        {
-       other_decode_bitfield_value(a_bigbuf, oct_1, 0x80, 8);
-       proto_tree_add_text(pd_tree,
-           tvb, 0, 1,
-           "%s :  TI flag: %s",
-           a_bigbuf,
-           ((oct_1 & 0x80) ?  "allocated by receiver" : "allocated by sender"));
-
-       if ((ti & DTAP_TIE_PRES_MASK) == DTAP_TIE_PRES_MASK)
-       {
-           /* ti is extended to next octet */
+               other_decode_bitfield_value(a_bigbuf, oct_1, 0x80, 8);
+               proto_tree_add_text(pd_tree,
+                       tvb, 0, 1,
+                       "%s :  TI flag: %s",
+                       a_bigbuf,
+                       ((oct_1 & 0x80) ?  "allocated by receiver" : "allocated by sender"));
+
+               if ((ti & DTAP_TIE_PRES_MASK) == DTAP_TIE_PRES_MASK)
+               {
+                       /* ti is extended to next octet */
 
-           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",
-               a_bigbuf);
-       }
-       else
-       {
-           other_decode_bitfield_value(a_bigbuf, oct_1, 0x70, 8);
-           proto_tree_add_text(pd_tree,
-               tvb, 0, 1,
-               "%s :  TIO: %u",
-               a_bigbuf,
-               ti & DTAP_TIE_PRES_MASK);
-       }
+                       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",
+                               a_bigbuf);
+               }
+               else
+               {
+                       other_decode_bitfield_value(a_bigbuf, oct_1, 0x70, 8);
+                       proto_tree_add_text(pd_tree,
+                               tvb, 0, 1,
+                               "%s :  TIO: %u",
+                               a_bigbuf,
+                               ti & DTAP_TIE_PRES_MASK);
+               }
        }
 
        proto_tree_add_item(pd_tree, hf_gsm_a_L3_protocol_discriminator, tvb, 0, 1, FALSE);
 
        if ((ti != -1) &&
-       (ti & DTAP_TIE_PRES_MASK) == DTAP_TIE_PRES_MASK)
+               (ti & DTAP_TIE_PRES_MASK) == DTAP_TIE_PRES_MASK)
        {
-       proto_tree_add_item(tree, hf_gsm_a_extension, tvb, 1, 1, FALSE);
-
-       other_decode_bitfield_value(a_bigbuf, oct_2, DTAP_TIE_MASK, 8);
-       proto_tree_add_text(pd_tree,
-           tvb, 1, 1,
-           "%s :  TIE: %u",
-           a_bigbuf,
-           oct_2 & DTAP_TIE_MASK);
+               proto_tree_add_item(tree, hf_gsm_a_extension, tvb, 1, 1, FALSE);
+
+               other_decode_bitfield_value(a_bigbuf, oct_2, DTAP_TIE_MASK, 8);
+               proto_tree_add_text(pd_tree,
+                       tvb, 1, 1,
+                       "%s :  TIE: %u",
+                       a_bigbuf,
+                       oct_2 & DTAP_TIE_MASK);
        }
 
        /*
         * N(SD)
         */
        if ((pinfo->p2p_dir == P2P_DIR_RECV) &&
-       nsd)
+               nsd)
        {
-       /* XXX */
+               /* XXX */
        }
 
        /*
         * add DTAP message name
         */
        proto_tree_add_uint_format(dtap_tree, hf_idx,
-       tvb, offset, 1, oct,
-       "Message Type %s",msg_str ? msg_str : "(Unknown)");
+               tvb, offset, 1, oct,
+               "Message Type %s",msg_str ? msg_str : "(Unknown)");
 
        offset++;
 
@@ -5579,13 +5555,13 @@ dissect_dtap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
         */
        if (msg_fcn == NULL)
        {
-       proto_tree_add_text(dtap_tree,
-           tvb, offset, len - offset,
-           "Message Elements");
+               proto_tree_add_text(dtap_tree,
+                       tvb, offset, len - offset,
+                       "Message Elements");
        }
        else
        {
-       (*msg_fcn)(tvb, dtap_tree, offset, len - offset);
+               (*msg_fcn)(tvb, dtap_tree, offset, len - offset);
        }
 }
 
@@ -5602,62 +5578,65 @@ proto_register_gsm_a_dtap(void)
        static hf_register_info hf[] =
        {
        { &hf_gsm_a_dtap_msg_mm_type,
-           { "DTAP Mobility Management Message Type",  "gsm_a.dtap_msg_mm_type",
-           FT_UINT8, BASE_HEX, VALS(gsm_a_dtap_msg_mm_strings), 0x0,
-           "", HFILL }
+               { "DTAP Mobility Management Message Type", "gsm_a.dtap_msg_mm_type",
+               FT_UINT8, BASE_HEX, VALS(gsm_a_dtap_msg_mm_strings), 0x0,
+               "", HFILL }
        },
        { &hf_gsm_a_dtap_msg_cc_type,
-           { "DTAP Call Control Message Type", "gsm_a.dtap_msg_cc_type",
-           FT_UINT8, BASE_HEX, VALS(gsm_a_dtap_msg_cc_strings), 0x0,
-           "", HFILL }
+               { "DTAP Call Control Message Type", "gsm_a.dtap_msg_cc_type",
+               FT_UINT8, BASE_HEX, VALS(gsm_a_dtap_msg_cc_strings), 0x0,
+               "", HFILL }
        },
        { &hf_gsm_a_dtap_msg_sms_type,
-           { "DTAP Short Message Service Message Type",        "gsm_a.dtap_msg_sms_type",
-           FT_UINT8, BASE_HEX, VALS(gsm_a_dtap_msg_sms_strings), 0x0,
-           "", HFILL }
+               { "DTAP Short Message Service Message Type", "gsm_a.dtap_msg_sms_type",
+               FT_UINT8, BASE_HEX, VALS(gsm_a_dtap_msg_sms_strings), 0x0,
+               "", HFILL }
        },
        { &hf_gsm_a_dtap_msg_ss_type,
-           { "DTAP Non call Supplementary Service Message Type",       "gsm_a.dtap_msg_ss_type",
-           FT_UINT8, BASE_HEX, VALS(gsm_a_dtap_msg_ss_strings), 0x0,
-           "", HFILL }
+               { "DTAP Non call Supplementary Service Message Type", "gsm_a.dtap_msg_ss_type",
+               FT_UINT8, BASE_HEX, VALS(gsm_a_dtap_msg_ss_strings), 0x0,
+               "", HFILL }
        },
        { &hf_gsm_a_dtap_msg_tp_type,
-           { "DTAP Tests Procedures Message Type",     "gsm_a.dtap_msg_tp_type",
-           FT_UINT8, BASE_HEX, VALS(gsm_a_dtap_msg_tp_strings), 0x0,
-           "", HFILL }
+               { "DTAP Tests Procedures Message Type", "gsm_a.dtap_msg_tp_type",
+               FT_UINT8, BASE_HEX, VALS(gsm_a_dtap_msg_tp_strings), 0x0,
+               "", HFILL }
        },
        { &hf_gsm_a_dtap_elem_id,
-           { "Element ID",     "gsm_a_dtap.elem_id",
-           FT_UINT8, BASE_DEC, NULL, 0,
-           "", HFILL }
+               { "Element ID", "gsm_a_dtap.elem_id",
+               FT_UINT8, BASE_DEC, NULL, 0,
+               "", HFILL }
        },
        { &hf_gsm_a_cld_party_bcd_num,
-           { "Called Party BCD Number",        "gsm_a.cld_party_bcd_num",
-           FT_STRING, BASE_DEC, 0, 0,
-           "", HFILL }
+               { "Called Party BCD Number", "gsm_a.cld_party_bcd_num",
+               FT_STRING, BASE_DEC, 0, 0,
+               "", HFILL }
        },
        { &hf_gsm_a_clg_party_bcd_num,
-           { "Calling Party BCD Number",       "gsm_a.clg_party_bcd_num",
-           FT_STRING, BASE_DEC, 0, 0,
-           "", HFILL }
+               { "Calling Party BCD Number", "gsm_a.clg_party_bcd_num",
+               FT_STRING, BASE_DEC, 0, 0,
+               "", HFILL }
        },
        { &hf_gsm_a_dtap_cause,
-           { "DTAP Cause",     "gsm_a_dtap.cause",
-           FT_UINT8, BASE_HEX, 0, 0x0,
-           "", HFILL }
+               { "DTAP Cause", "gsm_a_dtap.cause",
+               FT_UINT8, BASE_HEX, 0, 0x0,
+               "", HFILL }
        },
-         { &hf_gsm_a_extension,
-         { "Extension", "gsm_a.extension",
+       { &hf_gsm_a_extension,
+               { "Extension", "gsm_a.extension",
                FT_BOOLEAN, 8, TFS(&gsm_a_extension_value), 0x80,
-               "Extension", HFILL }},
-          { &hf_gsm_a_type_of_number,
-         { "Type of number", "gsm_a.type_of_number",
+               "Extension", HFILL }
+       },
+       { &hf_gsm_a_type_of_number,
+               { "Type of number", "gsm_a.type_of_number",
                FT_UINT8, BASE_HEX, VALS(gsm_a_type_of_number_values), 0x70,
-               "Type of number", HFILL }},
-          { &hf_gsm_a_numbering_plan_id,
-         { "Numbering plan identification", "gsm_a.numbering_plan_id",
+               "Type of number", HFILL }
+       },
+       { &hf_gsm_a_numbering_plan_id,
+               { "Numbering plan identification", "gsm_a.numbering_plan_id",
                FT_UINT8, BASE_HEX, VALS(gsm_a_numbering_plan_id_values), 0x0f,
-               "Numbering plan identification", HFILL }},
+               "Numbering plan identification", HFILL }
+       },
        { &hf_gsm_a_lsa_id,
                { "LSA Identifier", "gsm_a.lsa_id",
                FT_UINT24, BASE_HEX, NULL, 0x0,
@@ -5695,45 +5674,44 @@ proto_register_gsm_a_dtap(void)
 
        for (i=0; i < NUM_GSM_DTAP_MSG_MM; i++, last_offset++)
        {
-       ett_gsm_dtap_msg_mm[i] = -1;
-       ett[last_offset] = &ett_gsm_dtap_msg_mm[i];
+               ett_gsm_dtap_msg_mm[i] = -1;
+               ett[last_offset] = &ett_gsm_dtap_msg_mm[i];
        }
 
        for (i=0; i < NUM_GSM_DTAP_MSG_CC; i++, last_offset++)
        {
-       ett_gsm_dtap_msg_cc[i] = -1;
-       ett[last_offset] = &ett_gsm_dtap_msg_cc[i];
+               ett_gsm_dtap_msg_cc[i] = -1;
+               ett[last_offset] = &ett_gsm_dtap_msg_cc[i];
        }
 
        for (i=0; i < NUM_GSM_DTAP_MSG_SMS; i++, last_offset++)
        {
-       ett_gsm_dtap_msg_sms[i] = -1;
-       ett[last_offset] = &ett_gsm_dtap_msg_sms[i];
+               ett_gsm_dtap_msg_sms[i] = -1;
+               ett[last_offset] = &ett_gsm_dtap_msg_sms[i];
        }
 
        for (i=0; i < NUM_GSM_DTAP_MSG_SS; i++, last_offset++)
        {
-       ett_gsm_dtap_msg_ss[i] = -1;
-       ett[last_offset] = &ett_gsm_dtap_msg_ss[i];
+               ett_gsm_dtap_msg_ss[i] = -1;
+               ett[last_offset] = &ett_gsm_dtap_msg_ss[i];
        }
 
-    for (i=0; i < NUM_GSM_DTAP_MSG_TP; i++, last_offset++)
-    {
-       ett_gsm_dtap_msg_tp[i] = -1;
-       ett[last_offset] = &ett_gsm_dtap_msg_tp[i];
-    }
+       for (i=0; i < NUM_GSM_DTAP_MSG_TP; i++, last_offset++)
+       {
+               ett_gsm_dtap_msg_tp[i] = -1;
+               ett[last_offset] = &ett_gsm_dtap_msg_tp[i];
+       }
 
        for (i=0; i < NUM_GSM_DTAP_ELEM; i++, last_offset++)
        {
-       ett_gsm_dtap_elem[i] = -1;
-       ett[last_offset] = &ett_gsm_dtap_elem[i];
+               ett_gsm_dtap_elem[i] = -1;
+               ett[last_offset] = &ett_gsm_dtap_elem[i];
        }
 
-
        /* Register the protocol name and description */
 
        proto_a_dtap =
-       proto_register_protocol("GSM A-I/F DTAP", "GSM DTAP", "gsm_a_dtap");
+               proto_register_protocol("GSM A-I/F DTAP", "GSM DTAP", "gsm_a_dtap");
 
        proto_register_field_array(proto_a_dtap, hf, array_length(hf));
 
@@ -5750,8 +5728,8 @@ proto_reg_handoff_gsm_a_dtap(void)
        dtap_handle = find_dissector("gsm_a_dtap");
        rp_handle = find_dissector("gsm_a_rp");
 
-       dissector_add("bssap.pdu_type",  BSSAP_PDU_TYPE_DTAP, dtap_handle);
-       dissector_add("ranap.nas_pdu",  BSSAP_PDU_TYPE_DTAP, dtap_handle);
+       dissector_add("bssap.pdu_type", BSSAP_PDU_TYPE_DTAP, dtap_handle);
+       dissector_add("ranap.nas_pdu", BSSAP_PDU_TYPE_DTAP, dtap_handle);
        dissector_add("llcgprs.sapi", 1 , dtap_handle); /* GPRS Mobility Management */
        dissector_add("llcgprs.sapi", 7 , dtap_handle); /* SMS */
        data_handle = find_dissector("data");
index b890237231aca56a77ca746d18249d64bbf957d6..550775603dc763a290fbd47a1053f184663a2c93 100644 (file)
  *
  * Title               3GPP                    Other
  *
- *   Reference [3]
- *   Mobile radio interface Layer 3 specification;
- *   Core network protocols;
- *   Stage 3
- *   (3GPP TS 24.008 version 4.7.0 Release 4)
- *   (ETSI TS 124 008 V6.8.0 (2005-03))
- *
  *   Reference [7]
  *   Mobile radio interface Layer 3 specification;
  *   Core network protocols;
@@ -256,13 +249,12 @@ gint ett_gsm_gm_elem[NUM_GSM_GM_ELEM];
  * [7] 10.5.5.1
  */
 static guint8
-de_gmm_attach_res(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_gmm_attach_res(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
        const gchar     *str;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -275,10 +267,10 @@ de_gmm_attach_res(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
        }
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "Attach Result: (%u) %s",
-       oct&7,
-       str);
+               tvb, curr_offset, 1,
+               "Attach Result: (%u) %s",
+               oct&7,
+               str);
 
        curr_offset++;
 
@@ -291,17 +283,16 @@ de_gmm_attach_res(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
  * [7] 10.5.5.2
  */
 static guint8
-de_gmm_attach_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_gmm_attach_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
-       guint8      oct_ciph;
+       guint8  oct_ciph;
        guint32 curr_offset;
        const gchar     *str_follow;
        const gchar     *str_attach;
-       proto_item  *tf = NULL;
-       proto_tree      *tf_tree = NULL;
+       proto_item      *tf = NULL;
+       proto_tree      *tf_tree = NULL;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -329,22 +320,22 @@ de_gmm_attach_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
        tf_tree = proto_item_add_subtree(tf, ett_gmm_attach_type );
 
        proto_tree_add_text(tf_tree,
-       tvb, curr_offset, 1,
-       "Type: (%u) %s",
-       oct&7,
-       str_attach);
+               tvb, curr_offset, 1,
+               "Type: (%u) %s",
+               oct&7,
+               str_attach);
        proto_tree_add_text(tf_tree,
-       tvb, curr_offset, 1,
-       "Follow: (%u) %s",
-       (oct>>3)&1,
-       str_follow);
+               tvb, curr_offset, 1,
+               "Follow: (%u) %s",
+               (oct>>3)&1,
+               str_follow);
 
        /* The ciphering key sequence number is added here */
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "Ciphering key sequence number: 0x%02x (%u)",
-       oct_ciph,
-       oct_ciph);
+               tvb, curr_offset, 1,
+               "Ciphering key sequence number: 0x%02x (%u)",
+               oct_ciph,
+               oct_ciph);
 
        curr_offset++;
 
@@ -357,13 +348,12 @@ de_gmm_attach_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
  * [7] 10.5.5.3
  */
 static guint8
-de_gmm_ciph_alg(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_gmm_ciph_alg(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
        const gchar *str;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -382,10 +372,10 @@ de_gmm_ciph_alg(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
        }
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "Ciphering Algorithm: (%u) %s",
-       oct&7,
-       str);
+               tvb, curr_offset, 1,
+               "Ciphering Algorithm: (%u) %s",
+               oct&7,
+               str);
 
        curr_offset++;
 
@@ -398,13 +388,12 @@ de_gmm_ciph_alg(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
  * [7] 10.5.5.4
  */
 static guint8
-de_gmm_tmsi_stat(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_gmm_tmsi_stat(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
        const gchar *str;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -417,10 +406,10 @@ de_gmm_tmsi_stat(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gch
        }
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "TMSI Status: (%u) %s",
-       oct&1,
-       str);
+               tvb, curr_offset, 1,
+               "TMSI Status: (%u) %s",
+               oct&1,
+               str);
 
        /* curr_offset++;  - It is encoded in the octed before */
 
@@ -433,16 +422,15 @@ de_gmm_tmsi_stat(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gch
  * [7] 10.5.5.5
  */
 static guint8
-de_gmm_detach_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_gmm_detach_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
        const gchar     *str;
        const gchar *str_power;
        proto_item  *tf = NULL;
-       proto_tree      *tf_tree = NULL;
+       proto_tree        *tf_tree = NULL;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -468,16 +456,16 @@ de_gmm_detach_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
        tf_tree = proto_item_add_subtree(tf, ett_gmm_detach_type );
 
        proto_tree_add_text(tf_tree,
-       tvb, curr_offset, 1,
-       "Type: (%u) %s",
-       oct&7,
-       str);
+               tvb, curr_offset, 1,
+               "Type: (%u) %s",
+               oct&7,
+               str);
 
        proto_tree_add_text(tf_tree,
-       tvb, curr_offset, 1,
-       "Power: (%u) %s",
-       (oct>>3)&1,
-       str_power);
+               tvb, curr_offset, 1,
+               "Power: (%u) %s",
+               (oct>>3)&1,
+               str_power);
 
        curr_offset++;
 
@@ -494,8 +482,8 @@ de_gmm_detach_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
  * 1 Split pg cycle on CCCH is supported by the mobile station
  */
 static const true_false_string gsm_a_gmm_split_on_ccch_value  = {
-  "Split pg cycle on CCCH is supported by the mobile station",
-  "Split pg cycle on CCCH is not supported by the mobile station"
+       "Split pg cycle on CCCH is supported by the mobile station",
+       "Split pg cycle on CCCH is not supported by the mobile station"
 };
 
 /* non-DRX timer, octet 3
@@ -549,7 +537,7 @@ static const value_string gsm_a_gmm_cn_spec_drs_cycle_len_coef_strings[] = {
        { 0, NULL },
 };
 guint8
-de_gmm_drx_param(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_gmm_drx_param(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
@@ -558,7 +546,6 @@ de_gmm_drx_param(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gch
        proto_item  *tf = NULL;
        proto_tree  *tf_tree = NULL;
 
-       len = len;
        curr_offset = offset;
 
        tf = proto_tree_add_text(tree,
@@ -614,10 +601,10 @@ de_gmm_drx_param(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gch
        }
 
        proto_tree_add_text(tf_tree,
-       tvb, curr_offset, 1,
-       "Split PG Cycle Code: (%u) %s",
-       oct,
-       str);
+               tvb, curr_offset, 1,
+               "Split PG Cycle Code: (%u) %s",
+               oct,
+               str);
 
        curr_offset++;
        proto_tree_add_item(tf_tree, hf_gsm_a_gmm_cn_spec_drs_cycle_len_coef, tvb, curr_offset, 1, FALSE);
@@ -635,13 +622,12 @@ de_gmm_drx_param(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gch
  * [7] 10.5.5.7
  */
 static guint8
-de_gmm_ftostby(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_gmm_ftostby(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
        const gchar     *str;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -653,10 +639,10 @@ de_gmm_ftostby(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
        }
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "Force to Standby: (%u) %s",
-       oct&7,
-       str);
+               tvb, curr_offset, 1,
+               "Force to Standby: (%u) %s",
+               oct&7,
+               str);
 
        curr_offset++;
 
@@ -669,13 +655,12 @@ de_gmm_ftostby(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
  * [7] 10.5.5.7
  */
 static guint8
-de_gmm_ftostby_h(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_gmm_ftostby_h(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
        const gchar     *str;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -690,10 +675,10 @@ de_gmm_ftostby_h(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gch
        }
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "Force to Standby: (%u) %s",
-       oct&7,
-       str);
+               tvb, curr_offset, 1,
+               "Force to Standby: (%u) %s",
+               oct&7,
+               str);
 
        curr_offset++;
 
@@ -710,7 +695,9 @@ de_gmm_ptmsi_sig(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
 {
        guint32 curr_offset;
        proto_item      *curr_item;
+
        curr_offset = offset;
+       
        curr_item= proto_tree_add_item(tree,hf_gsm_a_ptmsi_sig,tvb,curr_offset,3,FALSE);
        proto_item_append_text(curr_item,"%s",add_string ? add_string : "");
 
@@ -729,6 +716,7 @@ de_gmm_ptmsi_sig2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
 {
        guint32 curr_offset;
        proto_item      *curr_item;
+
        curr_offset = offset;
 
        curr_item= proto_tree_add_item(tree,hf_gsm_a_ptmsi_sig2,tvb,curr_offset,3,FALSE);
@@ -744,13 +732,12 @@ de_gmm_ptmsi_sig2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
  * [7] 10.5.5.9
  */
 static guint8
-de_gmm_ident_type2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_gmm_ident_type2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
        const gchar     *str;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -760,14 +747,14 @@ de_gmm_ident_type2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
                case 2: str="IMEI"; break;
                case 3: str="IMEISV"; break;
                case 4: str="TMSI"; break;
-       default: str="IMSI";
+               default: str="IMSI";
        }
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "Identity Type 2: (%u) %s",
-       oct&7,
-       str);
+               tvb, curr_offset, 1,
+               "Identity Type 2: (%u) %s",
+               oct&7,
+               str);
 
        curr_offset++;
 
@@ -780,13 +767,12 @@ de_gmm_ident_type2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
  * [7] 10.5.5.10
  */
 static guint8
-de_gmm_imeisv_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_gmm_imeisv_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
        const gchar     *str;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -797,14 +783,14 @@ de_gmm_imeisv_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
        switch ( oct&7 )
        {
                case 1: str="IMEISV requested"; break;
-       default: str="IMEISV not requested";
+               default: str="IMEISV not requested";
        }
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "IMEISV Request: (%u) %s",
-       oct&7,
-       str);
+               tvb, curr_offset, 1,
+               "IMEISV Request: (%u) %s",
+               oct&7,
+               str);
 
        curr_offset++;
 
@@ -829,36 +815,35 @@ de_gmm_rec_npdu_lst(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
 
        do
        {
-           guint32     oct;
-           oct = tvb_get_guint8(tvb, curr_offset);
-           oct <<=8;
-           oct |= tvb_get_guint8(tvb, curr_offset+1);
-           curr_len -= 2;
-           oct <<=8;
-
-           proto_tree_add_text(tree,
-               tvb, curr_offset, 2,
-               "NSAPI %d: 0x%02x (%u)",
-               oct>>20,
-               (oct>>12)&0xff,
-               (oct>>12)&0xff);
-           curr_offset+= 2;
-
-           if ( curr_len > 2 )
-           {
-                   oct |= tvb_get_guint8(tvb, curr_offset+2);
-                   curr_len--;
-                   oct <<= 12;
-
-                   proto_tree_add_text(tree,
-                       tvb, curr_offset-1, 2,
+               guint32 oct;
+               oct = tvb_get_guint8(tvb, curr_offset);
+               oct <<=8;
+               oct |= tvb_get_guint8(tvb, curr_offset+1);
+               curr_len -= 2;
+               oct <<=8;
+
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, 2,
                        "NSAPI %d: 0x%02x (%u)",
                        oct>>20,
                        (oct>>12)&0xff,
                        (oct>>12)&0xff);
-                   curr_offset++;
-           }
+               curr_offset+= 2;
+
+               if ( curr_len > 2 )
+               {
+                       oct |= tvb_get_guint8(tvb, curr_offset+2);
+                       curr_len--;
+                       oct <<= 12;
 
+                       proto_tree_add_text(tree,
+                               tvb, curr_offset-1, 2,
+                               "NSAPI %d: 0x%02x (%u)",
+                               oct>>20,
+                               (oct>>12)&0xff,
+                               (oct>>12)&0xff);
+                       curr_offset++;
+               }
 
        } while ( curr_len > 1 );
 
@@ -913,58 +898,58 @@ de_gmm_ms_net_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
 
        /* bit 8 */
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "GEA1: (%u) %s",
-       oct>>7,
-       answer_gea[oct>>7]);
+               tvb, curr_offset, 1,
+               "GEA1: (%u) %s",
+               oct>>7,
+               answer_gea[oct>>7]);
        oct<<=1;
 
        /* bit 7 */
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "SM capabilities via dedicated channels: (%u) %s",
-       oct>>7,
-       answer_smdch[oct>>7]);
+               tvb, curr_offset, 1,
+               "SM capabilities via dedicated channels: (%u) %s",
+               oct>>7,
+               answer_smdch[oct>>7]);
        oct<<=1;
 
        /* bit 6 */
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "SM capabilities via GPRS channels: (%u) %s",
-       oct>>7,
-       answer_smgprs[oct>>7]);
+               tvb, curr_offset, 1,
+               "SM capabilities via GPRS channels: (%u) %s",
+               oct>>7,
+               answer_smgprs[oct>>7]);
        oct<<=1;
 
        /* bit 5 */
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "UCS2 support: (%u) %s",
-       oct>>7,
-       answer_ucs2[oct>>7]);
+               tvb, curr_offset, 1,
+               "UCS2 support: (%u) %s",
+               oct>>7,
+               answer_ucs2[oct>>7]);
        oct<<=1;
 
        /* bit 4 3 */
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "SS Screening Indicator: (%u) %s",
-       oct>>6,
-       answer_ssid[oct>>6]);
+               tvb, curr_offset, 1,
+               "SS Screening Indicator: (%u) %s",
+               oct>>6,
+               answer_ssid[oct>>6]);
        oct<<=2;
 
        /* bit 2 */
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "SoLSA Capability: (%u) %s",
-       oct>>7,
-       answer_solsa[oct>>7]);
+               tvb, curr_offset, 1,
+               "SoLSA Capability: (%u) %s",
+               oct>>7,
+               answer_solsa[oct>>7]);
        oct<<=1;
 
        /* bit 1 */
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "Revision level indicator: (%u) %s",
-       oct>>7,
-       answer_rev[oct>>7]);
+               tvb, curr_offset, 1,
+               "Revision level indicator: (%u) %s",
+               oct>>7,
+               answer_rev[oct>>7]);
 
        curr_offset++;
 
@@ -973,27 +958,27 @@ de_gmm_ms_net_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
        curr_len--;
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "PFC feature mode: (%u) %s",
-       oct>>7,
-       answer_pfc[oct>>7]);
+               tvb, curr_offset, 1,
+               "PFC feature mode: (%u) %s",
+               oct>>7,
+               answer_pfc[oct>>7]);
        oct<<=1;
 
        for( gea_val=2; gea_val<8 ; gea_val++ )
        {
-           proto_tree_add_text(tree,
-               tvb, curr_offset, 1,
-               "GEA%d: (%u) %s", gea_val,
-               oct>>7,
-               answer_gea[oct>>7]);
-           oct<<=1;
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, 1,
+                       "GEA%d: (%u) %s", gea_val,
+                       oct>>7,
+                       answer_gea[oct>>7]);
+               oct<<=1;
        }
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "LCS VA capability:: (%u) %s",
-       oct>>7,
-       answer_lcs[oct>>7]);
+               tvb, curr_offset, 1,
+               "LCS VA capability:: (%u) %s",
+               oct>>7,
+               answer_lcs[oct>>7]);
 
        curr_offset++;
           
@@ -1006,46 +991,46 @@ de_gmm_ms_net_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
  * [7] 10.5.5.12a
  */
 #define GET_DATA                               /* check if we have enough bits left */ \
-               if ( curr_bits_length < bits_needed ) \
-                       continue; \
-               /* check if oct has enougth bits */ \
-               if ( bits_in_oct < bits_needed ) \
+       if ( curr_bits_length < bits_needed ) \
+               continue; \
+       /* check if oct has enougth bits */ \
+       if ( bits_in_oct < bits_needed ) \
+       { \
+               guint32 tmp_oct; \
+               if ( curr_len == 0 ) \
                { \
-                       guint32 tmp_oct; \
-                       if ( curr_len == 0 ) \
-                       { \
-                               proto_tree_add_text(tf_tree, \
+                       proto_tree_add_text(tf_tree, \
                                tvb, curr_offset, 1, \
                                "Not enough data available"); \
-                       } \
-                       tmp_oct = tvb_get_guint8(tvb, curr_offset); \
-                       oct |= tmp_oct<<(32-8-bits_in_oct); \
-                       curr_len--; \
-                       curr_offset++; \
-                       if ( bits_in_oct != 0 ) \
-                               add_ocetets = 1; \
-                       else \
-                               add_ocetets = 0; \
-                       bits_in_oct += 8; \
                } \
+               tmp_oct = tvb_get_guint8(tvb, curr_offset); \
+               oct |= tmp_oct<<(32-8-bits_in_oct); \
+               curr_len--; \
+               curr_offset++; \
+               if ( bits_in_oct != 0 ) \
+                       add_ocetets = 1; \
                else \
-                       add_ocetets = 0;
+                       add_ocetets = 0; \
+               bits_in_oct += 8; \
+       } \
+       else \
+               add_ocetets = 0;
 
 guint8
 de_gmm_ms_radio_acc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
-       guint32 curr_offset;
-       guint   curr_len;
+       guint32     curr_offset;
+       guint       curr_len;
        proto_item  *tf = NULL;
-       proto_tree      *tf_tree = NULL;
+       proto_tree  *tf_tree = NULL;
        guint32     oct;
        guchar      bits_in_oct;
        guchar      bits_needed;
        guint       bits_length;
        guint       add_ocetets;        /* octets which are covered by one element -1 */
        guint       curr_bits_length;
-       guchar  acc_type;
-       const gchar     *str;
+       guchar      acc_type;
+       const gchar *str;
        gchar       multi_slot_str[64][230] = {
                "Not specified", /* 00 */
                "Max Rx-Slot/TDMA:1 Max Tx-Slot/TDMA:1 Max-Sum-Slot/TDMA:2 Tta:3 Ttb:2 Tra:4 Trb:2 Type:1", /* 01 */
@@ -1112,7 +1097,7 @@ de_gmm_ms_radio_acc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
                "Not specified", /* 62 */
                "Not specified", /* 63 */
        };
-    guint indx = 0;
+       guint indx = 0;
        guchar dtm_gprs_mslot = 0;
        guchar dtm_egprs_mslot = 4;
        gboolean finished = TRUE;
@@ -1125,58 +1110,58 @@ de_gmm_ms_radio_acc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
 
        do
        {
-       /* check for a new round */
-       if (( curr_len*8 + bits_in_oct ) < 11 )
-               break;
+               /* check for a new round */
+               if (( curr_len*8 + bits_in_oct ) < 11 )
+                       break;
 
-       /* now read the first 11 bits */
+               /* now read the first 11 bits */
                curr_bits_length = 11;
-       /*
-        *
-        */
-       if ( curr_len != len )
-       {
-               bits_needed = 1;
-               GET_DATA;
-
-               if (( oct>>(32-bits_needed) ) == 1 )
+               /*
+                *
+                */
+               if ( curr_len != len )
                {
-                       curr_bits_length -= bits_needed;
+                       bits_needed = 1;
+                       GET_DATA;
+
+                       if (( oct>>(32-bits_needed) ) == 1 )
+                       {
+                               curr_bits_length -= bits_needed;
                                oct <<= bits_needed;
-                       bits_in_oct -= bits_needed;
-               
-                       if (( curr_len*8 + bits_in_oct ) < 11 )
-                               break;
-                       curr_bits_length = 11;
-               }
-               else
-               {
-                       curr_bits_length -= bits_needed;
+                               bits_in_oct -= bits_needed;
+                       
+                               if (( curr_len*8 + bits_in_oct ) < 11 )
+                                       break;
+                               curr_bits_length = 11;
+                       }
+                       else
+                       {
+                               curr_bits_length -= bits_needed;
                                oct <<= bits_needed;
-                       bits_in_oct -= bits_needed;
-                       break;
+                               bits_in_oct -= bits_needed;
+                               break;
+                       }
                }
-       }
 
-       indx++;
-       tf = proto_tree_add_text(tree,
-                       tvb, curr_offset, 1,
-               "MS RA capability %d",indx);
+               indx++;
+               tf = proto_tree_add_text(tree,
+                               tvb, curr_offset, 1,
+                               "MS RA capability %d",indx);
 
-       tf_tree = proto_item_add_subtree(tf, ett_gmm_radio_cap );
+               tf_tree = proto_item_add_subtree(tf, ett_gmm_radio_cap );
 
-       /*
-        * Access Technology
-        */
-       bits_needed = 4;
-       GET_DATA;
+               /*
+                * Access Technology
+                */
+               bits_needed = 4;
+               GET_DATA;
 
-       acc_type = oct>>(32-bits_needed);
-       switch ( acc_type )
-       {
-               case 0x00: str="GSM P"; break;
+               acc_type = oct>>(32-bits_needed);
+               switch ( acc_type )
+               {
+                       case 0x00: str="GSM P"; break;
                        case 0x01: str="GSM E --note that GSM E covers GSM P"; break;
-               case 0x02: str="GSM R --note that GSM R covers GSM E and GSM P"; break;
+                       case 0x02: str="GSM R --note that GSM R covers GSM E and GSM P"; break;
                        case 0x03: str="GSM 1800"; break;
                        case 0x04: str="GSM 1900"; break;
                        case 0x05: str="GSM 450"; break;
@@ -1184,214 +1169,214 @@ de_gmm_ms_radio_acc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
                        case 0x07: str="GSM 850"; break;
                        case 0x08: str="GSM 700"; break;
                        case 0x0f: str="Indicates the presence of a list of Additional access technologies"; break;
-               default: str="unknown";
-        }
+                       default: str="unknown";
+               }
 
-       proto_tree_add_text(tf_tree,
-               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+               proto_tree_add_text(tf_tree,
+                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
                        "Access Technology Type: (%u) %s",acc_type,str);
                curr_bits_length -= bits_needed;
                oct <<= bits_needed;
                bits_in_oct -= bits_needed;
 
-       /*
-        * get bits_length
-        */
-       bits_needed = 7;
-       GET_DATA;
+               /*
+                * get bits_length
+                */
+               bits_needed = 7;
+               GET_DATA;
 
-       bits_length = curr_bits_length = oct>>(32-bits_needed);
-       proto_tree_add_text(tf_tree,
-               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-               "Length: 0x%02x bits (%u)",bits_length,bits_length);
+               bits_length = curr_bits_length = oct>>(32-bits_needed);
+               proto_tree_add_text(tf_tree,
+                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                       "Length: 0x%02x bits (%u)",bits_length,bits_length);
                /* This is already done - length doesn't contain this field
                 curr_bits_length -= bits_needed;
                */
                oct <<= bits_needed;
                bits_in_oct -= bits_needed;
 
-       if ( acc_type == 0x0f )
-       {
-               do
+               if ( acc_type == 0x0f )
                {
-               /*
-                * Additional access technologies:
-                */
-                       finished = TRUE; /* Break out of the loop unless proven unfinished */
-
-                       /*
-                        * Presence bit
-                        */
-                       bits_needed = 1;
-                       GET_DATA;
-
-                       /* analyse bits */
-                       switch ( oct>>(32-bits_needed) )
+                       do
                        {
-                               case 0x00: str="Not Present"; finished = TRUE; break;
-                               case 0x01: str="Present"; finished = FALSE; break;
-                               default: str="This should not happen";
-                       }
-
-                       proto_tree_add_text(tf_tree,
-                               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                               "Presence: (%u) %s",oct>>(32-bits_needed),str);
-                       curr_bits_length -= bits_needed;
-                       oct <<= bits_needed;
-                       bits_in_oct -= bits_needed;
+                               /*
+                                * Additional access technologies:
+                                */
+                               finished = TRUE; /* Break out of the loop unless proven unfinished */
 
-                       if (finished)
-                       {
                                /*
-                                * No more valid data, get spare bits if any
+                                * Presence bit
                                 */
-                               while ( curr_bits_length > 0 )
+                               bits_needed = 1;
+                               GET_DATA;
+
+                               /* analyse bits */
+                               switch ( oct>>(32-bits_needed) )
                                {
-                                       if ( curr_bits_length > 8 )
-                                               bits_needed = 8;
-                                       else
-                                               bits_needed = curr_bits_length;
-                                       GET_DATA;
-                                       curr_bits_length -= bits_needed;
-                                       oct <<= bits_needed;
-                                       bits_in_oct -= bits_needed;
+                                       case 0x00: str="Not Present"; finished = TRUE; break;
+                                       case 0x01: str="Present"; finished = FALSE; break;
+                                       default: str="This should not happen";
                                }
-                               continue;
-                       }
 
-               /*
-                * Access Technology
-                */
-               bits_needed = 4;
-               GET_DATA;
+                               proto_tree_add_text(tf_tree,
+                                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                                       "Presence: (%u) %s",oct>>(32-bits_needed),str);
+                               curr_bits_length -= bits_needed;
+                               oct <<= bits_needed;
+                               bits_in_oct -= bits_needed;
 
-               acc_type = oct>>(32-bits_needed);
-               switch ( acc_type )
-               {
-                       case 0x00: str="GSM P"; break;
-                               case 0x01: str="GSM E --note that GSM E covers GSM P"; break;
-                       case 0x02: str="GSM R --note that GSM R covers GSM E and GSM P"; break;
-                               case 0x03: str="GSM 1800"; break;
-                               case 0x04: str="GSM 1900"; break;
-                       case 0x05: str="GSM 450"; break;
-                               case 0x06: str="GSM 480"; break;
-                               case 0x07: str="GSM 850"; break;
-                       case 0x08: str="GSM 700"; break;
-                               case 0x0f: str="Indicates the presence of a list of Additional access technologies"; break;
-                       default: str="unknown";
-                }
+                               if (finished)
+                               {
+                                       /*
+                                        * No more valid data, get spare bits if any
+                                        */
+                                       while ( curr_bits_length > 0 )
+                                       {
+                                               if ( curr_bits_length > 8 )
+                                                       bits_needed = 8;
+                                               else
+                                                       bits_needed = curr_bits_length;
+                                               GET_DATA;
+                                               curr_bits_length -= bits_needed;
+                                               oct <<= bits_needed;
+                                               bits_in_oct -= bits_needed;
+                                       }
+                                       continue;
+                               }
 
-               proto_tree_add_text(tf_tree,
-                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                       "Access Technology Type: (%u) %s",acc_type,str);
-                       curr_bits_length -= bits_needed;
-               oct <<= bits_needed;
-                       bits_in_oct -= bits_needed;
+                               /*
+                                * Access Technology
+                                */
+                               bits_needed = 4;
+                               GET_DATA;
 
-               /*
-                        * RF Power
-                */
-               bits_needed = 3;
-               GET_DATA;
+                               acc_type = oct>>(32-bits_needed);
+                               switch ( acc_type )
+                               {
+                                       case 0x00: str="GSM P"; break;
+                                       case 0x01: str="GSM E --note that GSM E covers GSM P"; break;
+                                       case 0x02: str="GSM R --note that GSM R covers GSM E and GSM P"; break;
+                                       case 0x03: str="GSM 1800"; break;
+                                       case 0x04: str="GSM 1900"; break;
+                                       case 0x05: str="GSM 450"; break;
+                                       case 0x06: str="GSM 480"; break;
+                                       case 0x07: str="GSM 850"; break;
+                                       case 0x08: str="GSM 700"; break;
+                                       case 0x0f: str="Indicates the presence of a list of Additional access technologies"; break;
+                                       default: str="unknown";
+                               }
 
-               /* analyse bits */
-               if ( acc_type == 0x04 ) /* GSM 1900 */
-               {
-                               switch ( oct>>(32-bits_needed) )
-                       {
-                                       case 0x01: str="1 W (30 dBm)"; break;
-                               case 0x02: str="0,25 W (24 dBm)"; break;
-                               case 0x03: str="2 W (33 dBm)"; break;
-                                       default: str="Not specified";
-                       }
-                       }
-               else if ( acc_type == 0x03 )
-                       {
-                               switch ( oct>>(32-bits_needed) )
-                       {
-                                       case 0x01: str="1 W (30 dBm)"; break;
-                                       case 0x02: str="0,25 W (24 dBm)"; break;
-                                       case 0x03: str="4 W (36 dBm)"; break;
-                               default: str="Not specified";
+                               proto_tree_add_text(tf_tree,
+                                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                                       "Access Technology Type: (%u) %s",acc_type,str);
+                               curr_bits_length -= bits_needed;
+                               oct <<= bits_needed;
+                               bits_in_oct -= bits_needed;
+
+                               /*
+                                * RF Power
+                                */
+                               bits_needed = 3;
+                               GET_DATA;
+
+                               /* analyse bits */
+                               if ( acc_type == 0x04 ) /* GSM 1900 */
+                               {
+                                       switch ( oct>>(32-bits_needed) )
+                                       {
+                                               case 0x01: str="1 W (30 dBm)"; break;
+                                               case 0x02: str="0,25 W (24 dBm)"; break;
+                                               case 0x03: str="2 W (33 dBm)"; break;
+                                               default: str="Not specified";
+                                       }
                                }
-               }
-               else if ( acc_type <= 0x08 )
-               {
-                               switch ( oct>>(32-bits_needed) )
+                               else if ( acc_type == 0x03 )
                                {
-                                       case 0x02: str="8 W (39 dBm)"; break;
-                               case 0x03: str="5 W (37 dBm)"; break;
-                                       case 0x04: str="2 W (33 dBm)"; break;
-                                       case 0x05: str="0,8 W (29 dBm)"; break;
-                                       default: str="Not specified";
-                       }
-                       }
-               else
-                               str="Not specified??";
+                                       switch ( oct>>(32-bits_needed) )
+                                       {
+                                               case 0x01: str="1 W (30 dBm)"; break;
+                                               case 0x02: str="0,25 W (24 dBm)"; break;
+                                               case 0x03: str="4 W (36 dBm)"; break;
+                                               default: str="Not specified";
+                                       }
+                               }
+                               else if ( acc_type <= 0x08 )
+                               {
+                                       switch ( oct>>(32-bits_needed) )
+                                       {
+                                               case 0x02: str="8 W (39 dBm)"; break;
+                                               case 0x03: str="5 W (37 dBm)"; break;
+                                               case 0x04: str="2 W (33 dBm)"; break;
+                                               case 0x05: str="0,8 W (29 dBm)"; break;
+                                               default: str="Not specified";
+                                       }
+                               }
+                               else
+                                       str="Not specified??";
 
-               proto_tree_add_text(tf_tree,
-                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                       "RF Power Capability, GMSK Power Class: (%u) %s",oct>>(32-bits_needed),str);
-               curr_bits_length -= bits_needed;
-                       oct <<= bits_needed;
-               bits_in_oct -= bits_needed;
+                               proto_tree_add_text(tf_tree,
+                                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                                       "RF Power Capability, GMSK Power Class: (%u) %s",oct>>(32-bits_needed),str);
+                               curr_bits_length -= bits_needed;
+                               oct <<= bits_needed;
+                               bits_in_oct -= bits_needed;
 
-               /*
-                        * 8PSK Power Class
-                */
-                       bits_needed = 2;
-               GET_DATA;
+                               /*
+                                * 8PSK Power Class
+                                */
+                               bits_needed = 2;
+                               GET_DATA;
 
-               /* analyse bits */
-               switch ( oct>>(32-bits_needed) )
-                       {
-                       case 0x00: str="8PSK modulation not supported for uplink"; break;
-                       case 0x01: str="Power class E1"; break;
-                       case 0x02: str="Power class E2"; break;
-                       case 0x03: str="Power class E3"; break;
-                       default: str="This should not happen";
-               }
+                               /* analyse bits */
+                               switch ( oct>>(32-bits_needed) )
+                               {
+                                       case 0x00: str="8PSK modulation not supported for uplink"; break;
+                                       case 0x01: str="Power class E1"; break;
+                                       case 0x02: str="Power class E2"; break;
+                                       case 0x03: str="Power class E3"; break;
+                                       default: str="This should not happen";
+                               }
 
-                       proto_tree_add_text(tf_tree,
-                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                       "8PSK Power Class: (%u) %s",oct>>(32-bits_needed),str);
-               curr_bits_length -= bits_needed;
-                       oct <<= bits_needed;
-                       bits_in_oct -= bits_needed;
+                               proto_tree_add_text(tf_tree,
+                                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                                       "8PSK Power Class: (%u) %s",oct>>(32-bits_needed),str);
+                               curr_bits_length -= bits_needed;
+                               oct <<= bits_needed;
+                               bits_in_oct -= bits_needed;
 
-               } while (!finished);
-       
-               /* goto next one */
-               continue;
-       }
+                       } while (!finished);
+
+                       /* goto next one */
+                       continue;
+               }
                /*
                 * RF Power
                 */
                bits_needed = 3;
-       GET_DATA;
+               GET_DATA;
 
-       /* analyse bits */
-       if ( acc_type == 0x04 ) /* GSM 1900 */
-       {
+               /* analyse bits */
+               if ( acc_type == 0x04 ) /* GSM 1900 */
+               {
                        switch ( oct>>(32-bits_needed) )
-               {
+                       {
                                case 0x01: str="1 W (30 dBm)"; break;
                                case 0x02: str="0,25 W (24 dBm)"; break;
-                       case 0x03: str="2 W (33 dBm)"; break;
+                               case 0x03: str="2 W (33 dBm)"; break;
                                default: str="Not specified";
                        }
                }
                else if ( acc_type == 0x03 )
                {
                        switch ( oct>>(32-bits_needed) )
-               {
+                       {
                                case 0x01: str="1 W (30 dBm)"; break;
                                case 0x02: str="0,25 W (24 dBm)"; break;
                                case 0x03: str="4 W (36 dBm)"; break;
                                default: str="Not specified";
                        }
                }
-       else if ( acc_type <= 0x08 )
+               else if ( acc_type <= 0x08 )
                {
                        switch ( oct>>(32-bits_needed) )
                        {
@@ -1406,8 +1391,8 @@ de_gmm_ms_radio_acc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
                        str="Not specified??";
 
                proto_tree_add_text(tf_tree,
-               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-               "RF Power Capability, GMSK Power Class: (%u) %s",oct>>(32-bits_needed),str);
+                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                       "RF Power Capability, GMSK Power Class: (%u) %s",oct>>(32-bits_needed),str);
                curr_bits_length -= bits_needed;
                oct <<= bits_needed;
                bits_in_oct -= bits_needed;
@@ -1416,72 +1401,72 @@ de_gmm_ms_radio_acc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
                 * A5 Bits?
                 */
                bits_needed = 1;
-       GET_DATA;
+               GET_DATA;
 
-       /* analyse bits */
+               /* analyse bits */
                if ((oct>>(32-bits_needed))==0)
                {
-               proto_tree_add_text(tf_tree,
-                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                       "A5 Bits: (%u) same values apply for parameters as in the immediately preceding Access capabilities field within this IE",oct>>(32-bits_needed));
-               curr_bits_length -= bits_needed;
+                       proto_tree_add_text(tf_tree,
+                               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                               "A5 Bits: (%u) same values apply for parameters as in the immediately preceding Access capabilities field within this IE",oct>>(32-bits_needed));
+                       curr_bits_length -= bits_needed;
                        oct <<= bits_needed;
-               bits_in_oct -= bits_needed;
+                       bits_in_oct -= bits_needed;
                }
                else
                {
                        int i;
 
-               proto_tree_add_text(tf_tree,
-                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                       "A5 Bits: (%u) A5 bits follows",oct>>(32-bits_needed));
+                       proto_tree_add_text(tf_tree,
+                               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                               "A5 Bits: (%u) A5 bits follows",oct>>(32-bits_needed));
 
-               curr_bits_length -= bits_needed;
+                       curr_bits_length -= bits_needed;
                        oct <<= bits_needed;
                        bits_in_oct -= bits_needed;
                
                        for (i=1; i<= 7 ; i++ )
                        {
-                       /*
-                        * A5 Bits decoding
-                        */
-                       bits_needed = 1;
-                       GET_DATA;
-
-                       /* analyse bits */
-                       switch ( oct>>(32-bits_needed) )
-                       {
-                               case 0x00: str="encryption algorithm not available"; break;
-                               case 0x01: str="encryption algorithm available"; break;
-                               default: str="This should not happen";
-                       }
+                               /*
+                                * A5 Bits decoding
+                                */
+                               bits_needed = 1;
+                               GET_DATA;
 
-                       proto_tree_add_text(tf_tree,
-                               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                               "A5/%d: (%u) %s",i,oct>>(32-bits_needed),str);
-                       curr_bits_length -= bits_needed;
-                               oct <<= bits_needed;
-                       bits_in_oct -= bits_needed;
-                       }
-       }
+                               /* analyse bits */
+                               switch ( oct>>(32-bits_needed) )
+                               {
+                                       case 0x00: str="encryption algorithm not available"; break;
+                                       case 0x01: str="encryption algorithm available"; break;
+                                       default: str="This should not happen";
+                               }
+
+                               proto_tree_add_text(tf_tree,
+                                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                                       "A5/%d: (%u) %s",i,oct>>(32-bits_needed),str);
+                               curr_bits_length -= bits_needed;
+                               oct <<= bits_needed;
+                               bits_in_oct -= bits_needed;
+                       }
+               }
 
                /*
                 * ES IND
                 */
                bits_needed = 1;
-       GET_DATA;
+               GET_DATA;
 
-       /* analyse bits */
-       switch ( oct>>(32-bits_needed) )
+               /* analyse bits */
+               switch ( oct>>(32-bits_needed) )
                {
-               case 0x00: str="controlled early Classmark Sending option is not implemented"; break;
-               case 0x01: str="controlled early Classmark Sending option is implemented"; break;
-               default: str="This should not happen";
+                       case 0x00: str="controlled early Classmark Sending option is not implemented"; break;
+                       case 0x01: str="controlled early Classmark Sending option is implemented"; break;
+                       default: str="This should not happen";
                }
 
                proto_tree_add_text(tf_tree,
-               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-               "Controlled early Classmark Sending: (%u) %s",oct>>(32-bits_needed),str);
+                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                       "Controlled early Classmark Sending: (%u) %s",oct>>(32-bits_needed),str);
                curr_bits_length -= bits_needed;
                oct <<= bits_needed;
                bits_in_oct -= bits_needed;
@@ -1490,19 +1475,19 @@ de_gmm_ms_radio_acc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
                 * PS
                 */
                bits_needed = 1;
-       GET_DATA;
+               GET_DATA;
 
-       /* analyse bits */
-       switch ( oct>>(32-bits_needed) )
+               /* analyse bits */
+               switch ( oct>>(32-bits_needed) )
                {
-               case 0x00: str="PS capability not present"; break;
-               case 0x01: str="PS capability present"; break;
-               default: str="This should not happen";
+                       case 0x00: str="PS capability not present"; break;
+                       case 0x01: str="PS capability present"; break;
+                       default: str="This should not happen";
                }
 
                proto_tree_add_text(tf_tree,
-               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-               "Pseudo Synchronisation: (%u) %s",oct>>(32-bits_needed),str);
+                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                       "Pseudo Synchronisation: (%u) %s",oct>>(32-bits_needed),str);
                curr_bits_length -= bits_needed;
                oct <<= bits_needed;
                bits_in_oct -= bits_needed;
@@ -1511,19 +1496,19 @@ de_gmm_ms_radio_acc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
                 * VGCS
                 */
                bits_needed = 1;
-       GET_DATA;
+               GET_DATA;
 
-       /* analyse bits */
-       switch ( oct>>(32-bits_needed) )
+               /* analyse bits */
+               switch ( oct>>(32-bits_needed) )
                {
-               case 0x00: str="no VGCS capability or no notifications wanted"; break;
-               case 0x01: str="VGCS capability and notifications wanted"; break;
-               default: str="This should not happen";
+                       case 0x00: str="no VGCS capability or no notifications wanted"; break;
+                       case 0x01: str="VGCS capability and notifications wanted"; break;
+                       default: str="This should not happen";
                }
 
                proto_tree_add_text(tf_tree,
-               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-               "Voice Group Call Service: (%u) %s",oct>>(32-bits_needed),str);
+                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                       "Voice Group Call Service: (%u) %s",oct>>(32-bits_needed),str);
                curr_bits_length -= bits_needed;
                oct <<= bits_needed;
                bits_in_oct -= bits_needed;
@@ -1532,19 +1517,19 @@ de_gmm_ms_radio_acc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
                 * VBS
                 */
                bits_needed = 1;
-       GET_DATA;
+               GET_DATA;
 
-       /* analyse bits */
-       switch ( oct>>(32-bits_needed) )
+               /* analyse bits */
+               switch ( oct>>(32-bits_needed) )
                {
-               case 0x00: str="no VBS capability or no notifications wanted"; break;
-               case 0x01: str="VBS capability and notifications wanted"; break;
-               default: str="This should not happen";
+                       case 0x00: str="no VBS capability or no notifications wanted"; break;
+                       case 0x01: str="VBS capability and notifications wanted"; break;
+                       default: str="This should not happen";
                }
 
                proto_tree_add_text(tf_tree,
-               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-               "Voice Broadcast Service: (%u) %s",oct>>(32-bits_needed),str);
+                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                       "Voice Broadcast Service: (%u) %s",oct>>(32-bits_needed),str);
                curr_bits_length -= bits_needed;
                oct <<= bits_needed;
                bits_in_oct -= bits_needed;
@@ -1553,367 +1538,300 @@ de_gmm_ms_radio_acc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
                 * Multislot capability?
                 */
                bits_needed = 1;
-       GET_DATA;
+               GET_DATA;
 
-       /* analyse bits */
+               /* analyse bits */
                if ((oct>>(32-bits_needed))==0)
                {
-               proto_tree_add_text(tf_tree,
-                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                       "Multislot capability: (%u) same values apply for parameters as in the immediately preceding Access capabilities field within this IE",oct>>(32-bits_needed));
-               curr_bits_length -= bits_needed;
+                       proto_tree_add_text(tf_tree,
+                               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                               "Multislot capability: (%u) same values apply for parameters as in the immediately preceding Access capabilities field within this IE",oct>>(32-bits_needed));
+                       curr_bits_length -= bits_needed;
                        oct <<= bits_needed;
-               bits_in_oct -= bits_needed;
+                       bits_in_oct -= bits_needed;
                }
                else
                {
-               proto_tree_add_text(tf_tree,
+                       proto_tree_add_text(tf_tree,
                        tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
                        "Multislot capability: (%u) Multislot capability struct available",oct>>(32-bits_needed));
 
-               curr_bits_length -= bits_needed;
+                       curr_bits_length -= bits_needed;
                        oct <<= bits_needed;
-               bits_in_oct -= bits_needed;
+                       bits_in_oct -= bits_needed;
 
-               /*
+                       /*
                         * HSCSD multislot class?
-                */
-               bits_needed = 1;
-               GET_DATA;
+                        */
+                       bits_needed = 1;
+                       GET_DATA;
 
-               /* analyse bits */
+                       /* analyse bits */
                        if ((oct>>(32-bits_needed))==0)
-               {
-                       proto_tree_add_text(tf_tree,
-                               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                               "HSCSD multislot class: (%u) Bits are not available",oct>>(32-bits_needed));
-                       curr_bits_length -= bits_needed;
+                       {
+                               proto_tree_add_text(tf_tree,
+                                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                                       "HSCSD multislot class: (%u) Bits are not available",oct>>(32-bits_needed));
+                               curr_bits_length -= bits_needed;
                                oct <<= bits_needed;
-                       bits_in_oct -= bits_needed;
-               }
+                               bits_in_oct -= bits_needed;
+                       }
                        else
-               {
-                       curr_bits_length -= bits_needed;
+                       {
+                               curr_bits_length -= bits_needed;
                                oct <<= bits_needed;
-                       bits_in_oct -= bits_needed;
+                               bits_in_oct -= bits_needed;
 
-                       /*
-                        * HSCSD multislot class
+                               /*
+                                * HSCSD multislot class
                                 */
-                       bits_needed = 5;
-                       GET_DATA;
+                               bits_needed = 5;
+                               GET_DATA;
 
-                       /* analyse bits */
-                       proto_tree_add_text(tf_tree,
-                               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                               "HSCSD multislot class: (%u) %s",oct>>(32-bits_needed),multi_slot_str[oct>>(32-bits_needed)]);
-                       curr_bits_length -= bits_needed;
+                               /* analyse bits */
+                               proto_tree_add_text(tf_tree,
+                                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                                       "HSCSD multislot class: (%u) %s",oct>>(32-bits_needed),multi_slot_str[oct>>(32-bits_needed)]);
+                               curr_bits_length -= bits_needed;
                                oct <<= bits_needed;
-                       bits_in_oct -= bits_needed;
-               }
+                               bits_in_oct -= bits_needed;
+                       }
 
-               /*
+                       /*
                         * GPRS multislot class?
-                */
-               bits_needed = 1;
-               GET_DATA;
+                        */
+                       bits_needed = 1;
+                       GET_DATA;
 
-               /* analyse bits */
+                       /* analyse bits */
                        if ((oct>>(32-bits_needed))==0)
-               {
-                       proto_tree_add_text(tf_tree,
-                               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                               "GPRS multislot class: (%u) Bits are not available",oct>>(32-bits_needed));
-                       curr_bits_length -= bits_needed;
+                       {
+                               proto_tree_add_text(tf_tree,
+                                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                                       "GPRS multislot class: (%u) Bits are not available",oct>>(32-bits_needed));
+                               curr_bits_length -= bits_needed;
                                oct <<= bits_needed;
-                       bits_in_oct -= bits_needed;
-               }
+                               bits_in_oct -= bits_needed;
+                       }
                        else
-               {
-                       curr_bits_length -= bits_needed;
+                       {
+                               curr_bits_length -= bits_needed;
                                oct <<= bits_needed;
-                       bits_in_oct -= bits_needed;
+                               bits_in_oct -= bits_needed;
 
-                       /*
-                        * GPRS multislot class
+                               /*
+                                * GPRS multislot class
                                 */
-                       bits_needed = 5;
-                       GET_DATA;
+                               bits_needed = 5;
+                               GET_DATA;
 
-                       /* analyse bits */
-                       proto_tree_add_text(tf_tree,
-                               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                               "GPRS multislot class: (%u) %s",oct>>(32-bits_needed),multi_slot_str[oct>>(32-bits_needed)]);
-                       curr_bits_length -= bits_needed;
+                               /* analyse bits */
+                               proto_tree_add_text(tf_tree,
+                                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                                       "GPRS multislot class: (%u) %s",oct>>(32-bits_needed),multi_slot_str[oct>>(32-bits_needed)]);
+                               curr_bits_length -= bits_needed;
                                oct <<= bits_needed;
-                       bits_in_oct -= bits_needed;
+                               bits_in_oct -= bits_needed;
 
-                       /*
-                        * GPRS Extended Dynamic Allocation Capability
+                               /*
+                                * GPRS Extended Dynamic Allocation Capability
                                 */
-                       bits_needed = 1;
-                       GET_DATA;
+                               bits_needed = 1;
+                               GET_DATA;
 
-                       /* analyse bits */
-                       switch ( oct>>(32-bits_needed) )
-                       {
-                               case 0x00: str="Extended Dynamic Allocation Capability for GPRS is not implemented"; break;
-                               case 0x01: str="Extended Dynamic Allocation Capability for GPRS is implemented"; break;
-                               default: str="This should not happen";
-                       }
-                       proto_tree_add_text(tf_tree,
-                               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                               "GPRS Extended Dynamic Allocation Capability: (%u) %s",oct>>(32-bits_needed),str);
-                       curr_bits_length -= bits_needed;
+                               /* analyse bits */
+                               switch ( oct>>(32-bits_needed) )
+                               {
+                                       case 0x00: str="Extended Dynamic Allocation Capability for GPRS is not implemented"; break;
+                                       case 0x01: str="Extended Dynamic Allocation Capability for GPRS is implemented"; break;
+                                       default: str="This should not happen";
+                               }
+                               proto_tree_add_text(tf_tree,
+                                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                                       "GPRS Extended Dynamic Allocation Capability: (%u) %s",oct>>(32-bits_needed),str);
+                               curr_bits_length -= bits_needed;
                                oct <<= bits_needed;
-                       bits_in_oct -= bits_needed;
-               }
+                               bits_in_oct -= bits_needed;
+                       }
 
-               /*
-                * SMS/SM values
-                */
-               bits_needed = 1;
-               GET_DATA;
+                       /*
+                        * SMS/SM values
+                        */
+                       bits_needed = 1;
+                       GET_DATA;
 
-               /* analyse bits */
+                       /* analyse bits */
                        if ((oct>>(32-bits_needed))==0)
-               {
-                       proto_tree_add_text(tf_tree,
-                               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                               "SMS/SM values: (%u) Bits are not available",oct>>(32-bits_needed));
-                       curr_bits_length -= bits_needed;
+                       {
+                               proto_tree_add_text(tf_tree,
+                                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                                       "SMS/SM values: (%u) Bits are not available",oct>>(32-bits_needed));
+                               curr_bits_length -= bits_needed;
                                oct <<= bits_needed;
-                       bits_in_oct -= bits_needed;
-               }
+                               bits_in_oct -= bits_needed;
+                       }
                        else
-               {
-                       curr_bits_length -= bits_needed;
+                       {
+                               curr_bits_length -= bits_needed;
                                oct <<= bits_needed;
-                       bits_in_oct -= bits_needed;
+                               bits_in_oct -= bits_needed;
 
-                       /*
-                        * Switch-Measure-Switch value
+                               /*
+                                * Switch-Measure-Switch value
                                 */
-                       bits_needed = 4;
-                       GET_DATA;
+                               bits_needed = 4;
+                               GET_DATA;
 
-                       /* analyse bits */
-                       proto_tree_add_text(tf_tree,
-                               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                               "Switch-Measure-Switch value: (%u) %d/4 timeslot (~%d microseconds)",
+                               /* analyse bits */
+                               proto_tree_add_text(tf_tree,
+                                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                                       "Switch-Measure-Switch value: (%u) %d/4 timeslot (~%d microseconds)",
                                oct>>(32-bits_needed),oct>>(32-bits_needed),(oct>>(32-bits_needed))*144);
-                       curr_bits_length -= bits_needed;
+                               curr_bits_length -= bits_needed;
                                oct <<= bits_needed;
-                       bits_in_oct -= bits_needed;
+                               bits_in_oct -= bits_needed;
 
-                       /*
-                        * Switch-Measure value
+                               /*
+                                * Switch-Measure value
                                 */
-                       bits_needed = 4;
-                       GET_DATA;
+                               bits_needed = 4;
+                               GET_DATA;
 
-                       /* analyse bits */
-                       proto_tree_add_text(tf_tree,
-                               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                               "Switch-Measure value: (%u) %d/4 timeslot (~%d microseconds)",
+                               /* analyse bits */
+                               proto_tree_add_text(tf_tree,
+                                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                                       "Switch-Measure value: (%u) %d/4 timeslot (~%d microseconds)",
                                oct>>(32-bits_needed),oct>>(32-bits_needed),(oct>>(32-bits_needed))*144);
-                       curr_bits_length -= bits_needed;
+                               curr_bits_length -= bits_needed;
                                oct <<= bits_needed;
-                       bits_in_oct -= bits_needed;
-               }
+                               bits_in_oct -= bits_needed;
+                       }
 
-               /*
+                       /*
                         * ECSD multislot class?
-                */
-               bits_needed = 1;
-               GET_DATA;
-
-               /* analyse bits */
-                       if ((oct>>(32-bits_needed))==0)
-               {
-                       proto_tree_add_text(tf_tree,
-                               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                               "ECSD multislot class: (%u) Bits are not available",oct>>(32-bits_needed));
-                       curr_bits_length -= bits_needed;
-                               oct <<= bits_needed;
-                       bits_in_oct -= bits_needed;
-               }
-                       else
-               {
-                       curr_bits_length -= bits_needed;
-                               oct <<= bits_needed;
-                       bits_in_oct -= bits_needed;
-
-                       /*
-                        * ECSD multislot class
-                                */
-                       bits_needed = 5;
+                        */
+                       bits_needed = 1;
                        GET_DATA;
 
                        /* analyse bits */
-                       proto_tree_add_text(tf_tree,
-                               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                               "ECSD multislot class: (%u) %s",oct>>(32-bits_needed),multi_slot_str[oct>>(32-bits_needed)]);
-                       curr_bits_length -= bits_needed;
-                               oct <<= bits_needed;
-                       bits_in_oct -= bits_needed;
-               }
-
-               /*
-                        * EGPRS multislot class?
-                */
-               bits_needed = 1;
-               GET_DATA;
-
-               /* analyse bits */
                        if ((oct>>(32-bits_needed))==0)
-               {
-                       proto_tree_add_text(tf_tree,
-                               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                               "EGPRS multislot class: (%u) Bits are not available",oct>>(32-bits_needed));
-                       curr_bits_length -= bits_needed;
+                       {
+                               proto_tree_add_text(tf_tree,
+                                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                                       "ECSD multislot class: (%u) Bits are not available",oct>>(32-bits_needed));
+                               curr_bits_length -= bits_needed;
                                oct <<= bits_needed;
-                       bits_in_oct -= bits_needed;
-               }
+                               bits_in_oct -= bits_needed;
+                       }
                        else
-               {
-                       curr_bits_length -= bits_needed;
+                       {
+                               curr_bits_length -= bits_needed;
                                oct <<= bits_needed;
-                       bits_in_oct -= bits_needed;
+                               bits_in_oct -= bits_needed;
 
-                       /*
-                        * EGPRS multislot class
+                               /*
+                                * ECSD multislot class
                                 */
-                       bits_needed = 5;
-                       GET_DATA;
+                               bits_needed = 5;
+                               GET_DATA;
 
-                       /* analyse bits */
-                       proto_tree_add_text(tf_tree,
-                               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                               "EGPRS multislot class: (%u) %s",oct>>(32-bits_needed),multi_slot_str[oct>>(32-bits_needed)]);
-                       curr_bits_length -= bits_needed;
+                               /* analyse bits */
+                               proto_tree_add_text(tf_tree,
+                                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                                       "ECSD multislot class: (%u) %s",oct>>(32-bits_needed),multi_slot_str[oct>>(32-bits_needed)]);
+                               curr_bits_length -= bits_needed;
                                oct <<= bits_needed;
-                       bits_in_oct -= bits_needed;
+                               bits_in_oct -= bits_needed;
+                       }
 
-                       /*
-                        * EGPRS Extended Dynamic Allocation Capability
-                                */
-                       bits_needed = 1;
+                       /*
+                        * EGPRS multislot class?
+                        */
+                       bits_needed = 1;
                        GET_DATA;
 
                        /* analyse bits */
-                       switch ( oct>>(32-bits_needed) )
-                       {
-                               case 0x00: str="Extended Dynamic Allocation Capability for EGPRS is not implemented"; break;
-                               case 0x01: str="Extended Dynamic Allocation Capability for EGPRS is implemented"; break;
-                               default: str="This should not happen";
-                       }
-                       proto_tree_add_text(tf_tree,
-                               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                               "EGPRS Extended Dynamic Allocation Capability: (%u) %s",oct>>(32-bits_needed),str);
-                       curr_bits_length -= bits_needed;
-                               oct <<= bits_needed;
-                       bits_in_oct -= bits_needed;
-               }
-
-               /*
-                * DTM GPRS Multi Slot Class ?
-               */
-               bits_needed = 1;
-               GET_DATA;
-
-               /* analyse bits */
                        if ((oct>>(32-bits_needed))==0)
-               {
-                       proto_tree_add_text(tf_tree,
-                               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                               "DTM GPRS Multi Slot Class: (%u) Bits are not available",oct>>(32-bits_needed));
-                       curr_bits_length -= bits_needed;
+                       {
+                               proto_tree_add_text(tf_tree,
+                                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                                       "EGPRS multislot class: (%u) Bits are not available",oct>>(32-bits_needed));
+                               curr_bits_length -= bits_needed;
                                oct <<= bits_needed;
-                       bits_in_oct -= bits_needed;
-               }
+                               bits_in_oct -= bits_needed;
+                       }
                        else
-               {
-                       curr_bits_length -= bits_needed;
+                       {
+                               curr_bits_length -= bits_needed;
                                oct <<= bits_needed;
-                       bits_in_oct -= bits_needed;
+                               bits_in_oct -= bits_needed;
 
-                       /*
-                        * DTM GPRS Multi Slot Class
+                               /*
+                                * EGPRS multislot class
                                 */
-                       bits_needed = 2;
-                       GET_DATA;
-
-                       /* analyse bits */
-                       dtm_gprs_mslot = oct>>(32-bits_needed);
+                               bits_needed = 5;
+                               GET_DATA;
 
-                       switch ( oct>>(32-bits_needed) )
-                       {
-                               case 0: str="Unused. If received, the network shall interpret this as Multislot class 5"; break;
-                               case 1: str="Multislot class 5 supported"; break;
-                               case 2: str="Multislot class 9 supported"; break;
-                               case 3: str="Multislot class 11 supported"; break;
-                               default: str="This should not happen";
-                       }
-               
-                       proto_tree_add_text(tf_tree,
+                               /* analyse bits */
+                               proto_tree_add_text(tf_tree,
                                tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                               "DTM GPRS Multi Slot Class: (%u) %s",oct>>(32-bits_needed),str);
-                       curr_bits_length -= bits_needed;
+                               "EGPRS multislot class: (%u) %s",oct>>(32-bits_needed),multi_slot_str[oct>>(32-bits_needed)]);
+                               curr_bits_length -= bits_needed;
                                oct <<= bits_needed;
-                       bits_in_oct -= bits_needed;
+                               bits_in_oct -= bits_needed;
 
-                       /*
-                        * Single Slot DTM
+                               /*
+                                * EGPRS Extended Dynamic Allocation Capability
                                 */
-                       bits_needed = 1;
-                       GET_DATA;
+                               bits_needed = 1;
+                               GET_DATA;
 
-                       /* analyse bits */
-                       switch ( oct>>(32-bits_needed) )
-                       {
-                               case 0x00: str="Single Slot DTM not supported"; break;
-                               case 0x01: str="Single Slot DTM supported"; break;
-                               default: str="This should not happen";
-                       }
-                       proto_tree_add_text(tf_tree,
-                               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                               "Single Slot DTM: (%u) %s",oct>>(32-bits_needed),str);
-                       curr_bits_length -= bits_needed;
+                               /* analyse bits */
+                               switch ( oct>>(32-bits_needed) )
+                               {
+                                       case 0x00: str="Extended Dynamic Allocation Capability for EGPRS is not implemented"; break;
+                                       case 0x01: str="Extended Dynamic Allocation Capability for EGPRS is implemented"; break;
+                                       default: str="This should not happen";
+                               }
+                               proto_tree_add_text(tf_tree,
+                                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                                       "EGPRS Extended Dynamic Allocation Capability: (%u) %s",oct>>(32-bits_needed),str);
+                               curr_bits_length -= bits_needed;
                                oct <<= bits_needed;
-                       bits_in_oct -= bits_needed;
+                               bits_in_oct -= bits_needed;
+                       }
 
                        /*
-                        * DTM EGPRS Multi Slot Class ?
+                        * DTM GPRS Multi Slot Class ?
                        */
-                       bits_needed = 1;
+                       bits_needed = 1;
                        GET_DATA;
 
                        /* analyse bits */
-                       dtm_egprs_mslot = oct>>(32-bits_needed);
-
-                               if ((oct>>(32-bits_needed))==0)
-                       {
-                               proto_tree_add_text(tf_tree,
+                       if ((oct>>(32-bits_needed))==0)
+                       {
+                               proto_tree_add_text(tf_tree,
                                        tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                                       "DTM EGPRS Multi Slot Class: (%u) Bits are not available",oct>>(32-bits_needed));
-                               curr_bits_length -= bits_needed;
-                                       oct <<= bits_needed;
+                                       "DTM GPRS Multi Slot Class: (%u) Bits are not available",oct>>(32-bits_needed));
+                               curr_bits_length -= bits_needed;
+                               oct <<= bits_needed;
+                               bits_in_oct -= bits_needed;
+                       }
+                       else
+                       {
+                               curr_bits_length -= bits_needed;
+                               oct <<= bits_needed;
                                bits_in_oct -= bits_needed;
-                       }
-                       else
-                       {
-                               curr_bits_length -= bits_needed;
-                                       oct <<= bits_needed;
-                               bits_in_oct -= bits_needed;
 
-                               /*
-                                * DTM EGPRS Multi Slot Class
-                                */
-                               bits_needed = 2;
+                               /*
+                                * DTM GPRS Multi Slot Class
+                                */
+                               bits_needed = 2;
                                GET_DATA;
 
                                /* analyse bits */
+                               dtm_gprs_mslot = oct>>(32-bits_needed);
+
                                switch ( oct>>(32-bits_needed) )
                                {
                                        case 0: str="Unused. If received, the network shall interpret this as Multislot class 5"; break;
@@ -1923,79 +1841,146 @@ de_gmm_ms_radio_acc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
                                        default: str="This should not happen";
                                }
                
-                               proto_tree_add_text(tf_tree,
+                               proto_tree_add_text(tf_tree,
+                                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                                       "DTM GPRS Multi Slot Class: (%u) %s",oct>>(32-bits_needed),str);
+                               curr_bits_length -= bits_needed;
+                               oct <<= bits_needed;
+                               bits_in_oct -= bits_needed;
+
+                               /*
+                                * Single Slot DTM
+                                */
+                               bits_needed = 1;
+                               GET_DATA;
+
+                               /* analyse bits */
+                               switch ( oct>>(32-bits_needed) )
+                               {
+                                       case 0x00: str="Single Slot DTM not supported"; break;
+                                       case 0x01: str="Single Slot DTM supported"; break;
+                                       default: str="This should not happen";
+                               }
+                               proto_tree_add_text(tf_tree,
                                        tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                                       "DTM EGPRS Multi Slot Class: (%u) %s",oct>>(32-bits_needed),str);
-                               curr_bits_length -= bits_needed;
+                                       "Single Slot DTM: (%u) %s",oct>>(32-bits_needed),str);
+                               curr_bits_length -= bits_needed;
+                               oct <<= bits_needed;
+                               bits_in_oct -= bits_needed;
+
+                               /*
+                                * DTM EGPRS Multi Slot Class ?
+                               */
+                               bits_needed = 1;
+                               GET_DATA;
+
+                               /* analyse bits */
+                               dtm_egprs_mslot = oct>>(32-bits_needed);
+
+                               if ((oct>>(32-bits_needed))==0)
+                               {
+                                       proto_tree_add_text(tf_tree,
+                                               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                                               "DTM EGPRS Multi Slot Class: (%u) Bits are not available",oct>>(32-bits_needed));
+                                       curr_bits_length -= bits_needed;
+                                       oct <<= bits_needed;
+                                       bits_in_oct -= bits_needed;
+                               }
+                               else
+                               {
+                                       curr_bits_length -= bits_needed;
+                                       oct <<= bits_needed;
+                                       bits_in_oct -= bits_needed;
+
+                                       /*
+                                        * DTM EGPRS Multi Slot Class
+                                        */
+                                       bits_needed = 2;
+                                       GET_DATA;
+
+                                       /* analyse bits */
+                                       switch ( oct>>(32-bits_needed) )
+                                       {
+                                               case 0: str="Unused. If received, the network shall interpret this as Multislot class 5"; break;
+                                               case 1: str="Multislot class 5 supported"; break;
+                                               case 2: str="Multislot class 9 supported"; break;
+                                               case 3: str="Multislot class 11 supported"; break;
+                                               default: str="This should not happen";
+                                       }
+
+                                       proto_tree_add_text(tf_tree,
+                                               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                                               "DTM EGPRS Multi Slot Class: (%u) %s",oct>>(32-bits_needed),str);
+                                       curr_bits_length -= bits_needed;
                                        oct <<= bits_needed;
-                               bits_in_oct -= bits_needed;
+                                       bits_in_oct -= bits_needed;
+                               }
                        }
                }
-       }
 
                /*
                 * 8PSK Power Capability?
                 */
                bits_needed = 1;
-       GET_DATA;
+               GET_DATA;
 
-       /* analyse bits */
+               /* analyse bits */
                if ((oct>>(32-bits_needed))==0)
                {
-               proto_tree_add_text(tf_tree,
-                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                       "8PSK Power Capability: (%u) Bits are not available",oct>>(32-bits_needed));
-               curr_bits_length -= bits_needed;
+                       proto_tree_add_text(tf_tree,
+                               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                               "8PSK Power Capability: (%u) Bits are not available",oct>>(32-bits_needed));
+                       curr_bits_length -= bits_needed;
                        oct <<= bits_needed;
-               bits_in_oct -= bits_needed;
+                       bits_in_oct -= bits_needed;
                }
                else
                {
-               curr_bits_length -= bits_needed;
+                       curr_bits_length -= bits_needed;
                        oct <<= bits_needed;
-               bits_in_oct -= bits_needed;
+                       bits_in_oct -= bits_needed;
 
-               /*
+                       /*
                         * 8PSK Power Capability
-                */
+                        */
                        bits_needed = 2;
-               GET_DATA;
+                       GET_DATA;
 
-               /* analyse bits */
-               switch ( oct>>(32-bits_needed) )
+                       /* analyse bits */
+                       switch ( oct>>(32-bits_needed) )
                        {
-                       case 0x00: str="Reserved"; break;
-                       case 0x01: str="Power class E1"; break;
-                       case 0x02: str="Power class E2"; break;
-                       case 0x03: str="Power class E3"; break;
-                       default: str="This should not happen";
-               }
+                               case 0x00: str="Reserved"; break;
+                               case 0x01: str="Power class E1"; break;
+                               case 0x02: str="Power class E2"; break;
+                               case 0x03: str="Power class E3"; break;
+                               default: str="This should not happen";
+                       }
 
                        proto_tree_add_text(tf_tree,
-                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                       "8PSK Power Capability: (%u) %s",oct>>(32-bits_needed),str);
-               curr_bits_length -= bits_needed;
+                               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                               "8PSK Power Capability: (%u) %s",oct>>(32-bits_needed),str);
+                       curr_bits_length -= bits_needed;
                        oct <<= bits_needed;
                        bits_in_oct -= bits_needed;
-       }
+               }
 
                /*
                 * COMPACT Interference Measurement Capability
                 */
                bits_needed = 1;
-       GET_DATA;
+               GET_DATA;
 
-       /* analyse bits */
-       switch ( oct>>(32-bits_needed) )
+               /* analyse bits */
+               switch ( oct>>(32-bits_needed) )
                {
-               case 0x00: str="COMPACT Interference Measurement Capability is not implemented"; break;
-               case 0x01: str="COMPACT Interference Measurement Capability is implemented"; break;
-               default: str="This should not happen";
+                       case 0x00: str="COMPACT Interference Measurement Capability is not implemented"; break;
+                       case 0x01: str="COMPACT Interference Measurement Capability is implemented"; break;
+                       default: str="This should not happen";
                }
 
                proto_tree_add_text(tf_tree,
-               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-               "COMPACT Interference Measurement Capability: (%u) %s",oct>>(32-bits_needed),str);
+                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                       "COMPACT Interference Measurement Capability: (%u) %s",oct>>(32-bits_needed),str);
                curr_bits_length -= bits_needed;
                oct <<= bits_needed;
                bits_in_oct -= bits_needed;
@@ -2004,19 +1989,19 @@ de_gmm_ms_radio_acc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
                 * Revision Level Indicator
                 */
                bits_needed = 1;
-       GET_DATA;
+               GET_DATA;
 
-       /* analyse bits */
-       switch ( oct>>(32-bits_needed) )
+               /* analyse bits */
+               switch ( oct>>(32-bits_needed) )
                {
-               case 0x00: str="The ME is Release 98 or older"; break;
-               case 0x01: str="The ME is Release 99 onwards"; break;
-               default: str="This should not happen";
+                       case 0x00: str="The ME is Release 98 or older"; break;
+                       case 0x01: str="The ME is Release 99 onwards"; break;
+                       default: str="This should not happen";
                }
 
                proto_tree_add_text(tf_tree,
-               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-               "Revision Level Indicator: (%u) %s",oct>>(32-bits_needed),str);
+                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                       "Revision Level Indicator: (%u) %s",oct>>(32-bits_needed),str);
                curr_bits_length -= bits_needed;
                oct <<= bits_needed;
                bits_in_oct -= bits_needed;
@@ -2025,19 +2010,19 @@ de_gmm_ms_radio_acc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
                 * UMTS FDD Radio Access Technology Capability
                 */
                bits_needed = 1;
-       GET_DATA;
+               GET_DATA;
 
-       /* analyse bits */
-       switch ( oct>>(32-bits_needed) )
+               /* analyse bits */
+               switch ( oct>>(32-bits_needed) )
                {
-               case 0x00: str="UMTS FDD not supported"; break;
-               case 0x01: str="UMTS FDD supported"; break;
-               default: str="This should not happen";
+                       case 0x00: str="UMTS FDD not supported"; break;
+                       case 0x01: str="UMTS FDD supported"; break;
+                       default: str="This should not happen";
                }
 
                proto_tree_add_text(tf_tree,
-               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-               "UMTS FDD Radio Access Technology Capability: (%u) %s",oct>>(32-bits_needed),str);
+                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                       "UMTS FDD Radio Access Technology Capability: (%u) %s",oct>>(32-bits_needed),str);
                curr_bits_length -= bits_needed;
                oct <<= bits_needed;
                bits_in_oct -= bits_needed;
@@ -2046,19 +2031,19 @@ de_gmm_ms_radio_acc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
                 * UMTS 3.84 Mcps TDD Radio Access Technology Capability
                 */
                bits_needed = 1;
-       GET_DATA;
+               GET_DATA;
 
        /* analyse bits */
-       switch ( oct>>(32-bits_needed) )
+               switch ( oct>>(32-bits_needed) )
                {
-               case 0x00: str="UMTS 3.84 Mcps TDD not supported"; break;
-               case 0x01: str="UMTS 3.84 Mcps TDD supported"; break;
-               default: str="This should not happen";
+                       case 0x00: str="UMTS 3.84 Mcps TDD not supported"; break;
+                       case 0x01: str="UMTS 3.84 Mcps TDD supported"; break;
+                       default: str="This should not happen";
                }
 
                proto_tree_add_text(tf_tree,
-               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-               "UMTS 3.84 Mcps TDD Radio Access Technology Capability: (%u) %s",oct>>(32-bits_needed),str);
+                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                       "UMTS 3.84 Mcps TDD Radio Access Technology Capability: (%u) %s",oct>>(32-bits_needed),str);
                curr_bits_length -= bits_needed;
                oct <<= bits_needed;
                bits_in_oct -= bits_needed;
@@ -2067,19 +2052,19 @@ de_gmm_ms_radio_acc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
                 * CDMA 2000 Radio Access Technology Capability
                 */
                bits_needed = 1;
-       GET_DATA;
+               GET_DATA;
 
-       /* analyse bits */
-       switch ( oct>>(32-bits_needed) )
+               /* analyse bits */
+               switch ( oct>>(32-bits_needed) )
                {
-               case 0x00: str="CDMA 2000 not supported"; break;
-               case 0x01: str="CDMA 2000 supported"; break;
-               default: str="This should not happen";
+                       case 0x00: str="CDMA 2000 not supported"; break;
+                       case 0x01: str="CDMA 2000 supported"; break;
+                       default: str="This should not happen";
                }
 
                proto_tree_add_text(tf_tree,
-               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-               "CDMA 2000 Radio Access Technology Capability: (%u) %s",oct>>(32-bits_needed),str);
+                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                       "CDMA 2000 Radio Access Technology Capability: (%u) %s",oct>>(32-bits_needed),str);
                curr_bits_length -= bits_needed;
                oct <<= bits_needed;
                bits_in_oct -= bits_needed;
@@ -2088,19 +2073,19 @@ de_gmm_ms_radio_acc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
                 * UMTS 1.28 Mcps TDD Radio Access Technology Capability
                 */
                bits_needed = 1;
-       GET_DATA;
+               GET_DATA;
 
-       /* analyse bits */
-       switch ( oct>>(32-bits_needed) )
+               /* analyse bits */
+               switch ( oct>>(32-bits_needed) )
                {
-               case 0x00: str="UMTS 1.28 Mcps TDD not supported"; break;
-               case 0x01: str="UMTS 1.28 Mcps TDD supported"; break;
-               default: str="This should not happen";
+                       case 0x00: str="UMTS 1.28 Mcps TDD not supported"; break;
+                       case 0x01: str="UMTS 1.28 Mcps TDD supported"; break;
+                       default: str="This should not happen";
                }
 
                proto_tree_add_text(tf_tree,
-               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-               "UMTS 1.28 Mcps TDD Radio Access Technology Capability: (%u) %s",oct>>(32-bits_needed),str);
+                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                       "UMTS 1.28 Mcps TDD Radio Access Technology Capability: (%u) %s",oct>>(32-bits_needed),str);
                curr_bits_length -= bits_needed;
                oct <<= bits_needed;
                bits_in_oct -= bits_needed;
@@ -2109,14 +2094,14 @@ de_gmm_ms_radio_acc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
                 * GERAN Feature Package 1
                 */
                bits_needed = 1;
-       GET_DATA;
+               GET_DATA;
 
-       /* analyse bits */
-       switch ( oct>>(32-bits_needed) )
+               /* analyse bits */
+               switch ( oct>>(32-bits_needed) )
                {
-               case 0x00: str="GERAN feature package 1 not supported"; break;
-               case 0x01: str="GERAN feature package 1 supported"; break;
-               default: str="This should not happen";
+                       case 0x00: str="GERAN feature package 1 not supported"; break;
+                       case 0x01: str="GERAN feature package 1 supported"; break;
+                       default: str="This should not happen";
                }
 
                proto_tree_add_text(tf_tree,
@@ -2130,32 +2115,32 @@ de_gmm_ms_radio_acc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
                 * Extended DTM (E)GPRS Multi Slot Class
                 */
                bits_needed = 1;
-       GET_DATA;
+               GET_DATA;
 
-       /* analyse bits */
+               /* analyse bits */
                if ((oct>>(32-bits_needed))==0)
                {
-               proto_tree_add_text(tf_tree,
-                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                       "Extended DTM (E)GPRS Multi Slot Class: (%u) Bits are not available",oct>>(32-bits_needed));
-               curr_bits_length -= bits_needed;
+                       proto_tree_add_text(tf_tree,
+                               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                               "Extended DTM (E)GPRS Multi Slot Class: (%u) Bits are not available",oct>>(32-bits_needed));
+                       curr_bits_length -= bits_needed;
                        oct <<= bits_needed;
-               bits_in_oct -= bits_needed;
+                       bits_in_oct -= bits_needed;
                }
                else
                {
-               curr_bits_length -= bits_needed;
+                       curr_bits_length -= bits_needed;
                        oct <<= bits_needed;
-               bits_in_oct -= bits_needed;
+                       bits_in_oct -= bits_needed;
 
-               /*
+                       /*
                         * Extended DTM GPRS Multi Slot Class
-                */
+                        */
                        bits_needed = 2;
-               GET_DATA;
+                       GET_DATA;
 
-               /* analyse bits */
-               switch ( (oct>>(32-bits_needed))|(dtm_gprs_mslot<<4) )
+                       /* analyse bits */
+                       switch ( (oct>>(32-bits_needed))|(dtm_gprs_mslot<<4) )
                        {
                                case 0x00: str="Unused. If received, it shall be interpreted as Multislot class 5 supported"; break;
                                case 0x01: str="Unused. If received, it shall be interpreted as Multislot class 5 supported"; break;
@@ -2174,29 +2159,29 @@ de_gmm_ms_radio_acc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
                                case 0x32: str="Unused. If received, it shall be interpreted as Multislot class 11 supported"; break;
                                case 0x33: str="Unused. If received, it shall be interpreted as Multislot class 11 supported"; break;
                                default: str="This should not happen";
-               }
+                       }
 
                        proto_tree_add_text(tf_tree,
-                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                       "Extended DTM GPRS Multi Slot Class: (%u) %s",oct>>(32-bits_needed),str);
-               curr_bits_length -= bits_needed;
+                               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                               "Extended DTM GPRS Multi Slot Class: (%u) %s",oct>>(32-bits_needed),str);
+                       curr_bits_length -= bits_needed;
                        oct <<= bits_needed;
                        bits_in_oct -= bits_needed;
 
-               if ( dtm_egprs_mslot <= 3 )
-               {
-                       /*
+                       if ( dtm_egprs_mslot <= 3 )
+                       {
+                               /*
                                 * Extended DTM EGPRS Multi Slot Class
-                        */
-                       bits_needed = 2;
-                       GET_DATA;
+                                */
+                               bits_needed = 2;
+                               GET_DATA;
 
-                       /* analyse bits */
-                       switch ( (oct>>(32-bits_needed))|(dtm_egprs_mslot<<4) )
+                               /* analyse bits */
+                               switch ( (oct>>(32-bits_needed))|(dtm_egprs_mslot<<4) )
                                {
                                        case 0x00: str="Unused. If received, it shall be interpreted as Multislot class 5 supported"; break;
                                        case 0x01: str="Unused. If received, it shall be interpreted as Multislot class 5 supported"; break;
-                               case 0x02: str="Unused. If received, it shall be interpreted as Multislot class 5 supported"; break;
+                                       case 0x02: str="Unused. If received, it shall be interpreted as Multislot class 5 supported"; break;
                                        case 0x03: str="Unused. If received, it shall be interpreted as Multislot class 5 supported"; break;
                                        case 0x10: str="Multislot class 5 supported"; break;
                                        case 0x11: str="Multislot class 6 supported"; break;
@@ -2208,37 +2193,37 @@ de_gmm_ms_radio_acc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
                                        case 0x23: str="Unused. If received, it shall be interpreted as Multislot class 9 supported"; break;
                                        case 0x30: str="Multislot class 11 supported"; break;
                                        case 0x31: str="Unused. If received, it shall be interpreted as Multislot class 11 supported"; break;
-                               case 0x32: str="Unused. If received, it shall be interpreted as Multislot class 11 supported"; break;
+                                       case 0x32: str="Unused. If received, it shall be interpreted as Multislot class 11 supported"; break;
                                        case 0x33: str="Unused. If received, it shall be interpreted as Multislot class 11 supported"; break;
                                        default: str="This should not happen";
-                       }
+                               }
 
-                       proto_tree_add_text(tf_tree,
-                               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                               "Extended DTM EGPRS Multi Slot Class: (%u) %s",oct>>(32-bits_needed),str);
-                       curr_bits_length -= bits_needed;
+                               proto_tree_add_text(tf_tree,
+                                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                                       "Extended DTM EGPRS Multi Slot Class: (%u) %s",oct>>(32-bits_needed),str);
+                               curr_bits_length -= bits_needed;
                                oct <<= bits_needed;
                                bits_in_oct -= bits_needed;
+                       }
                }
-       }
 
                /*
                 * Modulation based multislot class support
                 */
                bits_needed = 1;
-       GET_DATA;
+               GET_DATA;
 
-       /* analyse bits */
-       switch ( oct>>(32-bits_needed) )
+               /* analyse bits */
+               switch ( oct>>(32-bits_needed) )
                {
-               case 0x00: str="Modulation based multislot class not supported"; break;
-               case 0x01: str="Modulation based multislot class supported"; break;
-               default: str="This should not happen";
+                       case 0x00: str="Modulation based multislot class not supported"; break;
+                       case 0x01: str="Modulation based multislot class supported"; break;
+                       default: str="This should not happen";
                }
 
                proto_tree_add_text(tf_tree,
-               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-               "Modulation based multislot class support: (%u) %s",oct>>(32-bits_needed),str);
+                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                       "Modulation based multislot class support: (%u) %s",oct>>(32-bits_needed),str);
                curr_bits_length -= bits_needed;
                oct <<= bits_needed;
                bits_in_oct -= bits_needed;
@@ -2247,57 +2232,56 @@ de_gmm_ms_radio_acc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
                 * High Multislot Capability
                 */
                bits_needed = 1;
-       GET_DATA;
+               GET_DATA;
 
-       /* analyse bits */
+               /* analyse bits */
                if ((oct>>(32-bits_needed))==0)
                {
-               proto_tree_add_text(tf_tree,
-                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                       "High Multislot Capability: (%u) Bits are not available",oct>>(32-bits_needed));
-               curr_bits_length -= bits_needed;
+                       proto_tree_add_text(tf_tree,
+                               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                               "High Multislot Capability: (%u) Bits are not available",oct>>(32-bits_needed));
+                       curr_bits_length -= bits_needed;
                        oct <<= bits_needed;
-               bits_in_oct -= bits_needed;
+                       bits_in_oct -= bits_needed;
                }
                else
                {
-               curr_bits_length -= bits_needed;
+                       curr_bits_length -= bits_needed;
                        oct <<= bits_needed;
-               bits_in_oct -= bits_needed;
+                       bits_in_oct -= bits_needed;
 
-               /*
+                       /*
                         * High Multislot Capability
-                */
+                        */
                        bits_needed = 2;
-               GET_DATA;
+                       GET_DATA;
 
-               /* analyse bits */
+                       /* analyse bits */
                        proto_tree_add_text(tf_tree,
                        tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
                        "High Multislot Capability: 0x%02x (%u) - This field effect all other multislot fields. To understand the value please read TS 24.008 5.6.0 Release 5 Chap 10.5.5.12 Page 406",oct>>(32-bits_needed),oct>>(32-bits_needed));
-               curr_bits_length -= bits_needed;
+                       curr_bits_length -= bits_needed;
                        oct <<= bits_needed;
                        bits_in_oct -= bits_needed;
-
-       }
+               }
 
                /*
                 * GERAN Iu Mode Capability
                 */
                bits_needed = 1;
-       GET_DATA;
+               GET_DATA;
 
-       /* analyse bits */
-       switch ( oct>>(32-bits_needed) )
+               /* analyse bits */
+               switch ( oct>>(32-bits_needed) )
                {
-               case 0x00: str="GERAN Iu mode not supported"; break;
-               case 0x01: str="GERAN Iu mode supported"; break;
-               default: str="This should not happen";
+                       case 0x00: str="GERAN Iu mode not supported"; break;
+                       case 0x01: str="GERAN Iu mode supported"; break;
+                       default: str="This should not happen";
                }
 
                proto_tree_add_text(tf_tree,
-               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-               "GERAN Iu Mode Capability: (%u) %s",oct>>(32-bits_needed),str);
+                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                       "GERAN Iu Mode Capability: (%u) %s",oct>>(32-bits_needed),str);
                curr_bits_length -= bits_needed;
                oct <<= bits_needed;
                bits_in_oct -= bits_needed;
@@ -2306,86 +2290,86 @@ de_gmm_ms_radio_acc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
                 * GMSK/8-PSK Multislot Power Profile
                 */
                bits_needed = 1;
-       GET_DATA;
+               GET_DATA;
 
-       /* analyse bits */
+               /* analyse bits */
                if ((oct>>(32-bits_needed))==0)
                {
-               proto_tree_add_text(tf_tree,
-                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                       "GMSK/8-PSK Multislot Power Profile: (%u) Bits are not available",oct>>(32-bits_needed));
-               curr_bits_length -= bits_needed;
+                       proto_tree_add_text(tf_tree,
+                               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                               "GMSK/8-PSK Multislot Power Profile: (%u) Bits are not available",oct>>(32-bits_needed));
+                       curr_bits_length -= bits_needed;
                        oct <<= bits_needed;
-               bits_in_oct -= bits_needed;
+                       bits_in_oct -= bits_needed;
                }
                else
                {
-               curr_bits_length -= bits_needed;
+                       curr_bits_length -= bits_needed;
                        oct <<= bits_needed;
-               bits_in_oct -= bits_needed;
+                       bits_in_oct -= bits_needed;
 
-               /*
+                       /*
                         * GMSK Multislot Power Profile
-                */
+                        */
                        bits_needed = 2;
-               GET_DATA;
+                       GET_DATA;
 
-               /* analyse bits */
-               switch ( oct>>(32-bits_needed) )
-               {
-                       case 0x00: str="GMSK_MULTISLOT_POWER_PROFILE 0"; break;
-                       case 0x01: str="GMSK_MULTISLOT_POWER_PROFILE 1"; break;
-                       case 0x02: str="GMSK_MULTISLOT_POWER_PROFILE 2"; break;
-                       case 0x03: str="GMSK_MULTISLOT_POWER_PROFILE 3"; break;
-                       default: str="This should not happen";
-               }
+                       /* analyse bits */
+                       switch ( oct>>(32-bits_needed) )
+                       {
+                               case 0x00: str="GMSK_MULTISLOT_POWER_PROFILE 0"; break;
+                               case 0x01: str="GMSK_MULTISLOT_POWER_PROFILE 1"; break;
+                               case 0x02: str="GMSK_MULTISLOT_POWER_PROFILE 2"; break;
+                               case 0x03: str="GMSK_MULTISLOT_POWER_PROFILE 3"; break;
+                               default: str="This should not happen";
+                       }
        
                        proto_tree_add_text(tf_tree,
-                       tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
-                       "GMSK Multislot Power Profile: (%u) %s",oct>>(32-bits_needed),str);
-               curr_bits_length -= bits_needed;
+                               tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
+                               "GMSK Multislot Power Profile: (%u) %s",oct>>(32-bits_needed),str);
+                       curr_bits_length -= bits_needed;
                        oct <<= bits_needed;
                        bits_in_oct -= bits_needed;
 
-               /*
+                       /*
                         * 8-PSK Multislot Power Profile
-                */
+                        */
                        bits_needed = 2;
-               GET_DATA;
+                       GET_DATA;
 
-               /* analyse bits */
-               switch ( oct>>(32-bits_needed) )
-               {
-                       case 0x00: str="8-PSK_MULTISLOT_POWER_PROFILE 0"; break;
-                       case 0x01: str="8-PSK_MULTISLOT_POWER_PROFILE 1"; break;
-                       case 0x02: str="8-PSK_MULTISLOT_POWER_PROFILE 2"; break;
-                       case 0x03: str="8-PSK_MULTISLOT_POWER_PROFILE 3"; break;
-                       default: str="This should not happen";
-               }
+                       /* analyse bits */
+                       switch ( oct>>(32-bits_needed) )
+                       {
+                               case 0x00: str="8-PSK_MULTISLOT_POWER_PROFILE 0"; break;
+                               case 0x01: str="8-PSK_MULTISLOT_POWER_PROFILE 1"; break;
+                               case 0x02: str="8-PSK_MULTISLOT_POWER_PROFILE 2"; break;
+                               case 0x03: str="8-PSK_MULTISLOT_POWER_PROFILE 3"; break;
+                               default: str="This should not happen";
+                       }
        
                        proto_tree_add_text(tf_tree,
                        tvb, curr_offset-1-add_ocetets, 1+add_ocetets,
                        "8-PSK Multislot Power Profile: (%u) %s",oct>>(32-bits_needed),str);
-               curr_bits_length -= bits_needed;
+                       curr_bits_length -= bits_needed;
                        oct <<= bits_needed;
                        bits_in_oct -= bits_needed;
 
-       }
+               }
 
-       /*
-        * we are too long ... so jump over it
-        */
-       while ( curr_bits_length > 0 )
-       {
-               if ( curr_bits_length > 8 )
-                       bits_needed = 8;
-               else
-                       bits_needed = curr_bits_length;
-               GET_DATA;
-               curr_bits_length -= bits_needed;
+               /*
+                * we are too long ... so jump over it
+                */
+               while ( curr_bits_length > 0 )
+               {
+                       if ( curr_bits_length > 8 )
+                               bits_needed = 8;
+                       else
+                               bits_needed = curr_bits_length;
+                       GET_DATA;
+                       curr_bits_length -= bits_needed;
                        oct <<= bits_needed;
-               bits_in_oct -= bits_needed;
-       }
+                       bits_in_oct -= bits_needed;
+               }
 
        } while ( 1 );
 
@@ -2400,13 +2384,12 @@ de_gmm_ms_radio_acc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
  * [7] 10.5.5.14
  */
 static guint8
-de_gmm_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_gmm_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
        const gchar     *str;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -2463,14 +2446,14 @@ de_gmm_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *
                case 0x64: str="Conditional IE error"; break;
                case 0x65: str="Message not compatible with the protocol state"; break;
                case 0x6f: str="Protocol error, unspecified"; break;
-       default: str="Protocol error, unspecified";
+               default: str="Protocol error, unspecified";
        }
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "gmm Cause: (%u) %s",
-       oct,
-       str);
+               tvb, curr_offset, 1,
+               "gmm Cause: (%u) %s",
+               oct,
+               str);
 
        curr_offset++;
 
@@ -2483,18 +2466,16 @@ de_gmm_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *
  * [7] 10.5.5.15 Routing area identification
  */
 guint8
-de_gmm_rai(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_gmm_rai(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
-    proto_tree         *subtree;
-    proto_item         *item;
-
+       proto_tree      *subtree;
+       proto_item      *item;
        guint32 mcc;
        guint32 mnc;
        guint32 lac;
        guint32 rac;
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        mcc = (tvb_get_guint8(tvb, curr_offset) & 0x0f) <<8;
@@ -2529,13 +2510,12 @@ de_gmm_rai(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *ad
  * [7] 10.5.5.17
  */
 static guint8
-de_gmm_update_res(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_gmm_update_res(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
        const gchar     *str;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -2551,10 +2531,10 @@ de_gmm_update_res(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
        }
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "Update Result: (%u) %s",
-       oct&7,
-       str);
+               tvb, curr_offset, 1,
+               "Update Result: (%u) %s",
+               oct&7,
+               str);
 
        curr_offset++;
 
@@ -2567,7 +2547,7 @@ de_gmm_update_res(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
  * [7] 10.5.5.18
  */
 static guint8
-de_gmm_update_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_gmm_update_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint8  oct_ciph;
@@ -2575,9 +2555,8 @@ de_gmm_update_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
        const gchar     *str_follow;
        const gchar     *str_update;
        proto_item  *tf = NULL;
-       proto_tree      *tf_tree = NULL;
+       proto_tree        *tf_tree = NULL;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -2606,22 +2585,22 @@ de_gmm_update_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
        tf_tree = proto_item_add_subtree(tf, ett_gmm_update_type );
 
        proto_tree_add_text(tf_tree,
-       tvb, curr_offset, 1,
-       "Type: (%u) %s",
-       oct&7,
-       str_update);
+               tvb, curr_offset, 1,
+               "Type: (%u) %s",
+               oct&7,
+               str_update);
        proto_tree_add_text(tf_tree,
-       tvb, curr_offset, 1,
-       "Follow: (%u) %s",
-       (oct>>3)&1,
-       str_follow);
+               tvb, curr_offset, 1,
+               "Follow: (%u) %s",
+               (oct>>3)&1,
+               str_follow);
 
        /* The ciphering key sequence number is added here */
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "Ciphering key sequence number: 0x%02x (%u)",
-       oct_ciph,
-       oct_ciph);
+               tvb, curr_offset, 1,
+               "Ciphering key sequence number: 0x%02x (%u)",
+               oct_ciph,
+               oct_ciph);
 
        curr_offset++;
 
@@ -2634,21 +2613,20 @@ de_gmm_update_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
  * [7] 10.5.5.19
  */
 static guint8
-de_gmm_ac_ref_nr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_gmm_ac_ref_nr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "A&C reference number: 0x%02x (%u)",
-       oct&0xf,
-       oct&0xf);
+               tvb, curr_offset, 1,
+               "A&C reference number: 0x%02x (%u)",
+               oct&0xf,
+               oct&0xf);
 
        curr_offset++;
 
@@ -2661,12 +2639,11 @@ de_gmm_ac_ref_nr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gch
  * [7] 10.5.5.19
  */
 static guint8
-de_gmm_ac_ref_nr_h(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_gmm_ac_ref_nr_h(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -2675,10 +2652,10 @@ de_gmm_ac_ref_nr_h(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
        oct >>= 4;
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "A&C reference number: 0x%02x (%u)",
-       oct,
-       oct);
+               tvb, curr_offset, 1,
+               "A&C reference number: 0x%02x (%u)",
+               oct,
+               oct);
 
        curr_offset++;
 
@@ -2691,14 +2668,13 @@ de_gmm_ac_ref_nr_h(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
  * [8] 10.5.5.20
  */
 static guint8
-de_gmm_service_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_gmm_service_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint8  oct_ciph;
        guint32 curr_offset;
        const gchar *str;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -2718,16 +2694,16 @@ de_gmm_service_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
 
        /* The ciphering key sequence number is added here */
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "Ciphering key sequence number: 0x%02x (%u)",
-       oct_ciph,
-       oct_ciph);
+               tvb, curr_offset, 1,
+               "Ciphering key sequence number: 0x%02x (%u)",
+               oct_ciph,
+               oct_ciph);
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "Service Type: (%u) %s",
-       oct&7,
-       str);
+               tvb, curr_offset, 1,
+               "Service Type: (%u) %s",
+               oct&7,
+               str);
 
        curr_offset++;
 
@@ -2740,11 +2716,10 @@ de_gmm_service_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
  * [7] 10.5.5.21
  */
 static guint8
-de_gmm_cell_notfi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_gmm_cell_notfi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        proto_tree_add_text(tree,
@@ -2760,7 +2735,7 @@ de_gmm_cell_notfi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
  * [7] 10.5.5.22
  */
 static guint8
-de_gmm_ps_lcs_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_gmm_ps_lcs_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
@@ -2770,7 +2745,6 @@ de_gmm_ps_lcs_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
        gchar   str_gps[2][40]={ "MS assisted GPS not supported",
                                "MS assisted GPS supported" };
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -2778,35 +2752,35 @@ de_gmm_ps_lcs_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
        oct <<=3;   /* move away the spare bits */
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "OTD-A: (%u) %s",
-       oct>>7,
-       str_otd[oct>>7]);
-       oct <<=1;
+               tvb, curr_offset, 1,
+               "OTD-A: (%u) %s",
+               oct>>7,
+               str_otd[oct>>7]);
+               oct <<=1;
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "OTD-B: (%u) %s",
-       oct>>7,
-       str_otd[oct>>7]);
-       oct <<=1;
+               tvb, curr_offset, 1,
+               "OTD-B: (%u) %s",
+               oct>>7,
+               str_otd[oct>>7]);
+               oct <<=1;
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "GPS-A: (%u) %s",
-       oct>>7,
-       str_gps[oct>>7]);
-       oct <<=1;
+               tvb, curr_offset, 1,
+               "GPS-A: (%u) %s",
+               oct>>7,
+               str_gps[oct>>7]);
+               oct <<=1;
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "GPS-B: (%u) %s",
-       oct>>7,
-       str_gps[oct>>7]);
-       oct <<=1;
+               tvb, curr_offset, 1,
+               "GPS-B: (%u) %s",
+               oct>>7,
+               str_gps[oct>>7]);
+               oct <<=1;
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "GPS-C: (%u) %s",
-       oct>>7,
-       str_gps[oct>>7]);
+               tvb, curr_offset, 1,
+               "GPS-C: (%u) %s",
+               oct>>7,
+               str_gps[oct>>7]);
 
        curr_offset++;
 
@@ -2819,13 +2793,12 @@ de_gmm_ps_lcs_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
  * [7] 10.5.5.23
  */
 static guint8
-de_gmm_net_feat_supp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_gmm_net_feat_supp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
        const gchar     *str;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -2837,10 +2810,10 @@ de_gmm_net_feat_supp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
        }
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "Network Feature Support: (%u) %s",
-       (oct>>3)&1,
-       str);
+               tvb, curr_offset, 1,
+               "Network Feature Support: (%u) %s",
+               (oct>>3)&1,
+               str);
 
        curr_offset++;
 
@@ -2851,11 +2824,10 @@ de_gmm_net_feat_supp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
 
 /* [7] 10.5.24 Inter RAT information container */
 static guint8
-de_gmm_rat_info_container(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_gmm_rat_info_container(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
 /* The value part of the Inter RAT information container information element is the INTER RAT HANDOVER INFO as
@@ -2870,17 +2842,16 @@ defined in 3GPP TS 25.331 [23c]. If this field includes padding bits, they are d
  * [7] 10.5.7.1
  */
 static guint8
-de_gc_context_stat(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_gc_context_stat(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint16 pdp_nr;
        guint32 curr_offset;
        proto_item  *tf = NULL;
-       proto_tree      *tf_tree = NULL;
+       proto_tree  *tf_tree = NULL;
 
        gchar   str[2][20]={ "PDP-INACTIVE", "PDP-ACTIVE" };
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -2895,17 +2866,17 @@ de_gc_context_stat(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
 
        for ( pdp_nr=0;pdp_nr<16; pdp_nr++ )
        {
-                       if ( pdp_nr == 8 )
-                       {
-                               curr_offset++;
-                               oct = tvb_get_guint8(tvb, curr_offset);
-                       }
-           proto_tree_add_text(tf_tree,
-               tvb, curr_offset, 1,
-               "NSAPI %d: (%u) %s",pdp_nr,
-               oct&1,
-               str[oct&1]);
-           oct>>=1;
+               if ( pdp_nr == 8 )
+               {
+                       curr_offset++;
+                       oct = tvb_get_guint8(tvb, curr_offset);
+               }
+               proto_tree_add_text(tf_tree,
+                       tvb, curr_offset, 1,
+                       "NSAPI %d: (%u) %s",pdp_nr,
+                       oct&1,
+                       str[oct&1]);
+               oct>>=1;
        }
 
        curr_offset++;
@@ -2919,13 +2890,12 @@ de_gc_context_stat(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
  * [7] 10.5.7.2
  */
 static guint8
-de_gc_radio_prio(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_gc_radio_prio(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
        const gchar     *str;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -2940,10 +2910,10 @@ de_gc_radio_prio(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gch
        }
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "Radio Priority (PDP or SMS): (%u) %s",
-       oct&7,
-       str);
+               tvb, curr_offset, 1,
+               "Radio Priority (PDP or SMS): (%u) %s",
+               oct&7,
+               str);
 
        curr_offset++;
 
@@ -2954,14 +2924,13 @@ de_gc_radio_prio(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gch
  * [7] 10.5.7.3
  */
 static guint8
-de_gc_timer(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_gc_timer(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint16 val;
        guint32 curr_offset;
        const gchar     *str;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -2974,18 +2943,18 @@ de_gc_timer(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *a
                case 1: str="min"; break;
                case 2: str="min"; val*=6; break;
                case 7:
-           proto_tree_add_text(tree,
-               tvb, curr_offset, 1,
-               "GPRS Timer: timer is deactivated");
+                       proto_tree_add_text(tree,
+                               tvb, curr_offset, 1,
+                               "GPRS Timer: timer is deactivated");
 
                default: str="min";
        }
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "GPRS Timer: (%u) %u %s",
-       oct, val,
-       str);
+               tvb, curr_offset, 1,
+               "GPRS Timer: (%u) %u %s",
+               oct, val,
+               str);
 
        curr_offset++;
 
@@ -2998,14 +2967,13 @@ de_gc_timer(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *a
  * [7] 10.5.7.4
  */
 static guint8
-de_gc_timer2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len _U_)
+de_gc_timer2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string, int string_len _U_)
 {
        guint8  oct;
        guint16 val;
        guint32 curr_offset;
        const gchar     *str;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -3018,36 +2986,34 @@ de_gc_timer2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *
                case 1: str="min"; break;
                case 2: str="min"; val*=6; break;
                case 7:
-           proto_tree_add_text(tree,
-               tvb, curr_offset, 1,
-               "GPRS Timer: timer is deactivated");
+                       proto_tree_add_text(tree,
+                       tvb, curr_offset, 1,
+                       "GPRS Timer: timer is deactivated");
 
                default: str="min";
        }
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "GPRS Timer: (%u) %u %s %s",
-       oct, val,
-       str, add_string ? add_string : "");
+               tvb, curr_offset, 1,
+               "GPRS Timer: (%u) %u %s %s",
+               oct, val,
+               str, add_string ? add_string : "");
 
        curr_offset++;
 
        return(curr_offset - offset);
 }
 
-
 /*
  * [7] 10.5.7.5
  */
 static guint8
-de_gc_radio_prio2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_gc_radio_prio2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
        const gchar     *str;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -3065,10 +3031,10 @@ de_gc_radio_prio2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
        }
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "Radio Priority (TOM8): (%u) %s",
-       oct&7,
-       str);
+               tvb, curr_offset, 1,
+               "Radio Priority (TOM8): (%u) %s",
+               oct&7,
+               str);
 
        curr_offset++;
 
@@ -3079,11 +3045,10 @@ de_gc_radio_prio2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
  * [8] 10.5.7.6 MBMS context status
  */
 static guint8
-de_gc_mbms_context_stat(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_gc_mbms_context_stat(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        proto_tree_add_text(tree,tvb, curr_offset, len, "MBMS context status - Not decoded");
@@ -3099,13 +3064,12 @@ guint8
 de_sm_apn(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len _U_)
 {
        guint32 curr_offset;
-       guint       curr_len;
+       guint   curr_len;
        const guint8    *cptr;
-       guint8      str[MAX_APN_LENGTH+1];
+       guint8    str[MAX_APN_LENGTH+1];
 
        cptr = tvb_get_ptr(tvb, offset, len);
 
-
        curr_offset = offset;
 
        /* init buffer and copy it */
@@ -3135,20 +3099,19 @@ de_sm_apn(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
  * [7] 10.5.6.2
  */
 static guint8
-de_sm_nsapi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len _U_)
+de_sm_nsapi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "NSAPI: 0x%02x (%u) %s",
-       oct&0x0f, oct&0x0f,add_string ? add_string : "");
+               tvb, curr_offset, 1,
+               "NSAPI: 0x%02x (%u) %s",
+               oct&0x0f, oct&0x0f,add_string ? add_string : "");
 
        curr_offset++;
 
@@ -3180,81 +3143,83 @@ de_sm_pco(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
        {
                guchar e_len;
                guint16 prot;
-       tvbuff_t *l3_tvb;
-       dissector_handle_t handle = NULL;
-       static packet_info p_info;
-
-       prot = tvb_get_guint8(tvb, curr_offset);
-       prot <<= 8;
-       prot |= tvb_get_guint8(tvb, curr_offset+1);
-       e_len = tvb_get_guint8(tvb, curr_offset+2);
+               tvbuff_t *l3_tvb;
+               dissector_handle_t handle = NULL;
+               static packet_info p_info;
+
+               prot = tvb_get_guint8(tvb, curr_offset);
+               prot <<= 8;
+               prot |= tvb_get_guint8(tvb, curr_offset+1);
+               e_len = tvb_get_guint8(tvb, curr_offset+2);
                curr_len-=3;
                curr_offset+=3;
 
                switch ( prot )
                {
                        case 0x0001:
-               {
-                   proto_tree_add_text(tree,tvb, curr_offset-3, 2, "Parameter: (%u) P-CSCF Address" , prot );
-                   proto_tree_add_text(tree,tvb, curr_offset-1, 1, "Length: 0x%02x (%u)", e_len , e_len);
-
-                   tvb_get_ipv6(tvb, curr_offset, &ipv6_addr);
-                   proto_tree_add_text(tree,
-                       tvb, curr_offset, 16,
-                       "IPv6: %s", ip6_to_str(&ipv6_addr));
-                   break;
-               }
+                       {
+                               proto_tree_add_text(tree,tvb, curr_offset-3, 2, "Parameter: (%u) P-CSCF Address" , prot );
+                               proto_tree_add_text(tree,tvb, curr_offset-1, 1, "Length: 0x%02x (%u)", e_len , e_len);
+
+                               tvb_get_ipv6(tvb, curr_offset, &ipv6_addr);
+                               proto_tree_add_text(tree,
+                               tvb, curr_offset, 16,
+                               "IPv6: %s", ip6_to_str(&ipv6_addr));
+                               break;
+                       }
                        case 0x0002:
-                   proto_tree_add_text(tree,tvb, curr_offset-3, 2, "Parameter: (%u) IM CN Subsystem Signaling Flag" , prot );
-                   proto_tree_add_text(tree,tvb, curr_offset-1, 1, "Length: 0x%02x (%u)", e_len , e_len);
-                   break;
+                               proto_tree_add_text(tree,tvb, curr_offset-3, 2, "Parameter: (%u) IM CN Subsystem Signaling Flag" , prot );
+                               proto_tree_add_text(tree,tvb, curr_offset-1, 1, "Length: 0x%02x (%u)", e_len , e_len);
+                               break;
                        case 0x0003:
                        {
-                   proto_tree_add_text(tree,tvb, curr_offset-3, 2, "Parameter: (%u) DNS Server Address" , prot );
-                   proto_tree_add_text(tree,tvb, curr_offset-1, 1, "Length: 0x%02x (%u)", e_len , e_len);
-
-                   tvb_get_ipv6(tvb, curr_offset, &ipv6_addr);
-                   proto_tree_add_text(tree,
-                       tvb, curr_offset, 16,
-                       "IPv6: %s", ip6_to_str(&ipv6_addr));
-                   break;
-               }
-                       case 0x0004:
-                   proto_tree_add_text(tree,tvb, curr_offset-3, 2, "Parameter: (%u) Policy Control rejection code" , prot );
-                   proto_tree_add_text(tree,tvb, curr_offset-1, 1, "Length: 0x%02x (%u)", e_len , e_len);
-                   oct = tvb_get_guint8(tvb, curr_offset);
-                   proto_tree_add_text(tree,tvb, curr_offset, 1, "Reject Code: 0x%02x (%u)", e_len , e_len);
-                   break;
-               default:
-                       handle = dissector_get_port_handle ( gprs_sm_pco_subdissector_table , prot );
-                       if ( handle != NULL )
-                       {
-                               proto_tree_add_text(tree,tvb, curr_offset-3, 2, "Protocol: (%u) %s" ,
-                                       prot , val_to_str(prot, ppp_vals, "Unknown"));
+                               proto_tree_add_text(tree,tvb, curr_offset-3, 2, "Parameter: (%u) DNS Server Address" , prot );
                                proto_tree_add_text(tree,tvb, curr_offset-1, 1, "Length: 0x%02x (%u)", e_len , e_len);
-                               /*
-                                * dissect the embedded message
-                                */
-                               l3_tvb = tvb_new_subset(tvb, curr_offset, e_len, e_len);
-                               call_dissector(handle, l3_tvb ,  &p_info  , tree );
+
+                               tvb_get_ipv6(tvb, curr_offset, &ipv6_addr);
+                               proto_tree_add_text(tree,
+                               tvb, curr_offset, 16,
+                               "IPv6: %s", ip6_to_str(&ipv6_addr));
+                               break;
                        }
-                       else
-                       {
-                               proto_tree_add_text(tree,tvb, curr_offset-3, 2, "Protocol/Parameter: (%u) unknwown" , prot );
+                       case 0x0004:
+                               proto_tree_add_text(tree,tvb, curr_offset-3, 2, "Parameter: (%u) Policy Control rejection code" , prot );
                                proto_tree_add_text(tree,tvb, curr_offset-1, 1, "Length: 0x%02x (%u)", e_len , e_len);
-                               /*
-                               * dissect the embedded DATA message
-                               */
-                               l3_tvb = tvb_new_subset(tvb, curr_offset, e_len, e_len);
-                               call_dissector(data_handle, l3_tvb, &p_info , tree);
+                               oct = tvb_get_guint8(tvb, curr_offset);
+                               proto_tree_add_text(tree,tvb, curr_offset, 1, "Reject Code: 0x%02x (%u)", e_len , e_len);
+                               break;
+                       default:
+                       {
+                               handle = dissector_get_port_handle ( gprs_sm_pco_subdissector_table , prot );
+                               if ( handle != NULL )
+                               {
+                                       proto_tree_add_text(tree,tvb, curr_offset-3, 2, "Protocol: (%u) %s" ,
+                                       prot , val_to_str(prot, ppp_vals, "Unknown"));
+                                       proto_tree_add_text(tree,tvb, curr_offset-1, 1, "Length: 0x%02x (%u)", e_len , e_len);
+                                       /*
+                                        * dissect the embedded message
+                                        */
+                                       l3_tvb = tvb_new_subset(tvb, curr_offset, e_len, e_len);
+                                       call_dissector(handle, l3_tvb ,  &p_info  , tree );
+                               }
+                               else
+                               {
+                                       proto_tree_add_text(tree,tvb, curr_offset-3, 2, "Protocol/Parameter: (%u) unknwown" , prot );
+                                       proto_tree_add_text(tree,tvb, curr_offset-1, 1, "Length: 0x%02x (%u)", e_len , e_len);
+                                       /*
+                                       * dissect the embedded DATA message
+                                       */
+                                       l3_tvb = tvb_new_subset(tvb, curr_offset, e_len, e_len);
+                                       call_dissector(data_handle, l3_tvb, &p_info , tree);
+                               }
                        }
                }
 
-       curr_len-= e_len;
-       curr_offset+= e_len;
+               curr_len-= e_len;
+               curr_offset+= e_len;
        }
        curr_offset+= curr_len;
-          
+
        EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
 
        return(curr_offset - offset);
@@ -3269,8 +3234,8 @@ de_sm_pdp_addr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
        guint32 curr_offset;
        guint   curr_len;
        const gchar     *str;
-       guchar      oct;
-       guchar      oct2;
+       guchar    oct;
+       guchar    oct2;
        struct e_in6_addr ipv6_addr;
 
        curr_len = len;
@@ -3294,26 +3259,26 @@ de_sm_pdp_addr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
 
        if (( oct&0x0f ) == 0 )
        {
-           switch ( oct2 )
-           {
+               switch ( oct2 )
+               {
                        case 0x00: str="Reserved, used in earlier version of this protocol"; break;
                        case 0x01: str="PDP-type PPP"; break;
                        default: str="reserved";
-                   }
+               }
        }
        else if (( oct&0x0f) == 1 )
        {
-                   switch ( oct2 )
-                   {
-               case 0x21: str="IPv4 address"; break;
+               switch ( oct2 )
+               {
+                       case 0x21: str="IPv4 address"; break;
                        case 0x57: str="IPv6 address"; break;
                        default: str="IPv4 address";
-                   }
+               }
        }
        else if ((oct2==0) && (( oct&0x0f) == 0x0f ))
-                   str="Empty";
+               str="Empty";
        else
-                       str="Not specified";    
+               str="Not specified";    
 
        proto_tree_add_text(tree,
                tvb, curr_offset+1, 1,
@@ -3321,80 +3286,79 @@ de_sm_pdp_addr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
 
        if (( len == 2 ) && (( oct2 == 0x21 ) || ( oct2 == 0x57 )))
        {
-                       proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                        tvb, curr_offset+1, 1,
                        "Dynamic addressing");
-       
-           curr_offset+= curr_len;
 
-           EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
+               curr_offset+= curr_len;
 
-                  return(curr_offset - offset);
+               EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
+
+               return(curr_offset - offset);
        }
        else if ( len == 2 )
        {
-                       proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                        tvb, curr_offset+1, 1,
                        "No PDP address is included");
-       
-           curr_offset+= curr_len;
 
-           EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
+               curr_offset+= curr_len;
 
-                  return(curr_offset - offset);
+               EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
+
+               return(curr_offset - offset);
        }
        else if ( len < 2 )
        {
-                       proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                        tvb, curr_offset+1, 1,
                        "Length is bogus - should be >= 2");
-       
-           curr_offset+= curr_len;
 
-           EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
+               curr_offset+= curr_len;
 
-                  return(curr_offset - offset);
+               EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
+
+               return(curr_offset - offset);
        }
 
        if ((( oct2 == 0x21 ) && ( len != 6 )) ||
           (( oct2 == 0x57 ) && ( len != 18 )))
        {
-                       proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                        tvb, curr_offset+2, len-2,
                        "Can't display address");
        }
 
-
        switch ( oct2 )
        {
                case 0x21:
                        if (len-2 != 4) {
                                proto_tree_add_text(tree,
-                   tvb, curr_offset+2, 0,
-                           "IPv4: length is wrong");
-                   } else {
+                               tvb, curr_offset+2, 0,
+                                       "IPv4: length is wrong");
+                       } else {
                                proto_tree_add_text(tree,
-                           tvb, curr_offset+2, len-2,
-                           "IPv4: %s", ip_to_str(tvb_get_ptr(tvb, offset+2, 4)));
-                   }
-                   break;
+                                       tvb, curr_offset+2, len-2,
+                                       "IPv4: %s", ip_to_str(tvb_get_ptr(tvb, offset+2, 4)));
+                       }
+                       break;
 
                case 0x57:
                        if (len-2 != 16) {
                                proto_tree_add_text(tree,
-                   tvb, curr_offset+2, 0,
-                           "IPv6: length is wrong");
-                   } else {
-                       tvb_get_ipv6(tvb, curr_offset+2, &ipv6_addr);
+                                       tvb, curr_offset+2, 0,
+                                       "IPv6: length is wrong");
+                       } else {
+                               tvb_get_ipv6(tvb, curr_offset+2, &ipv6_addr);
                                proto_tree_add_text(tree,
                                        tvb, curr_offset+2, len-2,
-                           "IPv6: %s", ip6_to_str(&ipv6_addr));
-                   }
-                   break;
+                                       "IPv6: %s", ip6_to_str(&ipv6_addr));
+                       }
+                       break;
        }
 
        curr_offset+= curr_len;
-          
+       
        EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
 
        return(curr_offset - offset);
@@ -3497,7 +3461,7 @@ de_sm_qos(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
 {
        guint32 curr_offset;
        guint   curr_len;
-       guchar       oct, tmp_oct;
+       guchar     oct, tmp_oct;
        const gchar     *str;
 
        curr_len = len;
@@ -3505,17 +3469,17 @@ de_sm_qos(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
 
        oct = tvb_get_guint8(tvb, curr_offset);
 
-    proto_tree_add_item(tree, hf_gsm_a_qos_delay_cls, tvb, curr_offset, 1, FALSE);
-    proto_tree_add_item(tree, hf_gsm_a_qos_qos_reliability_cls, tvb, curr_offset, 1, FALSE);
+       proto_tree_add_item(tree, hf_gsm_a_qos_delay_cls, tvb, curr_offset, 1, FALSE);
+       proto_tree_add_item(tree, hf_gsm_a_qos_qos_reliability_cls, tvb, curr_offset, 1, FALSE);
 
        curr_offset+= 1;
        curr_len-= 1;
 
        if ( curr_len == 0 )
        {
-           EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
+               EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
 
-           return(curr_offset - offset);
+               return(curr_offset - offset);
        }
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -3559,9 +3523,9 @@ de_sm_qos(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
 
        if ( curr_len == 0 )
        {
-           EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
+               EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
 
-           return(curr_offset - offset);
+               return(curr_offset - offset);
        }
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -3601,9 +3565,9 @@ de_sm_qos(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
 
        if ( curr_len == 0 )
        {
-           EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
+               EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
 
-           return(curr_offset - offset);
+               return(curr_offset - offset);
        }
 
        proto_tree_add_item(tree, hf_gsm_a_qos_traffic_cls, tvb, curr_offset, 1, FALSE);
@@ -3615,9 +3579,9 @@ de_sm_qos(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
 
        if ( curr_len == 0 )
        {
-           EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
+               EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
 
-           return(curr_offset - offset);
+               return(curr_offset - offset);
        }
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -3633,22 +3597,22 @@ de_sm_qos(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
        }
 
        if (( oct >= 1 ) && ( oct <= 0x96 ))
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                        tvb, curr_offset, 1,
-               "Maximum SDU size: (%u) %u octets",oct,oct*10);
+                       "Maximum SDU size: (%u) %u octets",oct,oct*10);
        else
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                        tvb, curr_offset, 1,
-               "Maximum SDU size: (%u) %s",oct,str);
+                       "Maximum SDU size: (%u) %s",oct,str);
 
        curr_offset+= 1;
        curr_len-= 1;
 
        if ( curr_len == 0 )
        {
-           EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
+               EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
 
-           return(curr_offset - offset);
+               return(curr_offset - offset);
        }
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -3661,30 +3625,30 @@ de_sm_qos(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
        }
 
        if (( oct >= 1 ) && ( oct <= 0x3f ))
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                        tvb, curr_offset, 1,
-               "Maximum bit rate for uplink: (%u) %ukbps",oct,oct);
+                       "Maximum bit rate for uplink: (%u) %ukbps",oct,oct);
        else if (( oct >= 0x40 ) && ( oct <= 0x7f ))
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                        tvb, curr_offset, 1,
-               "Maximum bit rate for uplink: (%u) %ukbps",oct,(oct-0x40)*8+64); /* - was (oct-0x40)*8  */
+                       "Maximum bit rate for uplink: (%u) %ukbps",oct,(oct-0x40)*8+64); /* - was (oct-0x40)*8  */
        else if (( oct >= 0x80 ) && ( oct <= 0xfe ))
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                        tvb, curr_offset, 1,
-               "Maximum bit rate for uplink: (%u) %ukbps",oct,(oct-0x80)*64+576); /* - was (oct-0x80)*64 */
+                       "Maximum bit rate for uplink: (%u) %ukbps",oct,(oct-0x80)*64+576); /* - was (oct-0x80)*64 */
        else
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                        tvb, curr_offset, 1,
-               "Maximum bit rate for uplink: (%u) %s",oct,str);
+                       "Maximum bit rate for uplink: (%u) %s",oct,str);
 
        curr_offset+= 1;
        curr_len-= 1;
 
        if ( curr_len == 0 )
        {
-           EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
+               EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
 
-           return(curr_offset - offset);
+               return(curr_offset - offset);
        }
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -3697,30 +3661,30 @@ de_sm_qos(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
        }
 
        if (( oct >= 1 ) && ( oct <= 0x3f ))
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                        tvb, curr_offset, 1,
-               "Maximum bit rate for downlink: (%u) %ukbps",oct,oct);
+               "Maximum bit rate for downlink: (%u) %ukbps",oct,oct);
        else if (( oct >= 0x40 ) && ( oct <= 0x7f ))
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                        tvb, curr_offset, 1,
-               "Maximum bit rate for downlink: (%u) %ukbps",oct,(oct-0x40)*8+64);/*same as above*/
+                       "Maximum bit rate for downlink: (%u) %ukbps",oct,(oct-0x40)*8+64);/*same as above*/
        else if (( oct >= 0x80 ) && ( oct <= 0xfe ))
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                        tvb, curr_offset, 1,
-               "Maximum bit rate for downlink: (%u) %ukbps",oct,(oct-0x80)*64+576);/*same as above*/
+                       "Maximum bit rate for downlink: (%u) %ukbps",oct,(oct-0x80)*64+576);/*same as above*/
        else
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                        tvb, curr_offset, 1,
-               "Maximum bit rate for downlink: (%u) %s",oct,str);
+                       "Maximum bit rate for downlink: (%u) %s",oct,str);
 
        curr_offset+= 1;
        curr_len-= 1;
 
        if ( curr_len == 0 )
        {
-           EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
+               EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
 
-           return(curr_offset - offset);
+               return(curr_offset - offset);
        }
 
        proto_tree_add_item(tree, hf_gsm_a_qos_ber, tvb, curr_offset, 1, FALSE);
@@ -3731,9 +3695,9 @@ de_sm_qos(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
 
        if ( curr_len == 0 )
        {
-           EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
+               EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
 
-           return(curr_offset - offset);
+               return(curr_offset - offset);
        }
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -3748,19 +3712,19 @@ de_sm_qos(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
        tmp_oct = oct>>2;
 
        if (( tmp_oct >= 1 ) && ( tmp_oct <= 0x0f ))
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                        tvb, curr_offset, 1,
                        "Transfer Delay: (%u) %ums",oct>>2,(oct>>2)*10);
        else if (( tmp_oct >= 0x10 ) && ( tmp_oct <= 0x1f ))
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                        tvb, curr_offset, 1,
                        "Transfer Delay: (%u) %ums",oct>>2,((oct>>2)-0x10)*50+200);
        else if (( tmp_oct >= 0x20 ) && ( tmp_oct <= 0x3e ))
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                        tvb, curr_offset, 1,
                        "Transfer Delay: (%u) %ums",oct>>2,((oct>>2)-0x20)*100+1000);
        else
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                        tvb, curr_offset, 1,
                        "Transfer Delay: (%u) %s",oct>>2,str);
 
@@ -3782,9 +3746,9 @@ de_sm_qos(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
 
        if ( curr_len == 0 )
        {
-           EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
+               EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
 
-           return(curr_offset - offset);
+               return(curr_offset - offset);
        }
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -3797,30 +3761,30 @@ de_sm_qos(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
        }
 
        if (( oct >= 1 ) && ( oct <= 0x3f ))
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                        tvb, curr_offset, 1,
-               "Guaranteed bit rate for uplink: (%u) %ukbps",oct,oct);
+                       "Guaranteed bit rate for uplink: (%u) %ukbps",oct,oct);
        else if (( oct >= 0x40 ) && ( oct <= 0x7f ))
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                        tvb, curr_offset, 1,
-               "Guaranteed bit rate for uplink: (%u) %ukbps",oct,(oct-0x40)*8+64);/*same as for max bit rate*/
+                       "Guaranteed bit rate for uplink: (%u) %ukbps",oct,(oct-0x40)*8+64);/*same as for max bit rate*/
        else if (( oct >= 0x80 ) && ( oct <= 0xfe ))
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                        tvb, curr_offset, 1,
-               "Guaranteed bit rate for uplink: (%u) %ukbps",oct,(oct-0x80)*64+576);/*same as for max bit rate*/
+                       "Guaranteed bit rate for uplink: (%u) %ukbps",oct,(oct-0x80)*64+576);/*same as for max bit rate*/
        else
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                        tvb, curr_offset, 1,
-               "Guaranteed bit rate for uplink: (%u) %s",oct,str);
+                       "Guaranteed bit rate for uplink: (%u) %s",oct,str);
 
        curr_offset+= 1;
        curr_len-= 1;
 
        if ( curr_len == 0 )
        {
-           EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
+               EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
 
-           return(curr_offset - offset);
+               return(curr_offset - offset);
        }
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -3833,30 +3797,30 @@ de_sm_qos(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
        }
 
        if (( oct >= 1 ) && ( oct <= 0x3f ))
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                        tvb, curr_offset, 1,
-               "Guaranteed bit rate for downlink: (%u) %ukbps",oct,oct);
+                       "Guaranteed bit rate for downlink: (%u) %ukbps",oct,oct);
        else if (( oct >= 0x40 ) && ( oct <= 0x7f ))
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                        tvb, curr_offset, 1,
-               "Guaranteed bit rate for downlink: (%u) %ukbps",oct,(oct-0x40)*8+64);/*same as above*/
+                       "Guaranteed bit rate for downlink: (%u) %ukbps",oct,(oct-0x40)*8+64);/*same as above*/
        else if (( oct >= 0x80 ) && ( oct <= 0xfe ))
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                        tvb, curr_offset, 1,
-               "Guaranteed bit rate for downlink: (%u) %ukbps",oct,(oct-0x80)*64+576);/*same as above*/
+                       "Guaranteed bit rate for downlink: (%u) %ukbps",oct,(oct-0x80)*64+576);/*same as above*/
        else
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                        tvb, curr_offset, 1,
-               "Guaranteed bit rate for downlink: (%u) %s",oct,str);
+                       "Guaranteed bit rate for downlink: (%u) %s",oct,str);
 
        curr_offset+= 1;
        curr_len-= 1;
 
        if ( curr_len == 0 )
        {
-           EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
+               EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
 
-           return(curr_offset - offset);
+               return(curr_offset - offset);
        }
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -3888,9 +3852,9 @@ de_sm_qos(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
 
        if ( curr_len == 0 )
        {
-           EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
+               EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
 
-           return(curr_offset - offset);
+               return(curr_offset - offset);
        }
 
 
@@ -3903,22 +3867,22 @@ de_sm_qos(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
        }
 
        if (( oct >= 1 ) && ( oct <= 0x3f ))
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                        tvb, curr_offset, 1,
-               "Maximum bit rate for downlink (extended): (%u) %ukbps",oct,oct*100);
+                       "Maximum bit rate for downlink (extended): (%u) %ukbps",oct,oct*100);
        else
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                        tvb, curr_offset, 1,
-               "Maximum bit rate for downlink (extended): (%u) %s",oct,str);
+                       "Maximum bit rate for downlink (extended): (%u) %s",oct,str);
 
        curr_offset+= 1;
        curr_len-= 1;
 
        if ( curr_len == 0 )
        {
-           EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
+               EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
 
-           return(curr_offset - offset);
+               return(curr_offset - offset);
        }
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -3930,13 +3894,13 @@ de_sm_qos(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
        }
 
        if (( oct >= 1 ) && ( oct <= 0x4a ))
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                        tvb, curr_offset, 1,
-               "Guaranteed bit rate for downlink (extended): (%u) %ukbps",oct,oct*100);
+                       "Guaranteed bit rate for downlink (extended): (%u) %ukbps",oct,oct*100);
        else
-           proto_tree_add_text(tree,
+               proto_tree_add_text(tree,
                        tvb, curr_offset, 1,
-               "Guaranteed bit rate for downlink (extended): (%u) %s",oct,str);
+                       "Guaranteed bit rate for downlink (extended): (%u) %s",oct,str);
 
        curr_offset+= 1;
        curr_len-= 1;
@@ -3950,13 +3914,12 @@ de_sm_qos(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
  * [8] 10.5.6.6 SM cause
  */
 static guint8
-de_sm_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len _U_)
+de_sm_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
        const gchar     *str;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -4002,9 +3965,9 @@ de_sm_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *a
        }
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "Cause: (%u) %s %s",
-       oct, str,add_string ? add_string : "");
+               tvb, curr_offset, 1,
+               "Cause: (%u) %s %s",
+               oct, str,add_string ? add_string : "");
 
        curr_offset++;
 
@@ -4019,9 +3982,9 @@ de_sm_linked_ti(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
 {
        guint32 curr_offset;
        guint   curr_len;
-       gchar       oct;
+       gchar      oct;
 
-       gchar       ti_flag[2][80]={ "The message is sent from the side that originates the TI" ,
+       gchar      ti_flag[2][80]={ "The message is sent from the side that originates the TI" ,
                                "The message is sent to the side that originates the TI" };
 
        curr_len = len;
@@ -4036,21 +3999,21 @@ de_sm_linked_ti(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
        if ( curr_len > 1 )
        {
                oct = tvb_get_guint8(tvb, curr_offset);
-       
+
                proto_tree_add_text(tree,
-               tvb, curr_offset, 1,
-               "TI value: 0x%02x (%u)",oct&0x7f,oct&0x7f);
+                       tvb, curr_offset, 1,
+                       "TI value: 0x%02x (%u)",oct&0x7f,oct&0x7f);
 
                proto_tree_add_text(tree,
-               tvb, curr_offset, 1,
-               "ext: 0x%02x (%u)",oct>>7,oct>>7);
+                       tvb, curr_offset, 1,
+                       "ext: 0x%02x (%u)",oct>>7,oct>>7);
 
        }
        else
        {
                proto_tree_add_text(tree,
-               tvb, curr_offset, 1,
-               "TI value: 0x%02x (%u)",(oct>>4)&7,(oct>>4)&7);
+                       tvb, curr_offset, 1,
+                       "TI value: 0x%02x (%u)",(oct>>4)&7,(oct>>4)&7);
        }
 
        curr_offset+= curr_len;
@@ -4064,20 +4027,19 @@ de_sm_linked_ti(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
  * [7] 10.5.6.9
  */
 static guint8
-de_sm_sapi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len _U_)
+de_sm_sapi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "LLC SAPI: 0x%02x (%u) %s",
-       oct&0x0f, oct&0x0f,add_string ? add_string : "");
+               tvb, curr_offset, 1,
+               "LLC SAPI: 0x%02x (%u) %s",
+               oct&0x0f, oct&0x0f,add_string ? add_string : "");
 
        curr_offset++;
 
@@ -4088,21 +4050,20 @@ de_sm_sapi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *ad
  * [7] 10.5.6.10
  */
 static guint8
-de_sm_tear_down(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len _U_)
+de_sm_tear_down(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
        gchar   str[2][30] = { "tear down not requested" , "tear down requested" };
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "Tear Down Indicator: (%u) %s %s",
-       oct&1, str[oct&1],add_string ? add_string : "");
+               tvb, curr_offset, 1,
+               "Tear Down Indicator: (%u) %s %s",
+               oct&1, str[oct&1],add_string ? add_string : "");
 
        curr_offset++;
 
@@ -4175,18 +4136,18 @@ de_sm_tflow_temp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gch
 {
        guint32 curr_offset;
        guint   curr_len;
-       proto_item  *tf = NULL;
-       proto_tree      *tf_tree = NULL;
-       proto_tree      *comp_tree = NULL;
+       proto_item      *tf = NULL;
+       proto_tree      *tf_tree = NULL;
+       proto_tree      *comp_tree = NULL;
        guchar  op_code;
        guchar  pkt_fil_count;
-       guchar      e_bit;
-       const gchar *str;
-       guchar      count;
+       guchar  e_bit;
+       const gchar     *str;
+       guchar  count;
        guchar  oct;
-       gint pf_length;
-       gint pf_identifier;
-       gint pack_component_type;
+       gint    pf_length;
+       gint    pf_identifier;
+       gint    pack_component_type;
 
        curr_len = len;
        curr_offset = offset;
@@ -4211,96 +4172,94 @@ de_sm_tflow_temp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gch
 
        count = 0;
        if ( op_code == 2 )                     /* delete TFT contains no packet filters. so we will jump over it */
-       count = pkt_fil_count;
+               count = pkt_fil_count;
        while ( count < pkt_fil_count )
        {
-       tf = proto_tree_add_text(tree,
+               tf = proto_tree_add_text(tree,
                        tvb, curr_offset, 1,
                        "Packet filter %d",count);   /* 0-> 7 */
 
                tf_tree = proto_item_add_subtree(tf, ett_sm_tft );
 
-       if ( op_code == 5 )  /* Delete packet filters from existing TFT - just a list of identifiers */
-
-       {
-               if ((curr_offset-offset)<1) {
-                       proto_tree_add_text(tf_tree,tvb, curr_offset, 1,"Not enough data");
-                       return(curr_offset-offset);
-               }
-               oct = tvb_get_guint8(tvb, curr_offset);
-               curr_offset++;
-               curr_len--;
-
-               proto_tree_add_text(tf_tree,
-                       tvb, curr_offset-1, 1,
-                       "Packet filter identifier: 0x%02x (%u)",oct,oct );      
-       }
-       else                            /* create new, Add packet filters or Replace packet filters */
-       {
-       
-               if ((curr_offset-offset)<1) {
-                       proto_tree_add_text(tf_tree,tvb, curr_offset, 1,"Not enough data");
-                       return(curr_offset-offset);
-               }
-               pf_identifier = tvb_get_guint8(tvb, curr_offset);
-               curr_offset++;
-               curr_len--;
-
-               proto_tree_add_text(tf_tree,
-                       tvb, curr_offset-1, 1,
-                       "Packet filter identifier: %u (%u)",pf_identifier, pf_identifier);      
+               if ( op_code == 5 )  /* Delete packet filters from existing TFT - just a list of identifiers */
+               {
+                       if ((curr_offset-offset)<1) {
+                               proto_tree_add_text(tf_tree,tvb, curr_offset, 1,"Not enough data");
+                               return(curr_offset-offset);
+                       }
+                       oct = tvb_get_guint8(tvb, curr_offset);
+                       curr_offset++;
+                       curr_len--;
 
-               if ((curr_offset-offset)<1) {
-                       proto_tree_add_text(tf_tree,tvb, curr_offset, 1,"Not enough data");
-                       return(curr_offset-offset);
+                       proto_tree_add_text(tf_tree,
+                               tvb, curr_offset-1, 1,
+                               "Packet filter identifier: 0x%02x (%u)",oct,oct );      
                }
-               oct = tvb_get_guint8(tvb, curr_offset);
-               curr_offset++;
-               curr_len--;
-
-               proto_tree_add_text(tf_tree,
-                       tvb, curr_offset-1, 1,
-                       "Packet evaluation precedence: 0x%02x (%u)",oct,oct );  
-
-               if ((curr_offset-offset)<1) { proto_tree_add_text(tf_tree,tvb, curr_offset, 1,"Not enough data"); return(curr_offset-offset);}
-               pf_length = tvb_get_guint8(tvb, curr_offset);
-               curr_offset++;
-               curr_len--;
+               else                            /* create new, Add packet filters or Replace packet filters */
+               {
 
-               proto_tree_add_text(tf_tree,
-                       tvb, curr_offset-1, 1,
-                       "Packet filter length: 0x%02x (%u)",pf_length,pf_length );      
-               /* New tree for component */
+                       if ((curr_offset-offset)<1) {
+                               proto_tree_add_text(tf_tree,tvb, curr_offset, 1,"Not enough data");
+                               return(curr_offset-offset);
+                       }
+                       pf_identifier = tvb_get_guint8(tvb, curr_offset);
+                       curr_offset++;
+                       curr_len--;
 
-               /* Dissect Packet filter Component */
-               /* while ( filter_len > 1 ) */
-               /* packet filter component type identifier: */
+                       proto_tree_add_text(tf_tree,
+                               tvb, curr_offset-1, 1,
+                               "Packet filter identifier: %u (%u)",pf_identifier, pf_identifier);      
 
-               if (pf_length > 0 ){
                        if ((curr_offset-offset)<1) {
                                proto_tree_add_text(tf_tree,tvb, curr_offset, 1,"Not enough data");
                                return(curr_offset-offset);
                        }
-                       pack_component_type = tvb_get_guint8(tvb, curr_offset);
+                       oct = tvb_get_guint8(tvb, curr_offset);
                        curr_offset++;
                        curr_len--;
 
-                       tf=proto_tree_add_text(tf_tree,tvb, curr_offset-1, 1,"Packet filter component type identifier: ");
-               comp_tree = proto_item_add_subtree(tf, ett_sm_tft );
-               
-                       switch ( pack_component_type ){
+                       proto_tree_add_text(tf_tree,
+                               tvb, curr_offset-1, 1,
+                               "Packet evaluation precedence: 0x%02x (%u)",oct,oct );  
+
+                       if ((curr_offset-offset)<1) { proto_tree_add_text(tf_tree,tvb, curr_offset, 1,"Not enough data"); return(curr_offset-offset);}
+                       pf_length = tvb_get_guint8(tvb, curr_offset);
+                       curr_offset++;
+                       curr_len--;
+
+                       proto_tree_add_text(tf_tree,
+                               tvb, curr_offset-1, 1,
+                               "Packet filter length: 0x%02x (%u)",pf_length,pf_length );      
+                       /* New tree for component */
+
+                       /* Dissect Packet filter Component */
+                       /* while ( filter_len > 1 ) */
+                       /* packet filter component type identifier: */
+
+                       if (pf_length > 0 ){
+                               if ((curr_offset-offset)<1) {
+                                       proto_tree_add_text(tf_tree,tvb, curr_offset, 1,"Not enough data");
+                                       return(curr_offset-offset);
+                               }
+                               pack_component_type = tvb_get_guint8(tvb, curr_offset);
+                               curr_offset++;
+                               curr_len--;
+
+                               tf=proto_tree_add_text(tf_tree,tvb, curr_offset-1, 1,"Packet filter component type identifier: ");
+                               comp_tree = proto_item_add_subtree(tf, ett_sm_tft );
+
+                               switch ( pack_component_type ){
                        
                                case 0x10:
                                        str="IPv4 source address type";
                                        proto_tree_add_item(comp_tree,hf_gsm_a_tft_ip4_address,tvb,curr_offset,4,FALSE);
-                       curr_offset+=4;
-                       curr_len-=4;
+                                       curr_offset+=4;
+                                       curr_len-=4;
                                        proto_tree_add_item(comp_tree,hf_gsm_a_tft_ip4_mask,tvb,curr_offset,4,FALSE);
-                       curr_offset+=4;
-                       curr_len-=4;
+                                       curr_offset+=4;
+                                       curr_len-=4;
                                        break;
 
-
                                case 0x20:
                                        str="IPv6 source address type";
                                        proto_tree_add_item(comp_tree,hf_gsm_a_tft_ip6_address,tvb,curr_offset,16,FALSE);
@@ -4372,22 +4331,21 @@ de_sm_tflow_temp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gch
 
                                default:
                                        str="not specified";
-                       }
-                       proto_item_append_text(tf, "(%u) %s", pack_component_type, str );
-                       count++;
+                               }
+                               proto_item_append_text(tf, "(%u) %s", pack_component_type, str );
+                               count++;
                        }
                }
        }
 
-
        /* The parameters list contains a variable number of parameters that might need to be
         * transferred in addition to the packet filters. If the parameters list is included, the E
         * bit is set to 1; otherwise, the E bit is set to 0.
         */
-        if (e_bit == 1){
+       if (e_bit == 1){
                 proto_tree_add_text(tf_tree, tvb, curr_offset, 1, "Note: Possible Authorizaton Token/Flow Identifier not decoded yet");
-        }
- return(curr_offset - offset);
+       }
      return(curr_offset - offset);
 }
 
 guint8 (*gm_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len) = {
@@ -4723,18 +4681,18 @@ dtap_gmm_auth_ciph_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint le
 #else
        if ( curr_len > 0 )
        {
-           oct = tvb_get_guint8(tvb, curr_offset);
-           if (( oct & 0xf0 ) == 0x80 )
-           {
+               oct = tvb_get_guint8(tvb, curr_offset);
+               if (( oct & 0xf0 ) == 0x80 )
+               {
                        /* The ciphering key sequence number is added here */
-               proto_tree_add_text(tree,
+                       proto_tree_add_text(tree,
                                tvb, curr_offset, 1,
                                "Ciphering key sequence number: 0x%02x (%u)",
-                       oct&7,
+                               oct&7,
                                oct&7);
-               curr_offset++;
+                       curr_offset++;
                        curr_len--;
-                   }
+               }
        }
 #endif
 
@@ -4786,7 +4744,6 @@ static void
 dtap_gmm_auth_ciph_rej(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
 {
        guint32 curr_offset;
-/*    guint32  consumed; */
        guint   curr_len;
 
        curr_offset = offset;
@@ -4887,7 +4844,6 @@ dtap_gmm_rau_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
        ELEM_MAND_V(GSM_A_PDU_TYPE_COMMON, DE_CIPH_KEY_SEQ_NUM );
        curr_offset--;
        curr_len++;
-
        */
 
        ELEM_MAND_V(GSM_A_PDU_TYPE_GM, DE_UPD_TYPE );
@@ -4986,6 +4942,7 @@ dtap_gmm_rau_com(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
        /* Inter RAT information container 10.5.5.24 TS 24.008 version 6.8.0 Release 6 */
        /*TO DO: Implement */
        ELEM_OPT_TLV( 0x27 , GSM_A_PDU_TYPE_GM, DE_RAT_INFO_CONTAINER , "" );
+
        EXTRANEOUS_DATA_CHECK(curr_len, 0);
 }
 
@@ -5526,7 +5483,6 @@ dtap_sm_deact_pdp_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
        EXTRANEOUS_DATA_CHECK(curr_len, 0);
 }
 
-
 /*
  * [8] 9.5.15 Deactivate PDP context accept
  */
@@ -5694,53 +5650,60 @@ proto_register_gsm_a_gm(void)
        static hf_register_info hf[] =
        {
        { &hf_gsm_a_dtap_msg_gmm_type,
-           { "DTAP GPRS Mobility Management Message Type",     "gsm_a.dtap_msg_gmm_type",
-           FT_UINT8, BASE_HEX, VALS(gsm_a_dtap_msg_gmm_strings), 0x0,
-           "", HFILL }
+               { "DTAP GPRS Mobility Management Message Type", "gsm_a.dtap_msg_gmm_type",
+               FT_UINT8, BASE_HEX, VALS(gsm_a_dtap_msg_gmm_strings), 0x0,
+               "", HFILL }
        },
        { &hf_gsm_a_dtap_msg_sm_type,
-           { "DTAP GPRS Session Management Message Type",      "gsm_a.dtap_msg_sm_type",
-           FT_UINT8, BASE_HEX, VALS(gsm_a_dtap_msg_sm_strings), 0x0,
-           "", HFILL }
+               { "DTAP GPRS Session Management Message Type",  "gsm_a.dtap_msg_sm_type",
+               FT_UINT8, BASE_HEX, VALS(gsm_a_dtap_msg_sm_strings), 0x0,
+               "", HFILL }
        },
        { &hf_gsm_a_gm_elem_id,
-           { "Element ID",     "gsm_a_gm.elem_id",
-           FT_UINT8, BASE_DEC, NULL, 0,
-           "", HFILL }
+               { "Element ID", "gsm_a_gm.elem_id",
+               FT_UINT8, BASE_DEC, NULL, 0,
+               "", HFILL }
        },
        { &hf_gsm_a_qos_delay_cls,
                { "Delay class", "gsm_a.qos.delay_cls",
                FT_UINT8, BASE_DEC, VALS(gsm_a_qos_delay_cls_vals), 0x38,
-               "Quality of Service Delay Class", HFILL }},
+               "Quality of Service Delay Class", HFILL }
+       },
        { &hf_gsm_a_qos_qos_reliability_cls,
                { "Reliability class", "gsm_a.qos.delay_cls",
                FT_UINT8, BASE_DEC, VALS(gsm_a_qos_delay_cls_vals), 0x07,
-               "Reliability class", HFILL }},
+               "Reliability class", HFILL }
+       },
        { &hf_gsm_a_qos_traffic_cls,
          { "Traffic class", "gsm_a.qos.traffic_cls",
                FT_UINT8, BASE_DEC, VALS(gsm_a_qos_traffic_cls_vals), 0xe0,
-               "Traffic class", HFILL }},
+               "Traffic class", HFILL }
+       },
        { &hf_gsm_a_qos_del_order,
          { "Delivery order", "gsm_a.qos.del_order",
                FT_UINT8, BASE_DEC, VALS(gsm_a_qos_traffic_cls_vals), 0x18,
-               "Delivery order", HFILL }},
+               "Delivery order", HFILL }
+       },
        { &hf_gsm_a_qos_del_of_err_sdu,
          { "Delivery of erroneous SDUs", "gsm_a.qos.del_of_err_sdu",
                FT_UINT8, BASE_DEC, VALS(gsm_a_qos_del_of_err_sdu_vals), 0x03,
-               "Delivery of erroneous SDUs", HFILL }},
+               "Delivery of erroneous SDUs", HFILL }
+       },
        { &hf_gsm_a_qos_ber,
          { "Residual Bit Error Rate (BER)", "gsm_a.qos.ber",
                FT_UINT8, BASE_DEC, VALS(gsm_a_qos_ber_vals), 0xf0,
-               "Residual Bit Error Rate (BER)", HFILL }},
+               "Residual Bit Error Rate (BER)", HFILL }
+       },
        { &hf_gsm_a_qos_sdu_err_rat,
          { "SDU error ratio", "gsm_a.qos.sdu_err_rat",
                FT_UINT8, BASE_DEC, VALS(gsm_a_qos_sdu_err_rat_vals), 0x0f,
-               "SDU error ratio", HFILL }},
+               "SDU error ratio", HFILL }
+       },
        { &hf_gsm_a_qos_traff_hdl_pri,
          { "Traffic handling priority", "gsm_a.qos.traff_hdl_pri",
                FT_UINT8, BASE_DEC, VALS(gsm_a_qos_traff_hdl_pri_vals), 0x03,
-               "Traffic handling priority", HFILL }},
-
+               "Traffic handling priority", HFILL }
+       },
        { &hf_gsm_a_gmm_split_on_ccch,
                { "SPLIT on CCCH","gsm_a.gmm.split_on_ccch",
                FT_BOOLEAN,8,  TFS(&gsm_a_gmm_split_on_ccch_value), 0x08,
@@ -5771,43 +5734,53 @@ proto_register_gsm_a_gm(void)
                FT_UINT8, BASE_DEC, NULL, 0x0f,
                "Number of packet filters", HFILL }
        },
-
-          { &hf_gsm_a_tft_ip4_address,
-         { "IPv4 adress", "gsm_a.tft.ip4_address", FT_IPv4, BASE_NONE, NULL, 0x0,
-               "IPv4 address", HFILL }},
+       { &hf_gsm_a_tft_ip4_address,
+               { "IPv4 adress", "gsm_a.tft.ip4_address", FT_IPv4, BASE_NONE, NULL, 0x0,
+               "IPv4 address", HFILL }
+       },
        { &hf_gsm_a_tft_ip4_mask,
-         { "IPv4 address mask", "gsm_a.tft.ip4_mask", FT_IPv4, BASE_NONE, NULL, 0x0,
+               { "IPv4 address mask", "gsm_a.tft.ip4_mask", FT_IPv4, BASE_NONE, NULL, 0x0,
                "IPv4 address mask", HFILL }},
        { &hf_gsm_a_tft_ip6_address,
-         { "IPv6 adress", "gsm_a.tft.ip6_address", FT_IPv6, BASE_NONE, NULL, 0x0,
-               "IPv6 address", HFILL }},
+               { "IPv6 adress", "gsm_a.tft.ip6_address", FT_IPv6, BASE_NONE, NULL, 0x0,
+               "IPv6 address", HFILL }
+       },
        { &hf_gsm_a_tft_ip6_mask,
-       { "IPv6 adress mask", "gsm_a.tft.ip6_mask", FT_IPv6, BASE_NONE, NULL, 0x0,
-               "IPv6 address mask", HFILL }},
+               { "IPv6 adress mask", "gsm_a.tft.ip6_mask", FT_IPv6, BASE_NONE, NULL, 0x0,
+               "IPv6 address mask", HFILL }
+       },
        { &hf_gsm_a_tft_protocol_header,
-       { "Protocol/header", "gsm_a.tft.protocol_header", FT_UINT8, BASE_HEX, NULL, 0x0,
-               "Protocol/header", HFILL }},
+               { "Protocol/header", "gsm_a.tft.protocol_header", FT_UINT8, BASE_HEX, NULL, 0x0,
+               "Protocol/header", HFILL }
+       },
        { &hf_gsm_a_tft_port,
-       { "Port", "gsm_a.tft.port", FT_UINT16, BASE_DEC, NULL, 0x0,
-               "Port", HFILL }},
+               { "Port", "gsm_a.tft.port", FT_UINT16, BASE_DEC, NULL, 0x0,
+               "Port", HFILL }
+       },
        { &hf_gsm_a_tft_port_low,
-       { "Low limit port", "gsm_a.tft.port_low", FT_UINT16, BASE_DEC, NULL, 0x0,
-               "Low limit port", HFILL }},
+               { "Low limit port", "gsm_a.tft.port_low", FT_UINT16, BASE_DEC, NULL, 0x0,
+               "Low limit port", HFILL }
+       },
        { &hf_gsm_a_tft_port_high,
-       { "High limit port", "gsm_a.tft.port_high", FT_UINT16, BASE_DEC, NULL, 0x0,
-               "High limit port", HFILL }},
+               { "High limit port", "gsm_a.tft.port_high", FT_UINT16, BASE_DEC, NULL, 0x0,
+               "High limit port", HFILL }
+       },
        { &hf_gsm_a_tft_security,
-       { "IPSec security parameter index", "gsm_a.tft.security", FT_UINT32, BASE_HEX, NULL, 0x0,
-               "IPSec security parameter index", HFILL }},
+               { "IPSec security parameter index", "gsm_a.tft.security", FT_UINT32, BASE_HEX, NULL, 0x0,
+               "IPSec security parameter index", HFILL }
+       },
        { &hf_gsm_a_tft_traffic_mask,
-       { "Mask field", "gsm_a.tft.traffic_mask", FT_UINT8, BASE_HEX, NULL, 0x0,
-               "Mask field", HFILL }},
+               { "Mask field", "gsm_a.tft.traffic_mask", FT_UINT8, BASE_HEX, NULL, 0x0,
+               "Mask field", HFILL }
+       },
        { &hf_gsm_a_ptmsi_sig,
-       { "P-TMSI Signature", "gsm_a.ptmsi_sig", FT_UINT24, BASE_HEX, NULL, 0x0,
-               "P-TMSI Signature", HFILL }},
+               { "P-TMSI Signature", "gsm_a.ptmsi_sig", FT_UINT24, BASE_HEX, NULL, 0x0,
+               "P-TMSI Signature", HFILL }
+       },
        { &hf_gsm_a_ptmsi_sig2,
-       { "P-TMSI Signature 2", "gsm_a.ptmsi_sig2", FT_UINT24, BASE_HEX, NULL, 0x0,
-               "P-TMSI Signature 2", HFILL }},
+               { "P-TMSI Signature 2", "gsm_a.ptmsi_sig2", FT_UINT24, BASE_HEX, NULL, 0x0,
+               "P-TMSI Signature 2", HFILL }
+       },
        };
 
        /* Setup protocol subtree array */
@@ -5836,24 +5809,24 @@ proto_register_gsm_a_gm(void)
 
        for (i=0; i < NUM_GSM_DTAP_MSG_GMM; i++, last_offset++)
        {
-       ett_gsm_dtap_msg_gmm[i] = -1;
-       ett[last_offset] = &ett_gsm_dtap_msg_gmm[i];
+               ett_gsm_dtap_msg_gmm[i] = -1;
+               ett[last_offset] = &ett_gsm_dtap_msg_gmm[i];
        }
 
        for (i=0; i < NUM_GSM_DTAP_MSG_SM; i++, last_offset++)
        {
-       ett_gsm_dtap_msg_sm[i] = -1;
-       ett[last_offset] = &ett_gsm_dtap_msg_sm[i];
+               ett_gsm_dtap_msg_sm[i] = -1;
+               ett[last_offset] = &ett_gsm_dtap_msg_sm[i];
        }
 
        for (i=0; i < NUM_GSM_GM_ELEM; i++, last_offset++)
        {
-       ett_gsm_gm_elem[i] = -1;
-       ett[last_offset] = &ett_gsm_gm_elem[i];
+               ett_gsm_gm_elem[i] = -1;
+               ett[last_offset] = &ett_gsm_gm_elem[i];
        }
 
        proto_a_gm =
-       proto_register_protocol("GSM A-I/F GPRS Mobility and Session Management", "GSM Management", "gsm_a_gm");
+               proto_register_protocol("GSM A-I/F GPRS Mobility and Session Management", "GSM Management", "gsm_a_gm");
 
        proto_register_field_array(proto_a_gm, hf, array_length(hf));
 
@@ -5864,10 +5837,8 @@ proto_register_gsm_a_gm(void)
                "GPRS SM PCO PPP protocol", FT_UINT16, BASE_HEX);
 }
 
-
 void
 proto_reg_handoff_gsm_a_gm(void)
 {
-
        data_handle = find_dissector("data");
 }
index 965604265aebb18022e37e183a80c5018105f184..b97ed0ead3e4d3ca5147bf8cb3d33646d969c14c 100644 (file)
@@ -96,7 +96,6 @@ typedef enum
        DE_RP_DEST_ADDR,                                /* RP-Destination Address */
        DE_RP_USER_DATA,                                /* RP-User Data */
        DE_RP_CAUSE,                                    /* RP-Cause */
-
        DE_RP_NONE                                                      /* NONE */
 }
 rp_elem_idx_t;
@@ -108,21 +107,20 @@ gint ett_gsm_rp_elem[NUM_GSM_RP_ELEM];
  * [5] 8.2.3
  */
 static guint8
-de_rp_message_ref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rp_message_ref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "RP-Message Reference: 0x%02x (%u)",
-       oct,
-       oct);
+               tvb, curr_offset, 1,
+               "RP-Message Reference: 0x%02x (%u)",
+               oct,
+               oct);
 
        curr_offset++;
 
@@ -161,7 +159,7 @@ de_rp_user_data(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
        curr_offset = offset;
 
        proto_tree_add_text(tree, tvb, curr_offset, len,
-       "TPDU (not displayed)");
+               "TPDU (not displayed)");
 
        /*
         * dissect the embedded TPDU message
@@ -193,10 +191,10 @@ de_rp_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *a
 
        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) ? "extended" : "not extended");
+               tvb, curr_offset, 1,
+               "%s :  Extension: %s",
+               a_bigbuf,
+               (oct & 0x80) ? "extended" : "not extended");
 
        switch (oct & 0x7f)
        {
@@ -225,28 +223,28 @@ de_rp_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *a
        case 111: str = "Protocol error, unspecified"; break;
        case 127: str = "Interworking, unspecified"; break;
        default:
-       str = "Reserved";
-       break;
+               str = "Reserved";
+               break;
        }
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x7f, 8);
        proto_tree_add_text(tree,
-       tvb, curr_offset, 1,
-       "%s :  Cause: (%u) %s",
-       a_bigbuf,
-       oct & 0x7f,
-       str);
+               tvb, curr_offset, 1,
+               "%s :  Cause: (%u) %s",
+               a_bigbuf,
+               oct & 0x7f,
+               str);
 
        curr_offset++;
 
        if (add_string)
-       g_snprintf(add_string, string_len, " - (%u) %s", oct & 0x7f, str);
+               g_snprintf(add_string, string_len, " - (%u) %s", oct & 0x7f, str);
 
        NO_MORE_DATA_CHECK(len);
 
        proto_tree_add_text(tree,
-       tvb, curr_offset, len - (curr_offset - offset),
-       "Diagnostic field");
+               tvb, curr_offset, len - (curr_offset - offset),
+               "Diagnostic field");
 
        curr_offset += len - (curr_offset - offset);
 
@@ -457,7 +455,7 @@ dissect_rp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 
        if (check_col(pinfo->cinfo, COL_INFO))
        {
-       col_append_str(pinfo->cinfo, COL_INFO, "(RP) ");
+               col_append_str(pinfo->cinfo, COL_INFO, "(RP) ");
        }
 
        /*
@@ -466,7 +464,7 @@ dissect_rp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
         */
        if (!tree)
        {
-       return;
+               return;
        }
 
        offset = 0;
@@ -489,26 +487,26 @@ dissect_rp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
         */
        if (str == NULL)
        {
-       rp_item =
-           proto_tree_add_protocol_format(tree, proto_a_rp, tvb, 0, len,
-               "GSM A-I/F RP - Unknown RP Message Type (0x%02x)",
-               oct);
+               rp_item =
+                       proto_tree_add_protocol_format(tree, proto_a_rp, tvb, 0, len,
+                               "GSM A-I/F RP - Unknown RP Message Type (0x%02x)",
+                               oct);
 
-       rp_tree = proto_item_add_subtree(rp_item, ett_rp_msg);
+               rp_tree = proto_item_add_subtree(rp_item, ett_rp_msg);
        }
        else
        {
-       rp_item =
-           proto_tree_add_protocol_format(tree, proto_a_rp, tvb, 0, -1,
-               "GSM A-I/F RP - %s",
-               str);
+               rp_item =
+                       proto_tree_add_protocol_format(tree, proto_a_rp, tvb, 0, -1,
+                               "GSM A-I/F RP - %s",
+                               str);
 
-       rp_tree = proto_item_add_subtree(rp_item, ett_gsm_rp_msg[idx]);
+               rp_tree = proto_item_add_subtree(rp_item, ett_gsm_rp_msg[idx]);
 
-       if (check_col(pinfo->cinfo, COL_INFO))
-       {
-           col_append_fstr(pinfo->cinfo, COL_INFO, "%s ", str);
-       }
+               if (check_col(pinfo->cinfo, COL_INFO))
+               {
+                       col_append_fstr(pinfo->cinfo, COL_INFO, "%s ", str);
+               }
        }
 
        /*
@@ -526,13 +524,13 @@ dissect_rp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
         */
        if (rp_msg_fcn[idx] == NULL)
        {
-       proto_tree_add_text(rp_tree,
-           tvb, offset, len - offset,
-           "Message Elements");
+               proto_tree_add_text(rp_tree,
+                       tvb, offset, len - offset,
+               "Message Elements");
        }
        else
        {
-       (*rp_msg_fcn[idx])(tvb, rp_tree, offset, len - offset);
+               (*rp_msg_fcn[idx])(tvb, rp_tree, offset, len - offset);
        }
 }
 
@@ -548,14 +546,14 @@ proto_register_gsm_a_rp(void)
        static hf_register_info hf[] =
        {
        { &hf_gsm_a_rp_msg_type,
-           { "RP Message Type",        "gsm_a.rp_msg_type",
-           FT_UINT8, BASE_HEX, VALS(gsm_rp_msg_strings), 0x0,
-           "", HFILL }
+               { "RP Message Type",    "gsm_a.rp_msg_type",
+               FT_UINT8, BASE_HEX, VALS(gsm_rp_msg_strings), 0x0,
+               "", HFILL }
        },
        { &hf_gsm_a_rp_elem_id,
-           { "Element ID",     "gsm_a_rp.elem_id",
-           FT_UINT8, BASE_DEC, NULL, 0,
-           "", HFILL }
+               { "Element ID", "gsm_a_rp.elem_id",
+               FT_UINT8, BASE_DEC, NULL, 0,
+               "", HFILL }
        },
        };
 
@@ -570,27 +568,26 @@ proto_register_gsm_a_rp(void)
 
        for (i=0; i < NUM_GSM_RP_MSG; i++, last_offset++)
        {
-       ett_gsm_rp_msg[i] = -1;
-       ett[last_offset] = &ett_gsm_rp_msg[i];
+               ett_gsm_rp_msg[i] = -1;
+               ett[last_offset] = &ett_gsm_rp_msg[i];
        }
 
        for (i=0; i < NUM_GSM_RP_ELEM; i++, last_offset++)
        {
-       ett_gsm_rp_elem[i] = -1;
-       ett[last_offset] = &ett_gsm_rp_elem[i];
+               ett_gsm_rp_elem[i] = -1;
+               ett[last_offset] = &ett_gsm_rp_elem[i];
        }
 
-
        /* Register the protocol name and description */
 
        proto_a_rp =
-       proto_register_protocol("GSM A-I/F RP", "GSM RP", "gsm_a_rp");
+               proto_register_protocol("GSM A-I/F RP", "GSM RP", "gsm_a_rp");
 
        proto_register_field_array(proto_a_rp, hf, array_length(hf));
 
        sms_dissector_table =
-       register_dissector_table("gsm_a.sms_tpdu", "GSM SMS TPDU",
-       FT_UINT8, BASE_DEC);
+               register_dissector_table("gsm_a.sms_tpdu", "GSM SMS TPDU",
+               FT_UINT8, BASE_DEC);
 
        proto_register_subtree_array(ett, array_length(ett));
 
index 22200821922362b39053943a1e02c8afef6e8c3d..a22ec3df0463e04cc72932ababb1013b5e085bba 100644 (file)
  *
  * Title               3GPP                    Other
  *
+ *   Reference [3]
+ *   Mobile radio interface Layer 3 specification;
+ *   Core network protocols;
+ *   Stage 3
+ *   (3GPP TS 24.008 version 4.7.0 Release 4)
+ *   (ETSI TS 124 008 V6.8.0 (2005-03))
+ *
  *   Reference [4]
  *   Mobile radio interface layer 3 specification;
  *   Radio Resource Control Protocol
@@ -196,7 +203,7 @@ const value_string gsm_rr_elem_strings[] = {
  /* [3]  10.5.2.8b     Channel Request Description 2 */
                /* Pos 20 */
        { 0x00, "Cipher Mode Setting" },                                /* [3]  10.5.2.9        */
-       { 0x00, "Cipher Mode Response" },               /* [3]  10.5.2.10       */
+       { 0x00, "Cipher Mode Response" },                          /* [3]  10.5.2.10    */
        { 0x00, "Control Channel Description" },        /* [3]  10.5.2.11       Control Channel Description             */
 /* [3]  10.5.2.11a     DTM Information Details */
        { 0x00, "Dynamic ARFCN Mapping" },                      /* [3]  10.5.2.11b      */
@@ -315,38 +322,38 @@ const value_string gsm_rr_elem_strings[] = {
 
 /* RR cause value (octet 2) TS 44.018 6.11.0*/
 static const value_string gsm_a_rr_RR_cause_vals[] = {
-       { 0,            "Normal event"},
-       { 1,            "Abnormal release, unspecified"},
-       { 2,            "Abnormal release, channel unacceptable"},
-       { 3,            "Abnormal release, timer expired"},
-       { 4,            "Abnormal release, no activity on the radio path"},
-       { 5,            "Preemptive release"},
-       { 6,            "UTRAN configuration unknown"},
-       { 8,            "Handover impossible, timing advance out of range"},
-       { 9,            "Channel mode unacceptable"},
-       { 10,           "Frequency not implemented"},
-       { 13,           "Originator or talker leaving group call area"},
-       { 12,           "Lower layer failure"},
-       { 0x41,         "Call already cleared"},
-       { 0x5f,         "Semantically incorrect message"},
-       { 0x60,         "Invalid mandatory information"},
-       { 0x61,         "Message type non-existent or not implemented"},
-       { 0x62,         "Message type not compatible with protocol state"},
-       { 0x64,         "Conditional IE error"},
-       { 0x65,         "No cell allocation available"},
-       { 0x6f,         "Protocol error unspecified"},
+       { 0,    "Normal event"},
+       { 1,    "Abnormal release, unspecified"},
+       { 2,    "Abnormal release, channel unacceptable"},
+       { 3,    "Abnormal release, timer expired"},
+       { 4,    "Abnormal release, no activity on the radio path"},
+       { 5,    "Preemptive release"},
+       { 6,    "UTRAN configuration unknown"},
+       { 8,    "Handover impossible, timing advance out of range"},
+       { 9,    "Channel mode unacceptable"},
+       { 10,   "Frequency not implemented"},
+       { 13,   "Originator or talker leaving group call area"},
+       { 12,   "Lower layer failure"},
+       { 0x41, "Call already cleared"},
+       { 0x5f, "Semantically incorrect message"},
+       { 0x60, "Invalid mandatory information"},
+       { 0x61, "Message type non-existent or not implemented"},
+       { 0x62, "Message type not compatible with protocol state"},
+       { 0x64, "Conditional IE error"},
+       { 0x65, "No cell allocation available"},
+       { 0x6f, "Protocol error unspecified"},
        { 0,    NULL }
 };
 
 static const value_string gsm_a_algorithm_identifier_vals[] = {
-       { 0,            "Cipher with algorithm A5/1"},
-       { 1,            "Cipher with algorithm A5/2"},
-       { 2,            "Cipher with algorithm A5/3"},
-       { 3,            "Cipher with algorithm A5/4"},
-       { 4,            "Cipher with algorithm A5/5"},
-       { 5,            "Cipher with algorithm A5/6"},
-       { 6,            "Cipher with algorithm A5/7"},
-       { 7,            "Reserved"},
+       { 0,    "Cipher with algorithm A5/1"},
+       { 1,    "Cipher with algorithm A5/2"},
+       { 2,    "Cipher with algorithm A5/3"},
+       { 3,    "Cipher with algorithm A5/4"},
+       { 4,    "Cipher with algorithm A5/5"},
+       { 5,    "Cipher with algorithm A5/6"},
+       { 6,    "Cipher with algorithm A5/7"},
+       { 7,    "Reserved"},
        { 0,    NULL }
 };
 
@@ -488,9 +495,8 @@ typedef enum
        DE_RR_CHNL_NEEDED,                              /* [3]  10.5.2.8        Channel Needed
  * [3]  10.5.2.8a      (void)
  * [3]  10.5.2.8b      Channel Request Description 2 */
-       /* Pos 20 */
        DE_RR_CIP_MODE_SET,                             /* [3]  10.5.2.9        Cipher Mode Setting                     */
-       DE_RR_CIP_MODE_RESP,            /* [3]  10.5.2.10       Cipher Response             */
+       DE_RR_CIP_MODE_RESP,                    /* [3]  10.5.2.10       Cipher Response                  */
        DE_RR_CTRL_CH_DESC,             /* [3]  10.5.2.11       Control Channel Description     */
 /* [3]  10.5.2.11a     DTM Information Details */
        DE_RR_DYN_ARFCN_MAP,                    /* [3]  10.5.2.11b      Dynamic ARFCN Mapping           */
@@ -515,7 +521,6 @@ typedef enum
        DE_RR_MOB_ALL,                                  /* [3] 10.5.2.21 Mobile Allocation                              */
        DE_RR_MOB_TIME_DIFF,                    /* [3] 10.5.2.21a Mobile Time Difference                */
        DE_RR_MULTIRATE_CONF,                   /* [3] 10.5.2.21aa MultiRate configuration              */
-       /* Pos 30 */
        DE_RR_MULT_ALL,                                 /* [3] 10.5.2.21b Multislot Allocation                  */
 /*
  * [3] 10.5.2.21c NC mode
@@ -572,7 +577,6 @@ typedef enum
 /*
  * [3] 10.5.2.42 TMSI/P-TMSI */
        DE_RR_VGCS_TAR_MODE_IND,                /* [3] 10.5.2.42a VGCS target mode Indication   */
-       /* Pos 40 */
        DE_RR_VGCS_CIP_PAR,                             /* [3] 10.5.2.42b       VGCS Ciphering Parameters       */
 
        DE_RR_WAIT_IND,                                 /* [3] 10.5.2.43 Wait Indication */
@@ -626,143 +630,142 @@ gint ett_gsm_rr_elem[NUM_GSM_RR_ELEM];
 
 static void display_channel_list(guint8 *list, tvbuff_t *tvb, proto_tree *tree)
 {
-    int arfcn;
-    proto_item *ti=NULL;
+       int arfcn;
+       proto_item *ti=NULL;
 
-    ti = proto_tree_add_text(tree, tvb, 0, 16, "List of ARFCNs =");
-    for (arfcn=0; arfcn<=ARFCN_MAX; arfcn++) {
-        if (list[arfcn])
-            proto_item_append_text(ti, " %d", arfcn);
-    }
+       ti = proto_tree_add_text(tree, tvb, 0, 16, "List of ARFCNs =");
+       for (arfcn=0; arfcn<=ARFCN_MAX; arfcn++) {
+               if (list[arfcn])
+                       proto_item_append_text(ti, " %d", arfcn);
+       }
 
-    return;
+       return;
 }
 
 static int f_k(int k, int *w, int range)
 {
-    int index=k, j=1, n;
-
-    /* J := GREATEST_POWER_OF_2_LESSER_OR_EQUAL_TO(INDEX); */
-    if (index>1) {
-        do {
-            j<<=1;
-        } while (j<=index);
-        j >>= 1;
-    }
+       int index=k, j=1, n;
+
+       /* J := GREATEST_POWER_OF_2_LESSER_OR_EQUAL_TO(INDEX); */
+       if (index>1) {
+               do {
+                       j<<=1;
+               } while (j<=index);
+               j >>= 1;
+       }
 
    n = w[index];
 
    while (index>1) {
-       if (2*index < 3*j) {             /* left child */
-            index -= j>>1;
-            n = (n + w[index] - range/j - 1)%((2*range/j) - 1) + 1;
-       }
-       else {                           /* right child */
-            index -= j;
-            n = (n + w[index] - 1)%((2*range)/j - 1) + 1;
-        }
-        j >>= 1;
-    }
-
-    return n%1024;
+          if (2*index < 3*j) {                  /* left child */
+                       index -= j>>1;
+                       n = (n + w[index] - range/j - 1)%((2*range/j) - 1) + 1;
+          }
+          else {                                                  /* right child */
+                       index -= j;
+                       n = (n + w[index] - 1)%((2*range)/j - 1) + 1;
+               }
+               j >>= 1;
+       }
+
+       return n%1024;
 }
 
 static void dissect_channel_list_n_range(tvbuff_t *tvb, proto_tree *tree, int range)
 {
-    int offset=0, f0, arfcn_orig, bits, w[64], wsize, i, wi;
-    int octet, nwi=1, jwi=0, wbits, imax, iused, arfcn;
-    guint8 list[1024];
-
-    memset((void*)list,0,sizeof(list));
-
-    octet = tvb_get_guint8(tvb, offset++);
-    if (range==1024) {
-        f0 = (octet>>2)&1;
-        if (f0)
-            list[0] = 1;
-        bits = 2;
-        arfcn_orig = 0;
-        wsize = 10;
-        imax = 16;
-    }
-    else {
-        arfcn_orig = (octet&1);
-        arfcn_orig = (arfcn_orig << 8) + tvb_get_guint8(tvb, offset++);
-        octet = tvb_get_guint8(tvb, offset++);
-        arfcn_orig = (arfcn_orig << 1) + (octet>>7);
-        list[arfcn_orig] = 1;
-        bits = 7;
-        switch (range) {
-        case 512:
-            wsize=9;
-            imax = 17;
-            break;
-        case 256:
-            wsize=8;
-            imax = 21;
-            break;
-        case 128:
-            wsize=7;
-            imax = 29;
-            break;
+       int offset=0, f0, arfcn_orig, bits, w[64], wsize, i, wi;
+       int octet, nwi=1, jwi=0, wbits, imax, iused, arfcn;
+       guint8 list[1024];
+
+       memset((void*)list,0,sizeof(list));
+
+       octet = tvb_get_guint8(tvb, offset++);
+       if (range==1024) {
+               f0 = (octet>>2)&1;
+               if (f0)
+                       list[0] = 1;
+               bits = 2;
+               arfcn_orig = 0;
+               wsize = 10;
+               imax = 16;
+       }
+       else {
+               arfcn_orig = (octet&1);
+               arfcn_orig = (arfcn_orig << 8) + tvb_get_guint8(tvb, offset++);
+               octet = tvb_get_guint8(tvb, offset++);
+               arfcn_orig = (arfcn_orig << 1) + (octet>>7);
+               list[arfcn_orig] = 1;
+               bits = 7;
+               switch (range) {
+               case 512:
+                       wsize=9;
+                       imax = 17;
+                       break;
+               case 256:
+                       wsize=8;
+                       imax = 21;
+                       break;
+               case 128:
+                       wsize=7;
+                       imax = 29;
+                       break;
        default:
-            wsize=0;
-            imax = 0;
-               DISSECTOR_ASSERT_NOT_REACHED();
-        }
-    }
-    iused = imax;   /* in case the list is actually full */
-
-    /* extract the variable size w[] elements */
-    for (i=1; i<=imax; i++) {
-        wi = octet & ~(0xff<<bits);     /* mask "bits" low bits to start wi from existing octet */
-        wbits = bits;
-        if (wsize>wbits) {              /* need to extract more bits from the next octet */
-            octet = tvb_get_guint8(tvb, offset++);
-            wi = (wi << 8) + octet;
-            bits = 8;
-            wbits += 8;
-        }
-
-        if (wbits>wsize)    {           /* now we have too many bits - save some */
-            bits = wbits - wsize;
-            wi >>= bits;
-        }
-        else                            /* just right number of bits */
-            bits = 0;
-
-        w[i] = wi;
-        if (w[i]==0) {
-            iused = i - 1;
-            break;      /* all remaining elements must also be zero */
-        }
-
-        if (++jwi==nwi) {       /* check if the number of wi at this wsize has been extracted */
-            jwi = 0;            /* reset the count of wi at this size */
-            nwi <<= 1;          /* get twice as many of the next size */
-            wsize--;            /* make the next size 1 bit smaller */
-        }
-    }
-
-    for (i=1; i<=iused; i++) {
-        arfcn = (f_k(i, w, range) + arfcn_orig)%1024;
-        list[arfcn] = 1;
-    }
-
-    display_channel_list(list, tvb, tree);
-
-    return;
+                       wsize=0;
+                       imax = 0;
+                       DISSECTOR_ASSERT_NOT_REACHED();
+               }
+       }
+       iused = imax;   /* in case the list is actually full */
+
+       /* extract the variable size w[] elements */
+       for (i=1; i<=imax; i++) {
+               wi = octet & ~(0xff<<bits);      /* mask "bits" low bits to start wi from existing octet */
+               wbits = bits;
+               if (wsize>wbits) {                        /* need to extract more bits from the next octet */
+                       octet = tvb_get_guint8(tvb, offset++);
+                       wi = (wi << 8) + octet;
+                       bits = 8;
+                       wbits += 8;
+               }
+
+               if (wbits>wsize)        {                  /* now we have too many bits - save some */
+                       bits = wbits - wsize;
+                       wi >>= bits;
+               }
+               else                                                    /* just right number of bits */
+                       bits = 0;
+
+               w[i] = wi;
+               if (w[i]==0) {
+                       iused = i - 1;
+                       break;    /* all remaining elements must also be zero */
+               }
+
+               if (++jwi==nwi) {          /* check if the number of wi at this wsize has been extracted */
+                       jwi = 0;                        /* reset the count of wi at this size */
+                       nwi <<= 1;                /* get twice as many of the next size */
+                       wsize--;                        /* make the next size 1 bit smaller */
+               }
+       }
+
+       for (i=1; i<=iused; i++) {
+               arfcn = (f_k(i, w, range) + arfcn_orig)%1024;
+               list[arfcn] = 1;
+       }
+
+       display_channel_list(list, tvb, tree);
+
+       return;
 }
 
 static guint8
-dissect_arfcn_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+dissect_arfcn_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint8  oct,bit,byte;
        guint16 arfcn;
        proto_item      *item;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
@@ -838,9 +841,9 @@ dissect_arfcn_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
                }
        }
 
-
        return(curr_offset - offset);
 }
+
 guint8
 de_rr_cell_ch_dsc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
@@ -854,7 +857,7 @@ de_rr_cell_ch_dsc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
  * [3] 10.5.2.2 Cell Description
  */
 guint8
-de_rr_cell_dsc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_cell_dsc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_tree      *subtree;
        proto_item      *item;
@@ -862,14 +865,13 @@ de_rr_cell_dsc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
        guint32 curr_offset;
        guint16 bcch_arfcn;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
        item =
-       proto_tree_add_text(tree,
-           tvb, curr_offset, 2,
-           gsm_rr_elem_strings[DE_RR_CELL_DSC].strptr);
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, 2,
+                       gsm_rr_elem_strings[DE_RR_CELL_DSC].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_CELL_DSC]);
 
@@ -888,14 +890,14 @@ de_rr_cell_dsc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
  * [3] 10.5.2.3 Cell Options (BCCH)
  */
 static const value_string gsm_a_rr_dtx_bcch_vals[] = {
-       { 0x00,         "The MSs may use uplink discontinuous transmission" },
-       { 0x01,         "The MSs shall use uplink discontinuous transmission" },
-       { 0x02,         "The MSs shall not use uplink discontinuous transmission" },
-       { 0x03,         "Reserved" },
-       { 0,            NULL } };
+       { 0x00, "The MSs may use uplink discontinuous transmission" },
+       { 0x01, "The MSs shall use uplink discontinuous transmission" },
+       { 0x02, "The MSs shall not use uplink discontinuous transmission" },
+       { 0x03, "Reserved" },
+       { 0,    NULL } };
 
 static guint8
-de_rr_cell_opt_bcch(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_cell_opt_bcch(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_tree      *subtree;
        proto_item      *item;
@@ -903,13 +905,12 @@ de_rr_cell_opt_bcch(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
        guint8  rlt;
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
        rlt = ((1+(oct&0x0f))<<2); /* Radio Link Timeout is in units of 4 frames, starting at 4 */
        item = proto_tree_add_text(tree, tvb, curr_offset, 1,
-           gsm_rr_elem_strings[DE_RR_CELL_OPT_BCCH].strptr);
+               gsm_rr_elem_strings[DE_RR_CELL_OPT_BCCH].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_CELL_OPT_BCCH]);
 
@@ -926,18 +927,18 @@ de_rr_cell_opt_bcch(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
  * [3] 10.5.2.3a Cell Options (SACCH)
  */
 static const value_string gsm_a_rr_dtx_sacch_vals[] = {
-       { 0x00,         "The MS may use uplink discontinuous transmission on a TCH-F. The MS shall not use uplink discontinuous transmission on TCH-H" },
-       { 0x01,         "The MS shall use uplink discontinuous transmission on a TCH-F. The MS shall not use uplink discontinuous transmission on TCH-H" },
-       { 0x02,         "The MS shall not use uplink discontinuous transmission on a TCH-F. The MS shall not use uplink discontinuous transmission on TCH-H" },
-       { 0x03,         "The MS shall use uplink discontinuous transmission on a TCH-F. The MS may use uplink discontinuous transmission on TCH-H" },
-       { 0x04,         "The MS may use uplink discontinuous transmission on a TCH-F. The MS may use uplink discontinuous transmission on TCH-H" },
-       { 0x05,         "The MS shall use uplink discontinuous transmission on a TCH-F. The MS shall use uplink discontinuous transmission on TCH-H" },
-       { 0x06,         "The MS shall not use uplink discontinuous transmission on a TCH-F. The MS shall use uplink discontinuous transmission on TCH-H" },
-       { 0x07,         "The MS may use uplink discontinuous transmission on a TCH-F. The MS shall use uplink discontinuous transmission on TCH-H" },
-       { 0,            NULL } };
+       { 0x00, "The MS may use uplink discontinuous transmission on a TCH-F. The MS shall not use uplink discontinuous transmission on TCH-H" },
+       { 0x01, "The MS shall use uplink discontinuous transmission on a TCH-F. The MS shall not use uplink discontinuous transmission on TCH-H" },
+       { 0x02, "The MS shall not use uplink discontinuous transmission on a TCH-F. The MS shall not use uplink discontinuous transmission on TCH-H" },
+       { 0x03, "The MS shall use uplink discontinuous transmission on a TCH-F. The MS may use uplink discontinuous transmission on TCH-H" },
+       { 0x04, "The MS may use uplink discontinuous transmission on a TCH-F. The MS may use uplink discontinuous transmission on TCH-H" },
+       { 0x05, "The MS shall use uplink discontinuous transmission on a TCH-F. The MS shall use uplink discontinuous transmission on TCH-H" },
+       { 0x06, "The MS shall not use uplink discontinuous transmission on a TCH-F. The MS shall use uplink discontinuous transmission on TCH-H" },
+       { 0x07, "The MS may use uplink discontinuous transmission on a TCH-F. The MS shall use uplink discontinuous transmission on TCH-H" },
+       { 0,    NULL } };
 
 static guint8
-de_rr_cell_opt_sacch(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_cell_opt_sacch(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_tree      *subtree;
        proto_item      *item;
@@ -946,14 +947,13 @@ de_rr_cell_opt_sacch(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
        guint8  rlt;
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
        dtx = ((oct&0x80)>>5)|((oct&0x30)>>4); /* DTX is a split filed in bits 8, 6 and 5 */
        rlt = ((1+(oct&0x0f))<<2); /* Radio Link Timeout is in units of 4 frames, starting at 4 */
        item = proto_tree_add_text(tree, tvb, curr_offset, 1,
-           gsm_rr_elem_strings[DE_RR_CELL_OPT_SACCH].strptr);
+               gsm_rr_elem_strings[DE_RR_CELL_OPT_SACCH].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_CELL_OPT_SACCH]);
 
@@ -970,19 +970,18 @@ de_rr_cell_opt_sacch(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
  * [3] 10.5.2.4 Cell Selection Parameters
  */
 static guint8
-de_rr_cell_sel_param(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_cell_sel_param(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_tree      *subtree;
        proto_item      *item;
        guint8  oct;
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        oct = tvb_get_guint8(tvb, curr_offset);
        item = proto_tree_add_text(tree, tvb, curr_offset, 2,
-           gsm_rr_elem_strings[DE_RR_CELL_SEL_PARAM].strptr);
+               gsm_rr_elem_strings[DE_RR_CELL_SEL_PARAM].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_CELL_SEL_PARAM]);
 
@@ -1005,7 +1004,7 @@ de_rr_cell_sel_param(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
  * [3] 10.5.2.5 Channel Description
  */
 guint8
-de_rr_ch_dsc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_ch_dsc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint8  oct8,subchannel;
@@ -1014,7 +1013,6 @@ de_rr_ch_dsc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *
        proto_item      *item;
        const gchar *str;
 
-       len = len;
        curr_offset = offset;
 
        item = proto_tree_add_text(tree,tvb, curr_offset, 3,gsm_rr_elem_strings[DE_RR_CH_DSC].strptr);
@@ -1100,7 +1098,7 @@ de_rr_ch_dsc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *
  * [3] 10.5.2.5a Channel Description 2
  */
 static guint8
-de_rr_ch_dsc2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_ch_dsc2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint8  oct8,subchannel;
@@ -1109,7 +1107,6 @@ de_rr_ch_dsc2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
        proto_item      *item;
        const gchar *str;
 
-       len = len;
        curr_offset = offset;
 
        item = proto_tree_add_text(tree,tvb, curr_offset, 3,gsm_rr_elem_strings[DE_RR_CH_DSC2].strptr);
@@ -1181,7 +1178,6 @@ de_rr_ch_dsc2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
        oct8 = tvb_get_guint8(tvb, curr_offset);
        other_decode_bitfield_value(a_bigbuf, oct8, 0xe0, 8);
        proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = Training Sequence: %d",a_bigbuf,((oct8 & 0xe0)>>5));
-       
 
        if ((oct8 & 0x10) == 0x10)
        {
@@ -1218,35 +1214,34 @@ de_rr_ch_dsc2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
  */
 /* Channel Mode  */
 static const value_string gsm_a_rr_channel_mode_vals[] = {
-{ 0x00,                "signalling only"},
-{ 0x01,                "speech full rate or half rate version 1(GSM FR or GSM HR)"},
-{ 0x21,                "speech full rate or half rate version 2(GSM EFR)"},
-{ 0x41,                "speech full rate or half rate version 3(FR AMR or HR AMR)"},
-{ 0x81,                "speech full rate or half rate version 4(OFR AMR-WB or OHR AMR-WB)"},
-{ 0x82,                "speech full rate or half rate version 5(FR AMR-WB )"},
-{ 0x83,                "speech full rate or half rate version 6(OHR AMR )"},
-{ 0x61,                "data, 43.5 kbit/s (downlink)+14.5 kbps (uplink)"},
-{ 0x62,                "data, 29.0 kbit/s (downlink)+14.5 kbps (uplink)"},
-{ 0x64,                "data, 43.5 kbit/s (downlink)+29.0 kbps (uplink)"},
-{ 0x67,                "data, 14.5 kbit/s (downlink)+43.5 kbps (uplink)"},
-{ 0x65,                "data, 14.5 kbit/s (downlink)+29.0 kbps (uplink)"},
-{ 0x66,                "data, 29.0 kbit/s (downlink)+43.5 kbps (uplink)"},
-{ 0x27,                "data, 43.5 kbit/s radio interface rate"},
-{ 0x63,                "data, 32.0 kbit/s radio interface rate"},
-{ 0x43,                "data, 29.0 kbit/s radio interface rate"},
-{ 0x0f,                "data, 14.5 kbit/s radio interface rate"},
-{ 0x03,                "data, 12.0 kbit/s radio interface rate"},
-{ 0x0b,                "data, 6.0 kbit/s radio interface rate"},
-{ 0x13,                "data, 3.6 kbit/s radio interface rate"},
+       { 0x00, "signalling only"},
+       { 0x01, "speech full rate or half rate version 1(GSM FR or GSM HR)"},
+       { 0x21, "speech full rate or half rate version 2(GSM EFR)"},
+       { 0x41, "speech full rate or half rate version 3(FR AMR or HR AMR)"},
+       { 0x81, "speech full rate or half rate version 4(OFR AMR-WB or OHR AMR-WB)"},
+       { 0x82, "speech full rate or half rate version 5(FR AMR-WB )"},
+       { 0x83, "speech full rate or half rate version 6(OHR AMR )"},
+       { 0x61, "data, 43.5 kbit/s (downlink)+14.5 kbps (uplink)"},
+       { 0x62, "data, 29.0 kbit/s (downlink)+14.5 kbps (uplink)"},
+       { 0x64, "data, 43.5 kbit/s (downlink)+29.0 kbps (uplink)"},
+       { 0x67, "data, 14.5 kbit/s (downlink)+43.5 kbps (uplink)"},
+       { 0x65, "data, 14.5 kbit/s (downlink)+29.0 kbps (uplink)"},
+       { 0x66, "data, 29.0 kbit/s (downlink)+43.5 kbps (uplink)"},
+       { 0x27, "data, 43.5 kbit/s radio interface rate"},
+       { 0x63, "data, 32.0 kbit/s radio interface rate"},
+       { 0x43, "data, 29.0 kbit/s radio interface rate"},
+       { 0x0f, "data, 14.5 kbit/s radio interface rate"},
+       { 0x03, "data, 12.0 kbit/s radio interface rate"},
+       { 0x0b, "data, 6.0 kbit/s radio interface rate"},
+       { 0x13, "data, 3.6 kbit/s radio interface rate"},
        { 0,    NULL }
 };
 
 guint8
-de_rr_ch_mode(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_ch_mode(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        proto_tree_add_item(tree, hf_gsm_a_rr_channel_mode, tvb, curr_offset, 1, FALSE);
@@ -1260,23 +1255,22 @@ de_rr_ch_mode(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
  */
 
 static const value_string gsm_a_rr_channel_mode2_vals[] = {
-{ 0x00,                "signalling only"},
-{ 0x05,                "speech half rate version 1(GSM HR)"},
-{ 0x25,                "speech half rate version 2(GSM EFR)"},
-{ 0x45,                "speech half rate version 3(HR AMR)"},
-{ 0x85,                "speech half rate version 4(OHR AMR-WB)"},
-{ 0x06,                "speech half rate version 6(OHR AMR )"},
-{ 0x0f,                "data, 6.0 kbit/s radio interface rate"},
-{ 0x17,                "data, 3.6 kbit/s radio interface rate"},
+       { 0x00, "signalling only"},
+       { 0x05, "speech half rate version 1(GSM HR)"},
+       { 0x25, "speech half rate version 2(GSM EFR)"},
+       { 0x45, "speech half rate version 3(HR AMR)"},
+       { 0x85, "speech half rate version 4(OHR AMR-WB)"},
+       { 0x06, "speech half rate version 6(OHR AMR )"},
+       { 0x0f, "data, 6.0 kbit/s radio interface rate"},
+       { 0x17, "data, 3.6 kbit/s radio interface rate"},
        { 0,    NULL }
 };
 
 static guint8
-de_rr_ch_mode2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_ch_mode2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        proto_tree_add_item(tree, hf_gsm_a_rr_channel_mode2, tvb, curr_offset, 1, FALSE);
@@ -1307,27 +1301,26 @@ de_rr_ch_mode2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
  * Bits 2 - 1: spare(0).
  */
 static const true_false_string gsm_a_msg_req_value  = {
-  "message is not requested",
-  "message is requested"
+       "message is not requested",
+       "message is requested"
 };
 
 static const value_string gsm_a_rr_utran_cm_cng_msg_req_vals[] = {
-{ 0x0,         "message including status on predefined configurations (i.e. Sequence Description) is requested"},
-{ 0x1,         "message including status on predefined configurations (i.e. Sequence Description) is requested"},
-{ 0x2,         "message including status on predefined configurations (i.e. Sequence Description) is requested"},
-{ 0x3,         "message including status on predefined configurations (i.e. Sequence Description) is requested"},
-{ 0x4,         "message including status on predefined configurations (i.e. Sequence Description) is requested"},
-{ 0x5,         "message including status on predefined configurations (i.e. Sequence Description) is requested"},
-{ 0x6,         "message including status on predefined configurations (i.e. Sequence Description) is requested"},
-{ 0x7,         "message including status on predefined configurations (i.e. Sequence Description) is not requested."},
-{ 0,           NULL }
+       { 0x0,  "message including status on predefined configurations (i.e. Sequence Description) is requested"},
+       { 0x1,  "message including status on predefined configurations (i.e. Sequence Description) is requested"},
+       { 0x2,  "message including status on predefined configurations (i.e. Sequence Description) is requested"},
+       { 0x3,  "message including status on predefined configurations (i.e. Sequence Description) is requested"},
+       { 0x4,  "message including status on predefined configurations (i.e. Sequence Description) is requested"},
+       { 0x5,  "message including status on predefined configurations (i.e. Sequence Description) is requested"},
+       { 0x6,  "message including status on predefined configurations (i.e. Sequence Description) is requested"},
+       { 0x7,  "message including status on predefined configurations (i.e. Sequence Description) is not requested."},
+       { 0,    NULL }
 };
 guint8
-de_rr_cm_enq_mask(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_cm_enq_mask(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        proto_tree_add_item(tree, hf_gsm_a_rr_cm_cng_msg_req, tvb, curr_offset, 1, FALSE);
@@ -1343,18 +1336,17 @@ de_rr_cm_enq_mask(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
  * [3] 10.5.2.8 Channel Needed
  */
 static const value_string gsm_a_rr_channel_needed_vals[] = {
-{ 0x00,                "Any channel"},
-{ 0x01,                "SDCCH"},
-{ 0x02,                "TCH/F (Full rate)"},
-{ 0x03,                "TCH/H or TCH/F (Dual rate)"},
-{ 0,           NULL }
+       { 0x00, "Any channel"},
+       { 0x01, "SDCCH"},
+       { 0x02, "TCH/F (Full rate)"},
+       { 0x03, "TCH/H or TCH/F (Dual rate)"},
+       { 0,    NULL }
 };
 guint8
-de_rr_chnl_needed(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_chnl_needed(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        proto_tree_add_item(tree, hf_gsm_a_rr_chnl_needed_ch1, tvb, curr_offset, 1, FALSE);
@@ -1373,8 +1365,8 @@ de_rr_chnl_needed(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
  */
 /* SC (octet 1) */
 static const value_string gsm_a_rr_sc_vals[] = {
-       { 0,            "No ciphering"},
-       { 1,            "Start ciphering"},
+       { 0,    "No ciphering"},
+       { 1,    "Start ciphering"},
        { 0,    NULL }
 };
 /* algorithm identifier
@@ -1440,42 +1432,41 @@ de_rr_cip_mode_resp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
 /* [3] 10.5.2.11 Control Channel Description */
 
 static const value_string gsm_a_rr_mscr_vals[] = {
-       { 0,            "MSC is Release '98 or older"},
-       { 1,            "MSC is Release '99 onwards"},
+       { 0,    "MSC is Release '98 or older"},
+       { 1,    "MSC is Release '99 onwards"},
        { 0,    NULL }
 };
 
 static const value_string gsm_a_rr_att_vals[] = {
-       { 0,            "MSs in the cell are not allowed to apply IMSI attach and detach procedure"},
-       { 1,            "MSs in the cell shall apply IMSI attach and detach procedure"},
+       { 0,    "MSs in the cell are not allowed to apply IMSI attach and detach procedure"},
+       { 1,    "MSs in the cell shall apply IMSI attach and detach procedure"},
        { 0,    NULL }
 };
 
 static const value_string gsm_a_rr_ccch_conf_vals[] = {
-       { 0,            "1 basic physical channel used for CCCH, not combined with SDCCHs"},
-       { 1,            "1 basic physical channel used for CCCH, combined with SDCCHs"},
-       { 2,            "2 basic physical channels used for CCCH, not combined with SDCCHs"},
-       { 3,            "Reserved"},
-       { 4,            "3 basic physical channels used for CCCH, not combined with SDCCHs"},
-       { 5,            "Reserved"},
-       { 6,            "4 basic physical channels used for CCCH, not combined with SDCCHs"},
-       { 7,            "Reserved"},
+       { 0,    "1 basic physical channel used for CCCH, not combined with SDCCHs"},
+       { 1,    "1 basic physical channel used for CCCH, combined with SDCCHs"},
+       { 2,    "2 basic physical channels used for CCCH, not combined with SDCCHs"},
+       { 3,    "Reserved"},
+       { 4,    "3 basic physical channels used for CCCH, not combined with SDCCHs"},
+       { 5,    "Reserved"},
+       { 6,    "4 basic physical channels used for CCCH, not combined with SDCCHs"},
+       { 7,    "Reserved"},
        { 0,    NULL }
 };
 
 static guint8
-de_rr_ctrl_ch_desc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_ctrl_ch_desc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_tree      *subtree;
        proto_item      *item;
        guint8  oct;
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        item = proto_tree_add_text(tree, tvb, curr_offset, 3,
-           gsm_rr_elem_strings[DE_RR_CTRL_CH_DESC].strptr);
+               gsm_rr_elem_strings[DE_RR_CTRL_CH_DESC].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_CTRL_CH_DESC]);
 
@@ -1498,23 +1489,20 @@ de_rr_ctrl_ch_desc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
        return(curr_offset - offset);
 }
 
-
 /* [3] 10.5.2.11a DTM Information Details
  */
 /*
  * [3]  10.5.2.11b     Dynamic ARFCN Mapping   
  */
 static guint8
-de_rr_dyn_arfcn_map(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_dyn_arfcn_map(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        proto_tree_add_text(tree,tvb, curr_offset, len,"Dynamic ARFCN Mapping content(Not decoded)");
 
-
        curr_offset = curr_offset + len;
 
        return(curr_offset - offset);
@@ -1523,11 +1511,10 @@ de_rr_dyn_arfcn_map(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
  * [3] 10.5.2.12 Frequency Channel Sequence
  */
 static guint8
-de_rr_freq_ch_seq(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_freq_ch_seq(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        proto_tree_add_text(tree,tvb, curr_offset, 9,"Frequency Channel Sequence(Not decoded)");
@@ -1536,6 +1523,7 @@ de_rr_freq_ch_seq(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
 
        return(curr_offset - offset);
 }
+
 /*
  * [3] 10.5.2.13 Frequency List
  */
@@ -1553,22 +1541,22 @@ de_rr_freq_ch_seq(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
  */
 /* The mask 0xce (1100 1110) will produce the result 0110 0111*/ 
 static const value_string gsm_a_rr_freq_list_format_id_vals[] = {
-       { 0x00,         "bit map 0"},
-       { 0x02,         "bit map 0"},
-       { 0x04,         "bit map 0"},
-       { 0x06,         "bit map 0"},
-       { 0x08,         "bit map 0"},
-       { 0x0a,         "bit map 0"},
-       { 0x0c,         "bit map 0"},
-       { 0x0e,         "bit map 0"},
-       { 0x40,         "1024 range"},
-       { 0x41,         "1024 range"},
-       { 0x42,         "1024 range"},
-       { 0x43,         "1024 range"},
-       { 0x44,         "512 range"},
-       { 0x45,         "256 range"},
-       { 0x46,         "128 range"},
-       { 0x47,         "variable bit map"},
+       { 0x00, "bit map 0"},
+       { 0x02, "bit map 0"},
+       { 0x04, "bit map 0"},
+       { 0x06, "bit map 0"},
+       { 0x08, "bit map 0"},
+       { 0x0a, "bit map 0"},
+       { 0x0c, "bit map 0"},
+       { 0x0e, "bit map 0"},
+       { 0x40, "1024 range"},
+       { 0x41, "1024 range"},
+       { 0x42, "1024 range"},
+       { 0x43, "1024 range"},
+       { 0x44, "512 range"},
+       { 0x45, "256 range"},
+       { 0x46, "128 range"},
+       { 0x47, "variable bit map"},
        { 0x00, NULL }
 };
 static guint8
@@ -1585,12 +1573,12 @@ de_rr_freq_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
  * except that it has a fixed length instead of a variable length and does
  * not contain a length indicator and that it shall not be encoded in bitmap 0 format.
  */
-static guint8
-de_rr_freq_short_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+
+ static guint8
+de_rr_freq_short_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        /* FORMAT-ID, Format Identifier (part of octet 3)*/
@@ -1602,6 +1590,7 @@ de_rr_freq_short_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
        return(curr_offset - offset);
 
 }
+
 /*
  * [3] 10.5.2.14a Frequency Short List 2
  *
@@ -1612,11 +1601,10 @@ de_rr_freq_short_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
  * not contain a length indicator and that it shall not be encoded in bitmap 0 format.
  */
 static guint8
-de_rr_freq_short_list2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_freq_short_list2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        /* FORMAT-ID, Format Identifier (part of octet 3)*/
@@ -1638,19 +1626,18 @@ de_rr_freq_short_list2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint le
  * [3] 10.5.2.15 Handover Reference
  */
 static guint8
-de_rr_ho_ref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_ho_ref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_tree      *subtree;
        proto_item      *item;
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        item =
-       proto_tree_add_text(tree,
-           tvb, curr_offset, 1,
-           gsm_rr_elem_strings[DE_RR_HO_REF].strptr);
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, 1,
+                       gsm_rr_elem_strings[DE_RR_HO_REF].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_HO_REF]);
 
@@ -1679,9 +1666,9 @@ de_rr_ia_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
        curr_offset = offset;
 
        item =
-       proto_tree_add_text(tree,
-           tvb, curr_offset, len,
-           gsm_rr_elem_strings[DE_RR_IA_REST_OCT].strptr);
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, len,
+                       gsm_rr_elem_strings[DE_RR_IA_REST_OCT].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_IA_REST_OCT]);
 
@@ -1691,6 +1678,7 @@ de_rr_ia_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
 
        return curr_offset-offset;
 }
+
 /*
  * [3] 10.5.2.17 IAR Rest Octets
  */
@@ -1707,8 +1695,8 @@ de_rr_iar_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
 
        item =
        proto_tree_add_text(tree,
-           tvb, curr_offset, 3,
-           gsm_rr_elem_strings[DE_RR_IAR_REST_OCT].strptr);
+               tvb, curr_offset, 3,
+               gsm_rr_elem_strings[DE_RR_IAR_REST_OCT].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_IAR_REST_OCT]);
 
@@ -1718,10 +1706,10 @@ de_rr_iar_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
 
        return curr_offset-offset;
 }
+
 /*
  * [3] 10.5.2.18 IAX Rest Octets
  */
-
 static guint8
 de_rr_iax_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
@@ -1737,8 +1725,8 @@ de_rr_iax_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
 
        item =
        proto_tree_add_text(tree,
-           tvb, curr_offset, len,
-           gsm_rr_elem_strings[DE_RR_IAX_REST_OCT].strptr);
+               tvb, curr_offset, len,
+               gsm_rr_elem_strings[DE_RR_IAX_REST_OCT].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_IAX_REST_OCT]);
 
@@ -1753,16 +1741,15 @@ de_rr_iax_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
  * [3] 10.5.2.19 L2 Pseudo Length
  */
 static guint8
-de_rr_l2_pseudo_len(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_l2_pseudo_len(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_tree      *subtree;
        proto_item      *item;
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
-       item =  proto_tree_add_text(tree,tvb, curr_offset, 1, gsm_rr_elem_strings[DE_RR_L2_PSEUDO_LEN].strptr);
+       item = proto_tree_add_text(tree,tvb, curr_offset, 1, gsm_rr_elem_strings[DE_RR_L2_PSEUDO_LEN].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_L2_PSEUDO_LEN]);
 
@@ -1773,80 +1760,81 @@ de_rr_l2_pseudo_len(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
 
        return(curr_offset - offset);
 }
+
 /*
  * [3] 10.5.2.20 Measurement Results
  */
 static const value_string gsm_a_rr_dtx_vals[] = {
        { 0,    "DTX was not used"},
        { 1,    "DTX was used"},
-        { 0,    NULL}
+       { 0,    NULL}
 };
 static const value_string gsm_a_rr_rxlev_vals [] = {
-  {0, "< -110 dBm"},
-  {1, "-110 <= x < -109 dBm"},
-  {2, "-109 <= x < -108 dBm"},
-  {3, "-108 <= x < -107 dBm"},
-  {4, "-107 <= x < -106 dBm"},
-  {5, "-106 <= x < -105 dBm"},
-  {6, "-105 <= x < -104 dBm"},
-  {7, "-104 <= x < -103 dBm"},
-  {8, "-103 <= x < -102 dBm"},
-  {9, "-102 <= x < -101 dBm"},
-  {10, "-101 <= x < -100 dBm"},
-  {11, "-100 <= x < -99 dBm"},
-  {12, "-99 <= x < -98 dBm"},
-  {13, "-98 <= x < -97 dBm"},
-  {14, "-97 <= x < -96 dBm"},
-  {15, "-96 <= x < -95 dBm"},
-  {16, "-95 <= x < -94 dBm"},
-  {17, "-94 <= x < -93 dBm"},
-  {18, "-93 <= x < -92 dBm"},
-  {19, "-92 <= x < -91 dBm"},
-  {20, "-91 <= x < -90 dBm"},
-  {21, "-90 <= x < -89 dBm"},
-  {22, "-89 <= x < -88 dBm"},
-  {23, "-88 <= x < -87 dBm"},
-  {24, "-87 <= x < -86 dBm"},
-  {25, "-86 <= x < -85 dBm"},
-  {26, "-85 <= x < -84 dBm"},
-  {27, "-84 <= x < -83 dBm"},
-  {28, "-83 <= x < -82 dBm"},
-  {29, "-82 <= x < -81 dBm"},
-  {30, "-81 <= x < -80 dBm"},
-  {31, "-80 <= x < -79 dBm"},
-  {32, "-79 <= x < -78 dBm"},
-  {33, "-78 <= x < -77 dBm"},
-  {34, "-77 <= x < -76 dBm"},
-  {35, "-76 <= x < -75 dBm"},
-  {36, "-75 <= x < -74 dBm"},
-  {37, "-74 <= x < -73 dBm"},
-  {38, "-73 <= x < -72 dBm"},
-  {39, "-72 <= x < -71 dBm"},
-  {40, "-71 <= x < -70 dBm"},
-  {41, "-70 <= x < -69 dBm"},
-  {42, "-69 <= x < -68 dBm"},
-  {43, "-68 <= x < -67 dBm"},
-  {44, "-67 <= x < -66 dBm"},
-  {45, "-66 <= x < -65 dBm"},
-  {46, "-65 <= x < -64 dBm"},
-  {47, "-64 <= x < -63 dBm"},
-  {48, "-63 <= x < -62 dBm"},
-  {49, "-62 <= x < -61 dBm"},
-  {50, "-61 <= x < -60 dBm"},
-  {51, "-60 <= x < -59 dBm"},
-  {52, "-59 <= x < -58 dBm"},
-  {53, "-58 <= x < -57 dBm"},
-  {54, "-57 <= x < -56 dBm"},
-  {55, "-56 <= x < -55 dBm"},
-  {56, "-55 <= x < -54 dBm"},
-  {57, "-54 <= x < -53 dBm"},
-  {58, "-53 <= x < -52 dBm"},
-  {59, "-52 <= x < -51 dBm"},
-  {60, "-51 <= x < -50 dBm"},
-  {61, "-50 <= x < -49 dBm"},
-  {62, "-49 <= x < -48 dBm"},
-  {63, ">= -48 dBm"},
-  { 0, NULL}
+       {0, "< -110 dBm"},
+       {1, "-110 <= x < -109 dBm"},
+       {2, "-109 <= x < -108 dBm"},
+       {3, "-108 <= x < -107 dBm"},
+       {4, "-107 <= x < -106 dBm"},
+       {5, "-106 <= x < -105 dBm"},
+       {6, "-105 <= x < -104 dBm"},
+       {7, "-104 <= x < -103 dBm"},
+       {8, "-103 <= x < -102 dBm"},
+       {9, "-102 <= x < -101 dBm"},
+       {10, "-101 <= x < -100 dBm"},
+       {11, "-100 <= x < -99 dBm"},
+       {12, "-99 <= x < -98 dBm"},
+       {13, "-98 <= x < -97 dBm"},
+       {14, "-97 <= x < -96 dBm"},
+       {15, "-96 <= x < -95 dBm"},
+       {16, "-95 <= x < -94 dBm"},
+       {17, "-94 <= x < -93 dBm"},
+       {18, "-93 <= x < -92 dBm"},
+       {19, "-92 <= x < -91 dBm"},
+       {20, "-91 <= x < -90 dBm"},
+       {21, "-90 <= x < -89 dBm"},
+       {22, "-89 <= x < -88 dBm"},
+       {23, "-88 <= x < -87 dBm"},
+       {24, "-87 <= x < -86 dBm"},
+       {25, "-86 <= x < -85 dBm"},
+       {26, "-85 <= x < -84 dBm"},
+       {27, "-84 <= x < -83 dBm"},
+       {28, "-83 <= x < -82 dBm"},
+       {29, "-82 <= x < -81 dBm"},
+       {30, "-81 <= x < -80 dBm"},
+       {31, "-80 <= x < -79 dBm"},
+       {32, "-79 <= x < -78 dBm"},
+       {33, "-78 <= x < -77 dBm"},
+       {34, "-77 <= x < -76 dBm"},
+       {35, "-76 <= x < -75 dBm"},
+       {36, "-75 <= x < -74 dBm"},
+       {37, "-74 <= x < -73 dBm"},
+       {38, "-73 <= x < -72 dBm"},
+       {39, "-72 <= x < -71 dBm"},
+       {40, "-71 <= x < -70 dBm"},
+       {41, "-70 <= x < -69 dBm"},
+       {42, "-69 <= x < -68 dBm"},
+       {43, "-68 <= x < -67 dBm"},
+       {44, "-67 <= x < -66 dBm"},
+       {45, "-66 <= x < -65 dBm"},
+       {46, "-65 <= x < -64 dBm"},
+       {47, "-64 <= x < -63 dBm"},
+       {48, "-63 <= x < -62 dBm"},
+       {49, "-62 <= x < -61 dBm"},
+       {50, "-61 <= x < -60 dBm"},
+       {51, "-60 <= x < -59 dBm"},
+       {52, "-59 <= x < -58 dBm"},
+       {53, "-58 <= x < -57 dBm"},
+       {54, "-57 <= x < -56 dBm"},
+       {55, "-56 <= x < -55 dBm"},
+       {56, "-55 <= x < -54 dBm"},
+       {57, "-54 <= x < -53 dBm"},
+       {58, "-53 <= x < -52 dBm"},
+       {59, "-52 <= x < -51 dBm"},
+       {60, "-51 <= x < -50 dBm"},
+       {61, "-50 <= x < -49 dBm"},
+       {62, "-49 <= x < -48 dBm"},
+       {63, ">= -48 dBm"},
+       { 0, NULL}
 };
 static const value_string gsm_a_rr_mv_vals[] = {
        { 0,    "The measurement results are valid"},
@@ -1854,42 +1842,41 @@ static const value_string gsm_a_rr_mv_vals[] = {
        { 0,    NULL}
 };
 static const value_string gsm_a_rr_rxqual_vals [] = {
-  {0, "BER < 0.2%, Mean value 0.14%"},
-  {1, "0.2% <= BER < 0.4%, Mean value 0.28%"},
-  {2, "0.4% <= BER < 0.8%, Mean value 0.57%"},
-  {3, "0.8% <= BER < 1.6%, Mean value 1.13%"},
-  {4, "1.6% <= BER < 3.2%, Mean value 2.26%"},
-  {5, "3.2% <= BER < 6.4%, Mean value 4.53%"},
-  {6, "6.4% <= BER < 12.8%, Mean value 9.05%"},
-  {7, "BER > 12.8%, Mean value 18.10%"},
-  {0, NULL}
+       {0, "BER < 0.2%, Mean value 0.14%"},
+       {1, "0.2% <= BER < 0.4%, Mean value 0.28%"},
+       {2, "0.4% <= BER < 0.8%, Mean value 0.57%"},
+       {3, "0.8% <= BER < 1.6%, Mean value 1.13%"},
+       {4, "1.6% <= BER < 3.2%, Mean value 2.26%"},
+       {5, "3.2% <= BER < 6.4%, Mean value 4.53%"},
+       {6, "6.4% <= BER < 12.8%, Mean value 9.05%"},
+       {7, "BER > 12.8%, Mean value 18.10%"},
+       {0, NULL}
 };
 static const value_string gsm_a_rr_ncell_vals [] = {
-  {0, "No neighbour cell measurement result"},
-  {1, "1 neighbour cell measurement result"},
-  {2, "2 neighbour cell measurement result"},
-  {3, "3 neighbour cell measurement result"},
-  {4, "4 neighbour cell measurement result"},
-  {5, "5 neighbour cell measurement result"},
-  {6, "6 neighbour cell measurement result"},
-  {7, "Neighbour cell information not available for serving cell"},
-  {0, NULL}
+       {0, "No neighbour cell measurement result"},
+       {1, "1 neighbour cell measurement result"},
+       {2, "2 neighbour cell measurement result"},
+       {3, "3 neighbour cell measurement result"},
+       {4, "4 neighbour cell measurement result"},
+       {5, "5 neighbour cell measurement result"},
+       {6, "6 neighbour cell measurement result"},
+       {7, "Neighbour cell information not available for serving cell"},
+       {0, NULL}
 };
-
 guint8
-de_rr_meas_res(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_meas_res(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
-    proto_tree *subtree;
-    proto_item *item;
-    guint32    curr_offset;
-    guint8     oct, nextoct, val;
-    len = len;
-    curr_offset = offset;
+       proto_tree      *subtree;
+       proto_item      *item;
+       guint32 curr_offset;
+       guint8  oct, nextoct, val;
+
+       curr_offset = offset;
 
        item =
-       proto_tree_add_text(tree,
-           tvb, curr_offset, 16,
-           gsm_rr_elem_strings[DE_RR_MEAS_RES].strptr);
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, 16,
+                       gsm_rr_elem_strings[DE_RR_MEAS_RES].strptr);
        subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_MEAS_RES]);
 
        /* 2nd octet */
@@ -1944,7 +1931,7 @@ de_rr_meas_res(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
                val_to_str(val, gsm_a_rr_ncell_vals, "Reserved (0x%02x)"),val);
 
        curr_offset = curr_offset + len;
-    return(curr_offset - offset);
+       return(curr_offset - offset);
 }
 
 /*
@@ -1958,15 +1945,14 @@ de_rr_mob_all(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
 {
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        proto_tree_add_text(tree,tvb, curr_offset, len ,"Data(Not decoded)");
 
        curr_offset = curr_offset + len;
        return(curr_offset - offset);
-
 }
+
 /*
  * [3] 10.5.2.21a Mobile Time Difference
  */
@@ -1975,7 +1961,6 @@ de_rr_mob_time_diff(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
 {
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        proto_tree_add_text(tree,tvb, curr_offset, len ,"Data(Not decoded)");
@@ -1989,20 +1974,20 @@ de_rr_mob_time_diff(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
  */
 /*     Multirate speech version Octet 3 Bits 8 7 6 */
 static const value_string multirate_speech_ver_vals[] = {
-       { 1,            "Adaptive Multirate speech version 1"},
-       { 2,            "Adaptive Multirate speech version 2"},
+       { 1,    "Adaptive Multirate speech version 1"},
+       { 2,    "Adaptive Multirate speech version 2"},
        { 0,    NULL }
 };
 /* Bit 5       NSCB: Noise Suppression Control Bit */
 static const value_string NSCB_vals[] = {
-       { 0,            "Noise Suppression can be used (default)"},
-       { 1,            "Noise Suppression shall be turned off"},
+       { 0,    "Noise Suppression can be used (default)"},
+       { 1,    "Noise Suppression shall be turned off"},
        { 0,    NULL }
 };
 /* Bit 4       ICMI: Initial Codec Mode Indicator */
 static const value_string ICMI_vals[] = {
-       { 0,            "The initial codec mode is defined by the implicit rule provided in 3GPP TS 05.09"},
-       { 1,            "The initial codec mode is defined by the Start Mode field"},
+       { 0,    "The initial codec mode is defined by the implicit rule provided in 3GPP TS 05.09"},
+       { 1,    "The initial codec mode is defined by the Start Mode field"},
        { 0,    NULL }
 };
 /*
@@ -2010,17 +1995,16 @@ Table 10.5.2.21aa.2: Set of adaptive multirate codec modes field (octet 4)
 for the Multirate speech version 1
 */
 static const true_false_string gsm_a_rr_set_of_amr_codec_modes  = {
-  "is part of the subset",
-  "is not part of the subset"
+       "is part of the subset",
+       "is not part of the subset"
 };
 
 guint8
-de_rr_multirate_conf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_multirate_conf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint8 oct;
 
-       len = len;
        curr_offset = offset;
 
        proto_tree_add_item(tree, hf_gsm_a_rr_multirate_speech_ver, tvb, curr_offset, 1, FALSE);
@@ -2045,7 +2029,6 @@ de_rr_multirate_conf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
                curr_offset++;
 
                proto_tree_add_text(tree,tvb, curr_offset, len-2 ,"Parameters for multirate speech field(Not decoded)");
-
                break;
        case 2:
                /* Adaptive Multirate speech version 2 */
@@ -2061,7 +2044,7 @@ de_rr_multirate_conf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
        default:
                proto_tree_add_text(tree,tvb,offset,1,"Unknown version");
                proto_tree_add_text(tree,tvb, curr_offset, len-1 ,"Data(Not decoded)");
-                       break;
+               break;
        }
 
        curr_offset = offset + len;
@@ -2076,7 +2059,6 @@ de_rr_mult_all(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
 {
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        proto_tree_add_text(tree,tvb, curr_offset, len ,"Data(Not decoded)");
@@ -2093,17 +2075,15 @@ de_rr_mult_all(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
  * [3] 10.5.2.22 Neighbour Cell Description
  */
 static const value_string gsm_a_rr_ext_ind_vals[] = {
-       { 0,            "The information element carries the complete BA"},
-       { 1,            "The information element carries only a part of the BA"},
+       { 0,    "The information element carries the complete BA"},
+       { 1,    "The information element carries only a part of the BA"},
        { 0,    NULL }
 };
-
 static guint8
 de_rr_neigh_cell_desc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        proto_tree_add_item(tree, hf_gsm_a_rr_ext_ind, tvb, curr_offset, 1, FALSE);
@@ -2120,7 +2100,6 @@ de_rr_neigh_cell_desc2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint le
 {
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        proto_tree_add_item(tree, hf_gsm_a_rr_multiband_reporting, tvb, curr_offset, 1, FALSE);
@@ -2141,9 +2120,8 @@ de_rr_neigh_cell_desc2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint le
  * [3] 10.5.2.25a Packet Channel Description C V 3
  */
 static guint8
-de_rr_packet_ch_desc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_packet_ch_desc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
-
        guint32 curr_offset;
        guint8  oct8;
        guint16 arfcn, hsn, maio;
@@ -2151,7 +2129,6 @@ de_rr_packet_ch_desc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
        proto_item      *item;
        const gchar *str;
 
-       len = len;
        curr_offset = offset;
 
        item = proto_tree_add_text(tree,tvb,curr_offset,3,gsm_rr_elem_strings[DE_RR_PACKET_CH_DESC].strptr);
@@ -2207,31 +2184,29 @@ de_rr_packet_ch_desc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
  */
 
 static const value_string gsm_a_rr_dedicated_mode_or_tbf_vals[] = {
-       { 0,            "This message assigns a dedicated mode resource"},
-       { 1,            "This message assigns an uplink TBF or is the second message of two in a two-message assignment of an uplink or downlink TBF"},
-       { 2,            "Not used"},
-       { 3,            "This message assigns a downlink TBF to the mobile station identified in the IA Rest Octets IE"},
-       { 4,            "Not used"},
-       { 5,            "This message is the first message of two in a two-message assignment of an uplink TBF"},
-       { 6,            "Not used"},
-       { 7,            "This message is the first message of two in a two-message assignment of a downlink TBF to the mobile station identified in the IA Rest Octets IE"},
+       { 0,    "This message assigns a dedicated mode resource"},
+       { 1,    "This message assigns an uplink TBF or is the second message of two in a two-message assignment of an uplink or downlink TBF"},
+       { 2,    "Not used"},
+       { 3,    "This message assigns a downlink TBF to the mobile station identified in the IA Rest Octets IE"},
+       { 4,    "Not used"},
+       { 5,    "This message is the first message of two in a two-message assignment of an uplink TBF"},
+       { 6,    "Not used"},
+       { 7,    "This message is the first message of two in a two-message assignment of a downlink TBF to the mobile station identified in the IA Rest Octets IE"},
        { 0,    NULL }
 };
-
 static guint8
-de_rr_ded_mod_or_tbf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_ded_mod_or_tbf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_tree      *subtree;
        proto_item      *item;
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        item =
-       proto_tree_add_text(tree,
-           tvb, curr_offset, 1,
-           gsm_rr_elem_strings[DE_RR_DED_MOD_OR_TBF].strptr);
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, 1,
+                       gsm_rr_elem_strings[DE_RR_DED_MOD_OR_TBF].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_DED_MOD_OR_TBF]);
 
@@ -2248,27 +2223,25 @@ de_rr_ded_mod_or_tbf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
  */
 
 static const value_string gsm_a_rr_page_mode_vals[] = {
-       { 0,            "Normal paging"},
-       { 1,            "Extended paging"},
-       { 2,            "Paging reorganization"},
-       { 3,            "Same as before"},
+       { 0,    "Normal paging"},
+       { 1,    "Extended paging"},
+       { 2,    "Paging reorganization"},
+       { 3,    "Same as before"},
        { 0,    NULL }
 };
-
 static guint8
-de_rr_page_mode(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_page_mode(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_tree      *subtree;
        proto_item      *item;
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        item =
-       proto_tree_add_text(tree,
-           tvb, curr_offset, 1,
-           gsm_rr_elem_strings[DE_RR_PAGE_MODE].strptr);
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, 1,
+                       gsm_rr_elem_strings[DE_RR_PAGE_MODE].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_PAGE_MODE]);
 
@@ -2286,17 +2259,16 @@ de_rr_page_mode(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
  * [3] 10.5.2.27 NCC Permitted
  */
 static guint8
-de_rr_ncc_perm(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_ncc_perm(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_tree      *subtree;
        proto_item      *item;
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        item = proto_tree_add_text(tree, tvb, curr_offset, 1,
-           gsm_rr_elem_strings[DE_RR_NCC_PERM].strptr);
+               gsm_rr_elem_strings[DE_RR_NCC_PERM].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_NCC_PERM]);
 
@@ -2315,8 +2287,8 @@ de_rr_ncc_perm(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
  * 1   Sending of Handover access is optional
  */
 static const true_false_string gsm_a_rr_pow_cmd_atc_value  = {
-  "Sending of Handover access is optional",
-  "Sending of Handover access is mandatory"
+       "Sending of Handover access is optional",
+       "Sending of Handover access is mandatory"
 };
 /*
  *  The EPC mode field (octet 2) indicates whether the assigned channel(s)
@@ -2324,8 +2296,8 @@ static const true_false_string gsm_a_rr_pow_cmd_atc_value  = {
  *  on which EPC may be used. It is coded as follows:
 */
 static const true_false_string gsm_a_rr_pow_cmd_epc_value  = {
-  "Channel(s) in EPC mode",
-  "Channel(s) not in EPC mode"
+       "Channel(s) in EPC mode",
+       "Channel(s) not in EPC mode"
 };
 /*
  * FPC_EPC (octet 2)
@@ -2337,7 +2309,7 @@ static const true_false_string gsm_a_rr_pow_cmd_epc_value  = {
  *             Reporting and Power Control mechanism is used.
  *             It is coded as follows:
  * Value 0     FPC not in use
- *           FPC in use
+ *        1    FPC in use
  * If the channel mode is such that EPC may be used and the EPC mode
  *             field indicates that the channel is in EPC mode, the FPC_EPC
  *             field indicates whether EPC shall be used for uplink power control.
@@ -2347,8 +2319,8 @@ static const true_false_string gsm_a_rr_pow_cmd_epc_value  = {
  *
  */
 static const true_false_string gsm_a_rr_pow_cmd_fpcepc_value  = {
-  "FPC in use/EPC in use for uplink power control",
-  "FPC not in use/C not in use for uplink power control"
+       "FPC in use/EPC in use for uplink power control",
+       "FPC not in use/C not in use for uplink power control"
 };
 
 /*
@@ -2358,19 +2330,18 @@ static const true_false_string gsm_a_rr_pow_cmd_fpcepc_value  = {
  */
 
 static guint8
-de_rr_pow_cmd(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_pow_cmd(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_tree      *subtree;
        proto_item      *item;
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        item =
-       proto_tree_add_text(tree,
-           tvb, curr_offset, 1,
-           gsm_rr_elem_strings[DE_RR_POW_CMD].strptr);
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, 1,
+                       gsm_rr_elem_strings[DE_RR_POW_CMD].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_POW_CMD]);
 
@@ -2391,19 +2362,18 @@ de_rr_pow_cmd(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
  * [3] 10.5.2.28a Power Command and access type
  */
 static guint8
-de_rr_pow_cmd_and_acc_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_pow_cmd_and_acc_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_tree      *subtree;
        proto_item      *item;
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        item =
-       proto_tree_add_text(tree,
-           tvb, curr_offset, 1,
-           gsm_rr_elem_strings[DE_RR_POW_CMD_AND_ACC_TYPE].strptr);
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, 1,
+                       gsm_rr_elem_strings[DE_RR_POW_CMD_AND_ACC_TYPE].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_POW_CMD_AND_ACC_TYPE]);
 
@@ -2425,55 +2395,54 @@ de_rr_pow_cmd_and_acc_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guin
  */
 
 static const value_string gsm_a_rr_max_retrans_vals[] = {
-       { 0,            "Maximum 1 retransmission"},
-       { 1,            "Maximum 2 retransmissions"},
-       { 2,            "Maximum 4 retransmissions"},
-       { 3,            "Maximum 7 retransmissions"},
+       { 0,    "Maximum 1 retransmission"},
+       { 1,    "Maximum 2 retransmissions"},
+       { 2,    "Maximum 4 retransmissions"},
+       { 3,    "Maximum 7 retransmissions"},
        { 0,    NULL }
 };
 
 static const value_string gsm_a_rr_tx_integer_vals[] = {
-       { 0,            "3 slots used to spread transmission"},
-       { 1,            "4 slots used to spread transmission"},
-       { 2,            "5 slots used to spread transmission"},
-       { 3,            "6 slots used to spread transmission"},
-       { 4,            "7 slots used to spread transmission"},
-       { 5,            "8 slots used to spread transmission"},
-       { 6,            "9 slots used to spread transmission"},
-       { 7,            "10 slots used to spread transmission"},
-       { 8,            "11 slots used to spread transmission"},
-       { 9,            "12 slots used to spread transmission"},
-       { 10,           "14 slots used to spread transmission"},
-       { 11,           "16 slots used to spread transmission"},
-       { 12,           "20 slots used to spread transmission"},
-       { 13,           "25 slots used to spread transmission"},
-       { 14,           "32 slots used to spread transmission"},
-       { 15,           "50 slots used to spread transmission"},
+       { 0,    "3 slots used to spread transmission"},
+       { 1,    "4 slots used to spread transmission"},
+       { 2,    "5 slots used to spread transmission"},
+       { 3,    "6 slots used to spread transmission"},
+       { 4,    "7 slots used to spread transmission"},
+       { 5,    "8 slots used to spread transmission"},
+       { 6,    "9 slots used to spread transmission"},
+       { 7,    "10 slots used to spread transmission"},
+       { 8,    "11 slots used to spread transmission"},
+       { 9,    "12 slots used to spread transmission"},
+       { 10,   "14 slots used to spread transmission"},
+       { 11,   "16 slots used to spread transmission"},
+       { 12,   "20 slots used to spread transmission"},
+       { 13,   "25 slots used to spread transmission"},
+       { 14,   "32 slots used to spread transmission"},
+       { 15,   "50 slots used to spread transmission"},
        { 0,    NULL }
 };
 static const value_string gsm_a_rr_cell_barr_access_vals[] = {
-       { 0,            "The cell is not barred"},
-       { 1,            "The cell is barred"},
+       { 0,    "The cell is not barred"},
+       { 1,    "The cell is barred"},
        { 0,    NULL }
 };
 static const value_string gsm_a_rr_re_vals[] = {
-       { 0,            "Call Reestablishment allowed in the cell"},
-       { 1,            "Call Reestablishment not allowed in the cell"},
+       { 0,    "Call Reestablishment allowed in the cell"},
+       { 1,    "Call Reestablishment not allowed in the cell"},
        { 0,    NULL }
 };
 
 static guint8
-de_rr_rach_ctrl_param(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_rach_ctrl_param(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_tree      *subtree;
        proto_item      *item;
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        item = proto_tree_add_text(tree, tvb, curr_offset, 3,
-           gsm_rr_elem_strings[DE_RR_RACH_CTRL_PARAM].strptr);
+               gsm_rr_elem_strings[DE_RR_RACH_CTRL_PARAM].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_RACH_CTRL_PARAM]);
 
@@ -2512,7 +2481,7 @@ static guint16 reduced_frame_number(guint16 fn)
 }
 
 static guint8
-de_rr_req_ref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_req_ref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_tree      *subtree;
        proto_item      *item;
@@ -2520,13 +2489,12 @@ de_rr_req_ref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
        guint16 rfn;
        guint16 fn;
 
-       len = len;
        curr_offset = offset;
 
        item =
-       proto_tree_add_text(tree,
-           tvb, curr_offset, 3,
-           gsm_rr_elem_strings[DE_RR_REQ_REF].strptr);
+               proto_tree_add_text(tree,
+                       tvb, curr_offset, 3,
+                       gsm_rr_elem_strings[DE_RR_REQ_REF].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_REQ_REF]);
 
@@ -2547,11 +2515,10 @@ de_rr_req_ref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
  * [3] 10.5.2.31
  */
 guint8
-de_rr_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        proto_tree_add_item(tree, hf_gsm_a_rr_RR_cause, tvb, curr_offset, 1, FALSE);
@@ -2575,7 +2542,7 @@ de_rr_si1_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
        curr_offset = offset;
 
        item = proto_tree_add_text(tree, tvb, curr_offset, len,
-           gsm_rr_elem_strings[DE_RR_SI1_REST_OCT].strptr);
+               gsm_rr_elem_strings[DE_RR_SI1_REST_OCT].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_SI1_REST_OCT]);
 
@@ -2605,7 +2572,7 @@ de_rr_si3_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
        curr_offset = offset;
 
        item = proto_tree_add_text(tree, tvb, curr_offset, len,
-           gsm_rr_elem_strings[DE_RR_SI3_REST_OCT].strptr);
+               gsm_rr_elem_strings[DE_RR_SI3_REST_OCT].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_SI3_REST_OCT]);
 
@@ -2633,7 +2600,7 @@ de_rr_si4_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
        curr_offset = offset;
 
        item = proto_tree_add_text(tree, tvb, curr_offset, len,
-           gsm_rr_elem_strings[DE_RR_SI4_REST_OCT].strptr);
+               gsm_rr_elem_strings[DE_RR_SI4_REST_OCT].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_SI4_REST_OCT]);
 
@@ -2658,7 +2625,7 @@ de_rr_si6_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
        curr_offset = offset;
 
        item = proto_tree_add_text(tree, tvb, curr_offset, len,
-           gsm_rr_elem_strings[DE_RR_SI6_REST_OCT].strptr);
+               gsm_rr_elem_strings[DE_RR_SI6_REST_OCT].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_SI6_REST_OCT]);
 
@@ -2688,7 +2655,7 @@ de_rr_si13_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
        curr_offset = offset;
 
        item = proto_tree_add_text(tree, tvb, curr_offset, len,
-           gsm_rr_elem_strings[DE_RR_SI13_REST_OCT].strptr);
+               gsm_rr_elem_strings[DE_RR_SI13_REST_OCT].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_SI13_REST_OCT]);
 
@@ -2711,11 +2678,10 @@ de_rr_si13_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
  * [3] 10.5.2.38 Starting Time
  */
 static guint8
-de_rr_starting_time(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_starting_time(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        proto_tree_add_text(tree,tvb, curr_offset, 2 ,"Data(Not decoded)");
@@ -2730,33 +2696,30 @@ de_rr_starting_time(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
  * ROT: Report Observed Time Difference (Octet1 bit 3) */
 
 static const true_false_string sm_a_rr_sync_ind_rot_value  = {
-  "Mobile Time Difference IE shall be included in the HANDOVER COMPLETE message",
-  "Mobile Time Difference IE shall not be included in the HANDOVER COMPLETE message"
+       "Mobile Time Difference IE shall be included in the HANDOVER COMPLETE message",
+       "Mobile Time Difference IE shall not be included in the HANDOVER COMPLETE message"
 };
 
 /* SI: Synchronization indication (octet 1)Bit2 1 */
 
 static const value_string gsm_a_rr_sync_ind_si_vals[] = {
-       { 0,            "Non-synchronized"},
-       { 1,            "Synchronized"},
-       { 2,            "Pre-synchronised"},
-       { 3,            "Pseudo-synchronised"},
+       { 0,    "Non-synchronized"},
+       { 1,    "Synchronized"},
+       { 2,    "Pre-synchronised"},
+       { 3,    "Pseudo-synchronised"},
        { 0,    NULL }
 };
 /* NCI: Normal cell indication (octet 1, bit 4) */
 
 static const true_false_string gsm_a_rr_sync_ind_nci_value  = {
-  "Out of range timing advance shall trigger a handover failure procedure",
-  "Out of range timing advance is ignored"
+       "Out of range timing advance shall trigger a handover failure procedure",
+       "Out of range timing advance is ignored"
 };
-
-
 static guint8
-de_rr_sync_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_sync_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        /*NCI */
@@ -2775,11 +2738,10 @@ de_rr_sync_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
  * [3] 10.5.2.40 Timing Advance
  */
 static guint8
-de_rr_timing_adv(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_timing_adv(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        proto_tree_add_item(tree, hf_gsm_a_rr_timing_adv, tvb, curr_offset, 1, FALSE);
@@ -2792,11 +2754,10 @@ de_rr_timing_adv(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gch
  * [3] 10.5.2.41 Time Difference
  */
 static guint8
-de_rr_time_diff(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_time_diff(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        proto_tree_add_item(tree, hf_gsm_a_rr_time_diff, tvb, curr_offset, 1, FALSE);
@@ -2809,11 +2770,10 @@ de_rr_time_diff(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
  * The TLLI is encoded as a binary number with a length of 4 octets. TLLI is defined in 3GPP TS 23.003
  */
 guint8
-de_rr_tlli(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_tlli(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        proto_tree_add_item(tree, hf_gsm_a_rr_tlli, tvb, curr_offset, 4, FALSE);
@@ -2835,16 +2795,15 @@ Bit     8 7
        Other values are reserved for future use.
 */
 static const value_string gsm_a_rr_target_mode_vals[] _U_ = {
-       { 0,            "Dedicated mode"},
-       { 1,            "Group transmit mode"},
+       { 0,    "Dedicated mode"},
+       { 1,    "Group transmit mode"},
        { 0,    NULL }
 };
 static guint8
-de_rr_vgcs_tar_mode_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_vgcs_tar_mode_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        proto_tree_add_item(tree, hf_gsm_a_rr_target_mode, tvb, curr_offset, 1, FALSE);
@@ -2858,32 +2817,32 @@ de_rr_vgcs_tar_mode_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
  * [3] 10.5.2.42b      VGCS Ciphering Parameters
  */
 static guint8
-de_rr_vgcs_cip_par(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_vgcs_cip_par(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        proto_tree_add_text(tree,tvb, curr_offset, len ,"Data(Not decoded)");
 
        curr_offset = curr_offset + 2;
+
        return(curr_offset - offset);
 }
 /*
  * [3] 10.5.2.43 Wait Indication
  */
 static guint8
-de_rr_wait_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_wait_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        proto_tree_add_item(tree, hf_gsm_a_rr_wait_indication, tvb, curr_offset, 1, FALSE);
 
        curr_offset = curr_offset + 1;
+
        return(curr_offset - offset);
 }
 
@@ -2896,26 +2855,26 @@ de_rr_wait_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
  */
 /*Suspension cause value (octet 2)*/
 static const value_string gsm_a_rr_suspension_cause_vals[] = {
-       { 0,            "Emergency call, mobile originating call or call re-establishment"},
-       { 1,            "Location Area Update"},
-       { 2,            "MO Short message service"},
-       { 3,            "Other procedure which can be completed with an SDCCH"},
-       { 4,            "MO Voice broadcast or group call"},
-       { 5,            "Mobile terminating CS connection"},
-       { 6,            "DTM not supported in the cell"},
+       { 0,    "Emergency call, mobile originating call or call re-establishment"},
+       { 1,    "Location Area Update"},
+       { 2,    "MO Short message service"},
+       { 3,    "Other procedure which can be completed with an SDCCH"},
+       { 4,    "MO Voice broadcast or group call"},
+       { 5,    "Mobile terminating CS connection"},
+       { 6,    "DTM not supported in the cell"},
        { 0,    NULL }
 };
 guint8
-de_rr_sus_cau(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_sus_cau(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        proto_tree_add_item(tree, hf_gsm_a_rr_suspension_cause, tvb, curr_offset, 1, FALSE);
 
        curr_offset = curr_offset + 1;
+
        return(curr_offset - offset);
 }
 /*
@@ -2933,19 +2892,18 @@ de_rr_sus_cau(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
  * 10.5.2.57 Service Support
  */
 static const true_false_string gsm_a_rr_MBMS_multicast_value  = {
-  "mobile station requires notification of multicast MBMS services",
-  "mobile station does not require notification of multicast MBMS services"
+       "mobile station requires notification of multicast MBMS services",
+       "mobile station does not require notification of multicast MBMS services"
 };
 static const true_false_string gsm_a_rr_MBMS_broadcast_value  = {
-  "mobile station requires notification of broadcast MBMS services",
-  "mobile station does not require notification of broadcast MBMS services"
+       "mobile station requires notification of broadcast MBMS services",
+       "mobile station does not require notification of broadcast MBMS services"
 };
 static guint8
-de_rr_serv_sup(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_serv_sup(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
        /* bit 1
         * 0 mobile station does not require notification of broadcast MBMS services
@@ -2960,6 +2918,7 @@ de_rr_serv_sup(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
        /* MBMS Broadcast */
        proto_tree_add_item(tree, hf_gsm_a_rr_MBMS_broadcast, tvb, curr_offset, 1, FALSE);
        curr_offset++;
+
        return(curr_offset - offset);
 }
 
@@ -2973,20 +2932,20 @@ bit 1
 1      mobile station shall perform Service Information Sending procedure on new cell.
 */
 static const true_false_string gsm_a_rr_last_segment_value  = {
-  "Mobile station shall perform Service Information Sending procedure on new cell.",
-  "mobile station shall not perform Service Information Sending procedure on new cell."
+       "Mobile station shall perform Service Information Sending procedure on new cell.",
+       "mobile station shall not perform Service Information Sending procedure on new cell."
 };
 static guint8
-de_rr_ded_serv_inf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_ded_serv_inf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
-       len = len;
        curr_offset = offset;
 
        proto_tree_add_item(tree, hf_gsm_a_rr_last_segment, tvb, curr_offset, 1, FALSE);
 
        curr_offset = curr_offset + 3;
+
        return(curr_offset - offset);
 }
 
@@ -3022,7 +2981,7 @@ guint8 (*rr_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
  * [3]  10.5.2.8b      Channel Request Description 2 */
        /* Pos 20 */
        de_rr_cip_mode_set,                                     /* [3]  10.5.2.9        Cipher Mode Setting             */
-       de_rr_cip_mode_resp,                /* [3]  10.5.2.10   Cipher Response */
+       de_rr_cip_mode_resp,                            /* [3]  10.5.2.10       Cipher Response */
        de_rr_ctrl_ch_desc,                     /* [3]  10.5.2.11       Control Channel Description     */
 /* [3]  10.5.2.11a     DTM Information Details */
        de_rr_dyn_arfcn_map,                            /* [3]  10.5.2.11b      Dynamic ARFCN Mapping           */
@@ -3035,11 +2994,11 @@ guint8 (*rr_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
  * [3]  10.5.2.14d     GPRS broadcast information
  * [3]  10.5.2.14e     Enhanced DTM CS Release Indication
  */
-       de_rr_ho_ref,                                           /* 10.5.2.15  Handover Reference                                */
-       de_rr_ia_rest_oct,                                      /* [3] 10.5.2.16 IA Rest Octets                                 */
-       de_rr_iar_rest_oct,                                     /* [3] 10.5.2.17 IAR Rest Octets                                        */
-       de_rr_iax_rest_oct,                                     /* [3] 10.5.2.18 IAX Rest Octets                                        */
-       de_rr_l2_pseudo_len,                            /*[3] 10.5.2.19 L2 Pseudo Length                                */
+       de_rr_ho_ref,                                           /* 10.5.2.15  Handover Reference                        */
+       de_rr_ia_rest_oct,                                      /* [3] 10.5.2.16 IA Rest Octets                         */
+       de_rr_iar_rest_oct,                                     /* [3] 10.5.2.17 IAR Rest Octets                        */
+       de_rr_iax_rest_oct,                                     /* [3] 10.5.2.18 IAX Rest Octets                        */
+       de_rr_l2_pseudo_len,                            /*[3] 10.5.2.19 L2 Pseudo Length                        */
        de_rr_meas_res,                                         /* [3] 10.5.2.20 Measurement Results            */
 /*
  * [3] 10.5.2.20a GPRS Measurement Results
@@ -3072,10 +3031,10 @@ guint8 (*rr_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
  * [3] 10.5.2.26c (void)
  * [3] 10.5.2.26d (void)
  */
-       de_rr_ncc_perm,                                 /* [3] 10.5.2.27 NCC Permitted          */
+       de_rr_ncc_perm,                                 /* [3] 10.5.2.27 NCC Permitted                                  */
        de_rr_pow_cmd,                                  /* 10.5.2.28  Power Command                                             */
        de_rr_pow_cmd_and_acc_type,             /* 10.5.2.28a Power Command and access type             */
-       de_rr_rach_ctrl_param,                  /* [3] 10.5.2.29 RACH Control Parameters */
+       de_rr_rach_ctrl_param,                  /* [3] 10.5.2.29 RACH Control Parameters                */
        de_rr_req_ref,                                  /* [3] 10.5.2.30 Request Reference                              */
        de_rr_cause,                                    /* 10.5.2.31  RR Cause                                                  */
        de_rr_sync_ind,                                 /* 10.5.2.39  Synchronization Indication                */
@@ -3815,12 +3774,12 @@ dtap_rr_imm_ass_rej(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
 static void
 dtap_rr_meas_rep(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
 {
-    guint32    curr_offset;
-    guint32    consumed;
-    guint      curr_len;
+       guint32 curr_offset;
+       guint32 consumed;
+       guint   curr_len;
 
-    curr_offset = offset;
-    curr_len = len;
+       curr_offset = offset;
+       curr_len = len;
 
        /* Measurement Results 10.5.2.20 M V 16 */
        ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_MEAS_RES);
@@ -3855,35 +3814,35 @@ dtap_rr_paging_resp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
 
        item =
        proto_tree_add_text(tree,
-           tvb, curr_offset, 1,
-           gsm_common_elem_strings[DE_CIPH_KEY_SEQ_NUM].strptr);
+               tvb, curr_offset, 1,
+               gsm_common_elem_strings[DE_CIPH_KEY_SEQ_NUM].strptr);
 
        subtree = proto_item_add_subtree(item, ett_gsm_common_elem[DE_CIPH_KEY_SEQ_NUM]);
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x08, 8);
        proto_tree_add_text(subtree,
-       tvb, curr_offset, 1,
-       "%s :  Spare",
-       a_bigbuf);
+               tvb, curr_offset, 1,
+               "%s :  Spare",
+               a_bigbuf);
 
        other_decode_bitfield_value(a_bigbuf, oct, 0x07, 8);
 
        switch (oct & 0x07)
        {
        case 0x07:
-       proto_tree_add_text(subtree,
-           tvb, curr_offset, 1,
-           "%s :  Ciphering Key Sequence Number: No key is available",
-           a_bigbuf);
-       break;
+               proto_tree_add_text(subtree,
+                       tvb, curr_offset, 1,
+                       "%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",
-           a_bigbuf,
-           oct & 0x07);
-       break;
+               proto_tree_add_text(subtree,
+                       tvb, curr_offset, 1,
+                       "%s :  Ciphering Key Sequence Number: %u",
+                       a_bigbuf,
+                       oct & 0x07);
+               break;
        }
 
        curr_offset++;
@@ -4198,18 +4157,16 @@ dissect_ccch(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
        guint32                 offset, saved_offset;
        guint32                 len;
        guint32                 oct_1, oct_2;
-       proto_item                      *ccch_item = NULL;
-       proto_tree                      *ccch_tree = NULL;
-       proto_item                      *oct_1_item = NULL;
-       proto_tree                      *pd_tree = NULL;
-       proto_tree                      *saved_tree = NULL;
-       const gchar                     *msg_str;
+       proto_item              *ccch_item = NULL;
+       proto_tree              *ccch_tree = NULL;
+       proto_item              *oct_1_item = NULL;
+       proto_tree              *pd_tree = NULL;
+       proto_tree              *saved_tree = NULL;
+       const gchar             *msg_str;
        gint                    ett_tree;
        gint                    ti;
        int                             hf_idx;
-       gboolean                        nsd;
-
-
+       gboolean                nsd;
        guint8                  pseudo_len;
        guint32                 curr_offset;
        guint32                 consumed;
@@ -4234,11 +4191,10 @@ dissect_ccch(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
        tap_current++;
        if (tap_current >= 4)
        {
-       tap_current = 0;
+               tap_current = 0;
        }
        tap_p = &tap_rec[tap_current];
 
-
        offset = 0;
        oct_2 = 0;
 
@@ -4278,11 +4234,11 @@ dissect_ccch(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
        switch (pd){
        case 6:
                get_rr_msg_params(oct, &msg_str, &ett_tree, &hf_idx, &msg_fcn);
-       break;
+               break;
 
        default:
-       /* XXX - hf_idx is still -1! this is a bug in the implementation, and I don't know how to fix it so simple return here */
-       return;
+               /* XXX - hf_idx is still -1! this is a bug in the implementation, and I don't know how to fix it so simple return here */
+               return;
        }
 
        /*
@@ -4291,7 +4247,7 @@ dissect_ccch(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
        if (msg_str == NULL){
                ccch_item = proto_tree_add_protocol_format(tree, proto_a_ccch, tvb, 0, len,
                        "GSM CCCH - Message Type (0x%02x)",
-               oct);
+                       oct);
 
                ccch_tree = proto_item_add_subtree(ccch_item, ett_ccch_msg);
        }else{
@@ -4324,9 +4280,9 @@ dissect_ccch(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 
        oct_1_item =
        proto_tree_add_text(ccch_tree,
-           tvb, 1, 1,
-           "Protocol Discriminator: %s",
-           val_to_str(pd, protocol_discriminator_vals, "Unknown (%u)"));
+               tvb, 1, 1,
+               "Protocol Discriminator: %s",
+               val_to_str(pd, protocol_discriminator_vals, "Unknown (%u)"));
 
        pd_tree = proto_item_add_subtree(oct_1_item, ett_ccch_oct_1);
 
@@ -4365,9 +4321,9 @@ dissect_ccch(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
         * N(SD)
         */
        if ((pinfo->p2p_dir == P2P_DIR_RECV) &&
-       nsd)
+               nsd)
        {
-       /* XXX */
+               /* XXX */
        }
 
        /*
@@ -4413,14 +4369,14 @@ proto_register_gsm_a_rr(void)
        static hf_register_info hf[] =
        {
        { &hf_gsm_a_dtap_msg_rr_type,
-           { "DTAP Radio Resources Management Message Type",   "gsm_a.dtap_msg_rr_type",
-           FT_UINT8, BASE_HEX, VALS(gsm_a_dtap_msg_rr_strings), 0x0,
-           "", HFILL }
+               { "DTAP Radio Resources Management Message Type",       "gsm_a.dtap_msg_rr_type",
+               FT_UINT8, BASE_HEX, VALS(gsm_a_dtap_msg_rr_strings), 0x0,
+               "", HFILL }
        },
        { &hf_gsm_a_rr_elem_id,
-           { "Element ID",     "gsm_a_rr.elem_id",
-           FT_UINT8, BASE_DEC, NULL, 0,
-           "", HFILL }
+               { "Element ID", "gsm_a_rr.elem_id",
+               FT_UINT8, BASE_DEC, NULL, 0,
+               "", HFILL }
        },
        { &hf_gsm_a_bcc,
                { "BCC","gsm_a.bcc",
@@ -4452,7 +4408,6 @@ proto_register_gsm_a_rr(void)
                FT_BOOLEAN,8,  TFS(&gsm_a_rr_pow_cmd_atc_value), 0x80,
                "Spare", HFILL }
        },
-
        { &hf_gsm_a_rr_page_mode,
                { "Page Mode","gsm_a.rr.page_mode",
                FT_UINT8,BASE_DEC,  VALS(gsm_a_rr_page_mode_vals), 0x03,
@@ -4594,22 +4549,22 @@ proto_register_gsm_a_rr(void)
                "Random Access Information (RA)", HFILL }
        },
        { &hf_gsm_a_rr_T1prim,
-               { "T1'",           "gsm_a.rr.T1prim",
+               { "T1'",                   "gsm_a.rr.T1prim",
                FT_UINT8, BASE_DEC, NULL, 0xf8,
                "T1'", HFILL }
        },
        { &hf_gsm_a_rr_T3,
-               { "T3",           "gsm_a.rr.T3",
+               { "T3",            "gsm_a.rr.T3",
                FT_UINT16, BASE_DEC, NULL, 0x07e0,
                "T3", HFILL }
        },
        { &hf_gsm_a_rr_T2,
-               { "T2",           "gsm_a.rr.T2",
+               { "T2",            "gsm_a.rr.T2",
                FT_UINT8, BASE_DEC, NULL, 0x1f,
                "T2", HFILL }
        },
        { &hf_gsm_a_rr_rfn,
-               { "RFN",           "gsm_a.rr.rfn",
+               { "RFN",                   "gsm_a.rr.rfn",
                FT_UINT16, BASE_DEC, NULL, 0x0,
                "Reduced Frame Number", HFILL }
        },
@@ -4853,19 +4808,19 @@ proto_register_gsm_a_rr(void)
 
        for (i=0; i < NUM_GSM_DTAP_MSG_RR; i++, last_offset++)
        {
-       ett_gsm_dtap_msg_rr[i] = -1;
-       ett[last_offset] = &ett_gsm_dtap_msg_rr[i];
+               ett_gsm_dtap_msg_rr[i] = -1;
+               ett[last_offset] = &ett_gsm_dtap_msg_rr[i];
        }
 
        for (i=0; i < NUM_GSM_RR_ELEM; i++, last_offset++)
        {
-       ett_gsm_rr_elem[i] = -1;
-       ett[last_offset] = &ett_gsm_rr_elem[i];
+               ett_gsm_rr_elem[i] = -1;
+               ett[last_offset] = &ett_gsm_rr_elem[i];
        }
 
        /* Register the protocol name and description */
        proto_a_ccch =
-       proto_register_protocol("GSM CCCH", "GSM CCCH", "gsm_a_ccch");
+               proto_register_protocol("GSM CCCH", "GSM CCCH", "gsm_a_ccch");
 
        proto_register_field_array(proto_a_ccch, hf, array_length(hf));
 
@@ -4875,7 +4830,6 @@ proto_register_gsm_a_rr(void)
        register_dissector("gsm_a_ccch", dissect_ccch, proto_a_ccch);
 }
 
-
 void
 proto_reg_handoff_gsm_a_rr(void)
 {