Use NULL instead of repeated identical text if hf[] blurbs;
authorwmeier <wmeier@f5534014-38df-0310-8fa8-9805f1628bb7>
Fri, 8 May 2009 15:03:11 +0000 (15:03 +0000)
committerwmeier <wmeier@f5534014-38df-0310-8fa8-9805f1628bb7>
Fri, 8 May 2009 15:03:11 +0000 (15:03 +0000)
Use #if 0 ... #endif instead of /* ... */ to comment out code;
Reformat some long lines;
Use consistent indentation.

git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@28301 f5534014-38df-0310-8fa8-9805f1628bb7

epan/dissectors/packet-gsm_a_rr.c

index af12f555e7a1b998115e13f256a54ef839256aeb..990925276b50a492c24e210f9fe8bbd93857bd07 100644 (file)
@@ -74,211 +74,213 @@ static dissector_handle_t rrc_irat_ho_to_utran_cmd_handle;
 
 gboolean gsm_a_rr_is_bit_high(tvbuff_t *tvb, gint bit_offset)
 {
-   guint8 bit_mask = 0x80 >> (bit_offset & 0x07);
-   if ((tvb_get_guint8(tvb,bit_offset >> 3) & bit_mask) != (PADDING_BYTE & bit_mask))
-      return TRUE;
-   return FALSE;
+    guint8 bit_mask = 0x80 >> (bit_offset & 0x07);
+    if ((tvb_get_guint8(tvb,bit_offset >> 3) & bit_mask) != (PADDING_BYTE & bit_mask))
+        return TRUE;
+    return FALSE;
 }
 
 /* PROTOTYPES/FORWARDS */
 
 const value_string gsm_a_dtap_msg_rr_strings[] = {
-       { 0x3c, "Reserved" },
-       { 0x3b, "Additional Assignment" },
-       { 0x3f, "Immediate Assignment" },
-       { 0x39, "Immediate Assignment Extended" },
-       { 0x3a, "Immediate Assignment Reject" },
-
-       { 0x48, "DTM Assignment Failure" },
-       { 0x49, "DTM Reject" },
-       { 0x4a, "DTM Request" },
-       { 0x4b, "Main DCCH Assignment Command" },
-       { 0x4c, "Packet Assignment Command" },
-
-       { 0x35, "Ciphering Mode Command" },
-       { 0x32, "Ciphering Mode Complete" },
-
-       { 0x30, "Configuration Change Command" },
-       { 0x31, "Configuration Change Ack." },
-       { 0x33, "Configuration Change Reject" },
-
-       { 0x2e, "Assignment Command" },
-       { 0x29, "Assignment Complete" },
-       { 0x2f, "Assignment Failure" },
-       { 0x2b, "Handover Command" },
-       { 0x2c, "Handover Complete" },
-       { 0x28, "Handover Failure" },
-       { 0x2d, "Physical Information" },
-       { 0x4d, "DTM Assignment Command" },
-
-       { 0x08, "RR-cell Change Order" },
-       { 0x23, "PDCH Assignment Command" },
-
-       { 0x0d, "Channel Release" },
-       { 0x0a, "Partial Release" },
-       { 0x0f, "Partial Release Complete" },
-
-       { 0x21, "Paging Request Type 1" },
-       { 0x22, "Paging Request Type 2" },
-       { 0x24, "Paging Request Type 3" },
-       { 0x27, "Paging Response" },
-       { 0x20, "Notification/NCH" },
-       { 0x25, "Reserved" },
-       { 0x26, "Notification/Response" },
-
-       { 0x0b, "Reserved" },
-
-/*     ETSI TS 101 503 V8.5.0 Seems to give Other def for this Messages???
-       { 0xc0, "Utran Classmark Change" }, CONFLICTS WITH Handover To UTRAN Command
-       { 0xc1, "UE RAB Preconfiguration" },
-       { 0xc2, "cdma2000 Classmark Change" },*/
-
-       /* ETSI TS 101 503 V8.5.0 */
-       { 0x60, "Utran Classmark Change" },
-       { 0x62, "cdma2000 Classmark Change" },
-       { 0x63, "Inter System to UTRAN Handover Command" },
-       { 0x64, "Inter System to cdma2000 Handover Command" },
-       { 0x18, "System Information Type 8" },
-       { 0x19, "System Information Type 1" },
-       { 0x1a, "System Information Type 2" },
-       { 0x1b, "System Information Type 3" },
-       { 0x1c, "System Information Type 4" },
-       { 0x1d, "System Information Type 5" },
-       { 0x1e, "System Information Type 6" },
-       { 0x1f, "System Information Type 7" },
-
-       { 0x02, "System Information Type 2bis" },
-       { 0x03, "System Information Type 2ter" },
-       { 0x07, "System Information Type 2quater" },
-       { 0x05, "System Information Type 5bis" },
-       { 0x06, "System Information Type 5ter" },
-       { 0x04, "System Information Type 9" },
-       { 0x00, "System Information Type 13" },
-
-       { 0x3d, "System Information Type 16" },
-       { 0x3e, "System Information Type 17" },
-
-       { 0x40, "System Information Type 18" },
-       { 0x41, "System Information Type 19" },
-       { 0x42, "System Information Type 20" },
-
-       { 0x10, "Channel Mode Modify" },
-       { 0x12, "RR Status" },
-       { 0x17, "Channel Mode Modify Acknowledge" },
-       { 0x14, "Frequency Redefinition" },
-       { 0x15, "Measurement Report" },
-       { 0x16, "Classmark Change" },
-       { 0x13, "Classmark Enquiry" },
-       { 0x36, "Extended Measurement Report" },
-       { 0x37, "Extended Measurement Order" },
-       { 0x34, "GPRS Suspension Request" },
-
-       { 0x09, "VGCS Uplink Grant" },
-       { 0x0e, "Uplink Release" },
-       { 0x0c, "Reserved" },
-       { 0x2a, "Uplink Busy" },
-       { 0x11, "Talker Indication" },
-
-       { 0xc0, "UTRAN Classmark Change/Handover To UTRAN Command" },   /* spec conflict */
-
-       { 0x38, "Application Information" },
-
-       { 0, NULL }
+    { 0x3c, "Reserved" },
+    { 0x3b, "Additional Assignment" },
+    { 0x3f, "Immediate Assignment" },
+    { 0x39, "Immediate Assignment Extended" },
+    { 0x3a, "Immediate Assignment Reject" },
+
+    { 0x48, "DTM Assignment Failure" },
+    { 0x49, "DTM Reject" },
+    { 0x4a, "DTM Request" },
+    { 0x4b, "Main DCCH Assignment Command" },
+    { 0x4c, "Packet Assignment Command" },
+
+    { 0x35, "Ciphering Mode Command" },
+    { 0x32, "Ciphering Mode Complete" },
+
+    { 0x30, "Configuration Change Command" },
+    { 0x31, "Configuration Change Ack." },
+    { 0x33, "Configuration Change Reject" },
+
+    { 0x2e, "Assignment Command" },
+    { 0x29, "Assignment Complete" },
+    { 0x2f, "Assignment Failure" },
+    { 0x2b, "Handover Command" },
+    { 0x2c, "Handover Complete" },
+    { 0x28, "Handover Failure" },
+    { 0x2d, "Physical Information" },
+    { 0x4d, "DTM Assignment Command" },
+
+    { 0x08, "RR-cell Change Order" },
+    { 0x23, "PDCH Assignment Command" },
+
+    { 0x0d, "Channel Release" },
+    { 0x0a, "Partial Release" },
+    { 0x0f, "Partial Release Complete" },
+
+    { 0x21, "Paging Request Type 1" },
+    { 0x22, "Paging Request Type 2" },
+    { 0x24, "Paging Request Type 3" },
+    { 0x27, "Paging Response" },
+    { 0x20, "Notification/NCH" },
+    { 0x25, "Reserved" },
+    { 0x26, "Notification/Response" },
+
+    { 0x0b, "Reserved" },
+
+#if 0
+/* ETSI TS 101 503 V8.5.0 Seems to give Other def for this Messages??? */
+    { 0xc0, "Utran Classmark Change" }, CONFLICTS WITH Handover To UTRAN Command
+    { 0xc1, "UE RAB Preconfiguration" },
+    { 0xc2, "cdma2000 Classmark Change" },
+#endif
+
+    /* ETSI TS 101 503 V8.5.0 */
+    { 0x60, "Utran Classmark Change" },
+    { 0x62, "cdma2000 Classmark Change" },
+    { 0x63, "Inter System to UTRAN Handover Command" },
+    { 0x64, "Inter System to cdma2000 Handover Command" },
+    { 0x18, "System Information Type 8" },
+    { 0x19, "System Information Type 1" },
+    { 0x1a, "System Information Type 2" },
+    { 0x1b, "System Information Type 3" },
+    { 0x1c, "System Information Type 4" },
+    { 0x1d, "System Information Type 5" },
+    { 0x1e, "System Information Type 6" },
+    { 0x1f, "System Information Type 7" },
+
+    { 0x02, "System Information Type 2bis" },
+    { 0x03, "System Information Type 2ter" },
+    { 0x07, "System Information Type 2quater" },
+    { 0x05, "System Information Type 5bis" },
+    { 0x06, "System Information Type 5ter" },
+    { 0x04, "System Information Type 9" },
+    { 0x00, "System Information Type 13" },
+
+    { 0x3d, "System Information Type 16" },
+    { 0x3e, "System Information Type 17" },
+
+    { 0x40, "System Information Type 18" },
+    { 0x41, "System Information Type 19" },
+    { 0x42, "System Information Type 20" },
+
+    { 0x10, "Channel Mode Modify" },
+    { 0x12, "RR Status" },
+    { 0x17, "Channel Mode Modify Acknowledge" },
+    { 0x14, "Frequency Redefinition" },
+    { 0x15, "Measurement Report" },
+    { 0x16, "Classmark Change" },
+    { 0x13, "Classmark Enquiry" },
+    { 0x36, "Extended Measurement Report" },
+    { 0x37, "Extended Measurement Order" },
+    { 0x34, "GPRS Suspension Request" },
+
+    { 0x09, "VGCS Uplink Grant" },
+    { 0x0e, "Uplink Release" },
+    { 0x0c, "Reserved" },
+    { 0x2a, "Uplink Busy" },
+    { 0x11, "Talker Indication" },
+
+    { 0xc0, "UTRAN Classmark Change/Handover To UTRAN Command" }, /* spec conflict */
+
+    { 0x38, "Application Information" },
+
+    {    0, NULL }
 };
 
 const value_string gsm_rr_elem_strings[] = {
-       /* Radio Resource Management Information Elements 10.5.2, most are from 10.5.1 */
-       { 0x00, "BA Range" },                                           /* [3]  10.5.2.1a       BA Range */
-       { 0x00, "Cell Channel Description" },           /* [3]  10.5.2.1b       */
-       { 0x00, "BA List Pref" },                                       /* [3]  10.5.2.1c       BA List Pref */
-       { 0x00, "UTRAN Frequency List" },                       /* [3]  10.5.2.1d       UTRAN Frequency List */
-       { 0x00, "Cell Selection Indicator after Release of all TCH and SDCCH" },                /* [3]  10.5.2.1e       Cell selection indicator after release of all TCH and SDCCH IE */
-       { 0x00, "Cell Description" },                           /* 10.5.2.2  */
-       { 0x00, "Cell Options (BCCH)" },                        /* [3]  10.5.2.3        Cell Options (BCCH)                     */
-       { 0x00, "Cell Options (SACCH)" },                       /* [3]  10.5.2.3a       Cell Options (SACCH)            */
-       { 0x00, "Cell Selection Parameters" },          /* [3]  10.5.2.4        Cell Selection Parameters       */
+    /* Radio Resource Management Information Elements 10.5.2, most are from 10.5.1 */
+    { 0x00, "BA Range" },                                                      /* [3]  10.5.2.1a BA Range */
+    { 0x00, "Cell Channel Description" },                                      /* [3]  10.5.2.1b */
+    { 0x00, "BA List Pref" },                                                  /* [3]  10.5.2.1c BA List Pref */
+    { 0x00, "UTRAN Frequency List" },                                          /* [3]  10.5.2.1d UTRAN Frequency List */
+    { 0x00, "Cell Selection Indicator after Release of all TCH and SDCCH" },   /* [3]  10.5.2.1e       Cell selection indicator after release of all TCH and SDCCH IE */
+    { 0x00, "Cell Description" },                                              /* 10.5.2.2  */
+    { 0x00, "Cell Options (BCCH)" },                                           /* [3]  10.5.2.3        Cell Options (BCCH) */
+    { 0x00, "Cell Options (SACCH)" },                                          /* [3]  10.5.2.3a       Cell Options (SACCH) */
+    { 0x00, "Cell Selection Parameters" },                                     /* [3]  10.5.2.4        Cell Selection Parameters */
 /* [3]  10.5.2.4a      (void) */
-       { 0x00, "Channel Description" },                        /* 10.5.2.5      */
-       { 0x00, "Channel Description 2" },                      /* 10.5.2.5a */
-       { 0x00, "Channel Description 3" },                      /* 10.5.2.5c */
-       { 0x00, "Channel Mode" },                                       /* [3]  10.5.2.6 */
-       { 0x00, "Channel Mode 2" },                                     /* [3]  10.5.2.7 */
-       { 0x00, "UTRAN Classmark" },                            /* [3]  10.5.2.7a       */
+    { 0x00, "Channel Description" },                                           /* 10.5.2.5      */
+    { 0x00, "Channel Description 2" },                                         /* 10.5.2.5a */
+    { 0x00, "Channel Description 3" },                                         /* 10.5.2.5c */
+    { 0x00, "Channel Mode" },                                                  /* [3]  10.5.2.6 */
+    { 0x00, "Channel Mode 2" },                                                        /* [3]  10.5.2.7 */
+    { 0x00, "UTRAN Classmark" },                                               /* [3]  10.5.2.7a       */
 /* [3]  10.5.2.7b      (void) */
-       { 0x00, "Classmark Enquiry Mask" },                     /* [3]  10.5.2.7c */
+    { 0x00, "Classmark Enquiry Mask" },                                                /* [3]  10.5.2.7c */
 /* [3]  10.5.2.7d      GERAN Iu Mode Classmark information element */
-       { 0x00, "Channel Needed"},                                      /* [3]  10.5.2.8        */
/* [3]  10.5.2.8a     (void) */
/* [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, "Control Channel Description" },        /* [3]  10.5.2.11       Control Channel Description             */
+    { 0x00, "Channel Needed"},                                                 /* [3]  10.5.2.8        */
   /* [3]  10.5.2.8a  (void) */
   /* [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, "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      */
-       { 0x00, "Frequency Channel Sequence" },         /* [3]  10.5.2.12       */
-       { 0x00, "Frequency List" },                                     /* 10.5.2.13            */
-       { 0x00, "Frequency Short List" },                       /* 10.5.2.14            */
-       { 0x00, "Frequency Short List2" },                      /* 10.5.2.14a           */
+    { 0x00, "Dynamic ARFCN Mapping" },                                         /* [3]  10.5.2.11b      */
+    { 0x00, "Frequency Channel Sequence" },                                    /* [3]  10.5.2.12       */
+    { 0x00, "Frequency List" },                                                        /* 10.5.2.13            */
+    { 0x00, "Frequency Short List" },                                          /* 10.5.2.14            */
+    { 0x00, "Frequency Short List2" },                                         /* 10.5.2.14a           */
 /* [3]  10.5.2.14b     Group Channel Description */
-       { 0x00, "GPRS Resumption" },                            /* [3]  10.5.2.14c      GPRS Resumption */
-       { 0x00, "GPRS Broadcast Information" },         /* [3]  10.5.2.14d      GPRS broadcast information */
+    { 0x00, "GPRS Resumption" },                                               /* [3]  10.5.2.14c      GPRS Resumption */
+    { 0x00, "GPRS Broadcast Information" },                                    /* [3]  10.5.2.14d      GPRS broadcast information */
 /* [3]  10.5.2.14e     Enhanced DTM CS Release Indication */
-       { 0x00, "Handover Reference" },                         /* 10.5.2.15            */
-       { 0x00, "IA Rest Octets" },                                     /* [3] 10.5.2.16        */
-       { 0x00, "IAR Rest Octets" },                            /* [3] 10.5.2.17 IAR Rest Octets */
-       { 0x00, "IAX Rest Octets" },                            /* [3] 10.5.2.18 IAX Rest Octets */
-       { 0x00, "L2 Pseudo Length" },                           /* [3] 10.5.2.19        */
-       { 0x00, "Measurement Results" },                        /* [3] 10.5.2.20 Measurement Results */
+    { 0x00, "Handover Reference" },                                            /* 10.5.2.15            */
+    { 0x00, "IA Rest Octets" },                                                        /* [3] 10.5.2.16        */
+    { 0x00, "IAR Rest Octets" },                                               /* [3] 10.5.2.17 IAR Rest Octets */
+    { 0x00, "IAX Rest Octets" },                                               /* [3] 10.5.2.18 IAX Rest Octets */
+    { 0x00, "L2 Pseudo Length" },                                              /* [3] 10.5.2.19        */
+    { 0x00, "Measurement Results" },                                           /* [3] 10.5.2.20 Measurement Results */
 /*
  * [3] 10.5.2.20a GPRS Measurement Results
  */
-       { 0x00, "Mobile Allocation" },                          /* [3] 10.5.2.21        */
-       { 0x00, "Mobile Time Difference" },                     /* [3] 10.5.2.21a       */
-       { 0x00, "MultiRate configuration" },            /* [3] 10.5.2.21aa      */
-       /* Pos 30 */
-       { 0x00, "Multislot Allocation" },                       /* [3] 10.5.2.21b       */
- /*
- * [3] 10.5.2.21c NC mode
- */
-       { 0x00, "Neighbour Cell Description" },         /* [3] 10.5.2.22 Neighbour Cell Description */
-       { 0x00, "Neighbour Cell Description 2" },       /* [3] 10.5.2.22a Neighbour Cell Description 2 */
+    { 0x00, "Mobile Allocation" },                                             /* [3] 10.5.2.21        */
+    { 0x00, "Mobile Time Difference" },                                                /* [3] 10.5.2.21a       */
+    { 0x00, "MultiRate configuration" },                                       /* [3] 10.5.2.21aa      */
+    /* Pos 30 */
+    { 0x00, "Multislot Allocation" },                                          /* [3] 10.5.2.21b       */
   /*
    * [3] 10.5.2.21c NC mode
    */
+    { 0x00, "Neighbour Cell Description" },                                    /* [3] 10.5.2.22 Neighbour Cell Description */
+    { 0x00, "Neighbour Cell Description 2" },                                  /* [3] 10.5.2.22a Neighbour Cell Description 2 */
 /*
  * [3] 10.5.2.22b (void)
  * [3] 10.5.2.22c NT/N Rest Octets */
-       { 0x00, "P1 Rest Octets" },                                             /* [3] 10.5.2.23 P1 Rest Octets */
-       { 0x00, "P2 Rest Octets" },                                             /* [3] 10.5.2.24 P2 Rest Octets */
-       { 0x00, "P3 Rest Octets" },                                             /* [3] 10.5.2.25 P3 Rest Octets */
-       { 0x00, "Packet Channel Description" },         /* [3] 10.5.2.25a       */
-       { 0x00, "Dedicated mode or TBF" },                      /* [3] 10.5.2.25b */
- /* [3] 10.5.2.25c RR Packet Uplink Assignment
- * [3] 10.5.2.25d RR Packet Downlink Assignment */
-       { 0x00, "Page Mode" },                                          /* [3] 10.5.2.26  */
+    { 0x00, "P1 Rest Octets" },                                                        /* [3] 10.5.2.23 P1 Rest Octets */
+    { 0x00, "P2 Rest Octets" },                                                        /* [3] 10.5.2.24 P2 Rest Octets */
+    { 0x00, "P3 Rest Octets" },                                                        /* [3] 10.5.2.25 P3 Rest Octets */
+    { 0x00, "Packet Channel Description" },                                    /* [3] 10.5.2.25a       */
+    { 0x00, "Dedicated mode or TBF" },                                         /* [3] 10.5.2.25b */
   /* [3] 10.5.2.25c RR Packet Uplink Assignment
    * [3] 10.5.2.25d RR Packet Downlink Assignment */
+    { 0x00, "Page Mode" },                                                     /* [3] 10.5.2.26  */
 /*
  * [3] 10.5.2.26a (void)
  * [3] 10.5.2.26b (void)
  * [3] 10.5.2.26c (void)
  * [3] 10.5.2.26d (void)
  */
-       { 0x00, "NCC Permitted" },                                      /* [3] 10.5.2.27 NCC Permitted */
-       { 0x00, "Power Command" },                                      /* 10.5.2.28 */
-       { 0x00, "Power Command and access type" },      /* 10.5.2.28a */
-       { 0x00, "RACH Control Parameters" },            /* [3] 10.5.2.29 RACH Control Parameters */
-       { 0x00, "Request Reference" },                          /* [3] 10.5.2.30 Request Reference                              */
-       { 0x00, "RR Cause" },                                           /* 10.5.2.31 */
-       { 0x00, "Synchronization Indication" },         /* 10.5.2.39 */
-       { 0x00, "SI 1 Rest Octets" },                           /* [3] 10.5.2.32 */
+    { 0x00, "NCC Permitted" },                                                 /* [3] 10.5.2.27 NCC Permitted */
+    { 0x00, "Power Command" },                                                 /* 10.5.2.28 */
+    { 0x00, "Power Command and access type" },                                 /* 10.5.2.28a */
+    { 0x00, "RACH Control Parameters" },                                       /* [3] 10.5.2.29 RACH Control Parameters */
+    { 0x00, "Request Reference" },                                             /* [3] 10.5.2.30 Request Reference */
+    { 0x00, "RR Cause" },                                                      /* 10.5.2.31 */
+    { 0x00, "Synchronization Indication" },                                    /* 10.5.2.39 */
+    { 0x00, "SI 1 Rest Octets" },                                              /* [3] 10.5.2.32 */
 /* [3] 10.5.2.33 SI 2bis Rest Octets */
-       { 0x00, "SI 2ter Rest Octets" },                /* [3] 10.5.2.33a */
-       { 0x00, "SI 2quater Rest Octets" },             /* [3] 10.5.2.33b */
-       { 0x00, "SI 3 Rest Octets" },                   /* [3] 10.5.2.34 */
-       { 0x00, "SI 4 Rest Octets" },                   /* [3] 10.5.2.35 */
-       { 0x00, "SI 6 Rest Octets" },                   /* [3] 10.5.2.35a */
+    { 0x00, "SI 2ter Rest Octets" },                                           /* [3] 10.5.2.33a */
+    { 0x00, "SI 2quater Rest Octets" },                                                /* [3] 10.5.2.33b */
+    { 0x00, "SI 3 Rest Octets" },                                              /* [3] 10.5.2.34 */
+    { 0x00, "SI 4 Rest Octets" },                                              /* [3] 10.5.2.35 */
+    { 0x00, "SI 6 Rest Octets" },                                              /* [3] 10.5.2.35a */
 /* [3] 10.5.2.36 SI 7 Rest Octets
  * [3] 10.5.2.37 SI 8 Rest Octets
  * [3] 10.5.2.37a SI 9 Rest Octets
  */
-       { 0x00, "SI 13 Rest Octets" },                  /* [3] 10.5.2.37b */
+    { 0x00, "SI 13 Rest Octets" },                                             /* [3] 10.5.2.37b */
 /* [3] 10.5.2.37c (void)
  * [3] 10.5.2.37d (void)
  * [3] 10.5.2.37e SI 16 Rest Octets
@@ -286,31 +288,31 @@ const value_string gsm_rr_elem_strings[] = {
  * [3] 10.5.2.37g SI 19 Rest Octets
  * [3] 10.5.2.37h SI 18 Rest Octets
  * [3] 10.5.2.37i SI 20 Rest Octets */
-       { 0x00, "Starting Time" },                                      /* [3] 10.5.2.38 Starting Time  */
-       { 0x00, "Timing Advance" },                                     /* [3] 10.5.2.40 Timing Advance */
-       { 0x00, "Time Difference" },                            /* [3] 10.5.2.41 Time Difference                                */
-       { 0x00, "TLLI" },                                                       /* [3] 10.5.2.41a TLLI                                                  */
-       { 0x00, "TMSI/P-TMSI" },                                        /* [3] 10.5.2.42 TMSI/P-TMSI */
-       { 0x00, "VGCS target mode Indication" },        /* [3] 10.5.2.42a                                                               */
-       /* Pos 40 */
-       { 0x00, "VGCS Ciphering Parameters" },          /* [3] 10.5.2.42b                                                               */
-       { 0x00, "Wait Indication" },                            /* [3] 10.5.2.43 Wait Indication */
+    { 0x00, "Starting Time" },                                                 /* [3] 10.5.2.38 Starting Time  */
+    { 0x00, "Timing Advance" },                                                        /* [3] 10.5.2.40 Timing Advance */
+    { 0x00, "Time Difference" },                                               /* [3] 10.5.2.41 Time Difference */
+    { 0x00, "TLLI" },                                                          /* [3] 10.5.2.41a TLLI  */
+    { 0x00, "TMSI/P-TMSI" },                                                   /* [3] 10.5.2.42 TMSI/P-TMSI */
+    { 0x00, "VGCS target mode Indication" },                                   /* [3] 10.5.2.42a */
+    /* Pos 40 */
+    { 0x00, "VGCS Ciphering Parameters" },                                     /* [3] 10.5.2.42b */
+    { 0x00, "Wait Indication" },                                               /* [3] 10.5.2.43 Wait Indication */
 /* [3] 10.5.2.44 SI10 rest octets $(ASCI)$ */
-       { 0x00, "Extended Measurement Results" },                       /* [3] 10.5.2.45 Extended Measurement Results */
-       { 0x00, "Extended Measurement Frequency List" },        /* [3] 10.5.2.46 Extended Measurement Frequency List */
-       { 0x00, "Suspension Cause" },                           /* [3] 10.5.2.47                                                                */
+    { 0x00, "Extended Measurement Results" },                                  /* [3] 10.5.2.45 Extended Measurement Results */
+    { 0x00, "Extended Measurement Frequency List" },                           /* [3] 10.5.2.46 Extended Measurement Frequency List */
+    { 0x00, "Suspension Cause" },                                              /* [3] 10.5.2.47                                                                */
 /* [3] 10.5.2.48 APDU ID
  * [3] 10.5.2.49 APDU Flags
  * [3] 10.5.2.50 APDU Data */
-       { 0x00, "Handover to UTRAN Command" },          /* [3] 10.5.2.51 Handover To UTRAN Command */
+    { 0x00, "Handover to UTRAN Command" },                                     /* [3] 10.5.2.51 Handover To UTRAN Command */
 /* [3] 10.5.2.52 Handover To cdma2000 Command
  * [3] 10.5.2.53 (void)
  * [3] 10.5.2.54 (void)
  * [3] 10.5.2.55 (void)
  * [3] 10.5.2.56 3G Target Cell */
{ 0x00,       "Service Support" },                                    /* [3] 10.5.2.57        */
- /* 10.5.2.58 MBMS p-t-m Channel Description */
-       { 0x00, "Dedicated Service Information" },              /* [3] 10.5.2.59        */
   { 0x00, "Service Support" },                                               /* [3] 10.5.2.57        */
   /* 10.5.2.58 MBMS p-t-m Channel Description */
+    { 0x00, "Dedicated Service Information" },                                 /* [3] 10.5.2.59        */
 /*
  * 10.5.2.60 MPRACH Description
  * 10.5.2.61 Restriction Timer
@@ -322,89 +324,89 @@ const value_string gsm_rr_elem_strings[] = {
  * 10.5.2.67 PS Cause
  * 10.5.2.68 VGCS AMR Configuration
  */
-       { 0x00, "Carrier Indication" },         /* 10.5.2.69 Carrier Indication */
-       { 0, NULL }
+    { 0x00, "Carrier Indication" },                                            /* 10.5.2.69 Carrier Indication */
+    {    0, NULL }
 };
 
 const value_string gsm_rr_rest_octets_elem_strings[] = {
-   /* RR Rest Octets information elements */
-   { 0, "UTRAN FDD Description" },
-   { 0, "UTRAN TDD Description" }, 
-   { 0, "3G Measurement Parameters Description" },
-   { 0, "3G Additional Measurement Parameters Description" },
-   { 0, "Measurement Parameters Description" },
-   { 0, "GPRS Real Time Difference Description" },
-   { 0, "GPRS BSIC Description" },
-   { 0, "GPRS Report Priority Description" },
-   { 0, "GPRS Measurement Parameters Description" },
-   { 0, "NC Measurement Parameters" },
-   { 0, "SI2q Extension Information" },
-   { 0, "CCN Support Description" },
-   { 0, "3G Neighbour Cell Description" },
-   { 0, "FDD Cell Information Field" },
-   { 0, "TDD Cell Information Field" },
-   { 0, "GPRS 3G Measurement Parameters Description" },
-   { 0, "3G Additional Measurement Parameters Description 2" },
-   { 0, "Optional Selection Parameters" },
-   { 0, "GPRS Indicator" },
-   { 0, "SI4 Rest Octets_O" },
-   { 0, "SI4 Rest Octets_S" },
-   { 0, "LSA Parameters" },
-   { 0, "LSA ID Information" },
-   { 0, "PCH and NCH Info" },
-   { 0, "VBS/VGCS Options" },
-   { 0, "GPRS Mobile Allocation" },
-   { 0, "GPRS Cell Options" },
-   { 0, "GPRS Cell Options Extension Information" },
-   { 0, "GPRS Power Control Parameters" },
-   { 0, "PBCCH Description" },
-   { 0, "GSM Description" },
-   { 0, "Real Time Difference Description" },
-   { 0, "BSIC Description" },
-   { 0, "Report Priority Description" },
-   { 0, "CDMA2000 Description" },
-   { 0, "Serving cell data" },
-   { 0, "Repeated Invalid BSIC Information" },
-   { 0, "Bitmap Type Reporting" },
-   { 0, NULL }
+    /* RR Rest Octets information elements */
+    { 0, "UTRAN FDD Description" },
+    { 0, "UTRAN TDD Description" }, 
+    { 0, "3G Measurement Parameters Description" },
+    { 0, "3G Additional Measurement Parameters Description" },
+    { 0, "Measurement Parameters Description" },
+    { 0, "GPRS Real Time Difference Description" },
+    { 0, "GPRS BSIC Description" },
+    { 0, "GPRS Report Priority Description" },
+    { 0, "GPRS Measurement Parameters Description" },
+    { 0, "NC Measurement Parameters" },
+    { 0, "SI2q Extension Information" },
+    { 0, "CCN Support Description" },
+    { 0, "3G Neighbour Cell Description" },
+    { 0, "FDD Cell Information Field" },
+    { 0, "TDD Cell Information Field" },
+    { 0, "GPRS 3G Measurement Parameters Description" },
+    { 0, "3G Additional Measurement Parameters Description 2" },
+    { 0, "Optional Selection Parameters" },
+    { 0, "GPRS Indicator" },
+    { 0, "SI4 Rest Octets_O" },
+    { 0, "SI4 Rest Octets_S" },
+    { 0, "LSA Parameters" },
+    { 0, "LSA ID Information" },
+    { 0, "PCH and NCH Info" },
+    { 0, "VBS/VGCS Options" },
+    { 0, "GPRS Mobile Allocation" },
+    { 0, "GPRS Cell Options" },
+    { 0, "GPRS Cell Options Extension Information" },
+    { 0, "GPRS Power Control Parameters" },
+    { 0, "PBCCH Description" },
+    { 0, "GSM Description" },
+    { 0, "Real Time Difference Description" },
+    { 0, "BSIC Description" },
+    { 0, "Report Priority Description" },
+    { 0, "CDMA2000 Description" },
+    { 0, "Serving cell data" },
+    { 0, "Repeated Invalid BSIC Information" },
+    { 0, "Bitmap Type Reporting" },
+    { 0, NULL }
 };
 
 
 /* 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,    NULL }
+    {    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,    NULL }
+    { 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 }
 };
 
 
@@ -425,9 +427,9 @@ int hf_gsm_a_rr_elem_id = -1;
 
 static int hf_gsm_a_sacch_msg_rr_type = -1;
 
-static int hf_gsm_a_bcc                                = -1;
-static int hf_gsm_a_ncc                                = -1;
-static int hf_gsm_a_bcch_arfcn         = -1;
+static int hf_gsm_a_bcc        = -1;
+static int hf_gsm_a_ncc        = -1;
+static int hf_gsm_a_bcch_arfcn = -1;
 static int hf_gsm_a_rr_range_nb = -1;
 static int hf_gsm_a_rr_range_lower = -1;
 static int hf_gsm_a_rr_range_higher = -1;
@@ -465,9 +467,9 @@ static int hf_gsm_a_rr_sc = -1;
 static int hf_gsm_a_algorithm_id = -1;
 static int hf_gsm_a_rr_cr = -1;
 static int hf_gsm_a_rr_multirate_speech_ver = -1;
-static int hf_gsm_a_rr_NCSB                            = -1;
-static int hf_gsm_a_rr_ICMI                            = -1;
-static int hf_gsm_a_rr_start_mode              = -1;
+static int hf_gsm_a_rr_NCSB = -1;
+static int hf_gsm_a_rr_ICMI = -1;
+static int hf_gsm_a_rr_start_mode = -1;
 static int hf_gsm_a_rr_timing_adv = -1;
 static int hf_gsm_a_rr_time_diff = -1;
 static int hf_gsm_a_rr_tlli = -1;
@@ -480,11 +482,11 @@ static int hf_gsm_a_rr_MBMS_multicast = -1;
 static int hf_gsm_a_rr_MBMS_broadcast = -1;
 static int hf_gsm_a_rr_last_segment = -1;
 static int hf_gsm_a_rr_carrier_ind = -1;
-static int hf_gsm_a_rr_ra              = -1;
-static int hf_gsm_a_rr_T1prim  = -1;
-static int hf_gsm_a_rr_T3              = -1;
-static int hf_gsm_a_rr_T2              = -1;
-static int hf_gsm_a_rr_rfn     = -1;
+static int hf_gsm_a_rr_ra = -1;
+static int hf_gsm_a_rr_T1prim = -1;
+static int hf_gsm_a_rr_T3 = -1;
+static int hf_gsm_a_rr_T2 = -1;
+static int hf_gsm_a_rr_rfn = -1;
 static int hf_gsm_a_rr_RR_cause = -1;
 static int hf_gsm_a_rr_cm_cng_msg_req = -1;
 static int hf_gsm_a_rr_utran_cm_cng_msg_req = -1;
@@ -697,46 +699,46 @@ gint ett_gsm_rr_elem[NUM_GSM_RR_ELEM];
 
 typedef enum
 {
-   /* RR Rest Octets information elements */
-   DE_RR_REST_OCTETS_UTRAN_FDD_DESC,
-   DE_RR_REST_OCTETS_UTRAN_TDD_DESC,
-   DE_RR_REST_OCTETS_3G_MEAS_PARAM_DESC,
-   DE_RR_REST_OCTETS_3G_ADD_MEAS_PARAM_DESC,
-   DE_RR_REST_OCTETS_MEAS_PARAM_DESC,
-   DE_RR_REST_OCTETS_GPRS_RTD_DESC,
-   DE_RR_REST_OCTETS_GPRS_BSIC_DESC,
-   DE_RR_REST_OCTETS_GPRS_REPORT_PRIO_DESC,
-   DE_RR_REST_OCTETS_GPRS_MEAS_PARAM_DESC,
-   DE_RR_REST_OCTETS_NC_MEAS_PARAM,
-   DE_RR_REST_OCTETS_SI2Q_EXT_INFO,
-   DE_RR_REST_OCTETS_CCN_SUPPORT_DESC,
-   DE_RR_REST_OCTETS_3G_NEIGH_CELL_DESC,
-   DE_RR_REST_OCTETS_FDD_CELL_INFORMATION_FIELD,
-   DE_RR_REST_OCTETS_TDD_CELL_INFORMATION_FIELD,
-   DE_RR_REST_OCTETS_GPRS_3G_MEAS_PARAM_DESC,
-   DE_RR_REST_OCTETS_3G_ADD_MEAS_PARAM_DESC2,
-   DE_RR_REST_OCTETS_OPTIONAL_SEL_PARAM,
-   DE_RR_REST_OCTETS_GPRS_INDICATOR,
-   DE_RR_REST_OCTETS_SI4_REST_OCTETS_O,
-   DE_RR_REST_OCTETS_SI4_REST_OCTETS_S,
-   DE_RR_REST_OCTETS_LSA_PARAMETERS,
-   DE_RR_REST_OCTETS_LSA_ID_INFO,
-   DE_RR_REST_OCTETS_PCH_AND_NCH_INFO,
-   DE_RR_REST_OCTETS_VBS_VGCS_OPTIONS,
-   DE_RR_REST_OCTETS_GPRS_MOBILE_ALLOC,
-   DE_RR_REST_OCTETS_GPRS_CELL_OPTIONS,
-   DE_RR_REST_OCTETS_GPRS_CELL_OPTIONS_EXT_INFO,
-   DE_RR_REST_OCTETS_GPRS_POWER_CONTROL_PARAMS,
-   DE_RR_REST_OCTETS_PBCCH_DESC,
-   DE_RR_REST_OCTETS_GSM_DESC,
-   DE_RR_REST_OCTETS_RTD_DESC,
-   DE_RR_REST_OCTETS_BSIC_DESC,
-   DE_RR_REST_OCTETS_REPORT_PRIO_DESC,
-   DE_RR_REST_OCTETS_CDMA2000_DESC,
-   DE_RR_REST_OCTETS_SERVING_CELL_DATA,
-   DE_RR_REST_OCTETS_REPEAT_INV_BSIC_INFO,
-   DE_RR_REST_OCTETS_BITMAP_TYPE_REPORTING,
-   DE_RR_REST_OCTETS_NONE
+    /* RR Rest Octets information elements */
+    DE_RR_REST_OCTETS_UTRAN_FDD_DESC,
+    DE_RR_REST_OCTETS_UTRAN_TDD_DESC,
+    DE_RR_REST_OCTETS_3G_MEAS_PARAM_DESC,
+    DE_RR_REST_OCTETS_3G_ADD_MEAS_PARAM_DESC,
+    DE_RR_REST_OCTETS_MEAS_PARAM_DESC,
+    DE_RR_REST_OCTETS_GPRS_RTD_DESC,
+    DE_RR_REST_OCTETS_GPRS_BSIC_DESC,
+    DE_RR_REST_OCTETS_GPRS_REPORT_PRIO_DESC,
+    DE_RR_REST_OCTETS_GPRS_MEAS_PARAM_DESC,
+    DE_RR_REST_OCTETS_NC_MEAS_PARAM,
+    DE_RR_REST_OCTETS_SI2Q_EXT_INFO,
+    DE_RR_REST_OCTETS_CCN_SUPPORT_DESC,
+    DE_RR_REST_OCTETS_3G_NEIGH_CELL_DESC,
+    DE_RR_REST_OCTETS_FDD_CELL_INFORMATION_FIELD,
+    DE_RR_REST_OCTETS_TDD_CELL_INFORMATION_FIELD,
+    DE_RR_REST_OCTETS_GPRS_3G_MEAS_PARAM_DESC,
+    DE_RR_REST_OCTETS_3G_ADD_MEAS_PARAM_DESC2,
+    DE_RR_REST_OCTETS_OPTIONAL_SEL_PARAM,
+    DE_RR_REST_OCTETS_GPRS_INDICATOR,
+    DE_RR_REST_OCTETS_SI4_REST_OCTETS_O,
+    DE_RR_REST_OCTETS_SI4_REST_OCTETS_S,
+    DE_RR_REST_OCTETS_LSA_PARAMETERS,
+    DE_RR_REST_OCTETS_LSA_ID_INFO,
+    DE_RR_REST_OCTETS_PCH_AND_NCH_INFO,
+    DE_RR_REST_OCTETS_VBS_VGCS_OPTIONS,
+    DE_RR_REST_OCTETS_GPRS_MOBILE_ALLOC,
+    DE_RR_REST_OCTETS_GPRS_CELL_OPTIONS,
+    DE_RR_REST_OCTETS_GPRS_CELL_OPTIONS_EXT_INFO,
+    DE_RR_REST_OCTETS_GPRS_POWER_CONTROL_PARAMS,
+    DE_RR_REST_OCTETS_PBCCH_DESC,
+    DE_RR_REST_OCTETS_GSM_DESC,
+    DE_RR_REST_OCTETS_RTD_DESC,
+    DE_RR_REST_OCTETS_BSIC_DESC,
+    DE_RR_REST_OCTETS_REPORT_PRIO_DESC,
+    DE_RR_REST_OCTETS_CDMA2000_DESC,
+    DE_RR_REST_OCTETS_SERVING_CELL_DATA,
+    DE_RR_REST_OCTETS_REPEAT_INV_BSIC_INFO,
+    DE_RR_REST_OCTETS_BITMAP_TYPE_REPORTING,
+    DE_RR_REST_OCTETS_NONE
 }
 rr_rest_octets_elem_idx_t;
 
@@ -750,26 +752,26 @@ gint ett_gsm_rr_rest_octets_elem[NUM_GSM_RR_REST_OCTETS_ELEM];
 guint16
 de_rr_ba_range(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
-   guint32 curr_offset;
-   gint bit_offset;
-   guint8 value;
+    guint32 curr_offset;
+    gint bit_offset;
+    guint8 value;
 
-   curr_offset = offset;
-   proto_tree_add_item(tree, hf_gsm_a_rr_range_nb, tvb, curr_offset, 1, FALSE);
-   value = tvb_get_guint8(tvb, curr_offset);
-   curr_offset += 1;
-   bit_offset = curr_offset << 3;
-   while (value)
-   {
-      proto_tree_add_bits_item(tree, hf_gsm_a_rr_range_lower, tvb, bit_offset, 10, FALSE);
-      bit_offset += 10;
-      proto_tree_add_bits_item(tree, hf_gsm_a_rr_range_higher, tvb, bit_offset, 10, FALSE);
-      bit_offset += 10;
-      value -= 1;
-   }
+    curr_offset = offset;
+    proto_tree_add_item(tree, hf_gsm_a_rr_range_nb, tvb, curr_offset, 1, FALSE);
+    value = tvb_get_guint8(tvb, curr_offset);
+    curr_offset += 1;
+    bit_offset = curr_offset << 3;
+    while (value)
+    {
+        proto_tree_add_bits_item(tree, hf_gsm_a_rr_range_lower, tvb, bit_offset, 10, FALSE);
+        bit_offset += 10;
+        proto_tree_add_bits_item(tree, hf_gsm_a_rr_range_higher, tvb, bit_offset, 10, FALSE);
+        bit_offset += 10;
+        value -= 1;
+    }
 
-   curr_offset += len - 1;
-   return (curr_offset - offset);
+    curr_offset += len - 1;
+    return (curr_offset - offset);
 }
 
 /*
@@ -780,230 +782,230 @@ de_rr_ba_range(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
 
 static void display_channel_list(guint8 *list, tvbuff_t *tvb, proto_tree *tree, guint32 offset)
 {
-       int arfcn;
-       proto_item *ti=NULL;
+    int arfcn;
+    proto_item *ti=NULL;
 
-       ti = proto_tree_add_text(tree, tvb, 0, offset, "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, offset, "List of ARFCNs =");
+    for (arfcn=0; arfcn<ARFCN_MAX; arfcn++) {
+        if (list[arfcn])
+            proto_item_append_text(ti, " %d", arfcn);
+    }
 
-       return;
+    return;
 }
 
 static gint greatest_power_of_2_lesser_or_equal_to(gint index)
 {
-   gint j = 1;
-   do {
-      j<<=1;
-   } while (j<=index);
-   j >>= 1;
-   return j;
+    gint j = 1;
+    do {
+        j<<=1;
+    } while (j<=index);
+    j >>= 1;
+    return j;
 }
 
 static gint f_k(gint k, gint *w, gint range)
 {
-   gint index, n, j;
+    gint index, n, j;
 
-   index = k;
-   range -= 1;
-   range = range/greatest_power_of_2_lesser_or_equal_to(index);
-   n = w[index]-1;
+    index = k;
+    range -= 1;
+    range = range/greatest_power_of_2_lesser_or_equal_to(index);
+    n = w[index]-1;
 
-   while (index>1) {
-      j = greatest_power_of_2_lesser_or_equal_to(index);
-      range = 2*range+1;
-      if ((2*index) < 3*j){ /* left child */
-         index -= j/2;
-         n = (n+w[index]-1+((range-1)/2)+1)%range;
-      }
-      else { /* right child */
-         index -= j;
-         n = (n+w[index]-1+1)%range;
-      }
-   }
+    while (index>1) {
+        j = greatest_power_of_2_lesser_or_equal_to(index);
+        range = 2*range+1;
+        if ((2*index) < 3*j){ /* left child */
+            index -= j/2;
+            n = (n+w[index]-1+((range-1)/2)+1)%range;
+        }
+        else { /* right child */
+            index -= j;
+            n = (n+w[index]-1+1)%range;
+        }
+    }
 
-   return (n+1)%1024;
+    return (n+1)%1024;
 }
 
 static void dissect_channel_list_n_range(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gint range)
 {
-       gint curr_offset=offset, f0, arfcn_orig, bits, w[64], wsize, i, wi;
-       gint octet, nwi=1, jwi=0, wbits, imax, iused, arfcn;
-       guint8 list[1024];
-
-       memset((void*)list,0,sizeof(list));
-
-       octet = tvb_get_guint8(tvb, curr_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, curr_offset++);
-               octet = tvb_get_guint8(tvb, curr_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 = 28;
-                       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, curr_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) || ((curr_offset-offset)>len)) {
-                       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, offset);
-
-       return;
+    gint curr_offset=offset, f0, arfcn_orig, bits, w[64], wsize, i, wi;
+    gint octet, nwi=1, jwi=0, wbits, imax, iused, arfcn;
+    guint8 list[1024];
+
+    memset((void*)list,0,sizeof(list));
+
+    octet = tvb_get_guint8(tvb, curr_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, curr_offset++);
+        octet = tvb_get_guint8(tvb, curr_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 = 28;
+            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, curr_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) || ((curr_offset-offset)>len)) {
+            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, offset);
+
+    return;
 }
 
 static guint16
 dissect_arfcn_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
-       guint32 curr_offset;
-       guint8  oct,bit,byte;
-       guint16 arfcn;
-       proto_item      *item;
+    guint32    curr_offset;
+    guint8  oct,bit,byte;
+    guint16 arfcn;
+    proto_item *item;
 
-       curr_offset = offset;
+    curr_offset = offset;
 
-       oct = tvb_get_guint8(tvb, curr_offset);
+    oct = tvb_get_guint8(tvb, curr_offset);
 
-       /* FORMAT-ID, Format Identifier (part of octet 3)*/
-       proto_tree_add_item(tree, hf_gsm_a_rr_format_id, tvb, curr_offset, 1, FALSE);
+    /* FORMAT-ID, Format Identifier (part of octet 3)*/
+    proto_tree_add_item(tree, hf_gsm_a_rr_format_id, tvb, curr_offset, 1, FALSE);
 
-       if ((oct & 0xc0) == 0x00)
-       {
-               /* bit map 0 */
-               item = proto_tree_add_text(tree,tvb, curr_offset, len, "List of ARFCNs =");
-               bit = 4;
-               arfcn = 125;
-               for (byte = 0;byte <= len-1;byte++)
-               {
-                       oct = tvb_get_guint8(tvb, curr_offset);
-                       while (bit-- != 0)
-                       {
-                               arfcn--;
-                               if (((oct >> bit) & 1) == 1)
-                               {
-                                       proto_item_append_text(item," %d",arfcn);
-                               }
-                       }
-                       bit = 8;
-                       curr_offset++;
-               }
-       }
-       else if ((oct & 0xc8) == 0x80)
-       {
-               /* 1024 range */
-               dissect_channel_list_n_range(tvb, tree, curr_offset, len, 1024);
-               curr_offset = curr_offset + len;
-       }
-       else if ((oct & 0xce) == 0x88)
-       {
-               /* 512 range */
-               dissect_channel_list_n_range(tvb, tree, curr_offset, len, 512);
-               curr_offset = curr_offset + len;
-       }
-       else if ((oct & 0xce) == 0x8a)
-       {
-               /* 256 range */
-               dissect_channel_list_n_range(tvb, tree, curr_offset, len, 256);
-               curr_offset = curr_offset + len;
-       }
-       else if ((oct & 0xce) == 0x8c)
-       {
-               /* 128 range */
-               dissect_channel_list_n_range(tvb, tree, curr_offset, len, 128);
-               curr_offset = curr_offset + len;
-       }
-       else if ((oct & 0xce) == 0x8e)
-       {
-               /* variable bit map */
-               arfcn = ((oct & 0x01) << 9) | (tvb_get_guint8(tvb, curr_offset+1) << 1) | ((tvb_get_guint8(tvb, curr_offset + 2) & 0x80) >> 7);
-               item = proto_tree_add_text(tree,tvb,curr_offset,len,"List of ARFCNs = %d",arfcn);
-               curr_offset = curr_offset + 2;
-               bit = 7;
-               for (byte = 0;byte <= len-3;byte++)
-               {
-                       oct = tvb_get_guint8(tvb, curr_offset);
-                       while (bit-- != 0)
-                       {
-                               arfcn++;
-                               if (((oct >> bit) & 1) == 1)
-                               {
-                                       proto_item_append_text(item," %d",arfcn);
-                               }
-                       }
-                       bit = 8;
-                       curr_offset++;
-               }
-       }
-
-       return(curr_offset - offset);
+    if ((oct & 0xc0) == 0x00)
+    {
+        /* bit map 0 */
+        item = proto_tree_add_text(tree,tvb, curr_offset, len, "List of ARFCNs =");
+        bit = 4;
+        arfcn = 125;
+        for (byte = 0;byte <= len-1;byte++)
+        {
+            oct = tvb_get_guint8(tvb, curr_offset);
+            while (bit-- != 0)
+            {
+                arfcn--;
+                if (((oct >> bit) & 1) == 1)
+                {
+                    proto_item_append_text(item," %d",arfcn);
+                }
+            }
+            bit = 8;
+            curr_offset++;
+        }
+    }
+    else if ((oct & 0xc8) == 0x80)
+    {
+        /* 1024 range */
+        dissect_channel_list_n_range(tvb, tree, curr_offset, len, 1024);
+        curr_offset = curr_offset + len;
+    }
+    else if ((oct & 0xce) == 0x88)
+    {
+        /* 512 range */
+        dissect_channel_list_n_range(tvb, tree, curr_offset, len, 512);
+        curr_offset = curr_offset + len;
+    }
+    else if ((oct & 0xce) == 0x8a)
+    {
+        /* 256 range */
+        dissect_channel_list_n_range(tvb, tree, curr_offset, len, 256);
+        curr_offset = curr_offset + len;
+    }
+    else if ((oct & 0xce) == 0x8c)
+    {
+        /* 128 range */
+        dissect_channel_list_n_range(tvb, tree, curr_offset, len, 128);
+        curr_offset = curr_offset + len;
+    }
+    else if ((oct & 0xce) == 0x8e)
+    {
+        /* variable bit map */
+        arfcn = ((oct & 0x01) << 9) | (tvb_get_guint8(tvb, curr_offset+1) << 1) | ((tvb_get_guint8(tvb, curr_offset + 2) & 0x80) >> 7);
+        item = proto_tree_add_text(tree,tvb,curr_offset,len,"List of ARFCNs = %d",arfcn);
+        curr_offset = curr_offset + 2;
+        bit = 7;
+        for (byte = 0;byte <= len-3;byte++)
+        {
+            oct = tvb_get_guint8(tvb, curr_offset);
+            while (bit-- != 0)
+            {
+                arfcn++;
+                if (((oct >> bit) & 1) == 1)
+                {
+                    proto_item_append_text(item," %d",arfcn);
+                }
+            }
+            bit = 8;
+            curr_offset++;
+        }
+    }
+
+    return(curr_offset - offset);
 }
 
 guint16
 de_rr_cell_ch_dsc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
-       return dissect_arfcn_list(tvb, tree, offset, 16, add_string, string_len);
+    return dissect_arfcn_list(tvb, tree, offset, 16, add_string, string_len);
 }
 /*
  * [3] 10.5.2.1c BA List Pref
@@ -1011,37 +1013,37 @@ de_rr_cell_ch_dsc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_
 guint16
 de_rr_ba_list_pref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
-   guint32 curr_offset;
-   gint bit_offset;
-   guint8 value;
-
-   curr_offset = offset;
-   proto_tree_add_item(tree, hf_gsm_a_rr_ba_list_pref_length, tvb, curr_offset, 1, FALSE);
-   curr_offset += 1;
-   bit_offset = curr_offset << 3;
-   value = tvb_get_bits8(tvb,bit_offset,1);
-   bit_offset += 1;
-   while (value)
-   {
-      proto_tree_add_bits_item(tree, hf_gsm_a_rr_range_lower, tvb, bit_offset, 10, FALSE);
-      bit_offset += 10;
-      proto_tree_add_bits_item(tree, hf_gsm_a_rr_range_higher, tvb, bit_offset, 10, FALSE);
-      bit_offset += 10;
-      value = tvb_get_bits8(tvb,bit_offset,1);
-      bit_offset += 1;
-   }
-   value = tvb_get_bits8(tvb,bit_offset,1);
-   bit_offset += 1;
-   while (value)
-   {
-      proto_tree_add_bits_item(tree, hf_gsm_a_rr_ba_freq, tvb, bit_offset, 10, FALSE);
-      bit_offset += 10;
-      value = tvb_get_bits8(tvb,bit_offset,1);
-      bit_offset += 1;
-   }
-
-   curr_offset += len - 1;
-   return (curr_offset - offset);
+    guint32 curr_offset;
+    gint bit_offset;
+    guint8 value;
+
+    curr_offset = offset;
+    proto_tree_add_item(tree, hf_gsm_a_rr_ba_list_pref_length, tvb, curr_offset, 1, FALSE);
+    curr_offset += 1;
+    bit_offset = curr_offset << 3;
+    value = tvb_get_bits8(tvb,bit_offset,1);
+    bit_offset += 1;
+    while (value)
+    {
+        proto_tree_add_bits_item(tree, hf_gsm_a_rr_range_lower, tvb, bit_offset, 10, FALSE);
+        bit_offset += 10;
+        proto_tree_add_bits_item(tree, hf_gsm_a_rr_range_higher, tvb, bit_offset, 10, FALSE);
+        bit_offset += 10;
+        value = tvb_get_bits8(tvb,bit_offset,1);
+        bit_offset += 1;
+    }
+    value = tvb_get_bits8(tvb,bit_offset,1);
+    bit_offset += 1;
+    while (value)
+    {
+        proto_tree_add_bits_item(tree, hf_gsm_a_rr_ba_freq, tvb, bit_offset, 10, FALSE);
+        bit_offset += 10;
+        value = tvb_get_bits8(tvb,bit_offset,1);
+        bit_offset += 1;
+    }
+
+    curr_offset += len - 1;
+    return (curr_offset - offset);
 }
 
 /*
@@ -1050,35 +1052,35 @@ de_rr_ba_list_pref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
 guint16
 de_rr_utran_freq_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
-   guint32 curr_offset;
-   gint bit_offset;
-   guint8 value;
-
-   curr_offset = offset;
-   proto_tree_add_item(tree, hf_gsm_a_rr_utran_freq_list_length, tvb, curr_offset, 1, FALSE);
-   curr_offset += 1;
-   bit_offset = curr_offset << 3;
-   value = tvb_get_bits8(tvb,bit_offset,1);
-   bit_offset += 1;
-   while (value)
-   {
-      proto_tree_add_bits_item(tree, hf_gsm_a_rr_fdd_uarfcn, tvb, bit_offset, 14, FALSE);
-      bit_offset += 14;
-      value = tvb_get_bits8(tvb,bit_offset,1);
-      bit_offset += 1;
-   }
-   value = tvb_get_bits8(tvb,bit_offset,1);
-   bit_offset += 1;
-   while (value)
-   {
-      proto_tree_add_bits_item(tree, hf_gsm_a_rr_tdd_uarfcn, tvb, bit_offset, 14, FALSE);
-      bit_offset += 14;
-      value = tvb_get_bits8(tvb,bit_offset,1);
-      bit_offset += 1;
-   }
-
-   curr_offset += len - 1;
-   return (curr_offset - offset);
+    guint32 curr_offset;
+    gint bit_offset;
+    guint8 value;
+
+    curr_offset = offset;
+    proto_tree_add_item(tree, hf_gsm_a_rr_utran_freq_list_length, tvb, curr_offset, 1, FALSE);
+    curr_offset += 1;
+    bit_offset = curr_offset << 3;
+    value = tvb_get_bits8(tvb,bit_offset,1);
+    bit_offset += 1;
+    while (value)
+    {
+        proto_tree_add_bits_item(tree, hf_gsm_a_rr_fdd_uarfcn, tvb, bit_offset, 14, FALSE);
+        bit_offset += 14;
+        value = tvb_get_bits8(tvb,bit_offset,1);
+        bit_offset += 1;
+    }
+    value = tvb_get_bits8(tvb,bit_offset,1);
+    bit_offset += 1;
+    while (value)
+    {
+        proto_tree_add_bits_item(tree, hf_gsm_a_rr_tdd_uarfcn, tvb, bit_offset, 14, FALSE);
+        bit_offset += 14;
+        value = tvb_get_bits8(tvb,bit_offset,1);
+        bit_offset += 1;
+    }
+
+    curr_offset += len - 1;
+    return (curr_offset - offset);
 }
 
 /*
@@ -1095,28 +1097,29 @@ convert_n_to_q[32] = {   0,   9,  17,  25,  32, 39, 46, 53, 59, 65, 71, 77, 83,
 guint16
 de_rr_cell_select_indic(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
-   proto_tree *subtree, *subtree2;
-       proto_item *item, *item2;
-   guint32 curr_offset;
-   gint bit_offset, bit_offset_sav, idx, xdd_cell_info, wsize, nwi, jwi, w[64], i, iused, xdd_indic0;
-   guint8 value, length;
-
-   curr_offset = offset;
-   length = tvb_get_guint8(tvb, curr_offset);
-   curr_offset += 1;
-   bit_offset = curr_offset << 3;
-   value = tvb_get_bits8(tvb,bit_offset,3);
-   bit_offset += 3;
-   switch (value)
-   {
-      case 0: /* GSM Description */
-         bit_offset_sav = bit_offset;
-         item = proto_tree_add_text(tree, tvb, bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_GSM_DESC].strptr);
-         subtree = proto_item_add_subtree(item, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_GSM_DESC]);
-         value = tvb_get_bits8(tvb,bit_offset,1);
-         bit_offset += 1;
-         while (value)
-         {
+    proto_tree *subtree, *subtree2;
+    proto_item *item, *item2;
+    guint32 curr_offset;
+    gint bit_offset, bit_offset_sav, idx, xdd_cell_info, wsize, nwi, jwi, w[64], i, iused, xdd_indic0;
+    guint8 value, length;
+
+    curr_offset = offset;
+    length = tvb_get_guint8(tvb, curr_offset);
+    curr_offset += 1;
+    bit_offset = curr_offset << 3;
+    value = tvb_get_bits8(tvb,bit_offset,3);
+    bit_offset += 3;
+    switch (value)
+    {
+    case 0: /* GSM Description */
+        bit_offset_sav = bit_offset;
+        item = proto_tree_add_text(tree, tvb, bit_offset>>3, -1, "%s",
+                                   gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_GSM_DESC].strptr);
+        subtree = proto_item_add_subtree(item, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_GSM_DESC]);
+        value = tvb_get_bits8(tvb,bit_offset,1);
+        bit_offset += 1;
+        while (value)
+        {
             proto_tree_add_text(subtree,tvb, bit_offset>>3, 1, "Band Indicator: %s",tvb_get_bits8(tvb,bit_offset,1) ? "1900" : "1800");
             bit_offset += 1;
             proto_tree_add_bits_item(subtree, hf_gsm_a_rr_arfcn, tvb, bit_offset, 10, FALSE);
@@ -1125,181 +1128,189 @@ de_rr_cell_select_indic(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
             bit_offset += 6;
             value = tvb_get_bits8(tvb,bit_offset,1);
             bit_offset += 1;
-         }
-         proto_item_set_len(item,((bit_offset-bit_offset_sav)>>3)+1);
-         break;
-      case 1: /* UTRAN FDD Description */
-         bit_offset_sav = bit_offset;
-         item = proto_tree_add_text(tree, tvb, bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_UTRAN_FDD_DESC].strptr);
-         subtree = proto_item_add_subtree(item, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_UTRAN_FDD_DESC]);
-         value = tvb_get_bits8(tvb,bit_offset,1);
-         bit_offset += 1;
-         while (value)
-         {
+        }
+        proto_item_set_len(item,((bit_offset-bit_offset_sav)>>3)+1);
+        break;
+    case 1: /* UTRAN FDD Description */
+        bit_offset_sav = bit_offset;
+        item = proto_tree_add_text(tree, tvb, bit_offset>>3, -1, "%s", 
+                                   gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_UTRAN_FDD_DESC].strptr);
+        subtree = proto_item_add_subtree(item, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_UTRAN_FDD_DESC]);
+        value = tvb_get_bits8(tvb,bit_offset,1);
+        bit_offset += 1;
+        while (value)
+        {
             if (tvb_get_bits8(tvb,bit_offset,1))
             {
-               bit_offset += 1;
-               proto_tree_add_bits_item(subtree, hf_gsm_a_rr_bandwidth_fdd, tvb, bit_offset, 3, FALSE);
-               bit_offset += 3;
+                bit_offset += 1;
+                proto_tree_add_bits_item(subtree, hf_gsm_a_rr_bandwidth_fdd, tvb, bit_offset, 3, FALSE);
+                bit_offset += 3;
             }
             else
-               bit_offset += 1;
+                bit_offset += 1;
             proto_tree_add_bits_item(subtree, hf_gsm_a_rr_fdd_uarfcn, tvb, bit_offset, 14, FALSE);
             bit_offset += 14;
             if (tvb_get_bits8(tvb,bit_offset,1))
             {
-               bit_offset += 1;
-               xdd_indic0 = tvb_get_bits8(tvb,bit_offset,1);
-               proto_tree_add_text(subtree,tvb, bit_offset>>3, 1, "FDD Indic0: %d", xdd_indic0);
-               bit_offset += 1;
-               idx = tvb_get_bits8(tvb,bit_offset,5);
-               proto_tree_add_text(subtree,tvb, bit_offset>>3, 1, "Nr of FDD Cells : %d", idx);
-               bit_offset += 5;
-               idx = convert_n_to_p[idx];
-               item2 = proto_tree_add_text(subtree,tvb, bit_offset>>3, (idx>>3)+1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_UTRAN_FDD_DESC].strptr);
-               subtree2 = proto_item_add_subtree(item2, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_FDD_CELL_INFORMATION_FIELD]);
-               proto_tree_add_text(subtree2,tvb, bit_offset>>3, (idx>>3)+1, "Field is %d bits long", idx);
-               if (xdd_indic0)
-               {
-                  proto_tree_add_text(subtree2,tvb, bit_offset>>3, 0, "Scrambling Code: %d", 0);
-                  proto_tree_add_text(subtree2,tvb, bit_offset>>3, 0, "Diversity: %d", 0);
-               }
-               if (idx)
-               {
-                  wsize = 10;
-                  nwi = 1;
-                  jwi = 0;
-                  i = 1;
+                bit_offset += 1;
+                xdd_indic0 = tvb_get_bits8(tvb,bit_offset,1);
+                proto_tree_add_text(subtree,tvb, bit_offset>>3, 1, "FDD Indic0: %d", xdd_indic0);
+                bit_offset += 1;
+                idx = tvb_get_bits8(tvb,bit_offset,5);
+                proto_tree_add_text(subtree,tvb, bit_offset>>3, 1, "Nr of FDD Cells : %d", idx);
+                bit_offset += 5;
+                idx = convert_n_to_p[idx];
+                item2 = proto_tree_add_text(subtree,tvb, bit_offset>>3, (idx>>3)+1, "%s",
+                                            gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_UTRAN_FDD_DESC].strptr);
+                subtree2 = proto_item_add_subtree(item2, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_FDD_CELL_INFORMATION_FIELD]);
+                proto_tree_add_text(subtree2,tvb, bit_offset>>3, (idx>>3)+1, "Field is %d bits long", idx);
+                if (xdd_indic0)
+                {
+                    proto_tree_add_text(subtree2,tvb, bit_offset>>3, 0, "Scrambling Code: %d", 0);
+                    proto_tree_add_text(subtree2,tvb, bit_offset>>3, 0, "Diversity: %d", 0);
+                }
+                if (idx)
+                {
+                    wsize = 10;
+                    nwi = 1;
+                    jwi = 0;
+                    i = 1;
    
-                  while (idx > 0)
-                  {
-                     w[i] = tvb_get_bits16(tvb, bit_offset, wsize, FALSE);
-                     bit_offset += wsize;
-                     idx -= wsize;
-                     if (w[i] == 0)
-                     {
-                        idx = 0;
-                        break;
-                     }
-                     if (++jwi==nwi)
-                     {
-                        jwi = 0;
-                        nwi <<= 1;
-                        wsize--;
-                     }
-                     i++;
-                  }
-                  if (idx < 0)
-                  {
-                     bit_offset += idx;
-                  }
-                  iused = i-1;
+                    while (idx > 0)
+                    {
+                        w[i] = tvb_get_bits16(tvb, bit_offset, wsize, FALSE);
+                        bit_offset += wsize;
+                        idx -= wsize;
+                        if (w[i] == 0)
+                        {
+                            idx = 0;
+                            break;
+                        }
+                        if (++jwi==nwi)
+                        {
+                            jwi = 0;
+                            nwi <<= 1;
+                            wsize--;
+                        }
+                        i++;
+                    }
+                    if (idx < 0)
+                    {
+                        bit_offset += idx;
+                    }
+                    iused = i-1;
    
-                  for (i=1; i <= iused; i++)
-                  {
-                     xdd_cell_info = f_k(i, w, 1024);
-                     proto_tree_add_text(subtree2,tvb, bit_offset>>3, 0, "Scrambling Code: %d", xdd_cell_info & 0x01FF);
-                     proto_tree_add_text(subtree2,tvb, bit_offset>>3, 0, "Diversity: %d", (xdd_cell_info >> 9) & 0x01);
-                  }
-               }
+                    for (i=1; i <= iused; i++)
+                    {
+                        xdd_cell_info = f_k(i, w, 1024);
+                        proto_tree_add_text(subtree2,tvb, bit_offset>>3, 0, 
+                                            "Scrambling Code: %d", xdd_cell_info & 0x01FF);
+                        proto_tree_add_text(subtree2,tvb, bit_offset>>3, 0, 
+                                            "Diversity: %d", (xdd_cell_info >> 9) & 0x01);
+                    }
+                }
             }
             else
-               bit_offset += 1;
+                bit_offset += 1;
             value = tvb_get_bits8(tvb,bit_offset,1);
             bit_offset += 1;
-         }
-         proto_item_set_len(item,((bit_offset-bit_offset_sav)>>3)+1);
-         break;
-      case 2: /* UTRAN TDD Description */
-         bit_offset_sav = bit_offset;
-         item = proto_tree_add_text(tree, tvb, bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_UTRAN_TDD_DESC].strptr);
-         subtree = proto_item_add_subtree(item, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_UTRAN_TDD_DESC]);
-         value = tvb_get_bits8(tvb,bit_offset,1);
-         bit_offset += 1;
-         while (value)
-         {
+        }
+        proto_item_set_len(item,((bit_offset-bit_offset_sav)>>3)+1);
+        break;
+    case 2: /* UTRAN TDD Description */
+        bit_offset_sav = bit_offset;
+        item = proto_tree_add_text(tree, tvb, bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_UTRAN_TDD_DESC].strptr);
+        subtree = proto_item_add_subtree(item, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_UTRAN_TDD_DESC]);
+        value = tvb_get_bits8(tvb,bit_offset,1);
+        bit_offset += 1;
+        while (value)
+        {
             if (tvb_get_bits8(tvb,bit_offset,1))
             {
-               bit_offset += 1;
-               proto_tree_add_bits_item(subtree, hf_gsm_a_rr_bandwidth_tdd, tvb, bit_offset, 3, FALSE);
-               bit_offset += 3;
+                bit_offset += 1;
+                proto_tree_add_bits_item(subtree, hf_gsm_a_rr_bandwidth_tdd, tvb, bit_offset, 3, FALSE);
+                bit_offset += 3;
             }
             else
-               bit_offset += 1;
+                bit_offset += 1;
             proto_tree_add_bits_item(subtree, hf_gsm_a_rr_tdd_uarfcn, tvb, bit_offset, 14, FALSE);
             bit_offset += 14;
             if (tvb_get_bits8(tvb,bit_offset,1))
             {
-               bit_offset += 1;
-               xdd_indic0 = tvb_get_bits8(tvb,bit_offset,1);
-               proto_tree_add_text(subtree,tvb, bit_offset>>3, 1, "TDD Indic0: %d", xdd_indic0);
-               bit_offset += 1;
-               idx = tvb_get_bits8(tvb,bit_offset,5);
-               proto_tree_add_text(subtree,tvb, bit_offset>>3, 1, "Nr of TDD Cells : %d", idx);
-               bit_offset += 5;
-               idx = convert_n_to_q[idx];
-               item2 = proto_tree_add_text(subtree,tvb, bit_offset>>3, (idx>>3)+1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_UTRAN_TDD_DESC].strptr);
-               subtree2 = proto_item_add_subtree(item2, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_TDD_CELL_INFORMATION_FIELD]);
-               proto_tree_add_text(subtree2,tvb, bit_offset>>3, (idx>>3)+1, "Field is %d bits long", idx);
-               if (xdd_indic0)
-               {
-                  proto_tree_add_text(subtree2,tvb, bit_offset>>3, 0, "Cell Parameter: %d", 0);
-                  proto_tree_add_text(subtree2,tvb, bit_offset>>3, 0, "Sync Case TSTD: %d", 0);
-                  proto_tree_add_text(subtree2,tvb, bit_offset>>3, 0, "Diversity TDD: %d", 0);
-               }
-               if (idx)
-               {
-                  wsize = 9;
-                  nwi = 1;
-                  jwi = 0;
-                  i = 1;
+                bit_offset += 1;
+                xdd_indic0 = tvb_get_bits8(tvb,bit_offset,1);
+                proto_tree_add_text(subtree,tvb, bit_offset>>3, 1, "TDD Indic0: %d", xdd_indic0);
+                bit_offset += 1;
+                idx = tvb_get_bits8(tvb,bit_offset,5);
+                proto_tree_add_text(subtree,tvb, bit_offset>>3, 1, "Nr of TDD Cells : %d", idx);
+                bit_offset += 5;
+                idx = convert_n_to_q[idx];
+                item2 = proto_tree_add_text(subtree,tvb, bit_offset>>3, (idx>>3)+1, "%s", 
+                                            gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_UTRAN_TDD_DESC].strptr);
+                subtree2 = proto_item_add_subtree(item2, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_TDD_CELL_INFORMATION_FIELD]);
+                proto_tree_add_text(subtree2,tvb, bit_offset>>3, (idx>>3)+1, "Field is %d bits long", idx);
+                if (xdd_indic0)
+                {
+                    proto_tree_add_text(subtree2,tvb, bit_offset>>3, 0, "Cell Parameter: %d", 0);
+                    proto_tree_add_text(subtree2,tvb, bit_offset>>3, 0, "Sync Case TSTD: %d", 0);
+                    proto_tree_add_text(subtree2,tvb, bit_offset>>3, 0, "Diversity TDD: %d", 0);
+                }
+                if (idx)
+                {
+                    wsize = 9;
+                    nwi = 1;
+                    jwi = 0;
+                    i = 1;
    
-                  while (idx > 0)
-                  {
-                     w[i] = tvb_get_bits16(tvb, bit_offset, wsize, FALSE);
-                     bit_offset += wsize;
-                     idx -= wsize;
-                     if (w[i] == 0)
-                     {
-                        idx = 0;
-                        break;
-                     }
-                     if (++jwi==nwi)
-                     {
-                        jwi = 0;
-                        nwi <<= 1;
-                        wsize--;
-                     }
-                     i++;
-                  }
-                  if (idx < 0)
-                  {
-                     bit_offset += idx;
-                  }
-                  iused = i-1;
-   
-                  for (i=1; i <= iused; i++)
-                  {
-                     xdd_cell_info = f_k(i, w, 512);
-                     proto_tree_add_text(subtree2,tvb, bit_offset>>3, 0, "Cell Parameter: %d", xdd_cell_info & 0x07F);
-                     proto_tree_add_text(subtree2,tvb, bit_offset>>3, 0, "Sync Case TSTD: %d", (xdd_cell_info >> 7) & 0x01);
-                     proto_tree_add_text(subtree2,tvb, bit_offset>>3, 0, "Diversity TDD: %d", (xdd_cell_info >> 8) & 0x01);
-                  }
-               }
+                    while (idx > 0)
+                    {
+                        w[i] = tvb_get_bits16(tvb, bit_offset, wsize, FALSE);
+                        bit_offset += wsize;
+                        idx -= wsize;
+                        if (w[i] == 0)
+                        {
+                            idx = 0;
+                            break;
+                        }
+                        if (++jwi==nwi)
+                        {
+                            jwi = 0;
+                            nwi <<= 1;
+                            wsize--;
+                        }
+                        i++;
+                    }
+                    if (idx < 0)
+                    {
+                        bit_offset += idx;
+                    }
+                    iused = i-1;
+                                               
+                    for (i=1; i <= iused; i++)
+                    {
+                        xdd_cell_info = f_k(i, w, 512);
+                        proto_tree_add_text(subtree2,tvb, bit_offset>>3, 0,
+                                            "Cell Parameter: %d", xdd_cell_info & 0x07F);
+                        proto_tree_add_text(subtree2,tvb, bit_offset>>3, 0,
+                                            "Sync Case TSTD: %d", (xdd_cell_info >> 7) & 0x01);
+                        proto_tree_add_text(subtree2,tvb, bit_offset>>3, 0,
+                                            "Diversity TDD: %d", (xdd_cell_info >> 8) & 0x01);
+                    }
+                }
             }
             else
-               bit_offset += 1;
+                bit_offset += 1;
             value = tvb_get_bits8(tvb,bit_offset,1);
             bit_offset += 1;
-         }
-         proto_item_set_len(item,((bit_offset-bit_offset_sav)>>3)+1);
-         break;
-      default:
-         break;
-   }
+        }
+        proto_item_set_len(item,((bit_offset-bit_offset_sav)>>3)+1);
+        break;
+    default:
+        break;
+    }
 
-   curr_offset += length;
-   return (curr_offset - offset);
+    curr_offset += length;
+    return (curr_offset - offset);
 }
 
 /*
@@ -1308,124 +1319,124 @@ de_rr_cell_select_indic(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
 guint16
 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;
-       guint8  oct;
-       guint32 curr_offset;
-       guint16 bcch_arfcn;
+    proto_tree *subtree;
+    proto_item *item;
+    guint8     oct;
+    guint32    curr_offset;
+    guint16 bcch_arfcn;
 
-       curr_offset = offset;
+    curr_offset = offset;
 
-       oct = tvb_get_guint8(tvb, curr_offset);
-       item =
-               proto_tree_add_text(tree,
-                       tvb, curr_offset, 2, "%s",
-                       gsm_rr_elem_strings[DE_RR_CELL_DSC].strptr);
+    oct = tvb_get_guint8(tvb, curr_offset);
+    item =
+        proto_tree_add_text(tree,
+                            tvb, curr_offset, 2, "%s",
+                            gsm_rr_elem_strings[DE_RR_CELL_DSC].strptr);
 
-       subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_CELL_DSC]);
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_CELL_DSC]);
 
-       proto_tree_add_item(subtree, hf_gsm_a_ncc, tvb, curr_offset, 1, FALSE);
-       proto_tree_add_item(subtree, hf_gsm_a_bcc, tvb, curr_offset, 1, FALSE);
-       bcch_arfcn = (tvb_get_guint8(tvb,curr_offset) & 0xc0) << 2;
-       bcch_arfcn = bcch_arfcn | tvb_get_guint8(tvb,curr_offset+1);
-       proto_tree_add_uint(subtree, hf_gsm_a_bcch_arfcn , tvb, curr_offset, 2, bcch_arfcn );
+    proto_tree_add_item(subtree, hf_gsm_a_ncc, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_item(subtree, hf_gsm_a_bcc, tvb, curr_offset, 1, FALSE);
+    bcch_arfcn = (tvb_get_guint8(tvb,curr_offset) & 0xc0) << 2;
+    bcch_arfcn = bcch_arfcn | tvb_get_guint8(tvb,curr_offset+1);
+    proto_tree_add_uint(subtree, hf_gsm_a_bcch_arfcn , tvb, curr_offset, 2, bcch_arfcn );
 
-       curr_offset = curr_offset + 2;
+    curr_offset = curr_offset + 2;
 
-       return(curr_offset - offset);
+    return(curr_offset - offset);
 }
 
 /*
  * [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 const value_string gsm_a_rr_radio_link_timeout_vals[] = {
-       { 0x00, "4" },
-       { 0x01, "8" },
-       { 0x02, "12" },
-       { 0x03, "16" },
-       { 0x04, "20" },
-       { 0x05, "24" },
-       { 0x06, "28" },
-       { 0x07, "32" },
-       { 0x08, "36" },
-       { 0x09, "40" },
-       { 0x0A, "44" },
-       { 0x0B, "48" },
-       { 0x0C, "52" },
-       { 0x0D, "56" },
-       { 0x0E, "60" },
-       { 0x0F, "64" },
-       { 0,    NULL } };
+    { 0x00, "4" },
+    { 0x01, "8" },
+    { 0x02, "12" },
+    { 0x03, "16" },
+    { 0x04, "20" },
+    { 0x05, "24" },
+    { 0x06, "28" },
+    { 0x07, "32" },
+    { 0x08, "36" },
+    { 0x09, "40" },
+    { 0x0A, "44" },
+    { 0x0B, "48" },
+    { 0x0C, "52" },
+    { 0x0D, "56" },
+    { 0x0E, "60" },
+    { 0x0F, "64" },
+    {    0, NULL } };
 
 static guint16
 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;
-       guint32 curr_offset;
+    proto_tree *subtree;
+    proto_item *item;
+    guint32    curr_offset;
 
-       curr_offset = offset;
+    curr_offset = offset;
 
-       item = proto_tree_add_text(tree, tvb, curr_offset, 1, "%s",
-               gsm_rr_elem_strings[DE_RR_CELL_OPT_BCCH].strptr);
+    item = proto_tree_add_text(tree, tvb, curr_offset, 1, "%s",
+                               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]);
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_CELL_OPT_BCCH]);
 
-       proto_tree_add_bits_item(subtree, hf_gsm_a_rr_pwrc, tvb, (curr_offset<<3)+1, 1, FALSE);
-       proto_tree_add_item(subtree, hf_gsm_a_rr_dtx_bcch, tvb, curr_offset, 1, FALSE);
-       proto_tree_add_item(subtree, hf_gsm_a_rr_radio_link_timeout, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_pwrc, tvb, (curr_offset<<3)+1, 1, FALSE);
+    proto_tree_add_item(subtree, hf_gsm_a_rr_dtx_bcch, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_item(subtree, hf_gsm_a_rr_radio_link_timeout, tvb, curr_offset, 1, FALSE);
 
-       curr_offset = curr_offset + 1;
+    curr_offset = curr_offset + 1;
 
-       return(curr_offset - offset);
+    return(curr_offset - offset);
 }
 
 /*
  * [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 guint16
 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;
-       guint8  oct;
-       guint8  dtx;
-       guint32 curr_offset;
+    proto_tree *subtree;
+    proto_item *item;
+    guint8     oct;
+    guint8     dtx;
+    guint32    curr_offset;
 
-       curr_offset = offset;
+    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 */
-       item = proto_tree_add_text(tree, tvb, curr_offset, 1, "%s",
-               gsm_rr_elem_strings[DE_RR_CELL_OPT_SACCH].strptr);
+    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 */
+    item = proto_tree_add_text(tree, tvb, curr_offset, 1, "%s",
+                               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]);
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_CELL_OPT_SACCH]);
 
-       proto_tree_add_bits_item(subtree, hf_gsm_a_rr_pwrc, tvb, (curr_offset<<3)+1, 1, FALSE);
-       proto_tree_add_uint(subtree, hf_gsm_a_rr_dtx_sacch, tvb, curr_offset, 1, dtx);
-       proto_tree_add_item(subtree, hf_gsm_a_rr_radio_link_timeout, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_pwrc, tvb, (curr_offset<<3)+1, 1, FALSE);
+    proto_tree_add_uint(subtree, hf_gsm_a_rr_dtx_sacch, tvb, curr_offset, 1, dtx);
+    proto_tree_add_item(subtree, hf_gsm_a_rr_radio_link_timeout, tvb, curr_offset, 1, FALSE);
 
-       curr_offset = curr_offset + 1;
+    curr_offset = curr_offset + 1;
 
-       return(curr_offset - offset);
+    return(curr_offset - offset);
 }
 
 /*
@@ -1434,31 +1445,31 @@ de_rr_cell_opt_sacch(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
 static guint16
 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;
+    proto_tree *subtree;
+    proto_item *item;
+    guint8     oct;
+    guint32    curr_offset;
 
-       curr_offset = offset;
+    curr_offset = offset;
 
-       oct = tvb_get_guint8(tvb, curr_offset);
-       item = proto_tree_add_text(tree, tvb, curr_offset, 2, "%s",
-               gsm_rr_elem_strings[DE_RR_CELL_SEL_PARAM].strptr);
+    oct = tvb_get_guint8(tvb, curr_offset);
+    item = proto_tree_add_text(tree, tvb, curr_offset, 2, "%s",
+                               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]);
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_CELL_SEL_PARAM]);
 
-       proto_tree_add_item(subtree, hf_gsm_a_rr_cell_reselect_hyst, tvb, curr_offset, 1, FALSE);
-       proto_tree_add_item(subtree, hf_gsm_a_rr_ms_txpwr_max_cch, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_item(subtree, hf_gsm_a_rr_cell_reselect_hyst, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_item(subtree, hf_gsm_a_rr_ms_txpwr_max_cch, tvb, curr_offset, 1, FALSE);
 
-       curr_offset = curr_offset + 1;
+    curr_offset = curr_offset + 1;
 
-       proto_tree_add_item(subtree, hf_gsm_a_rr_acs, tvb, curr_offset, 1, FALSE);
-       proto_tree_add_item(subtree, hf_gsm_a_rr_neci, tvb, curr_offset, 1, FALSE);
-       proto_tree_add_item(subtree, hf_gsm_a_rr_rxlev_access_min, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_item(subtree, hf_gsm_a_rr_acs, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_item(subtree, hf_gsm_a_rr_neci, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_item(subtree, hf_gsm_a_rr_rxlev_access_min, tvb, curr_offset, 1, FALSE);
 
-       curr_offset = curr_offset + 1;
+    curr_offset = curr_offset + 1;
 
-       return(curr_offset - offset);
+    return(curr_offset - offset);
 }
 
 /*
@@ -1468,93 +1479,93 @@ de_rr_cell_sel_param(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
 guint16
 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;
-       guint16 arfcn, hsn, maio;
-       proto_tree      *subtree;
-       proto_item      *item;
-       const gchar *str;
-
-       curr_offset = offset;
-
-       item = proto_tree_add_text(tree,tvb, curr_offset, 3, "%s", gsm_rr_elem_strings[DE_RR_CH_DSC].strptr);
-
-       subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_CH_DSC]);
-
-       /* Octet 2 */
-       oct8 = tvb_get_guint8(tvb, curr_offset);
-
-       if ((oct8 & 0xf8) == 0x08)
-       {
-               str = "TCH/F + ACCHs";
-               other_decode_bitfield_value(a_bigbuf, oct8, 0xf8, 8);
-               proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = %s",a_bigbuf,str);
-       }
-       else
-       {
-               if ((oct8 & 0xf0) == 0x10)
-               {
-                       str = "TCH/H + ACCHs, Subchannel";
-                       subchannel = ((oct8 & 0x08)>>3);
-               }
-               else if ((oct8 & 0xe0) == 0x20)
-               {
-                       str = "SDCCH/4 + SACCH/C4 or CBCH (SDCCH/4), Subchannel";
-                       subchannel = ((oct8 & 0x18)>>3);
-               }
-               else if ((oct8 & 0xc0) == 0x40)
-               {
-                       str = "SDCCH/8 + SACCH/C8 or CBCH (SDCCH/8), Subchannel";
-                       subchannel = ((oct8 % 0x38)>>3);
-               } else {
-                       str = "";
-                       subchannel = 0;
-                       DISSECTOR_ASSERT_NOT_REACHED();
-               }
+    guint32    curr_offset;
+    guint8     oct8,subchannel;
+    guint16 arfcn, hsn, maio;
+    proto_tree *subtree;
+    proto_item *item;
+    const gchar *str;
+
+    curr_offset = offset;
+
+    item = proto_tree_add_text(tree,tvb, curr_offset, 3, "%s", gsm_rr_elem_strings[DE_RR_CH_DSC].strptr);
+
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_CH_DSC]);
+
+    /* Octet 2 */
+    oct8 = tvb_get_guint8(tvb, curr_offset);
+
+    if ((oct8 & 0xf8) == 0x08)
+    {
+        str = "TCH/F + ACCHs";
+        other_decode_bitfield_value(a_bigbuf, oct8, 0xf8, 8);
+        proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = %s",a_bigbuf,str);
+    }
+    else
+    {
+        if ((oct8 & 0xf0) == 0x10)
+        {
+            str = "TCH/H + ACCHs, Subchannel";
+            subchannel = ((oct8 & 0x08)>>3);
+        }
+        else if ((oct8 & 0xe0) == 0x20)
+        {
+            str = "SDCCH/4 + SACCH/C4 or CBCH (SDCCH/4), Subchannel";
+            subchannel = ((oct8 & 0x18)>>3);
+        }
+        else if ((oct8 & 0xc0) == 0x40)
+        {
+            str = "SDCCH/8 + SACCH/C8 or CBCH (SDCCH/8), Subchannel";
+            subchannel = ((oct8 % 0x38)>>3);
+        } else {
+            str = "";
+            subchannel = 0;
+            DISSECTOR_ASSERT_NOT_REACHED();
+        }
        
-               other_decode_bitfield_value(a_bigbuf, oct8, 0xf8, 8);
-               proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = %s %d",a_bigbuf,str,subchannel);
-       }
+        other_decode_bitfield_value(a_bigbuf, oct8, 0xf8, 8);
+        proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = %s %d",a_bigbuf,str,subchannel);
+    }
 
-       other_decode_bitfield_value(a_bigbuf, oct8, 0x07, 8);
-       proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = Timeslot: %d",a_bigbuf,(oct8 & 0x07));
+    other_decode_bitfield_value(a_bigbuf, oct8, 0x07, 8);
+    proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = Timeslot: %d",a_bigbuf,(oct8 & 0x07));
 
-       curr_offset +=1;
+    curr_offset +=1;
        
-       /* Octet 3 */
-       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));
+    /* Octet 3 */
+    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)
-       {
-               /* Hopping sequence */
-               maio = ((oct8 & 0x0f)<<2) | ((tvb_get_guint8(tvb,curr_offset+1) & 0xc0) >> 6);
-               hsn = (tvb_get_guint8(tvb,curr_offset+1) & 0x3f);
-               str = "Yes";
-
-               other_decode_bitfield_value(a_bigbuf, oct8, 0x10, 8);
-               proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = Hopping channel: %s",a_bigbuf,str);
-               proto_tree_add_text(subtree,tvb, curr_offset, 2,"Hopping channel: MAIO %d",maio);
-               proto_tree_add_text(subtree,tvb, curr_offset, 2,"Hopping channel: HSN %d",hsn);
-       }
-       else
-       {
-               /* single ARFCN */
-               arfcn = ((oct8 & 0x03) << 8) | tvb_get_guint8(tvb,curr_offset+1);
-               str = "No";
-
-               other_decode_bitfield_value(a_bigbuf, oct8, 0x10, 8);
-               proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = Hopping channel: %s",a_bigbuf,str);
-               other_decode_bitfield_value(a_bigbuf, oct8, 0x0c, 8);
-               proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = Spare",a_bigbuf);
-               proto_tree_add_text(subtree,tvb, curr_offset, 2,"Single channel : ARFCN %d",arfcn);
-       }
+    if ((oct8 & 0x10) == 0x10)
+    {
+        /* Hopping sequence */
+        maio = ((oct8 & 0x0f)<<2) | ((tvb_get_guint8(tvb,curr_offset+1) & 0xc0) >> 6);
+        hsn = (tvb_get_guint8(tvb,curr_offset+1) & 0x3f);
+        str = "Yes";
+
+        other_decode_bitfield_value(a_bigbuf, oct8, 0x10, 8);
+        proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = Hopping channel: %s",a_bigbuf,str);
+        proto_tree_add_text(subtree,tvb, curr_offset, 2,"Hopping channel: MAIO %d",maio);
+        proto_tree_add_text(subtree,tvb, curr_offset, 2,"Hopping channel: HSN %d",hsn);
+    }
+    else
+    {
+        /* single ARFCN */
+        arfcn = ((oct8 & 0x03) << 8) | tvb_get_guint8(tvb,curr_offset+1);
+        str = "No";
+
+        other_decode_bitfield_value(a_bigbuf, oct8, 0x10, 8);
+        proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = Hopping channel: %s",a_bigbuf,str);
+        other_decode_bitfield_value(a_bigbuf, oct8, 0x0c, 8);
+        proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = Spare",a_bigbuf);
+        proto_tree_add_text(subtree,tvb, curr_offset, 2,"Single channel : ARFCN %d",arfcn);
+    }
        
-       curr_offset = curr_offset + 2;
+    curr_offset = curr_offset + 2;
 
-       return(curr_offset - offset);
+    return(curr_offset - offset);
 }
 /*
  * [3] 10.5.2.5a Channel Description 2
@@ -1562,113 +1573,113 @@ de_rr_ch_dsc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gch
 static guint16
 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;
-       guint16 arfcn, hsn, maio;
-       proto_tree      *subtree;
-       proto_item      *item;
-       const gchar *str;
-
-       curr_offset = offset;
-
-       item = proto_tree_add_text(tree,tvb, curr_offset, 3, "%s", gsm_rr_elem_strings[DE_RR_CH_DSC2].strptr);
-
-       subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_CH_DSC2]);
-
-       /* Octet 2 */
-       oct8 = tvb_get_guint8(tvb, curr_offset);
-
-       if ((oct8 & 0xf8) == 0x0)
-       {
-               str = "TCH/F + FACCH/F and SACCH/M";
-               other_decode_bitfield_value(a_bigbuf, oct8, 0xf8, 8);
-               proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = %s",a_bigbuf,str);
-       }
-       else if ((oct8 & 0xf8) == 0x08)
-       {
-               str = "TCH/F + FACCH/F and SACCH/F";
-               other_decode_bitfield_value(a_bigbuf, oct8, 0xf8, 8);
-               proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = %s",a_bigbuf,str);
-       }
-       else if ((oct8 & 0xf8) == 0xf0)
-       {
-               str = "TCH/F + FACCH/F and SACCH/M + bi- and unidirectional channels";
-               other_decode_bitfield_value(a_bigbuf, oct8, 0xf8, 8);
-               proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = %s",a_bigbuf,str);
-       }
-       else
-       {
-               if ((oct8 & 0xf0) == 0x10)
-               {
-                       str = "TCH/H + ACCHs, Subchannel";
-                       subchannel = ((oct8 & 0x08)>>3);
-               }
-               else if ((oct8 & 0xe0) == 0x20)
-               {
-                       str = "SDCCH/4 + SACCH/C4 or CBCH (SDCCH/4), Subchannel";
-                       subchannel = ((oct8 & 0x18)>>3);
-               }
-               else if ((oct8 & 0xc0) == 0x40)
-               {
-                       str = "SDCCH/8 + SACCH/C8 or CBCH (SDCCH/8), Subchannel";
-                       subchannel = ((oct8 % 0x38)>>3);
-               }
-               else if ((oct8 & 0xc0) == 0x80)
-               {
-                       str = "TCH/F + FACCH/F and SACCH/M + bidirectional channels at timeslot";
-                       subchannel = ((oct8 % 0x38)>>3);
-               }
-               else if ((oct8 & 0xe0) == 0xc0)
-               {
-                       str = "TCH/F + FACCH/F and SACCH/M + unidirectional channels at timeslot";
-                       subchannel = ((oct8 % 0x38)>>3);
-               } else {
-                       str = "";
-                       subchannel = 0;
-                       DISSECTOR_ASSERT_NOT_REACHED();
-               }
-               other_decode_bitfield_value(a_bigbuf, oct8, 0xf8, 8);
-               proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = %s %d",a_bigbuf,str,subchannel);
-       }
-
-       other_decode_bitfield_value(a_bigbuf, oct8, 0x07, 8);
-       proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = Timeslot: %d",a_bigbuf,(oct8 & 0x07));
-
-       curr_offset +=1;
+    guint32    curr_offset;
+    guint8     oct8,subchannel;
+    guint16 arfcn, hsn, maio;
+    proto_tree *subtree;
+    proto_item *item;
+    const gchar *str;
+
+    curr_offset = offset;
+
+    item = proto_tree_add_text(tree,tvb, curr_offset, 3, "%s", gsm_rr_elem_strings[DE_RR_CH_DSC2].strptr);
+
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_CH_DSC2]);
+
+    /* Octet 2 */
+    oct8 = tvb_get_guint8(tvb, curr_offset);
+
+    if ((oct8 & 0xf8) == 0x0)
+    {
+        str = "TCH/F + FACCH/F and SACCH/M";
+        other_decode_bitfield_value(a_bigbuf, oct8, 0xf8, 8);
+        proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = %s",a_bigbuf,str);
+    }
+    else if ((oct8 & 0xf8) == 0x08)
+    {
+        str = "TCH/F + FACCH/F and SACCH/F";
+        other_decode_bitfield_value(a_bigbuf, oct8, 0xf8, 8);
+        proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = %s",a_bigbuf,str);
+    }
+    else if ((oct8 & 0xf8) == 0xf0)
+    {
+        str = "TCH/F + FACCH/F and SACCH/M + bi- and unidirectional channels";
+        other_decode_bitfield_value(a_bigbuf, oct8, 0xf8, 8);
+        proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = %s",a_bigbuf,str);
+    }
+    else
+    {
+        if ((oct8 & 0xf0) == 0x10)
+        {
+            str = "TCH/H + ACCHs, Subchannel";
+            subchannel = ((oct8 & 0x08)>>3);
+        }
+        else if ((oct8 & 0xe0) == 0x20)
+        {
+            str = "SDCCH/4 + SACCH/C4 or CBCH (SDCCH/4), Subchannel";
+            subchannel = ((oct8 & 0x18)>>3);
+        }
+        else if ((oct8 & 0xc0) == 0x40)
+        {
+            str = "SDCCH/8 + SACCH/C8 or CBCH (SDCCH/8), Subchannel";
+            subchannel = ((oct8 % 0x38)>>3);
+        }
+        else if ((oct8 & 0xc0) == 0x80)
+        {
+            str = "TCH/F + FACCH/F and SACCH/M + bidirectional channels at timeslot";
+            subchannel = ((oct8 % 0x38)>>3);
+        }
+        else if ((oct8 & 0xe0) == 0xc0)
+        {
+            str = "TCH/F + FACCH/F and SACCH/M + unidirectional channels at timeslot";
+            subchannel = ((oct8 % 0x38)>>3);
+        } else {
+            str = "";
+            subchannel = 0;
+            DISSECTOR_ASSERT_NOT_REACHED();
+        }
+        other_decode_bitfield_value(a_bigbuf, oct8, 0xf8, 8);
+        proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = %s %d",a_bigbuf,str,subchannel);
+    }
+
+    other_decode_bitfield_value(a_bigbuf, oct8, 0x07, 8);
+    proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = Timeslot: %d",a_bigbuf,(oct8 & 0x07));
+
+    curr_offset +=1;
        
-       /* Octet 3 */
-       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)
-       {
-               /* Hopping sequence */
-               maio = ((oct8 & 0x0f)<<2) | ((tvb_get_guint8(tvb,curr_offset+1) & 0xc0) >> 6);
-               hsn = (tvb_get_guint8(tvb,curr_offset+1) & 0x3f);
-               str = "Yes";
-
-               other_decode_bitfield_value(a_bigbuf, oct8, 0x10, 8);
-               proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = Hopping channel: %s",a_bigbuf,str);
-               proto_tree_add_text(subtree,tvb, curr_offset, 2,"Hopping channel: MAIO %d",maio);
-               proto_tree_add_text(subtree,tvb, curr_offset, 2,"Hopping channel: HSN %d",hsn);
-       }
-       else
-       {
-               /* single ARFCN */
-               arfcn = ((oct8 & 0x03) << 8) | tvb_get_guint8(tvb,curr_offset+1);
-               str = "No";
-
-               other_decode_bitfield_value(a_bigbuf, oct8, 0x10, 8);
-               proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = Hopping channel: %s",a_bigbuf,str);
-               other_decode_bitfield_value(a_bigbuf, oct8, 0x0c, 8);
-               proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = Spare",a_bigbuf);
-               proto_tree_add_text(subtree,tvb, curr_offset, 2,"Single channel : ARFCN %d",arfcn);
-       }
+    /* Octet 3 */
+    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)
+    {
+        /* Hopping sequence */
+        maio = ((oct8 & 0x0f)<<2) | ((tvb_get_guint8(tvb,curr_offset+1) & 0xc0) >> 6);
+        hsn = (tvb_get_guint8(tvb,curr_offset+1) & 0x3f);
+        str = "Yes";
+
+        other_decode_bitfield_value(a_bigbuf, oct8, 0x10, 8);
+        proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = Hopping channel: %s",a_bigbuf,str);
+        proto_tree_add_text(subtree,tvb, curr_offset, 2,"Hopping channel: MAIO %d",maio);
+        proto_tree_add_text(subtree,tvb, curr_offset, 2,"Hopping channel: HSN %d",hsn);
+    }
+    else
+    {
+        /* single ARFCN */
+        arfcn = ((oct8 & 0x03) << 8) | tvb_get_guint8(tvb,curr_offset+1);
+        str = "No";
+
+        other_decode_bitfield_value(a_bigbuf, oct8, 0x10, 8);
+        proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = Hopping channel: %s",a_bigbuf,str);
+        other_decode_bitfield_value(a_bigbuf, oct8, 0x0c, 8);
+        proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = Spare",a_bigbuf);
+        proto_tree_add_text(subtree,tvb, curr_offset, 2,"Single channel : ARFCN %d",arfcn);
+    }
        
-       curr_offset = curr_offset + 2;
+    curr_offset = curr_offset + 2;
 
-       return(curr_offset - offset);
+    return(curr_offset - offset);
 }
 
 /*
@@ -1677,52 +1688,52 @@ de_rr_ch_dsc2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gc
 static guint16
 de_rr_ch_dsc3(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;
-       proto_tree      *subtree;
-       proto_item      *item;
-       const gchar *str;
-
-       curr_offset = offset;
-
-       item = proto_tree_add_text(tree,tvb, curr_offset, 3, "%s", gsm_rr_elem_strings[DE_RR_CH_DSC3].strptr);
-
-       subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_CH_DSC3]);
-
-       /* Octet 2 */
-       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)
-       {
-               /* Hopping sequence */
-               maio = ((oct8 & 0x0f)<<2) | ((tvb_get_guint8(tvb,curr_offset+1) & 0xc0) >> 6);
-               hsn = (tvb_get_guint8(tvb,curr_offset+1) & 0x3f);
-               str = "Yes";
-
-               other_decode_bitfield_value(a_bigbuf, oct8, 0x10, 8);
-               proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = Hopping channel: %s",a_bigbuf,str);
-               proto_tree_add_text(subtree,tvb, curr_offset, 2,"Hopping channel: MAIO %d",maio);
-               proto_tree_add_text(subtree,tvb, curr_offset, 2,"Hopping channel: HSN %d",hsn);
-       }
-       else
-       {
-               /* single ARFCN */
-               arfcn = ((oct8 & 0x03) << 8) | tvb_get_guint8(tvb,curr_offset+1);
-               str = "No";
-
-               other_decode_bitfield_value(a_bigbuf, oct8, 0x10, 8);
-               proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = Hopping channel: %s",a_bigbuf,str);
-               other_decode_bitfield_value(a_bigbuf, oct8, 0x0c, 8);
-               proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = Spare",a_bigbuf);
-               proto_tree_add_text(subtree,tvb, curr_offset, 2,"Single channel : ARFCN %d",arfcn);
-       }
+    guint32    curr_offset;
+    guint8     oct8;
+    guint16 arfcn, hsn, maio;
+    proto_tree *subtree;
+    proto_item *item;
+    const gchar *str;
+
+    curr_offset = offset;
+
+    item = proto_tree_add_text(tree,tvb, curr_offset, 3, "%s", gsm_rr_elem_strings[DE_RR_CH_DSC3].strptr);
+
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_CH_DSC3]);
+
+    /* Octet 2 */
+    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)
+    {
+        /* Hopping sequence */
+        maio = ((oct8 & 0x0f)<<2) | ((tvb_get_guint8(tvb,curr_offset+1) & 0xc0) >> 6);
+        hsn = (tvb_get_guint8(tvb,curr_offset+1) & 0x3f);
+        str = "Yes";
+
+        other_decode_bitfield_value(a_bigbuf, oct8, 0x10, 8);
+        proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = Hopping channel: %s",a_bigbuf,str);
+        proto_tree_add_text(subtree,tvb, curr_offset, 2,"Hopping channel: MAIO %d",maio);
+        proto_tree_add_text(subtree,tvb, curr_offset, 2,"Hopping channel: HSN %d",hsn);
+    }
+    else
+    {
+        /* single ARFCN */
+        arfcn = ((oct8 & 0x03) << 8) | tvb_get_guint8(tvb,curr_offset+1);
+        str = "No";
+
+        other_decode_bitfield_value(a_bigbuf, oct8, 0x10, 8);
+        proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = Hopping channel: %s",a_bigbuf,str);
+        other_decode_bitfield_value(a_bigbuf, oct8, 0x0c, 8);
+        proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = Spare",a_bigbuf);
+        proto_tree_add_text(subtree,tvb, curr_offset, 2,"Single channel : ARFCN %d",arfcn);
+    }
        
-       curr_offset = curr_offset + 2;
+    curr_offset = curr_offset + 2;
 
-       return(curr_offset - offset);
+    return(curr_offset - offset);
 }
 
 /*
@@ -1730,70 +1741,70 @@ de_rr_ch_dsc3(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gc
  */
 /* 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"},
-       { 0,    NULL }
+    { 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 }
 };
 
 guint16
 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;
+    guint32    curr_offset;
 
-       curr_offset = offset;
+    curr_offset = offset;
 
-       proto_tree_add_item(tree, hf_gsm_a_rr_channel_mode, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_item(tree, hf_gsm_a_rr_channel_mode, tvb, curr_offset, 1, FALSE);
 
-       curr_offset = curr_offset + 1;
+    curr_offset = curr_offset + 1;
 
-       return(curr_offset - offset);
+    return(curr_offset - offset);
 }
 /*
  * [3] 10.5.2.7 Channel Mode 2
  */
 
 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"},
-       { 0,    NULL }
+    { 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 guint16
 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;
+    guint32    curr_offset;
 
-       curr_offset = offset;
+    curr_offset = offset;
 
-       proto_tree_add_item(tree, hf_gsm_a_rr_channel_mode2, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_item(tree, hf_gsm_a_rr_channel_mode2, tvb, curr_offset, 1, FALSE);
 
-       curr_offset = curr_offset + 1;
+    curr_offset = curr_offset + 1;
 
-       return(curr_offset - offset);
+    return(curr_offset - offset);
 }
 /*
  * [3] 10.5.2.7a UTRAN Classmark information element
@@ -1801,20 +1812,20 @@ de_rr_ch_mode2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, g
 static guint16
 de_rr_utran_cm(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
-   guint32 curr_offset;
-   tvbuff_t *rrc_irat_ho_info_tvb;
-   static packet_info p_info;
+    guint32 curr_offset;
+    tvbuff_t *rrc_irat_ho_info_tvb;
+    static packet_info p_info;
 
-   curr_offset = offset;
-   if (len)
-   {
-      rrc_irat_ho_info_tvb = tvb_new_subset(tvb, curr_offset, len, len);
-      if (rrc_irat_ho_info_handle)
-         call_dissector(rrc_irat_ho_info_handle, rrc_irat_ho_info_tvb, &p_info, tree);
-   }
+    curr_offset = offset;
+    if (len)
+    {
+        rrc_irat_ho_info_tvb = tvb_new_subset(tvb, curr_offset, len, len);
+        if (rrc_irat_ho_info_handle)
+            call_dissector(rrc_irat_ho_info_handle, rrc_irat_ho_info_tvb, &p_info, tree);
+    }
 
-   curr_offset += len;
-   return(curr_offset - offset);
+    curr_offset += len;
+    return(curr_offset - offset);
 }
 
 /*
@@ -1839,72 +1850,72 @@ de_rr_utran_cm(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 }
 };
 guint16
 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;
+    guint32    curr_offset;
 
-       curr_offset = offset;
+    curr_offset = offset;
 
-       proto_tree_add_item(tree, hf_gsm_a_rr_cm_cng_msg_req, tvb, curr_offset, 1, FALSE);
-       proto_tree_add_item(tree, hf_gsm_a_rr_utran_cm_cng_msg_req, tvb, curr_offset, 1, FALSE);
-       proto_tree_add_item(tree, hf_gsm_a_rr_cdma200_cm_cng_msg_req, tvb, curr_offset, 1, FALSE);
-       proto_tree_add_item(tree, hf_gsm_a_rr_geran_iu_cm_cng_msg_req, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_item(tree, hf_gsm_a_rr_cm_cng_msg_req, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_item(tree, hf_gsm_a_rr_utran_cm_cng_msg_req, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_item(tree, hf_gsm_a_rr_cdma200_cm_cng_msg_req, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_item(tree, hf_gsm_a_rr_geran_iu_cm_cng_msg_req, tvb, curr_offset, 1, FALSE);
 
-       curr_offset = curr_offset + 1;
+    curr_offset = curr_offset + 1;
 
-       return(curr_offset - offset);
+    return(curr_offset - offset);
 }
 /*
  * [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 }
 };
 guint16
 de_rr_chnl_needed(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;
-       gint bit_offset;
+    proto_tree *subtree;
+    proto_item *item;
+    guint32    curr_offset;
+    gint bit_offset;
 
-       curr_offset = offset;
-       if (UPPER_NIBBLE==len)
-               bit_offset = 4;
-       else
-               bit_offset = 0;
+    curr_offset = offset;
+    if (UPPER_NIBBLE==len)
+        bit_offset = 4;
+    else
+        bit_offset = 0;
 
-       item = proto_tree_add_text(tree, tvb, curr_offset, 3, "%s",
-               gsm_rr_elem_strings[DE_RR_CHNL_NEEDED].strptr);
+    item = proto_tree_add_text(tree, tvb, curr_offset, 3, "%s",
+                               gsm_rr_elem_strings[DE_RR_CHNL_NEEDED].strptr);
 
-       subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_CHNL_NEEDED]);
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_CHNL_NEEDED]);
 
-       proto_tree_add_bits_item(subtree, hf_gsm_a_rr_chnl_needed_ch1, tvb, (curr_offset<<3)+bit_offset+2, 2, FALSE);
-   proto_tree_add_bits_item(subtree, hf_gsm_a_rr_chnl_needed_ch2, tvb, (curr_offset<<3)+bit_offset, 2, FALSE);
+    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_chnl_needed_ch1, tvb, (curr_offset<<3)+bit_offset+2, 2, FALSE);
+    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_chnl_needed_ch2, tvb, (curr_offset<<3)+bit_offset, 2, FALSE);
 
-       curr_offset = curr_offset + 1;
+    curr_offset = curr_offset + 1;
 
-       return(curr_offset - offset);
+    return(curr_offset - offset);
 }
 /*
  * [3] 10.5.2.8a Channel Request Description
@@ -1915,9 +1926,9 @@ de_rr_chnl_needed(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_
  */
 /* SC (octet 1) */
 static const value_string gsm_a_rr_sc_vals[] = {
-       { 0,    "No ciphering"},
-       { 1,    "Start ciphering"},
-       { 0,    NULL }
+    { 0, "No ciphering"},
+    { 1, "Start ciphering"},
+    { 0, NULL }
 };
 /* algorithm identifier
  * If SC=1 then:
@@ -1927,128 +1938,128 @@ static const value_string gsm_a_rr_sc_vals[] = {
 guint16
 de_rr_cip_mode_set(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
-       guint32 curr_offset;
-       gint bit_offset;
-       guint64 value;
+    guint32    curr_offset;
+    gint bit_offset;
+    guint64 value;
 
-       curr_offset = offset;
+    curr_offset = offset;
 
-       /* Cipher Mode Setting
-        * Note: The coding of fields SC and algorithm identifier is defined in [44.018]
-        * as part of the Cipher Mode Setting IE.
-        */
-       if (UPPER_NIBBLE==len)
-               bit_offset = 4;
-       else
-               bit_offset = 0;
+    /* Cipher Mode Setting
+     * Note: The coding of fields SC and algorithm identifier is defined in [44.018]
+     * as part of the Cipher Mode Setting IE.
+     */
+    if (UPPER_NIBBLE==len)
+        bit_offset = 4;
+    else
+        bit_offset = 0;
 
-       proto_tree_add_bits_ret_val(tree, hf_gsm_a_rr_sc, tvb, (curr_offset<<3)+bit_offset+3, 1, &value, FALSE);
-       if (value == 1){ /* Start ciphering */
-               /* algorithm identifier */
-               proto_tree_add_bits_item(tree, hf_gsm_a_algorithm_id, tvb, (curr_offset<<3)+bit_offset, 3, FALSE);
-       }
-       curr_offset = curr_offset + 1;
+    proto_tree_add_bits_ret_val(tree, hf_gsm_a_rr_sc, tvb, (curr_offset<<3)+bit_offset+3, 1, &value, FALSE);
+    if (value == 1){ /* Start ciphering */
+        /* algorithm identifier */
+        proto_tree_add_bits_item(tree, hf_gsm_a_algorithm_id, tvb, (curr_offset<<3)+bit_offset, 3, FALSE);
+    }
+    curr_offset = curr_offset + 1;
 
-       return(curr_offset - offset);
+    return(curr_offset - offset);
 }
 /*
  * [3] 10.5.2.10 Cipher Response
  */
 /* CR (octet 1) */
 static const value_string gsm_a_rr_cr_vals[] = {
-       { 0,            "IMEISV shall not be included"},
-       { 1,            "IMEISV shall be included"},
-       { 0,    NULL }
+    { 0, "IMEISV shall not be included"},
+    { 1, "IMEISV shall be included"},
+    { 0, NULL }
 };
 
 static guint16
 de_rr_cip_mode_resp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
-       guint32 curr_offset;
-       gint bit_offset;
+    guint32    curr_offset;
+    gint bit_offset;
 
-       curr_offset = offset;
-       if (UPPER_NIBBLE==len)
-               bit_offset = 4;
-       else
-               bit_offset = 0;
+    curr_offset = offset;
+    if (UPPER_NIBBLE==len)
+        bit_offset = 4;
+    else
+        bit_offset = 0;
 
-       /* Cipher Mode Response
-                * Note: The coding of field CR is defined in [44.018]
-                * as part of the Cipher Mode Response IE.
-                */
-       proto_tree_add_bits_item(tree, hf_gsm_a_rr_cr, tvb, (curr_offset<<3)+bit_offset+3, 1, FALSE);
-       curr_offset = curr_offset + 1;
+    /* Cipher Mode Response
+     * Note: The coding of field CR is defined in [44.018]
+     * as part of the Cipher Mode Response IE.
+     */
+    proto_tree_add_bits_item(tree, hf_gsm_a_rr_cr, tvb, (curr_offset<<3)+bit_offset+3, 1, FALSE);
+    curr_offset = curr_offset + 1;
 
-       return(curr_offset - offset);
+    return(curr_offset - offset);
 }
 /* [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,    NULL }
+    { 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,    NULL }
+    { 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,    NULL }
+    { 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 const value_string gsm_a_rr_cbq3_vals[] = {
-       { 0,    "Iu mode not supported"},
-       { 1,    "Iu mode capable MSs barred"},
-       { 2,    "Iu mode supported, cell not barred"},
-       { 3,    "Iu mode supported, cell not barred"},
-       { 0,    NULL }
+    { 0, "Iu mode not supported"},
+    { 1, "Iu mode capable MSs barred"},
+    { 2, "Iu mode supported, cell not barred"},
+    { 3, "Iu mode supported, cell not barred"},
+    { 0, NULL }
 };
 
 static guint16
 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;
+    proto_tree *subtree;
+    proto_item *item;
+    guint8     oct;
+    guint32    curr_offset;
 
-       curr_offset = offset;
+    curr_offset = offset;
 
-       item = proto_tree_add_text(tree, tvb, curr_offset, 3, "%s",
-               gsm_rr_elem_strings[DE_RR_CTRL_CH_DESC].strptr);
+    item = proto_tree_add_text(tree, tvb, curr_offset, 3, "%s",
+                               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]);
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_CTRL_CH_DESC]);
 
-       proto_tree_add_item(subtree, hf_gsm_a_rr_mscr, tvb, curr_offset, 1, FALSE);
-       proto_tree_add_item(subtree, hf_gsm_a_rr_att, tvb, curr_offset, 1, FALSE);
-       proto_tree_add_item(subtree, hf_gsm_a_rr_bs_ag_blks_res, tvb, curr_offset, 1, FALSE);
-       proto_tree_add_item(subtree, hf_gsm_a_rr_ccch_conf, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_item(subtree, hf_gsm_a_rr_mscr, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_item(subtree, hf_gsm_a_rr_att, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_item(subtree, hf_gsm_a_rr_bs_ag_blks_res, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_item(subtree, hf_gsm_a_rr_ccch_conf, tvb, curr_offset, 1, FALSE);
 
-       curr_offset = curr_offset + 1;
-       oct = tvb_get_guint8(tvb, curr_offset);
+    curr_offset = curr_offset + 1;
+    oct = tvb_get_guint8(tvb, curr_offset);
 
-   proto_tree_add_bits_item(subtree, hf_gsm_a_rr_cbq3, tvb, (curr_offset<<3)+1, 2, FALSE);
-       proto_tree_add_uint(subtree, hf_gsm_a_rr_bs_pa_mfrms, tvb, curr_offset, 1, (oct&0x07)+2);
+    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_cbq3, tvb, (curr_offset<<3)+1, 2, FALSE);
+    proto_tree_add_uint(subtree, hf_gsm_a_rr_bs_pa_mfrms, tvb, curr_offset, 1, (oct&0x07)+2);
 
-       curr_offset = curr_offset + 1;
+    curr_offset = curr_offset + 1;
 
-       proto_tree_add_item(subtree, hf_gsm_a_rr_t3212, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_item(subtree, hf_gsm_a_rr_t3212, tvb, curr_offset, 1, FALSE);
 
-       curr_offset = curr_offset + 1;
+    curr_offset = curr_offset + 1;
 
-       return(curr_offset - offset);
+    return(curr_offset - offset);
 }
 
 /* [3] 10.5.2.11a DTM Information Details
@@ -2057,58 +2068,58 @@ de_rr_ctrl_ch_desc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U
  * [3]  10.5.2.11b     Dynamic ARFCN Mapping   
  */
 static const value_string gsm_a_rr_gsm_band_vals[] = {
-       { 0,    "GSM 750"},
-       { 1,    "DCS 1800"},
-       { 2,    "PCS 1900"},
-       { 3,    "GSM T 380"},
-       { 4,    "GSM T 410"},
-       { 5,    "GSM T 900"},
-       { 6,    "GSM 710"},
-       { 7,    "GSM T 810"},
-       { 8,    "Reserved"},
-       { 9,    "Reserved"},
-       { 10,   "Reserved"},
-       { 11,   "Reserved"},
-       { 12,   "Reserved"},
-       { 13,   "Reserved"},
-       { 14,   "Reserved"},
-       { 15,   "Reserved"},
-       { 0,    NULL }
+    {  0, "GSM 750"},
+    {  1, "DCS 1800"},
+    {  2, "PCS 1900"},
+    {  3, "GSM T 380"},
+    {  4, "GSM T 410"},
+    {  5, "GSM T 900"},
+    {  6, "GSM 710"},
+    {  7, "GSM T 810"},
+    {  8, "Reserved"},
+    {  9, "Reserved"},
+    { 10, "Reserved"},
+    { 11, "Reserved"},
+    { 12, "Reserved"},
+    { 13, "Reserved"},
+    { 14, "Reserved"},
+    { 15, "Reserved"},
+    {  0, NULL }
 };
 
 
 static guint16
 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;
-   gint bit_offset;
-   guint64 length;
-   guint value;
-
-       curr_offset = offset;
-   bit_offset = curr_offset << 3;
-
-   proto_tree_add_bits_ret_val(tree, hf_gsm_a_rr_dyn_arfcn_length, tvb, bit_offset, 8, &length, FALSE);
-   value = tvb_get_bits8(tvb,bit_offset,1);
-   bit_offset += 1;
-   while (value && length)
-   {
-      proto_tree_add_bits_item(tree, hf_gsm_a_rr_gsm_band, tvb, bit_offset, 4, FALSE);
-      bit_offset += 4;
-      proto_tree_add_bits_item(tree, hf_gsm_a_rr_arfcn_first, tvb, bit_offset, 10, FALSE);
-      bit_offset += 10;
-      proto_tree_add_bits_item(tree, hf_gsm_a_rr_band_offset, tvb, bit_offset, 10, FALSE);
-      bit_offset += 10;
-      proto_tree_add_bits_item(tree, hf_gsm_a_rr_arfcn_range, tvb, bit_offset, 7, FALSE);
-      bit_offset += 7;
-      value = tvb_get_bits8(tvb,bit_offset,1);
-      bit_offset += 1;
-      length -= 4;
-   }
-
-       curr_offset = curr_offset + len;
-
-       return(curr_offset - offset);
+    guint32    curr_offset;
+    gint bit_offset;
+    guint64 length;
+    guint value;
+
+    curr_offset = offset;
+    bit_offset = curr_offset << 3;
+
+    proto_tree_add_bits_ret_val(tree, hf_gsm_a_rr_dyn_arfcn_length, tvb, bit_offset, 8, &length, FALSE);
+    value = tvb_get_bits8(tvb,bit_offset,1);
+    bit_offset += 1;
+    while (value && length)
+    {
+        proto_tree_add_bits_item(tree, hf_gsm_a_rr_gsm_band, tvb, bit_offset, 4, FALSE);
+        bit_offset += 4;
+        proto_tree_add_bits_item(tree, hf_gsm_a_rr_arfcn_first, tvb, bit_offset, 10, FALSE);
+        bit_offset += 10;
+        proto_tree_add_bits_item(tree, hf_gsm_a_rr_band_offset, tvb, bit_offset, 10, FALSE);
+        bit_offset += 10;
+        proto_tree_add_bits_item(tree, hf_gsm_a_rr_arfcn_range, tvb, bit_offset, 7, FALSE);
+        bit_offset += 7;
+        value = tvb_get_bits8(tvb,bit_offset,1);
+        bit_offset += 1;
+        length -= 4;
+    }
+
+    curr_offset = curr_offset + len;
+
+    return(curr_offset - offset);
 }
 /*
  * [3] 10.5.2.12 Frequency Channel Sequence
@@ -2116,23 +2127,23 @@ de_rr_dyn_arfcn_map(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _
 static guint16
 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;
-   gint bit_offset, i;
+    guint32    curr_offset;
+    gint bit_offset, i;
 
-       curr_offset = offset;
+    curr_offset = offset;
 
-   proto_tree_add_item(tree, hf_gsm_a_rr_lowest_arfcn, tvb, curr_offset, 1, FALSE);
-   curr_offset += 1;
-   bit_offset = curr_offset << 3;
-   for (i=0; i<16; i++)
-   {
-      proto_tree_add_bits_item(tree, hf_gsm_a_rr_inc_skip_arfcn, tvb, bit_offset, 4, FALSE);
-      bit_offset += 4;
-   }
+    proto_tree_add_item(tree, hf_gsm_a_rr_lowest_arfcn, tvb, curr_offset, 1, FALSE);
+    curr_offset += 1;
+    bit_offset = curr_offset << 3;
+    for (i=0; i<16; i++)
+    {
+        proto_tree_add_bits_item(tree, hf_gsm_a_rr_inc_skip_arfcn, tvb, bit_offset, 4, FALSE);
+        bit_offset += 4;
+    }
 
-       curr_offset = curr_offset + 8;
+    curr_offset = curr_offset + 8;
 
-       return(curr_offset - offset);
+    return(curr_offset - offset);
 }
 
 /*
@@ -2152,28 +2163,28 @@ de_rr_freq_ch_seq(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_
  */
 /* 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, NULL }
+    { 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 guint16
 de_rr_freq_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
-       return dissect_arfcn_list(tvb, tree, offset, len, add_string, string_len);
+    return dissect_arfcn_list(tvb, tree, offset, len, add_string, string_len);
 }
 /*
  * [3] 10.5.2.14 Frequency Short List
@@ -2187,9 +2198,9 @@ de_rr_freq_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
 
  static guint16
 de_rr_freq_short_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
-{
-       return dissect_arfcn_list(tvb, tree, offset, 9, add_string, string_len);
-}
+ {
+     return dissect_arfcn_list(tvb, tree, offset, 9, add_string, string_len);
+ }
 
 /*
  * [3] 10.5.2.14a Frequency Short List 2
@@ -2203,7 +2214,7 @@ de_rr_freq_short_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
 static guint16
 de_rr_freq_short_list2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
-       return dissect_arfcn_list(tvb, tree, offset, 8, add_string, string_len);
+    return dissect_arfcn_list(tvb, tree, offset, 8, add_string, string_len);
 }
 /*
  * [3] 10.5.2.14b Group Channel Description
@@ -2213,21 +2224,21 @@ de_rr_freq_short_list2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint le
  * [3] 10.5.2.14c GPRS Resumption
  */
 static const true_false_string gsm_a_rr_gprs_resumption_ack_value  = {
-       "Resumption of GPRS services successfully acknowledged",
-       "Resumption of GPRS services not successfully acknowledged"
+    "Resumption of GPRS services successfully acknowledged",
+    "Resumption of GPRS services not successfully acknowledged"
 };
 
 static guint16
 de_rr_gprs_resumption(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
-   guint32 curr_offset;
+    guint32 curr_offset;
 
-   curr_offset = offset;
+    curr_offset = offset;
 
-   proto_tree_add_item(tree, hf_gsm_a_rr_gprs_resumption_ack, tvb, curr_offset, 1, FALSE);
-   curr_offset += 1;
+    proto_tree_add_item(tree, hf_gsm_a_rr_gprs_resumption_ack, tvb, curr_offset, 1, FALSE);
+    curr_offset += 1;
 
-   return (curr_offset - offset);
+    return (curr_offset - offset);
 }
 
 /*
@@ -2237,155 +2248,156 @@ de_rr_gprs_resumption(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
 static gint
 de_rr_rest_oct_gprs_cell_options(tvbuff_t *tvb, proto_tree *tree, gint bit_offset)
 {
-   proto_tree *subtree, *subtree2;
-   proto_item *item, *item2;
-   gint curr_bit_offset, curr_bit_offset_sav;
-   guint8 value;
-
-   curr_bit_offset = bit_offset;
-
-   item = proto_tree_add_text(tree, tvb, curr_bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_GPRS_CELL_OPTIONS].strptr);
-       subtree = proto_item_add_subtree(item, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_GPRS_CELL_OPTIONS]);
-   proto_tree_add_bits_item(subtree, hf_gsm_a_rr_nmo, tvb, curr_bit_offset, 2, FALSE);
-   curr_bit_offset += 2;
-   proto_tree_add_bits_item(subtree, hf_gsm_a_rr_t3168, tvb, curr_bit_offset, 3, FALSE);
-   curr_bit_offset += 3;
-   proto_tree_add_bits_item(subtree, hf_gsm_a_rr_t3192, tvb, curr_bit_offset, 3, FALSE);
-   curr_bit_offset += 3;
-   proto_tree_add_bits_item(subtree, hf_gsm_a_rr_drx_timer_max, tvb, curr_bit_offset, 3, FALSE);
-   curr_bit_offset += 3;
-   proto_tree_add_bits_item(subtree, hf_gsm_a_rr_access_burst_type, tvb, curr_bit_offset, 1, FALSE);
-   curr_bit_offset += 1;
-   proto_tree_add_bits_item(subtree, hf_gsm_a_rr_control_ack_type, tvb, curr_bit_offset, 1, FALSE);
-   curr_bit_offset += 1;
-   proto_tree_add_bits_item(subtree, hf_gsm_a_rr_bs_cv_max, tvb, curr_bit_offset, 4, FALSE);
-   curr_bit_offset += 4;
-   if (tvb_get_bits8(tvb,curr_bit_offset,1))
-   {
-      curr_bit_offset += 1;
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_pan_dec, tvb, curr_bit_offset, 3, FALSE);
-      curr_bit_offset += 3;
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_pan_inc, tvb, curr_bit_offset, 3, FALSE);
-      curr_bit_offset += 3;
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_pan_max, tvb, curr_bit_offset, 3, FALSE);
-      curr_bit_offset += 3;
-   }
-   else
-      curr_bit_offset += 1;
-   if (tvb_get_bits8(tvb,curr_bit_offset,1))
-   { /* Optional extension information */
-      curr_bit_offset += 1;
-      curr_bit_offset_sav = curr_bit_offset;
-      item2 = proto_tree_add_text(subtree, tvb, curr_bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_GPRS_CELL_OPTIONS_EXT_INFO].strptr);
-          subtree2 = proto_item_add_subtree(item2, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_GPRS_CELL_OPTIONS_EXT_INFO]);
-      value = tvb_get_bits8(tvb,curr_bit_offset,6);
-      proto_tree_add_text(subtree2,tvb, curr_bit_offset>>3, 1, "Extension Length: %d", value);
-      curr_bit_offset += 6;
-      value += 1;
-      proto_item_set_len(item2,((curr_bit_offset+value-curr_bit_offset_sav)>>3)+1);
-      if (tvb_get_bits8(tvb,curr_bit_offset,1))
-      {
-         curr_bit_offset += 1;
-         proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_egprs_packet_channel_request, tvb, curr_bit_offset, 1, FALSE);
-         curr_bit_offset += 1;
-         proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_bep_period, tvb, curr_bit_offset, 4, FALSE);
-         curr_bit_offset += 4;
-         value -= 5;
-      }
-      else
-         curr_bit_offset += 1;
-      value -= 1;
-      proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_pfc_feature_mode, tvb, curr_bit_offset, 1, FALSE);
-      curr_bit_offset += 1;
-      proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_dtm_support, tvb, curr_bit_offset, 1, FALSE);
-      curr_bit_offset += 1;
-      proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_bss_paging_coordination, tvb, curr_bit_offset, 1, FALSE);
-      curr_bit_offset += 1;
-      value -= 3;
-      if (value > 0)
-      { /* Rel 4 extension */
-         proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_ccn_active, tvb, curr_bit_offset, 1, FALSE);
-         curr_bit_offset += 1;
-         proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_nw_ext_utbf, tvb, curr_bit_offset, 1, FALSE);
-         curr_bit_offset += 1;
-         value -= 2;
-         if (value > 0)
-         { /* Rel 6 extension */
-            proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_multiple_tbf_capability, tvb, curr_bit_offset, 1, FALSE);
+    proto_tree *subtree, *subtree2;
+    proto_item *item, *item2;
+    gint curr_bit_offset, curr_bit_offset_sav;
+    guint8 value;
+
+    curr_bit_offset = bit_offset;
+
+    item = proto_tree_add_text(tree, tvb, curr_bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_GPRS_CELL_OPTIONS].strptr);
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_GPRS_CELL_OPTIONS]);
+    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_nmo, tvb, curr_bit_offset, 2, FALSE);
+    curr_bit_offset += 2;
+    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_t3168, tvb, curr_bit_offset, 3, FALSE);
+    curr_bit_offset += 3;
+    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_t3192, tvb, curr_bit_offset, 3, FALSE);
+    curr_bit_offset += 3;
+    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_drx_timer_max, tvb, curr_bit_offset, 3, FALSE);
+    curr_bit_offset += 3;
+    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_access_burst_type, tvb, curr_bit_offset, 1, FALSE);
+    curr_bit_offset += 1;
+    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_control_ack_type, tvb, curr_bit_offset, 1, FALSE);
+    curr_bit_offset += 1;
+    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_bs_cv_max, tvb, curr_bit_offset, 4, FALSE);
+    curr_bit_offset += 4;
+    if (tvb_get_bits8(tvb,curr_bit_offset,1))
+    {
+        curr_bit_offset += 1;
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_pan_dec, tvb, curr_bit_offset, 3, FALSE);
+        curr_bit_offset += 3;
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_pan_inc, tvb, curr_bit_offset, 3, FALSE);
+        curr_bit_offset += 3;
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_pan_max, tvb, curr_bit_offset, 3, FALSE);
+        curr_bit_offset += 3;
+    }
+    else
+        curr_bit_offset += 1;
+    if (tvb_get_bits8(tvb,curr_bit_offset,1))
+    { /* Optional extension information */
+        curr_bit_offset += 1;
+        curr_bit_offset_sav = curr_bit_offset;
+        item2 = proto_tree_add_text(subtree, tvb, curr_bit_offset>>3, -1, "%s",
+                                    gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_GPRS_CELL_OPTIONS_EXT_INFO].strptr);
+        subtree2 = proto_item_add_subtree(item2, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_GPRS_CELL_OPTIONS_EXT_INFO]);
+        value = tvb_get_bits8(tvb,curr_bit_offset,6);
+        proto_tree_add_text(subtree2,tvb, curr_bit_offset>>3, 1, "Extension Length: %d", value);
+        curr_bit_offset += 6;
+        value += 1;
+        proto_item_set_len(item2,((curr_bit_offset+value-curr_bit_offset_sav)>>3)+1);
+        if (tvb_get_bits8(tvb,curr_bit_offset,1))
+        {
             curr_bit_offset += 1;
-            proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_ext_utbf_no_data, tvb, curr_bit_offset, 1, FALSE);
+            proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_egprs_packet_channel_request, tvb, curr_bit_offset, 1, FALSE);
             curr_bit_offset += 1;
-            proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_dtm_enhancements_capability, tvb, curr_bit_offset, 1, FALSE);
+            proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_bep_period, tvb, curr_bit_offset, 4, FALSE);
+            curr_bit_offset += 4;
+            value -= 5;
+        }
+        else
             curr_bit_offset += 1;
-            value -= 3;
-            if (tvb_get_bits8(tvb,curr_bit_offset,1))
-            {
-               proto_tree_add_bits_item(subtree, hf_gsm_a_rr_dedicated_mode_mbms_notification_support, tvb, bit_offset, 1, FALSE);
-               bit_offset += 1;
-               proto_tree_add_bits_item(subtree, hf_gsm_a_rr_mnci_support, tvb, bit_offset, 1, FALSE);
-               bit_offset += 1;
-               value -= 2;
-            }
-            else
-               bit_offset += 1;
-            value -= 1;
+        value -= 1;
+        proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_pfc_feature_mode, tvb, curr_bit_offset, 1, FALSE);
+        curr_bit_offset += 1;
+        proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_dtm_support, tvb, curr_bit_offset, 1, FALSE);
+        curr_bit_offset += 1;
+        proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_bss_paging_coordination, tvb, curr_bit_offset, 1, FALSE);
+        curr_bit_offset += 1;
+        value -= 3;
+        if (value > 0)
+        { /* Rel 4 extension */
+            proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_ccn_active, tvb, curr_bit_offset, 1, FALSE);
+            curr_bit_offset += 1;
+            proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_nw_ext_utbf, tvb, curr_bit_offset, 1, FALSE);
+            curr_bit_offset += 1;
+            value -= 2;
             if (value > 0)
-            { /* Rel 7 extension */
-               proto_tree_add_bits_item(subtree, hf_gsm_a_rr_reduced_latency_access, tvb, bit_offset, 1, FALSE);
-               bit_offset += 1;
-               value -= 1;
+            { /* Rel 6 extension */
+                proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_multiple_tbf_capability, tvb, curr_bit_offset, 1, FALSE);
+                curr_bit_offset += 1;
+                proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_ext_utbf_no_data, tvb, curr_bit_offset, 1, FALSE);
+                curr_bit_offset += 1;
+                proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_dtm_enhancements_capability, tvb, curr_bit_offset, 1, FALSE);
+                curr_bit_offset += 1;
+                value -= 3;
+                if (tvb_get_bits8(tvb,curr_bit_offset,1))
+                {
+                    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_dedicated_mode_mbms_notification_support, tvb, bit_offset, 1, FALSE);
+                    bit_offset += 1;
+                    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_mnci_support, tvb, bit_offset, 1, FALSE);
+                    bit_offset += 1;
+                    value -= 2;
+                }
+                else
+                    bit_offset += 1;
+                value -= 1;
+                if (value > 0)
+                { /* Rel 7 extension */
+                    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_reduced_latency_access, tvb, bit_offset, 1, FALSE);
+                    bit_offset += 1;
+                    value -= 1;
+                }
             }
-         }
-      }
-      curr_bit_offset += value;
-   }
-   else
-      curr_bit_offset += 1;
-   proto_item_set_len(item,((curr_bit_offset-bit_offset)>>3)+1);
+        }
+        curr_bit_offset += value;
+    }
+    else
+        curr_bit_offset += 1;
+    proto_item_set_len(item,((curr_bit_offset-bit_offset)>>3)+1);
 
-   return (curr_bit_offset - bit_offset);
+    return (curr_bit_offset - bit_offset);
 }
 
 static gint
 de_rr_rest_oct_gprs_power_control_parameters(tvbuff_t *tvb, proto_tree *tree, gint bit_offset)
 {
-   proto_tree *subtree;
-   proto_item *item;
-   gint curr_bit_offset;
-
-   curr_bit_offset = bit_offset;
+    proto_tree *subtree;
+    proto_item *item;
+    gint curr_bit_offset;
+       
+    curr_bit_offset = bit_offset;
 
-   item = proto_tree_add_text(tree, tvb, curr_bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_GPRS_POWER_CONTROL_PARAMS].strptr);
-       subtree = proto_item_add_subtree(item, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_GPRS_POWER_CONTROL_PARAMS]);
-   proto_tree_add_bits_item(subtree, hf_gsm_a_rr_alpha, tvb, curr_bit_offset, 4, FALSE);
-   curr_bit_offset += 4;
-   proto_tree_add_bits_item(subtree, hf_gsm_a_rr_t_avg_w, tvb, curr_bit_offset, 5, FALSE);
-   curr_bit_offset += 5;
-   proto_tree_add_bits_item(subtree, hf_gsm_a_rr_t_avg_t, tvb, curr_bit_offset, 5, FALSE);
-   curr_bit_offset += 5;
-   proto_tree_add_bits_item(subtree, hf_gsm_a_rr_pc_meas_chan, tvb, curr_bit_offset, 1, FALSE);
-   curr_bit_offset += 1;
-   proto_tree_add_bits_item(subtree, hf_gsm_a_rr_n_avg_i, tvb, curr_bit_offset, 4, FALSE);
-   curr_bit_offset += 4;
-   proto_item_set_len(item,((curr_bit_offset-bit_offset)>>3)+1);
+    item = proto_tree_add_text(tree, tvb, curr_bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_GPRS_POWER_CONTROL_PARAMS].strptr);
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_GPRS_POWER_CONTROL_PARAMS]);
+    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_alpha, tvb, curr_bit_offset, 4, FALSE);
+    curr_bit_offset += 4;
+    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_t_avg_w, tvb, curr_bit_offset, 5, FALSE);
+    curr_bit_offset += 5;
+    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_t_avg_t, tvb, curr_bit_offset, 5, FALSE);
+    curr_bit_offset += 5;
+    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_pc_meas_chan, tvb, curr_bit_offset, 1, FALSE);
+    curr_bit_offset += 1;
+    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_n_avg_i, tvb, curr_bit_offset, 4, FALSE);
+    curr_bit_offset += 4;
+    proto_item_set_len(item,((curr_bit_offset-bit_offset)>>3)+1);
 
-   return (curr_bit_offset - bit_offset);
+    return (curr_bit_offset - bit_offset);
 }
 
 static guint16
 de_rr_gprs_broadcast_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len , gchar *add_string _U_, int string_len _U_)
 {
-   guint32 curr_offset;
-   gint bit_offset;
+    guint32 curr_offset;
+    gint bit_offset;
 
-   curr_offset = offset;
-   bit_offset = curr_offset << 3;
+    curr_offset = offset;
+    bit_offset = curr_offset << 3;
 
-   bit_offset += de_rr_rest_oct_gprs_cell_options(tvb, tree, bit_offset);
-   bit_offset += de_rr_rest_oct_gprs_power_control_parameters(tvb, tree, bit_offset);  
-   curr_offset += len;
+    bit_offset += de_rr_rest_oct_gprs_cell_options(tvb, tree, bit_offset);
+    bit_offset += de_rr_rest_oct_gprs_power_control_parameters(tvb, tree, bit_offset);  
+    curr_offset += len;
 
-   return (curr_offset - offset);
+    return (curr_offset - offset);
 }
 
 /*
@@ -2394,25 +2406,25 @@ de_rr_gprs_broadcast_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
 static guint16
 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;
+    proto_tree *subtree;
+    proto_item *item;
+    guint32    curr_offset;
 
-       curr_offset = offset;
+    curr_offset = offset;
 
-       item =
-               proto_tree_add_text(tree,
-                       tvb, curr_offset, 1, "%s",
-                       gsm_rr_elem_strings[DE_RR_HO_REF].strptr);
+    item =
+        proto_tree_add_text(tree,
+                            tvb, curr_offset, 1, "%s",
+                            gsm_rr_elem_strings[DE_RR_HO_REF].strptr);
 
-       subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_HO_REF]);
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_HO_REF]);
 
-       /* Handover reference value */
-       proto_tree_add_item(subtree, hf_gsm_a_rr_ho_ref_val, tvb, curr_offset, 1, FALSE);
+    /* Handover reference value */
+    proto_tree_add_item(subtree, hf_gsm_a_rr_ho_ref_val, tvb, curr_offset, 1, FALSE);
 
-       curr_offset = curr_offset + 1;
+    curr_offset = curr_offset + 1;
 
-       return(curr_offset - offset);
+    return(curr_offset - offset);
 }
 /*
  * [3] 10.5.2.16 IA Rest Octets
@@ -2421,28 +2433,28 @@ de_rr_ho_ref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gch
 static guint16
 de_rr_ia_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
-       proto_tree      *subtree;
-       proto_item      *item;
-       guint32 curr_offset;
+    proto_tree *subtree;
+    proto_item *item;
+    guint32    curr_offset;
 
-       len = tvb_length_remaining(tvb,offset);
-       if (len==0)
-               return 0;
+    len = tvb_length_remaining(tvb,offset);
+    if (len==0)
+        return 0;
 
-       curr_offset = offset;
+    curr_offset = offset;
 
-       item =
-               proto_tree_add_text(tree,
-                       tvb, curr_offset, len, "%s",
-                       gsm_rr_elem_strings[DE_RR_IA_REST_OCT].strptr);
+    item =
+        proto_tree_add_text(tree,
+                            tvb, curr_offset, len, "%s",
+                            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]);
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_IA_REST_OCT]);
 
-       proto_tree_add_text(subtree,tvb, curr_offset, len ,"Data(Not decoded)");
+    proto_tree_add_text(subtree,tvb, curr_offset, len ,"Data(Not decoded)");
 
-       curr_offset = curr_offset + len;
+    curr_offset = curr_offset + len;
 
-       return curr_offset-offset;
+    return curr_offset-offset;
 }
 
 /*
@@ -2452,25 +2464,25 @@ de_rr_ia_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
 static guint16
 de_rr_iar_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
-       proto_tree      *subtree;
-       proto_item      *item;
-       guint32 curr_offset;
+    proto_tree *subtree;
+    proto_item *item;
+    guint32    curr_offset;
 
-       len = 3;
-       curr_offset = offset;
+    len = 3;
+    curr_offset = offset;
 
-       item =
+    item =
        proto_tree_add_text(tree,
-               tvb, curr_offset, 3, "%s",
-               gsm_rr_elem_strings[DE_RR_IAR_REST_OCT].strptr);
+                            tvb, curr_offset, 3, "%s",
+                            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]);
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_IAR_REST_OCT]);
 
-       proto_tree_add_text(subtree,tvb, curr_offset, len ,"Data(Not decoded)");
+    proto_tree_add_text(subtree,tvb, curr_offset, len ,"Data(Not decoded)");
 
-       curr_offset = curr_offset + len;
+    curr_offset = curr_offset + len;
 
-       return curr_offset-offset;
+    return curr_offset-offset;
 }
 
 /*
@@ -2479,28 +2491,28 @@ de_rr_iar_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
 static guint16
 de_rr_iax_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
-       proto_tree      *subtree;
-       proto_item      *item;
-       guint32 curr_offset;
+    proto_tree *subtree;
+    proto_item *item;
+    guint32    curr_offset;
 
-       len = tvb_length_remaining(tvb,offset);
-       if (len==0)
-               return 0;
+    len = tvb_length_remaining(tvb,offset);
+    if (len==0)
+        return 0;
 
-       curr_offset = offset;
+    curr_offset = offset;
 
-       item =
+    item =
        proto_tree_add_text(tree,
-               tvb, curr_offset, len, "%s",
-               gsm_rr_elem_strings[DE_RR_IAX_REST_OCT].strptr);
+                            tvb, curr_offset, len, "%s",
+                            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]);
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_IAX_REST_OCT]);
 
-       proto_tree_add_text(subtree,tvb, curr_offset, len ,"Data(Not decoded)");
+    proto_tree_add_text(subtree,tvb, curr_offset, len ,"Data(Not decoded)");
 
-       curr_offset = curr_offset + len;
+    curr_offset = curr_offset + len;
 
-       return curr_offset-offset;
+    return curr_offset-offset;
 }
 
 /*
@@ -2509,187 +2521,189 @@ de_rr_iax_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
 static guint16
 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;
+    proto_tree *subtree;
+    proto_item *item;
+    guint32    curr_offset;
 
-       curr_offset = offset;
+    curr_offset = offset;
 
-       item = proto_tree_add_text(tree,tvb, curr_offset, 1, "%s", gsm_rr_elem_strings[DE_RR_L2_PSEUDO_LEN].strptr);
+    item = proto_tree_add_text(tree,tvb, curr_offset, 1, "%s", 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]);
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_L2_PSEUDO_LEN]);
 
-       /* L2 Pseudo Length value */
-       proto_tree_add_item(subtree, hf_gsm_a_rr_L2_pseudo_len, tvb, curr_offset, 1, FALSE);
+    /* L2 Pseudo Length value */
+    proto_tree_add_item(subtree, hf_gsm_a_rr_L2_pseudo_len, tvb, curr_offset, 1, FALSE);
 
-       curr_offset = curr_offset + 1;
+    curr_offset = curr_offset + 1;
 
-       return(curr_offset - offset);
+    return(curr_offset - offset);
 }
 
 /*
  * [3] 10.5.2.20 Measurement Results
  */
 static const true_false_string gsm_a_rr_dtx_vals  = {
-       "DTX was used",
-       "DTX was not used"
+    "DTX was used",
+    "DTX was not used"
 };
 
 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 true_false_string gsm_a_rr_mv_vals  = {
-       "The measurement results are valid",
-       "The measurement results are not valid"
+    "The measurement results are valid",
+    "The measurement results are not valid"
 };
 
 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}
 };
+
 guint16
 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;
-       gint bit_offset;
-       guint64 no_ncell_m;
-
-       curr_offset = offset;
-
-       item =
-               proto_tree_add_text(tree,
-                       tvb, curr_offset, 16, "%s",
-                       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 */
-       /* BA-USED */
-       proto_tree_add_bits_item(subtree, hf_gsm_a_rr_ba_used, tvb, curr_offset<<3, 1, FALSE);
-       /* DTX USED */
-       proto_tree_add_bits_item(subtree, hf_gsm_a_rr_dtx_used, tvb, (curr_offset<<3)+1, 1, FALSE);
-       /* RXLEV-FULL-SERVING-CELL */
-       proto_tree_add_bits_item(subtree, hf_gsm_a_rr_rxlev_full_serv_cell, tvb, (curr_offset<<3)+2, 6, FALSE);
-       curr_offset++;
-
-       /* 3rd octet */
-       /* 3G-BA-USED */ 
-       proto_tree_add_bits_item(subtree, hf_gsm_a_rr_3g_ba_used, tvb, curr_offset<<3, 1, FALSE);
-       /* MEAS-VALID */
-       proto_tree_add_item(subtree, hf_gsm_a_rr_meas_valid, tvb, curr_offset, 1, FALSE);       
-       /* RXLEV-SUB-SERVING-CELL */
-       proto_tree_add_item(subtree, hf_gsm_a_rr_rxlev_sub_serv_cell, tvb, curr_offset, 1, FALSE);
-
-       curr_offset++;
-
-       /* 4th octet */
-       /* RXQUAL-FULL-SERVING-CELL */
-       proto_tree_add_bits_item(subtree, hf_gsm_a_rr_rxqual_full_serv_cell, tvb, (curr_offset<<3)+1, 3, FALSE);
-
-       /* RXQUAL-SUB-SERVING-CELL */
-       proto_tree_add_item(subtree, hf_gsm_a_rr_rxqual_sub_serv_cell, tvb, curr_offset, 1, FALSE);
-       /* NO-NCELL-M */
-       bit_offset = (curr_offset << 3) + 7;
-       proto_tree_add_bits_ret_val(subtree, hf_gsm_a_rr_no_ncell_m, tvb, bit_offset, 3, &no_ncell_m, FALSE);
-       bit_offset += 3;
-       if (no_ncell_m == 7) /* No neighbour cell information available) */
-               no_ncell_m = 0;
-       while (no_ncell_m)
-       {
-               proto_tree_add_bits_item(subtree, hf_gsm_a_rr_rxlev_ncell, tvb, bit_offset, 6, FALSE);
-               bit_offset += 6;
-               proto_tree_add_bits_item(subtree, hf_gsm_a_rr_bcch_freq_ncell, tvb, bit_offset, 5, FALSE);
-               bit_offset += 5;
-               proto_tree_add_bits_item(subtree, hf_gsm_a_rr_bsic_ncell, tvb, bit_offset, 6, FALSE);
-               bit_offset += 6;
-               no_ncell_m -= 1;
-       }
-
-       return(len);
+    proto_tree *subtree;
+    proto_item *item;
+    guint32    curr_offset;
+    gint bit_offset;
+    guint64 no_ncell_m;
+
+    curr_offset = offset;
+
+    item =
+        proto_tree_add_text(tree,
+                            tvb, curr_offset, 16, "%s",
+                            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 */
+    /* BA-USED */
+    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_ba_used, tvb, curr_offset<<3, 1, FALSE);
+    /* DTX USED */
+    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_dtx_used, tvb, (curr_offset<<3)+1, 1, FALSE);
+    /* RXLEV-FULL-SERVING-CELL */
+    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_rxlev_full_serv_cell, tvb, (curr_offset<<3)+2, 6, FALSE);
+    curr_offset++;
+
+    /* 3rd octet */
+    /* 3G-BA-USED */ 
+    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_3g_ba_used, tvb, curr_offset<<3, 1, FALSE);
+    /* MEAS-VALID */
+    proto_tree_add_item(subtree, hf_gsm_a_rr_meas_valid, tvb, curr_offset, 1, FALSE);  
+    /* RXLEV-SUB-SERVING-CELL */
+    proto_tree_add_item(subtree, hf_gsm_a_rr_rxlev_sub_serv_cell, tvb, curr_offset, 1, FALSE);
+
+    curr_offset++;
+
+    /* 4th octet */
+    /* RXQUAL-FULL-SERVING-CELL */
+    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_rxqual_full_serv_cell, tvb, (curr_offset<<3)+1, 3, FALSE);
+
+    /* RXQUAL-SUB-SERVING-CELL */
+    proto_tree_add_item(subtree, hf_gsm_a_rr_rxqual_sub_serv_cell, tvb, curr_offset, 1, FALSE);
+    /* NO-NCELL-M */
+    bit_offset = (curr_offset << 3) + 7;
+    proto_tree_add_bits_ret_val(subtree, hf_gsm_a_rr_no_ncell_m, tvb, bit_offset, 3, &no_ncell_m, FALSE);
+    bit_offset += 3;
+    if (no_ncell_m == 7) /* No neighbour cell information available) */
+        no_ncell_m = 0;
+    while (no_ncell_m)
+    {
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_rxlev_ncell, tvb, bit_offset, 6, FALSE);
+        bit_offset += 6;
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_bcch_freq_ncell, tvb, bit_offset, 5, FALSE);
+        bit_offset += 5;
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_bsic_ncell, tvb, bit_offset, 6, FALSE);
+        bit_offset += 6;
+        no_ncell_m -= 1;
+    }
+
+    return(len);
 }
 
 /*
@@ -2701,25 +2715,25 @@ de_rr_meas_res(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, g
 static guint16
 de_rr_mob_all(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
-       guint32 curr_offset;
-   proto_item *item;
-   gint i, j;
-   guint8 value;
+    guint32    curr_offset;
+    proto_item *item;
+    gint i, j;
+    guint8 value;
 
-       curr_offset = offset;
+    curr_offset = offset;
 
-   item = proto_tree_add_text(tree, tvb, curr_offset, len, "Bitmap of increasing ARFCNs included in the Mobile Allocation: ");
-   for(i=len; i>0; i--)
-   {
-      value = tvb_get_guint8(tvb,curr_offset+i-1);
-      for (j=0; j<8; j++)
-      {
-         proto_item_append_text(item,"%d",(value>>j)&0x01);
-      }
-   }
+    item = proto_tree_add_text(tree, tvb, curr_offset, len, "Bitmap of increasing ARFCNs included in the Mobile Allocation: ");
+    for(i=len; i>0; i--)
+    {
+        value = tvb_get_guint8(tvb,curr_offset+i-1);
+        for (j=0; j<8; j++)
+        {
+            proto_item_append_text(item,"%d",(value>>j)&0x01);
+        }
+    }
 
-       curr_offset = curr_offset + len;
-       return(curr_offset - offset);
+    curr_offset = curr_offset + len;
+    return(curr_offset - offset);
 }
 
 /*
@@ -2728,14 +2742,14 @@ de_rr_mob_all(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
 static guint16
 de_rr_mob_time_diff(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
-       guint32 curr_offset;
+    guint32    curr_offset;
 
-       curr_offset = offset;
+    curr_offset = offset;
 
-       proto_tree_add_item(tree, hf_gsm_a_rr_mobile_time_difference, tvb, curr_offset, len, FALSE);
+    proto_tree_add_item(tree, hf_gsm_a_rr_mobile_time_difference, tvb, curr_offset, len, FALSE);
 
-       curr_offset = curr_offset + len;
-       return(curr_offset - offset);
+    curr_offset = curr_offset + len;
+    return(curr_offset - offset);
 
 }
 /*
@@ -2743,185 +2757,185 @@ 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"},
-       { 0,    NULL }
+    { 1, "Adaptive Multirate speech version 1"},
+    { 2, "Adaptive Multirate speech version 2"},
+    { 0, NULL }
 };
-/* Bit 5       NSCB: Noise Suppression Control Bit */
+/* 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,    NULL }
+    { 0, "Noise Suppression can be used (default)"},
+    { 1, "Noise Suppression shall be turned off"},
+    { 0, NULL }
 };
-/* Bit 4       ICMI: Initial Codec Mode Indicator */
+/* 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,    NULL }
+    { 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 }
 };
 /*
 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"
 };
 
 static const value_string gsm_a_rr_amr_threshold_vals[] = {
-       { 0,    "0.0 dB"},
-       { 1,    "0.5 dB"},
-       { 2,    "1.0 dB"},
-       { 3,    "1.5 dB"},
-       { 4,    "2.0 dB"},
-       { 5,    "2.5 dB"},
-       { 6,    "3.0 dB"},
-       { 7,    "3.5 dB"},
-       { 8,    "4.0 dB"},
-       { 9,    "4.5 dB"},
-       { 10,   "5.0 dB"},
-       { 11,   "5.5 dB"},
-       { 12,   "6.0 dB"},
-       { 13,   "6.5 dB"},
-       { 14,   "7.0 dB"},
-       { 15,   "7.5 dB"},
-       { 16,   "8.0 dB"},
-       { 17,   "8.5 dB"},
-       { 18,   "9.0 dB"},
-       { 19,   "9.5 dB"},
-       { 20,   "10.0 dB"},
-       { 21,   "10.5 dB"},
-       { 22,   "11.0 dB"},
-       { 23,   "11.5 dB"},
-       { 24,   "12.0 dB"},
-       { 25,   "12.5 dB"},
-       { 26,   "13.0 dB"},
-       { 27,   "13.5 dB"},
-       { 28,   "14.0 dB"},
-       { 29,   "14.5 dB"},
-       { 30,   "15.0 dB"},
-       { 31,   "15.5 dB"},
-       { 32,   "16.0 dB"},
-       { 33,   "16.5 dB"},
-       { 34,   "17.0 dB"},
-       { 35,   "17.5 dB"},
-       { 36,   "18.0 dB"},
-       { 37,   "18.5 dB"},
-       { 38,   "19.0 dB"},
-       { 39,   "19.5 dB"},
-       { 40,   "20.0 dB"},
-       { 41,   "20.5 dB"},
-       { 42,   "21.0 dB"},
-       { 43,   "21.5 dB"},
-       { 44,   "22.0 dB"},
-       { 45,   "22.5 dB"},
-       { 46,   "23.0 dB"},
-       { 47,   "23.5 dB"},
-       { 48,   "24.0 dB"},
-       { 49,   "24.5 dB"},
-       { 50,   "25.0 dB"},
-       { 51,   "25.5 dB"},
-       { 52,   "26.0 dB"},
-       { 53,   "26.5 dB"},
-       { 54,   "27.0 dB"},
-       { 55,   "27.5 dB"},
-       { 56,   "28.0 dB"},
-       { 57,   "28.5 dB"},
-       { 58,   "29.0 dB"},
-       { 59,   "29.5 dB"},
-       { 60,   "30.0 dB"},
-       { 61,   "30.5 dB"},
-       { 62,   "31.0 dB"},
-       { 63,   "31.5 dB"},
-       { 0,    NULL }
+    {  0, "0.0 dB"},
+    {  1, "0.5 dB"},
+    {  2, "1.0 dB"},
+    {  3, "1.5 dB"},
+    {  4, "2.0 dB"},
+    {  5, "2.5 dB"},
+    {  6, "3.0 dB"},
+    {  7, "3.5 dB"},
+    {  8, "4.0 dB"},
+    {  9, "4.5 dB"},
+    { 10, "5.0 dB"},
+    { 11, "5.5 dB"},
+    { 12, "6.0 dB"},
+    { 13, "6.5 dB"},
+    { 14, "7.0 dB"},
+    { 15, "7.5 dB"},
+    { 16, "8.0 dB"},
+    { 17, "8.5 dB"},
+    { 18, "9.0 dB"},
+    { 19, "9.5 dB"},
+    { 20, "10.0 dB"},
+    { 21, "10.5 dB"},
+    { 22, "11.0 dB"},
+    { 23, "11.5 dB"},
+    { 24, "12.0 dB"},
+    { 25, "12.5 dB"},
+    { 26, "13.0 dB"},
+    { 27, "13.5 dB"},
+    { 28, "14.0 dB"},
+    { 29, "14.5 dB"},
+    { 30, "15.0 dB"},
+    { 31, "15.5 dB"},
+    { 32, "16.0 dB"},
+    { 33, "16.5 dB"},
+    { 34, "17.0 dB"},
+    { 35, "17.5 dB"},
+    { 36, "18.0 dB"},
+    { 37, "18.5 dB"},
+    { 38, "19.0 dB"},
+    { 39, "19.5 dB"},
+    { 40, "20.0 dB"},
+    { 41, "20.5 dB"},
+    { 42, "21.0 dB"},
+    { 43, "21.5 dB"},
+    { 44, "22.0 dB"},
+    { 45, "22.5 dB"},
+    { 46, "23.0 dB"},
+    { 47, "23.5 dB"},
+    { 48, "24.0 dB"},
+    { 49, "24.5 dB"},
+    { 50, "25.0 dB"},
+    { 51, "25.5 dB"},
+    { 52, "26.0 dB"},
+    { 53, "26.5 dB"},
+    { 54, "27.0 dB"},
+    { 55, "27.5 dB"},
+    { 56, "28.0 dB"},
+    { 57, "28.5 dB"},
+    { 58, "29.0 dB"},
+    { 59, "29.5 dB"},
+    { 60, "30.0 dB"},
+    { 61, "30.5 dB"},
+    { 62, "31.0 dB"},
+    { 63, "31.5 dB"},
+    { 0, NULL }
 };
 
 static const value_string gsm_a_rr_amr_hysteresis_vals[] = {
-       { 0,    "0.0 dB"},
-       { 1,    "0.5 dB"},
-       { 2,    "1.0 dB"},
-       { 3,    "1.5 dB"},
-       { 4,    "2.0 dB"},
-       { 5,    "2.5 dB"},
-       { 6,    "3.0 dB"},
-       { 7,    "3.5 dB"},
-       { 8,    "4.0 dB"},
-       { 9,    "4.5 dB"},
-       { 10,   "5.0 dB"},
-       { 11,   "5.5 dB"},
-       { 12,   "6.0 dB"},
-       { 13,   "6.5 dB"},
-       { 14,   "7.0 dB"},
-       { 15,   "7.5 dB"},
-       { 0,    NULL }
+    {  0, "0.0 dB"},
+    {  1, "0.5 dB"},
+    {  2, "1.0 dB"},
+    {  3, "1.5 dB"},
+    {  4, "2.0 dB"},
+    {  5, "2.5 dB"},
+    {  6, "3.0 dB"},
+    {  7, "3.5 dB"},
+    {  8, "4.0 dB"},
+    {  9, "4.5 dB"},
+    { 10, "5.0 dB"},
+    { 11, "5.5 dB"},
+    { 12, "6.0 dB"},
+    { 13, "6.5 dB"},
+    { 14, "7.0 dB"},
+    { 15, "7.5 dB"},
+    { 0, NULL }
 };
 
 guint16
 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;
-   gint bit_offset, remaining_length, nb_of_params;
-
-       curr_offset = offset;
-
-       proto_tree_add_item(tree, hf_gsm_a_rr_multirate_speech_ver, tvb, curr_offset, 1, FALSE);
-       proto_tree_add_item(tree, hf_gsm_a_rr_NCSB, tvb, curr_offset, 1, FALSE);
-       proto_tree_add_item(tree, hf_gsm_a_rr_ICMI, tvb, curr_offset, 1, FALSE);
-       /* The initial codec mode is coded as in 3GPP TS 45.009 */
-       proto_tree_add_item(tree, hf_gsm_a_rr_start_mode, tvb, curr_offset, 1, FALSE);
-       oct = ( tvb_get_guint8(tvb,curr_offset) &0xe0 ) >> 5;
-       curr_offset++;
-       switch ( oct){
-       case 1:
-               /* Adaptive Multirate speech version 1 */
-               /* Set of AMR codec modes */
-               proto_tree_add_item(tree, hf_gsm_a_rr_set_of_amr_codec_modes_v1_b8, tvb, curr_offset, 1, FALSE);
-               proto_tree_add_item(tree, hf_gsm_a_rr_set_of_amr_codec_modes_v1_b7, tvb, curr_offset, 1, FALSE);
-               proto_tree_add_item(tree, hf_gsm_a_rr_set_of_amr_codec_modes_v1_b6, tvb, curr_offset, 1, FALSE);
-               proto_tree_add_item(tree, hf_gsm_a_rr_set_of_amr_codec_modes_v1_b5, tvb, curr_offset, 1, FALSE);
-               proto_tree_add_item(tree, hf_gsm_a_rr_set_of_amr_codec_modes_v1_b4, tvb, curr_offset, 1, FALSE);
-               proto_tree_add_item(tree, hf_gsm_a_rr_set_of_amr_codec_modes_v1_b3, tvb, curr_offset, 1, FALSE);
-               proto_tree_add_item(tree, hf_gsm_a_rr_set_of_amr_codec_modes_v1_b2, tvb, curr_offset, 1, FALSE);
-               proto_tree_add_item(tree, hf_gsm_a_rr_set_of_amr_codec_modes_v1_b1, tvb, curr_offset, 1, FALSE);
-               curr_offset++;
-
-               remaining_length = len-2;
-               break;
-       case 2:
-               /* Adaptive Multirate speech version 2 */
-               proto_tree_add_item(tree, hf_gsm_a_rr_set_of_amr_codec_modes_v2_b5, tvb, curr_offset, 1, FALSE);
-               proto_tree_add_item(tree, hf_gsm_a_rr_set_of_amr_codec_modes_v2_b4, tvb, curr_offset, 1, FALSE);
-               proto_tree_add_item(tree, hf_gsm_a_rr_set_of_amr_codec_modes_v2_b3, tvb, curr_offset, 1, FALSE);
-               proto_tree_add_item(tree, hf_gsm_a_rr_set_of_amr_codec_modes_v2_b2, tvb, curr_offset, 1, FALSE);
-               proto_tree_add_item(tree, hf_gsm_a_rr_set_of_amr_codec_modes_v2_b1, tvb, curr_offset, 1, FALSE);
-               curr_offset++;
-
-               remaining_length = len-2;
-               break;
-       default:
-               proto_tree_add_text(tree,tvb,offset,1,"Unknown version");
-               proto_tree_add_text(tree,tvb, curr_offset, len-1 ,"Data(Not decoded)");
-               remaining_length = 0;
-               break;
-       }
-
-   if (remaining_length)
-   {
-          bit_offset = (curr_offset<<3) + 2;
-      nb_of_params = remaining_length - 1;
-      while (nb_of_params)
-      {
-         proto_tree_add_bits_item(tree, hf_gsm_a_rr_amr_threshold, tvb, bit_offset, 6, FALSE);
-         bit_offset += 6;
-         proto_tree_add_bits_item(tree, hf_gsm_a_rr_amr_hysteresis, tvb, bit_offset, 4, FALSE);
-         bit_offset += 4;
-         nb_of_params -= 1;
-      }
-   }
-
-       curr_offset = offset + len;
-       return(curr_offset - offset);
+    guint32    curr_offset;
+    guint8 oct;
+    gint bit_offset, remaining_length, nb_of_params;
+
+    curr_offset = offset;
+
+    proto_tree_add_item(tree, hf_gsm_a_rr_multirate_speech_ver, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_item(tree, hf_gsm_a_rr_NCSB, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_item(tree, hf_gsm_a_rr_ICMI, tvb, curr_offset, 1, FALSE);
+    /* The initial codec mode is coded as in 3GPP TS 45.009 */
+    proto_tree_add_item(tree, hf_gsm_a_rr_start_mode, tvb, curr_offset, 1, FALSE);
+    oct = ( tvb_get_guint8(tvb,curr_offset) &0xe0 ) >> 5;
+    curr_offset++;
+    switch ( oct){
+    case 1:
+        /* Adaptive Multirate speech version 1 */
+        /* Set of AMR codec modes */
+        proto_tree_add_item(tree, hf_gsm_a_rr_set_of_amr_codec_modes_v1_b8, tvb, curr_offset, 1, FALSE);
+        proto_tree_add_item(tree, hf_gsm_a_rr_set_of_amr_codec_modes_v1_b7, tvb, curr_offset, 1, FALSE);
+        proto_tree_add_item(tree, hf_gsm_a_rr_set_of_amr_codec_modes_v1_b6, tvb, curr_offset, 1, FALSE);
+        proto_tree_add_item(tree, hf_gsm_a_rr_set_of_amr_codec_modes_v1_b5, tvb, curr_offset, 1, FALSE);
+        proto_tree_add_item(tree, hf_gsm_a_rr_set_of_amr_codec_modes_v1_b4, tvb, curr_offset, 1, FALSE);
+        proto_tree_add_item(tree, hf_gsm_a_rr_set_of_amr_codec_modes_v1_b3, tvb, curr_offset, 1, FALSE);
+        proto_tree_add_item(tree, hf_gsm_a_rr_set_of_amr_codec_modes_v1_b2, tvb, curr_offset, 1, FALSE);
+        proto_tree_add_item(tree, hf_gsm_a_rr_set_of_amr_codec_modes_v1_b1, tvb, curr_offset, 1, FALSE);
+        curr_offset++;
+
+        remaining_length = len-2;
+        break;
+    case 2:
+        /* Adaptive Multirate speech version 2 */
+        proto_tree_add_item(tree, hf_gsm_a_rr_set_of_amr_codec_modes_v2_b5, tvb, curr_offset, 1, FALSE);
+        proto_tree_add_item(tree, hf_gsm_a_rr_set_of_amr_codec_modes_v2_b4, tvb, curr_offset, 1, FALSE);
+        proto_tree_add_item(tree, hf_gsm_a_rr_set_of_amr_codec_modes_v2_b3, tvb, curr_offset, 1, FALSE);
+        proto_tree_add_item(tree, hf_gsm_a_rr_set_of_amr_codec_modes_v2_b2, tvb, curr_offset, 1, FALSE);
+        proto_tree_add_item(tree, hf_gsm_a_rr_set_of_amr_codec_modes_v2_b1, tvb, curr_offset, 1, FALSE);
+        curr_offset++;
+
+        remaining_length = len-2;
+        break;
+    default:
+        proto_tree_add_text(tree,tvb,offset,1,"Unknown version");
+        proto_tree_add_text(tree,tvb, curr_offset, len-1 ,"Data(Not decoded)");
+        remaining_length = 0;
+        break;
+    }
+
+    if (remaining_length)
+    {
+        bit_offset = (curr_offset<<3) + 2;
+        nb_of_params = remaining_length - 1;
+        while (nb_of_params)
+        {
+            proto_tree_add_bits_item(tree, hf_gsm_a_rr_amr_threshold, tvb, bit_offset, 6, FALSE);
+            bit_offset += 6;
+            proto_tree_add_bits_item(tree, hf_gsm_a_rr_amr_hysteresis, tvb, bit_offset, 4, FALSE);
+            bit_offset += 4;
+            nb_of_params -= 1;
+        }
+    }
+
+    curr_offset = offset + len;
+    return(curr_offset - offset);
 
 }
 /*
@@ -2930,14 +2944,14 @@ de_rr_multirate_conf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
 static guint16
 de_rr_mult_all(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
-       guint32 curr_offset;
+    guint32    curr_offset;
 
-       curr_offset = offset;
+    curr_offset = offset;
 
-       proto_tree_add_text(tree,tvb, curr_offset, len ,"Data(Not decoded)");
+    proto_tree_add_text(tree,tvb, curr_offset, len ,"Data(Not decoded)");
 
-       curr_offset = curr_offset + len;
-       return(curr_offset - offset);
+    curr_offset = curr_offset + len;
+    return(curr_offset - offset);
 
 }
 /*
@@ -2948,21 +2962,21 @@ 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,    NULL }
+    { 0, "The information element carries the complete BA"},
+    { 1, "The information element carries only a part of the BA"},
+    { 0, NULL }
 };
 static guint16
 de_rr_neigh_cell_desc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
-       guint32 curr_offset;
+    guint32    curr_offset;
 
-       curr_offset = offset;
+    curr_offset = offset;
 
-       proto_tree_add_item(tree, hf_gsm_a_rr_ext_ind, tvb, curr_offset, 1, FALSE);
-       proto_tree_add_bits_item(tree, hf_gsm_a_rr_ba_ind, tvb, (curr_offset<<3)+3, 1, FALSE);
+    proto_tree_add_item(tree, hf_gsm_a_rr_ext_ind, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_bits_item(tree, hf_gsm_a_rr_ba_ind, tvb, (curr_offset<<3)+3, 1, FALSE);
 
-       return dissect_arfcn_list(tvb, tree, offset, 16, add_string, string_len);
+    return dissect_arfcn_list(tvb, tree, offset, 16, add_string, string_len);
 }
 
  /*
@@ -2971,14 +2985,14 @@ de_rr_neigh_cell_desc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
 static guint16
 de_rr_neigh_cell_desc2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
-       guint32 curr_offset;
+    guint32    curr_offset;
 
-       curr_offset = offset;
+    curr_offset = offset;
 
-   proto_tree_add_bits_item(tree, hf_gsm_a_rr_multiband_reporting, tvb, (curr_offset<<3)+1, 2, FALSE);
-       proto_tree_add_bits_item(tree, hf_gsm_a_rr_ba_ind, tvb, (curr_offset<<3)+3, 1, FALSE);
+    proto_tree_add_bits_item(tree, hf_gsm_a_rr_multiband_reporting, tvb, (curr_offset<<3)+1, 2, FALSE);
+    proto_tree_add_bits_item(tree, hf_gsm_a_rr_ba_ind, tvb, (curr_offset<<3)+3, 1, FALSE);
 
-       return dissect_arfcn_list(tvb, tree, offset, 16, add_string, string_len);
+    return dissect_arfcn_list(tvb, tree, offset, 16, add_string, string_len);
 }
 
 /*
@@ -2992,97 +3006,97 @@ de_rr_neigh_cell_desc2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint le
 static guint16
 de_rr_p1_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
-   proto_tree *subtree;
-   proto_item *item, *item2;
-   guint32 curr_offset, value;
-   gint bit_offset, bit_offset_sav, i;
-
-   curr_offset = offset;
-   bit_offset = curr_offset << 3;
-   len = tvb_length_remaining(tvb,offset);
-
-   item = proto_tree_add_text(tree, tvb, curr_offset, len, "%s",
-    gsm_rr_elem_strings[DE_RR_P1_REST_OCT].strptr);
-
-   subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_P1_REST_OCT]);
-
-   if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
-   {
-      bit_offset += 1;
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_nln_pch, tvb, bit_offset, 2, FALSE);
-      bit_offset += 2;
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_nln_status_pch, tvb, bit_offset, 1, FALSE);
-      bit_offset += 1;
-   }
-   else
-      bit_offset += 1;
-   for (i=1; i<=2; i++)
-   {
-      if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
-      {
-         bit_offset += 1;
-         item2 = proto_tree_add_bits_item(subtree, hf_gsm_a_call_prio, tvb, bit_offset, 3, FALSE);
-         bit_offset += 3;
-         proto_item_append_text(item2, " for Mobile Identity %d", i);
-      }
-      else
-         bit_offset += 1;
-   }
-   if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
-   { /* Group Call Information */
-      bit_offset += 1;
-      bit_offset_sav = bit_offset;
-      bit_offset += 36;
-      if (tvb_get_bits8(tvb,bit_offset,1))
-      { /* Group Channel Description */
-         bit_offset += 24+1;
-         if (tvb_get_bits8(tvb,bit_offset,1))
-         { /* Hopping case */
+    proto_tree *subtree;
+    proto_item *item, *item2;
+    guint32 curr_offset, value;
+    gint bit_offset, bit_offset_sav, i;
+
+    curr_offset = offset;
+    bit_offset = curr_offset << 3;
+    len = tvb_length_remaining(tvb,offset);
+
+    item = proto_tree_add_text(tree, tvb, curr_offset, len, "%s",
+                               gsm_rr_elem_strings[DE_RR_P1_REST_OCT].strptr);
+
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_P1_REST_OCT]);
+
+    if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
+    {
+        bit_offset += 1;
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_nln_pch, tvb, bit_offset, 2, FALSE);
+        bit_offset += 2;
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_nln_status_pch, tvb, bit_offset, 1, FALSE);
+        bit_offset += 1;
+    }
+    else
+        bit_offset += 1;
+    for (i=1; i<=2; i++)
+    {
+        if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
+        {
             bit_offset += 1;
+            item2 = proto_tree_add_bits_item(subtree, hf_gsm_a_call_prio, tvb, bit_offset, 3, FALSE);
+            bit_offset += 3;
+            proto_item_append_text(item2, " for Mobile Identity %d", i);
+        }
+        else
+            bit_offset += 1;
+    }
+    if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
+    { /* Group Call Information */
+        bit_offset += 1;
+        bit_offset_sav = bit_offset;
+        bit_offset += 36;
+        if (tvb_get_bits8(tvb,bit_offset,1))
+        { /* Group Channel Description */
+            bit_offset += 24+1;
             if (tvb_get_bits8(tvb,bit_offset,1))
-            {
-               bit_offset += 64+1;
+            { /* Hopping case */
+                bit_offset += 1;
+                if (tvb_get_bits8(tvb,bit_offset,1))
+                {
+                    bit_offset += 64+1;
+                }
+                else
+                {
+                    bit_offset += 1;
+                    value = tvb_get_bits8(tvb,bit_offset,8);
+                    bit_offset += 8 + (value<<3);
+                }
             }
             else
-            {
-               bit_offset += 1;
-               value = tvb_get_bits8(tvb,bit_offset,8);
-               bit_offset += 8 + (value<<3);
-            }
-         }
-         else
+                bit_offset += 1;
+        }
+        else
+            bit_offset += 1;
+        proto_tree_add_text(subtree,tvb, bit_offset_sav>>3, (bit_offset-bit_offset_sav)>>3,"Group Call Information: Data(Not decoded)");
+    }
+    else
+        bit_offset += 1;
+    for (i=1; i<=2; i++)
+    {
+        item2 = proto_tree_add_text(subtree,tvb, bit_offset>>3, 1, "Packet Page Indication %d: ", i);
+        if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
+            proto_item_append_text(item2, "Packet paging procedure");
+        else
+            proto_item_append_text(item2, "Paging procedure for RR connection establishment");
+        bit_offset += 1;
+    }
+    if (((curr_offset + len)<<3) - bit_offset > 0)
+    {
+        /* There is still room left in the Rest Octets IE */
+        if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
+        { /* Additions in release 6 */
             bit_offset += 1;
-      }
-      else
-         bit_offset += 1;
-      proto_tree_add_text(subtree,tvb, bit_offset_sav>>3, (bit_offset-bit_offset_sav)>>3,"Group Call Information: Data(Not decoded)");
-   }
-   else
-      bit_offset += 1;
-   for (i=1; i<=2; i++)
-   {
-      item2 = proto_tree_add_text(subtree,tvb, bit_offset>>3, 1, "Packet Page Indication %d: ", i);
-      if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
-         proto_item_append_text(item2, "Packet paging procedure");
-      else
-         proto_item_append_text(item2, "Paging procedure for RR connection establishment");
-      bit_offset += 1;
-   }
-   if (((curr_offset + len)<<3) - bit_offset > 0)
-   {
-      /* There is still room left in the Rest Octets IE */
-      if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
-      { /* Additions in release 6 */
-         bit_offset += 1;
-         proto_tree_add_text(subtree, tvb, bit_offset>>3, -1,"Additions in Release 6: Data(Not decoded)");
-      }
-      else
-         bit_offset += 1;
-   }
-
-   curr_offset = curr_offset + len;
-
-   return (curr_offset - offset);
+            proto_tree_add_text(subtree, tvb, bit_offset>>3, -1,"Additions in Release 6: Data(Not decoded)");
+        }
+        else
+            bit_offset += 1;
+    }
+
+    curr_offset = curr_offset + len;
+
+    return (curr_offset - offset);
 }
 
 /*
@@ -3092,71 +3106,71 @@ static guint16
 de_rr_p2_rest_oct(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, *item2;
-   guint32 curr_offset;
-   gint bit_offset, i;
+    proto_tree *subtree;
+    proto_item *item, *item2;
+    guint32 curr_offset;
+    gint bit_offset, i;
+
+    curr_offset = offset;
+    bit_offset = curr_offset << 3;
+    len = tvb_length_remaining(tvb,offset);
+
+    item = proto_tree_add_text(tree, tvb, curr_offset, len, "%s",
+                               gsm_rr_elem_strings[DE_RR_P2_REST_OCT].strptr);
+
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_P2_REST_OCT]);
+
+    if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
+    {
+        bit_offset += 1;
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_chnl_needed_ch3, tvb, bit_offset, 2, FALSE);
+        bit_offset += 2;
+    }
+    else
+        bit_offset += 1;
+    if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
+    {
+        bit_offset += 1;
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_nln_pch, tvb, bit_offset, 2, FALSE);
+        bit_offset += 2;
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_nln_status_pch, tvb, bit_offset, 1, FALSE);
+        bit_offset += 1;
+    }
+    else
+        bit_offset += 1;
+    for (i=1; i<=3; i++)
+    {
+        if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
+        {
+            bit_offset += 1;
+            item2 = proto_tree_add_bits_item(subtree, hf_gsm_a_call_prio, tvb, bit_offset, 3, FALSE);
+            bit_offset += 3;
+            proto_item_append_text(item2, " for Mobile Identity %d", i);
+        }
+        else
+            bit_offset += 1;
+    }
+    item2 = proto_tree_add_text(subtree,tvb, bit_offset>>3, 1, "Packet Page Indication 3: ");
+    if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
+        proto_item_append_text(item2, "Packet paging procedure");
+    else
+        proto_item_append_text(item2, "Paging procedure for RR connection establishment");
+    bit_offset += 1;
+    if (((curr_offset + len)<<3) - bit_offset > 0)
+    {
+        /* There is still room left in the Rest Octets IE */
+        if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
+        { /* Additions in release 6 */
+            bit_offset += 1;
+            proto_tree_add_text(subtree, tvb, bit_offset>>3, -1,"Additions in Release 6: Data(Not decoded)");
+        }
+        else
+            bit_offset += 1;
+    }
 
-   curr_offset = offset;
-   bit_offset = curr_offset << 3;
-   len = tvb_length_remaining(tvb,offset);
-
-   item = proto_tree_add_text(tree, tvb, curr_offset, len, "%s",
-    gsm_rr_elem_strings[DE_RR_P2_REST_OCT].strptr);
-
-   subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_P2_REST_OCT]);
-
-   if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
-   {
-      bit_offset += 1;
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_chnl_needed_ch3, tvb, bit_offset, 2, FALSE);
-      bit_offset += 2;
-   }
-   else
-      bit_offset += 1;
-   if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
-   {
-      bit_offset += 1;
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_nln_pch, tvb, bit_offset, 2, FALSE);
-      bit_offset += 2;
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_nln_status_pch, tvb, bit_offset, 1, FALSE);
-      bit_offset += 1;
-   }
-   else
-      bit_offset += 1;
-   for (i=1; i<=3; i++)
-   {
-      if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
-      {
-         bit_offset += 1;
-         item2 = proto_tree_add_bits_item(subtree, hf_gsm_a_call_prio, tvb, bit_offset, 3, FALSE);
-         bit_offset += 3;
-         proto_item_append_text(item2, " for Mobile Identity %d", i);
-      }
-      else
-         bit_offset += 1;
-   }
-   item2 = proto_tree_add_text(subtree,tvb, bit_offset>>3, 1, "Packet Page Indication 3: ");
-   if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
-      proto_item_append_text(item2, "Packet paging procedure");
-   else
-      proto_item_append_text(item2, "Paging procedure for RR connection establishment");
-   bit_offset += 1;
-   if (((curr_offset + len)<<3) - bit_offset > 0)
-   {
-      /* There is still room left in the Rest Octets IE */
-      if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
-      { /* Additions in release 6 */
-         bit_offset += 1;
-         proto_tree_add_text(subtree, tvb, bit_offset>>3, -1,"Additions in Release 6: Data(Not decoded)");
-      }
-      else
-         bit_offset += 1;
-   }
-
-   curr_offset = curr_offset + len;
-
-   return (curr_offset - offset);
+    curr_offset = curr_offset + len;
+
+    return (curr_offset - offset);
 }
 
 /*
@@ -3165,56 +3179,56 @@ de_rr_p2_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_
 static guint16
 de_rr_p3_rest_oct(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, *item2;
-   guint32 curr_offset;
-   gint bit_offset, i;
+    proto_tree *subtree;
+    proto_item *item, *item2;
+    guint32 curr_offset;
+    gint bit_offset, i;
+
+    curr_offset = offset;
+    bit_offset = curr_offset << 3;
+    len = 3;
+
+    item = proto_tree_add_text(tree, tvb, curr_offset, len, "%s",
+                               gsm_rr_elem_strings[DE_RR_P3_REST_OCT].strptr);
+
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_P3_REST_OCT]);
+
+    if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
+    {
+        bit_offset += 1;
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_chnl_needed_ch3, tvb, bit_offset, 2, FALSE);
+        bit_offset += 2;
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_chnl_needed_ch4, tvb, bit_offset, 2, FALSE);
+        bit_offset += 2;
+    }
+    else
+        bit_offset += 1;
+    if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
+    {
+        bit_offset += 1;
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_nln_pch, tvb, bit_offset, 2, FALSE);
+        bit_offset += 2;
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_nln_status_pch, tvb, bit_offset, 1, FALSE);
+        bit_offset += 1;
+    }
+    else
+        bit_offset += 1;
+    for (i=1; i<=4; i++)
+    {
+        if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
+        {
+            bit_offset += 1;
+            item2 = proto_tree_add_bits_item(subtree, hf_gsm_a_call_prio, tvb, bit_offset, 3, FALSE);
+            bit_offset += 3;
+            proto_item_append_text(item2, " for Mobile Identity %d", i);
+        }
+        else
+            bit_offset += 1;
+    }
 
-   curr_offset = offset;
-   bit_offset = curr_offset << 3;
-   len = 3;
-
-   item = proto_tree_add_text(tree, tvb, curr_offset, len, "%s",
-    gsm_rr_elem_strings[DE_RR_P3_REST_OCT].strptr);
-
-   subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_P3_REST_OCT]);
-
-   if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
-   {
-      bit_offset += 1;
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_chnl_needed_ch3, tvb, bit_offset, 2, FALSE);
-      bit_offset += 2;
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_chnl_needed_ch4, tvb, bit_offset, 2, FALSE);
-      bit_offset += 2;
-   }
-   else
-      bit_offset += 1;
-   if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
-   {
-      bit_offset += 1;
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_nln_pch, tvb, bit_offset, 2, FALSE);
-      bit_offset += 2;
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_nln_status_pch, tvb, bit_offset, 1, FALSE);
-      bit_offset += 1;
-   }
-   else
-      bit_offset += 1;
-   for (i=1; i<=4; i++)
-   {
-      if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
-      {
-         bit_offset += 1;
-         item2 = proto_tree_add_bits_item(subtree, hf_gsm_a_call_prio, tvb, bit_offset, 3, FALSE);
-         bit_offset += 3;
-         proto_item_append_text(item2, " for Mobile Identity %d", i);
-      }
-      else
-         bit_offset += 1;
-   }
-
-   curr_offset = curr_offset + len;
-
-   return (curr_offset - offset);
+    curr_offset = curr_offset + len;
+
+    return (curr_offset - offset);
 }
 
 /*
@@ -3223,61 +3237,61 @@ de_rr_p3_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_
 static guint16
 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;
-       proto_tree      *subtree;
-       proto_item      *item;
-       const gchar *str;
-
-       curr_offset = offset;
-
-       item = proto_tree_add_text(tree,tvb,curr_offset,3, "%s", gsm_rr_elem_strings[DE_RR_PACKET_CH_DESC].strptr);
-       subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_PACKET_CH_DESC]);
-
-       /* Octet 2 */
-       oct8 = tvb_get_guint8(tvb, curr_offset);
-       /* Channel Type */
-       str = "Spare bits (ignored by receiver)";
-       other_decode_bitfield_value(a_bigbuf, oct8, 0xf8, 8);
-       proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = %s",a_bigbuf,str);
-       /* TN */
-       other_decode_bitfield_value(a_bigbuf, oct8, 0x07, 8);
-       proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = Timeslot: %d",a_bigbuf,(oct8 & 0x07));
-
-       curr_offset +=1;
+    guint32    curr_offset;
+    guint8     oct8;
+    guint16    arfcn, hsn, maio;
+    proto_tree *subtree;
+    proto_item *item;
+    const gchar *str;
+
+    curr_offset = offset;
+
+    item = proto_tree_add_text(tree,tvb,curr_offset,3, "%s", gsm_rr_elem_strings[DE_RR_PACKET_CH_DESC].strptr);
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_PACKET_CH_DESC]);
+
+    /* Octet 2 */
+    oct8 = tvb_get_guint8(tvb, curr_offset);
+    /* Channel Type */
+    str = "Spare bits (ignored by receiver)";
+    other_decode_bitfield_value(a_bigbuf, oct8, 0xf8, 8);
+    proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = %s",a_bigbuf,str);
+    /* TN */
+    other_decode_bitfield_value(a_bigbuf, oct8, 0x07, 8);
+    proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = Timeslot: %d",a_bigbuf,(oct8 & 0x07));
+
+    curr_offset +=1;
        
-       /* Octet 3 */
-       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));
+    /* Octet 3 */
+    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)
-       {
-               /* Hopping sequence */
-               maio = ((oct8 & 0x0f)<<2) | ((tvb_get_guint8(tvb,curr_offset+1) & 0xc0) >> 6);
-               hsn = (tvb_get_guint8(tvb,curr_offset+1) & 0x3f);
-               str = "Yes";
-
-               other_decode_bitfield_value(a_bigbuf, oct8, 0x10, 8);
-               proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = Hopping channel: %s",a_bigbuf,str);
-               proto_tree_add_text(subtree,tvb, curr_offset, 2,"Hopping channel: MAIO %d",maio);
-               proto_tree_add_text(subtree,tvb, curr_offset, 2,"Hopping channel: HSN %d",hsn);
-       }
-       else
-       {
-               /* single ARFCN */
-               arfcn = ((oct8 & 0x03) << 8) | tvb_get_guint8(tvb,curr_offset+1);
-               str = "No";
-               other_decode_bitfield_value(a_bigbuf, oct8, 0x10, 8);
-               proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = Hopping channel: %s",a_bigbuf,str);
-               other_decode_bitfield_value(a_bigbuf, oct8, 0x0c, 8);
-               proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = Spare",a_bigbuf);
-               proto_tree_add_text(subtree,tvb, curr_offset, 2,"Single channel : ARFCN %d",arfcn);
-       }
-
-       curr_offset = curr_offset + 2;
-       return(curr_offset - offset);
+    if ((oct8 & 0x10) == 0x10)
+    {
+        /* Hopping sequence */
+        maio = ((oct8 & 0x0f)<<2) | ((tvb_get_guint8(tvb,curr_offset+1) & 0xc0) >> 6);
+        hsn = (tvb_get_guint8(tvb,curr_offset+1) & 0x3f);
+        str = "Yes";
+
+        other_decode_bitfield_value(a_bigbuf, oct8, 0x10, 8);
+        proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = Hopping channel: %s",a_bigbuf,str);
+        proto_tree_add_text(subtree,tvb, curr_offset, 2,"Hopping channel: MAIO %d",maio);
+        proto_tree_add_text(subtree,tvb, curr_offset, 2,"Hopping channel: HSN %d",hsn);
+    }
+    else
+    {
+        /* single ARFCN */
+        arfcn = ((oct8 & 0x03) << 8) | tvb_get_guint8(tvb,curr_offset+1);
+        str = "No";
+        other_decode_bitfield_value(a_bigbuf, oct8, 0x10, 8);
+        proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = Hopping channel: %s",a_bigbuf,str);
+        other_decode_bitfield_value(a_bigbuf, oct8, 0x0c, 8);
+        proto_tree_add_text(subtree,tvb, curr_offset, 1,"%s = Spare",a_bigbuf);
+        proto_tree_add_text(subtree,tvb, curr_offset, 2,"Single channel : ARFCN %d",arfcn);
+    }
+
+    curr_offset = curr_offset + 2;
+    return(curr_offset - offset);
 
 }
 /*
@@ -3285,37 +3299,37 @@ 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,    NULL }
+    { 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 guint16
 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;
+    proto_tree *subtree;
+    proto_item *item;
+    guint32    curr_offset;
 
-       curr_offset = offset;
+    curr_offset = offset;
 
-       item =
-               proto_tree_add_text(tree,
-                       tvb, curr_offset, 1, "%s",
-                       gsm_rr_elem_strings[DE_RR_DED_MOD_OR_TBF].strptr);
+    item =
+        proto_tree_add_text(tree,
+                            tvb, curr_offset, 1, "%s",
+                            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]);
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_DED_MOD_OR_TBF]);
 
-       proto_tree_add_item(subtree, hf_gsm_a_rr_dedicated_mode_or_tbf, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_item(subtree, hf_gsm_a_rr_dedicated_mode_or_tbf, tvb, curr_offset, 1, FALSE);
 
-       curr_offset += 1;
+    curr_offset += 1;
 
-       return(curr_offset - offset);
+    return(curr_offset - offset);
 }
 /*
  * [3] 10.5.2.25c RR Packet Uplink Assignment
@@ -3326,33 +3340,33 @@ 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,    NULL }
+    { 0, "Normal paging"},
+    { 1, "Extended paging"},
+    { 2, "Paging reorganization"},
+    { 3, "Same as before"},
+    { 0, NULL }
 };
 static guint16
 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;
+    proto_tree *subtree;
+    proto_item *item;
+    guint32    curr_offset;
 
-       curr_offset = offset;
+    curr_offset = offset;
 
-       item =
-               proto_tree_add_text(tree,
-                       tvb, curr_offset, 1, "%s",
-                       gsm_rr_elem_strings[DE_RR_PAGE_MODE].strptr);
+    item =
+        proto_tree_add_text(tree,
+                            tvb, curr_offset, 1, "%s",
+                            gsm_rr_elem_strings[DE_RR_PAGE_MODE].strptr);
 
-       subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_PAGE_MODE]);
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_PAGE_MODE]);
 
-       proto_tree_add_item(subtree, hf_gsm_a_rr_page_mode, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_item(subtree, hf_gsm_a_rr_page_mode, tvb, curr_offset, 1, FALSE);
 
-       curr_offset += 1;
+    curr_offset += 1;
 
-       return(curr_offset - offset);
+    return(curr_offset - offset);
 }
 /*
  * [3] 10.5.2.26a (void)
@@ -3366,22 +3380,22 @@ de_rr_page_mode(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
 static guint16
 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;
+    proto_tree *subtree;
+    proto_item *item;
+    guint32    curr_offset;
 
-       curr_offset = offset;
+    curr_offset = offset;
 
-       item = proto_tree_add_text(tree, tvb, curr_offset, 1, "%s",
-               gsm_rr_elem_strings[DE_RR_NCC_PERM].strptr);
+    item = proto_tree_add_text(tree, tvb, curr_offset, 1, "%s",
+                               gsm_rr_elem_strings[DE_RR_NCC_PERM].strptr);
 
-       subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_NCC_PERM]);
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_NCC_PERM]);
 
-       proto_tree_add_item(subtree, hf_gsm_a_rr_ncc_permitted, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_item(subtree, hf_gsm_a_rr_ncc_permitted, tvb, curr_offset, 1, FALSE);
 
-       curr_offset = curr_offset + 1;
+    curr_offset = curr_offset + 1;
 
-       return(curr_offset - offset);
+    return(curr_offset - offset);
 }
 /*
  * [3] 10.5.2.28 Power Command
@@ -3392,8 +3406,8 @@ de_rr_ncc_perm(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, g
  * 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)
@@ -3401,8 +3415,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)
@@ -3424,8 +3438,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"
 };
 
 /*
@@ -3437,30 +3451,30 @@ static const true_false_string gsm_a_rr_pow_cmd_fpcepc_value  = {
 static guint16
 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;
+    proto_tree *subtree;
+    proto_item *item;
+    guint32    curr_offset;
 
-       curr_offset = offset;
+    curr_offset = offset;
 
-       item =
-               proto_tree_add_text(tree,
-                       tvb, curr_offset, 1, "%s",
-                       gsm_rr_elem_strings[DE_RR_POW_CMD].strptr);
+    item =
+        proto_tree_add_text(tree,
+                            tvb, curr_offset, 1, "%s",
+                            gsm_rr_elem_strings[DE_RR_POW_CMD].strptr);
 
-       subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_POW_CMD]);
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_POW_CMD]);
 
-       proto_tree_add_item(subtree, hf_gsm_a_b8spare, tvb, curr_offset, 1, FALSE);
-       /*EPC mode */
-       proto_tree_add_item(subtree, hf_gsm_a_rr_pow_cmd_epc, tvb, curr_offset, 1, FALSE);
-       /*FPC_EPC*/
-       proto_tree_add_item(subtree, hf_gsm_a_rr_pow_cmd_fpcepc, tvb, curr_offset, 1, FALSE);
-       /*POWER LEVEL*/
-       proto_tree_add_item(subtree, hf_gsm_a_rr_pow_cmd_powlev, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_item(subtree, hf_gsm_a_b8spare, tvb, curr_offset, 1, FALSE);
+    /*EPC mode */
+    proto_tree_add_item(subtree, hf_gsm_a_rr_pow_cmd_epc, tvb, curr_offset, 1, FALSE);
+    /*FPC_EPC*/
+    proto_tree_add_item(subtree, hf_gsm_a_rr_pow_cmd_fpcepc, tvb, curr_offset, 1, FALSE);
+    /*POWER LEVEL*/
+    proto_tree_add_item(subtree, hf_gsm_a_rr_pow_cmd_powlev, tvb, curr_offset, 1, FALSE);
 
-       curr_offset = curr_offset + 1;
+    curr_offset = curr_offset + 1;
 
-       return(curr_offset - offset);
+    return(curr_offset - offset);
 }
 
 /*
@@ -3469,153 +3483,153 @@ de_rr_pow_cmd(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gc
 static guint16
 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;
+    proto_tree *subtree;
+    proto_item *item;
+    guint32    curr_offset;
 
-       curr_offset = offset;
+    curr_offset = offset;
 
-       item =
-               proto_tree_add_text(tree,
-                       tvb, curr_offset, 1, "%s",
-                       gsm_rr_elem_strings[DE_RR_POW_CMD_AND_ACC_TYPE].strptr);
+    item =
+        proto_tree_add_text(tree,
+                            tvb, curr_offset, 1, "%s",
+                            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]);
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_POW_CMD_AND_ACC_TYPE]);
 
-       /*ATC */
-       proto_tree_add_item(subtree, hf_gsm_a_rr_pow_cmd_atc, tvb, curr_offset, 1, FALSE);
-       /*EPC mode */
-       proto_tree_add_item(subtree, hf_gsm_a_rr_pow_cmd_epc, tvb, curr_offset, 1, FALSE);
-       /*FPC_EPC*/
-       proto_tree_add_item(subtree, hf_gsm_a_rr_pow_cmd_fpcepc, tvb, curr_offset, 1, FALSE);
-       /*POWER LEVEL*/
-       proto_tree_add_item(subtree, hf_gsm_a_rr_pow_cmd_powlev, tvb, curr_offset, 1, FALSE);
+    /*ATC */
+    proto_tree_add_item(subtree, hf_gsm_a_rr_pow_cmd_atc, tvb, curr_offset, 1, FALSE);
+    /*EPC mode */
+    proto_tree_add_item(subtree, hf_gsm_a_rr_pow_cmd_epc, tvb, curr_offset, 1, FALSE);
+    /*FPC_EPC*/
+    proto_tree_add_item(subtree, hf_gsm_a_rr_pow_cmd_fpcepc, tvb, curr_offset, 1, FALSE);
+    /*POWER LEVEL*/
+    proto_tree_add_item(subtree, hf_gsm_a_rr_pow_cmd_powlev, tvb, curr_offset, 1, FALSE);
 
-       curr_offset = curr_offset + 1;
+    curr_offset = curr_offset + 1;
 
-       return(curr_offset - offset);
+    return(curr_offset - offset);
 }
 /*
  * [3] 10.5.2.29 RACH Control Parameters
  */
 
 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,    NULL }
+    {  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,    NULL }
+    {  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,    NULL }
+    {  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,    NULL }
+    {  0, "Call Reestablishment allowed in the cell"},
+    {  1, "Call Reestablishment not allowed in the cell"},
+    {  0, NULL }
 };
 
 static guint16
 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;
+    proto_tree *subtree;
+    proto_item *item;
+    guint32    curr_offset;
 
-       curr_offset = offset;
+    curr_offset = offset;
 
-       item = proto_tree_add_text(tree, tvb, curr_offset, 3, "%s",
-               gsm_rr_elem_strings[DE_RR_RACH_CTRL_PARAM].strptr);
+    item = proto_tree_add_text(tree, tvb, curr_offset, 3, "%s",
+                               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]);
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_RACH_CTRL_PARAM]);
 
-       proto_tree_add_item(subtree, hf_gsm_a_rr_max_retrans, tvb, curr_offset, 1, FALSE);
-       proto_tree_add_item(subtree, hf_gsm_a_rr_tx_integer, tvb, curr_offset, 1, FALSE);
-       proto_tree_add_item(subtree, hf_gsm_a_rr_cell_barr_access, tvb, curr_offset, 1, FALSE);
-       proto_tree_add_item(subtree, hf_gsm_a_rr_re, tvb, curr_offset, 1, FALSE);
-       curr_offset = curr_offset + 1;
+    proto_tree_add_item(subtree, hf_gsm_a_rr_max_retrans, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_item(subtree, hf_gsm_a_rr_tx_integer, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_item(subtree, hf_gsm_a_rr_cell_barr_access, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_item(subtree, hf_gsm_a_rr_re, tvb, curr_offset, 1, FALSE);
+    curr_offset = curr_offset + 1;
 
-       proto_tree_add_item(subtree, hf_gsm_a_rr_acc, tvb, curr_offset, 2, FALSE);
+    proto_tree_add_item(subtree, hf_gsm_a_rr_acc, tvb, curr_offset, 2, FALSE);
 
-       curr_offset = curr_offset + 2;
+    curr_offset = curr_offset + 2;
 
-       return(curr_offset - offset);
+    return(curr_offset - offset);
 }
 /*
  * [3] 10.5.2.30 Request Reference M V 3
  */
 static guint16 reduced_frame_number(guint16 fn)
 {
-       /* great care needed with signed/unsigned - -1 in unsigned is 0xffff, which mod(26) is not what you think !!! */
-       gint16  t2, t3, t;
-       guint16 frame, t1;
+    /* great care needed with signed/unsigned - -1 in unsigned is 0xffff, which mod(26) is not what you think !!! */
+    gint16     t2, t3, t;
+    guint16    frame, t1;
 
-       t1 = (fn >> 11) & 0x1f;
-       t2 = (fn >> 0) & 0x1f;
-       t3 = (fn >> 5) & 0x3f;
+    t1 = (fn >> 11) & 0x1f;
+    t2 = (fn >> 0) & 0x1f;
+    t3 = (fn >> 5) & 0x3f;
 
-       t = (t3-t2)%26;
-       if (t<0)
-               t += 26;
+    t = (t3-t2)%26;
+    if (t<0)
+        t += 26;
 
-       frame = 51*(unsigned)t+(unsigned)t3+51*26*t1;
+    frame = 51*(unsigned)t+(unsigned)t3+51*26*t1;
 
-       return frame;
+    return frame;
 }
 
 static guint16
 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;
-       guint32 curr_offset;
-       guint16 rfn;
-       guint16 fn;
+    proto_tree *subtree;
+    proto_item *item;
+    guint32    curr_offset;
+    guint16    rfn;
+    guint16    fn;
 
-       curr_offset = offset;
+    curr_offset = offset;
 
-       item =
-               proto_tree_add_text(tree,
-                       tvb, curr_offset, 3, "%s",
-                       gsm_rr_elem_strings[DE_RR_REQ_REF].strptr);
+    item =
+        proto_tree_add_text(tree,
+                            tvb, curr_offset, 3, "%s",
+                            gsm_rr_elem_strings[DE_RR_REQ_REF].strptr);
 
-       subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_REQ_REF]);
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_REQ_REF]);
 
-       proto_tree_add_item(subtree, hf_gsm_a_rr_ra, tvb, curr_offset, 1, FALSE);
-       curr_offset++;
-       fn = tvb_get_ntohs(tvb,curr_offset);
-       rfn = reduced_frame_number(fn);
-       proto_tree_add_item(subtree, hf_gsm_a_rr_T1prim, tvb, curr_offset, 1, FALSE);
-       proto_tree_add_item(subtree, hf_gsm_a_rr_T3, tvb, curr_offset, 2, FALSE);
-       curr_offset++;
-       proto_tree_add_item(subtree, hf_gsm_a_rr_T2, tvb, curr_offset, 1, FALSE);
-       curr_offset++;
-       item = proto_tree_add_uint(subtree, hf_gsm_a_rr_rfn, tvb, curr_offset-2, 2, rfn);
-       PROTO_ITEM_SET_GENERATED(item);
+    proto_tree_add_item(subtree, hf_gsm_a_rr_ra, tvb, curr_offset, 1, FALSE);
+    curr_offset++;
+    fn = tvb_get_ntohs(tvb,curr_offset);
+    rfn = reduced_frame_number(fn);
+    proto_tree_add_item(subtree, hf_gsm_a_rr_T1prim, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_item(subtree, hf_gsm_a_rr_T3, tvb, curr_offset, 2, FALSE);
+    curr_offset++;
+    proto_tree_add_item(subtree, hf_gsm_a_rr_T2, tvb, curr_offset, 1, FALSE);
+    curr_offset++;
+    item = proto_tree_add_uint(subtree, hf_gsm_a_rr_rfn, tvb, curr_offset-2, 2, rfn);
+    PROTO_ITEM_SET_GENERATED(item);
 
-       return(curr_offset - offset);
+    return(curr_offset - offset);
 }
 /*
  * [3] 10.5.2.31
@@ -3623,93 +3637,93 @@ de_rr_req_ref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gc
 guint16
 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;
+    guint32    curr_offset;
 
-       curr_offset = offset;
+    curr_offset = offset;
 
-       proto_tree_add_item(tree, hf_gsm_a_rr_RR_cause, tvb, curr_offset, 1, FALSE);
+    proto_tree_add_item(tree, hf_gsm_a_rr_RR_cause, tvb, curr_offset, 1, FALSE);
 
-       curr_offset++;
+    curr_offset++;
 
-       return(curr_offset - offset);
+    return(curr_offset - offset);
 }
 
 /*
  * [3] 10.5.2.32 SI 1 Rest Octets
  */
 static const value_string gsm_a_rr_nch_position_vals[] = {
-       { 0,    "No of blocks = 1 and Number of first block = 0"},
-       { 1,    "No of blocks = 1 and Number of first block = 1"},
-       { 2,    "No of blocks = 1 and Number of first block = 2"},
-       { 3,    "No of blocks = 1 and Number of first block = 3"},
-       { 4,    "No of blocks = 1 and Number of first block = 4"},
-       { 5,    "No of blocks = 1 and Number of first block = 5"},
-       { 6,    "No of blocks = 1 and Number of first block = 6"},
-       { 7,    "No of blocks = 1 and Number of first block = 0"},
-       { 8,    "No of blocks = 2 and Number of first block = 1"},
-       { 9,    "No of blocks = 2 and Number of first block = 2"},
-       {10,    "No of blocks = 2 and Number of first block = 3"},
-       {11,    "No of blocks = 2 and Number of first block = 4"},
-       {12,    "No of blocks = 2 and Number of first block = 5"},
-       {13,    "No of blocks = 3 and Number of first block = 0"},
-       {14,    "No of blocks = 3 and Number of first block = 1"},
-       {15,    "No of blocks = 3 and Number of first block = 2"},
-       {16,    "No of blocks = 3 and Number of first block = 3"},
-       {17,    "No of blocks = 3 and Number of first block = 4"},
-       {18,    "No of blocks = 4 and Number of first block = 0"},
-       {19,    "No of blocks = 4 and Number of first block = 1"},
-       {20,    "No of blocks = 4 and Number of first block = 2"},
-       {21,    "No of blocks = 4 and Number of first block = 3"},
-       {22,    "No of blocks = 5 and Number of first block = 0"},
-       {23,    "No of blocks = 5 and Number of first block = 1"},
-       {24,    "No of blocks = 5 and Number of first block = 2"},
-       {25,    "No of blocks = 6 and Number of first block = 0"},
-       {26,    "No of blocks = 6 and Number of first block = 1"},
-       {27,    "No of blocks = 7 and Number of first block = 0"},
-       {28,    "Reserved"},
-       {29,    "Reserved"},
-       {30,    "Reserved"},
-       {31,    "Reserved"},
-       { 0,    NULL }
+    { 0, "No of blocks = 1 and Number of first block = 0"},
+    { 1, "No of blocks = 1 and Number of first block = 1"},
+    { 2, "No of blocks = 1 and Number of first block = 2"},
+    { 3, "No of blocks = 1 and Number of first block = 3"},
+    { 4, "No of blocks = 1 and Number of first block = 4"},
+    { 5, "No of blocks = 1 and Number of first block = 5"},
+    { 6, "No of blocks = 1 and Number of first block = 6"},
+    { 7, "No of blocks = 1 and Number of first block = 0"},
+    { 8, "No of blocks = 2 and Number of first block = 1"},
+    { 9, "No of blocks = 2 and Number of first block = 2"},
+    {10, "No of blocks = 2 and Number of first block = 3"},
+    {11, "No of blocks = 2 and Number of first block = 4"},
+    {12, "No of blocks = 2 and Number of first block = 5"},
+    {13, "No of blocks = 3 and Number of first block = 0"},
+    {14, "No of blocks = 3 and Number of first block = 1"},
+    {15, "No of blocks = 3 and Number of first block = 2"},
+    {16, "No of blocks = 3 and Number of first block = 3"},
+    {17, "No of blocks = 3 and Number of first block = 4"},
+    {18, "No of blocks = 4 and Number of first block = 0"},
+    {19, "No of blocks = 4 and Number of first block = 1"},
+    {20, "No of blocks = 4 and Number of first block = 2"},
+    {21, "No of blocks = 4 and Number of first block = 3"},
+    {22, "No of blocks = 5 and Number of first block = 0"},
+    {23, "No of blocks = 5 and Number of first block = 1"},
+    {24, "No of blocks = 5 and Number of first block = 2"},
+    {25, "No of blocks = 6 and Number of first block = 0"},
+    {26, "No of blocks = 6 and Number of first block = 1"},
+    {27, "No of blocks = 7 and Number of first block = 0"},
+    {28, "Reserved"},
+    {29, "Reserved"},
+    {30, "Reserved"},
+    {31, "Reserved"},
+    { 0, NULL }
 };
 
 static guint16
 de_rr_si1_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
-       proto_tree      *subtree;
-       proto_item      *item;
-       guint32 curr_offset;
-   gint bit_offset;
+    proto_tree *subtree;
+    proto_item *item;
+    guint32    curr_offset;
+    gint bit_offset;
 
-       len = 1;
-       curr_offset = offset;
-   bit_offset = curr_offset << 3;
+    len = 1;
+    curr_offset = offset;
+    bit_offset = curr_offset << 3;
 
-       item = proto_tree_add_text(tree, tvb, curr_offset, len, "%s",
-               gsm_rr_elem_strings[DE_RR_SI1_REST_OCT].strptr);
+    item = proto_tree_add_text(tree, tvb, curr_offset, len, "%s",
+                               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]);
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_SI1_REST_OCT]);
 
-   if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
-   {
-      bit_offset += 1;
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_nch_position, tvb, bit_offset, 5, FALSE);
-      bit_offset += 5;
-   }
-   else
-   {
-      proto_tree_add_text(subtree,tvb, bit_offset>>3, 1, "NCH position: not present");
-      bit_offset += 1;
-   }
-   if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
-      proto_tree_add_text(subtree,tvb, bit_offset>>3, 1, "Band Indicator: 1900");
-   else
-      proto_tree_add_text(subtree,tvb, bit_offset>>3, 1, "Band Indicator: 1800");
-   bit_offset += 1;
+    if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
+    {
+        bit_offset += 1;
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_nch_position, tvb, bit_offset, 5, FALSE);
+        bit_offset += 5;
+    }
+    else
+    {
+        proto_tree_add_text(subtree,tvb, bit_offset>>3, 1, "NCH position: not present");
+        bit_offset += 1;
+    }
+    if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
+        proto_tree_add_text(subtree,tvb, bit_offset>>3, 1, "Band Indicator: 1900");
+    else
+        proto_tree_add_text(subtree,tvb, bit_offset>>3, 1, "Band Indicator: 1800");
+    bit_offset += 1;
 
-       curr_offset = curr_offset + len;
+    curr_offset = curr_offset + len;
 
-       return curr_offset-offset;
+    return curr_offset-offset;
 }
 
 /*
@@ -3720,1676 +3734,1676 @@ de_rr_si1_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
  * [3] 10.5.2.33a SI 2ter Rest Octets
  */
 static const value_string gsm_a_rr_qsearch_x_vals[] = {
-       { 0,    "-98 dBm"},
-       { 1,    "-94 dBm"},
-       { 2,    "-90 dBm"},
-       { 3,    "-86 dBm"},
-       { 4,    "-82 dBm"},
-       { 5,    "-78 dBm"},
-       { 6,    "-74 dBm"},
-       { 7,    "Always"},
-       { 8,    "-78 dBm"},
-       { 9,    "-74 dBm"},
-       {10,    "-70 dBm"},
-       {11,    "-66 dBm"},
-       {12,    "-62 dBm"},
-       {13,    "-58 dBm"},
-       {14,    "-54 dBm"},
-       {15,    "Never"},
-       { 0,    NULL }
+    { 0, "-98 dBm"},
+    { 1, "-94 dBm"},
+    { 2, "-90 dBm"},
+    { 3, "-86 dBm"},
+    { 4, "-82 dBm"},
+    { 5, "-78 dBm"},
+    { 6, "-74 dBm"},
+    { 7, "Always"},
+    { 8, "-78 dBm"},
+    { 9, "-74 dBm"},
+    {10, "-70 dBm"},
+    {11, "-66 dBm"},
+    {12, "-62 dBm"},
+    {13, "-58 dBm"},
+    {14, "-54 dBm"},
+    {15, "Never"},
+    { 0, NULL }
 };
 
 static const value_string gsm_a_rr_xdd_qoffset_vals[] = {
-       { 0,    "always select a cell if acceptable"},
-       { 1,    "-28 dB"},
-       { 2,    "-24 dB"},
-       { 3,    "-20 dB"},
-       { 4,    "-16 dB"},
-       { 5,    "-12 dB"},
-       { 6,    "-8 dB"},
-       { 7,    "-4 dB"},
-       { 8,    "0 dB"},
-       { 9,    "4 dB"},
-       {10,    "8 dB"},
-       {11,    "12 dB"},
-       {12,    "16 dB"},
-       {13,    "20 dB"},
-       {14,    "24 dB"},
-       {15,    "28 dB"},
-       { 0,    NULL }
+    { 0, "always select a cell if acceptable"},
+    { 1, "-28 dB"},
+    { 2, "-24 dB"},
+    { 3, "-20 dB"},
+    { 4, "-16 dB"},
+    { 5, "-12 dB"},
+    { 6, "-8 dB"},
+    { 7, "-4 dB"},
+    { 8, "0 dB"},
+    { 9, "4 dB"},
+    {10, "8 dB"},
+    {11, "12 dB"},
+    {12, "16 dB"},
+    {13, "20 dB"},
+    {14, "24 dB"},
+    {15, "28 dB"},
+    { 0, NULL }
 };
 
 static const value_string gsm_a_rr_fdd_qmin_vals[] = {
-       { 0,    "-20 dB"},
-       { 1,    "-6 dB"},
-       { 2,    "-18 dB"},
-       { 3,    "-8 dB"},
-       { 4,    "-16 dB"},
-       { 5,    "-10 dB"},
-       { 6,    "-14 dB"},
-       { 7,    "-12 dB"},
-       { 0,    NULL }
+    { 0, "-20 dB"},
+    { 1, "-6 dB"},
+    { 2, "-18 dB"},
+    { 3, "-8 dB"},
+    { 4, "-16 dB"},
+    { 5, "-10 dB"},
+    { 6, "-14 dB"},
+    { 7, "-12 dB"},
+    { 0, NULL }
 };
 
 static const value_string gsm_a_rr_fdd_qmin_offset_vals[] = {
-       { 0,    "0 dB"},
-       { 1,    "2 dB"},
-       { 2,    "4 dB"},
-       { 3,    "6 dB"},
-       { 4,    "8 dB"},
-       { 5,    "10 dB"},
-       { 6,    "12 dB"},
-       { 7,    "14 dB"},
-       { 0,    NULL }
+    { 0, "0 dB"},
+    { 1, "2 dB"},
+    { 2, "4 dB"},
+    { 3, "6 dB"},
+    { 4, "8 dB"},
+    { 5, "10 dB"},
+    { 6, "12 dB"},
+    { 7, "14 dB"},
+    { 0, NULL }
 };
 
 static const value_string gsm_a_rr_fdd_rscpmin_vals[] = {
-       { 0,    "-114 dBm"},
-       { 1,    "-112 dBm"},
-       { 2,    "-110 dBm"},
-       { 3,    "-108 dBm"},
-       { 4,    "-106 dBm"},
-       { 5,    "-104 dBm"},
-       { 6,    "-102 dBm"},
-       { 7,    "-100 dBm"},
-       { 8,    "-98 dBm"},
-       { 9,    "-96 dBm"},
-       {10,    "-94 dBm"},
-       {11,    "-92 dBm"},
-       {12,    "-90 dBm"},
-       {13,    "-88 dBm"},
-       {14,    "-86 dBm"},
-       {15,    "-84 dBm"},
-       { 0,    NULL }
+    { 0, "-114 dBm"},
+    { 1, "-112 dBm"},
+    { 2, "-110 dBm"},
+    { 3, "-108 dBm"},
+    { 4, "-106 dBm"},
+    { 5, "-104 dBm"},
+    { 6, "-102 dBm"},
+    { 7, "-100 dBm"},
+    { 8, "-98 dBm"},
+    { 9, "-96 dBm"},
+    {10, "-94 dBm"},
+    {11, "-92 dBm"},
+    {12, "-90 dBm"},
+    {13, "-88 dBm"},
+    {14, "-86 dBm"},
+    {15, "-84 dBm"},
+    { 0, NULL }
 };
 
 static guint16
 de_rr_si2ter_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
-       proto_tree      *subtree, *subtree2;
-       proto_item      *item, *item2;
-       guint32 curr_offset;
-   gint bit_offset, bit_offset_sav;
-   guint8 value;
-
-       len = 4;
-       curr_offset = offset;
-   bit_offset = curr_offset<<3;
-
-       item = proto_tree_add_text(tree, tvb, curr_offset, len, "%s",
-               gsm_rr_elem_strings[DE_RR_SI2TER_REST_OCT].strptr);
-
-       subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_SI2TER_REST_OCT]);
-
-   if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
-   {
-      bit_offset += 1;
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_si2ter_mp_change_mark, tvb, bit_offset, 1, FALSE);
-      bit_offset += 1;
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_si2ter_3g_change_mark, tvb, bit_offset, 1, FALSE);
-      bit_offset += 1;
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_si2ter_index, tvb, bit_offset, 3, FALSE);
-      bit_offset += 3;
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_si2ter_count, tvb, bit_offset, 3, FALSE);
-      bit_offset += 3;
-      value = tvb_get_bits8(tvb,bit_offset,1);
-      bit_offset += 1;
-      if (value)
-      { /* UTRAN FDD Description */
-         bit_offset_sav = bit_offset;
-         item2 = proto_tree_add_text(subtree, tvb, bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_UTRAN_FDD_DESC].strptr);
-         subtree2 = proto_item_add_subtree(item2, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_UTRAN_FDD_DESC]);
-         bit_offset += 2; /* skip '01' bits */
-         proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_fdd_uarfcn, tvb, bit_offset, 14, FALSE);
-         bit_offset += 14;
-         value = tvb_get_bits8(tvb,bit_offset,1);
-         bit_offset += 1;
-         if (value)
-         {
-            proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_bandwidth_fdd, tvb, bit_offset, 3, FALSE);
-            bit_offset += 3;
-         }
-         proto_item_set_len(item2,((bit_offset-bit_offset_sav)>>3)+1);
-      }
-      value = tvb_get_bits8(tvb,bit_offset,1);
-      bit_offset += 1;
-      if (value)
-      { /* UTRAN TDD Description */
-         bit_offset_sav = bit_offset;
-         item2 = proto_tree_add_text(subtree, tvb, bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_UTRAN_TDD_DESC].strptr);
-         subtree2 = proto_item_add_subtree(item2, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_UTRAN_TDD_DESC]);
-         bit_offset += 2; /* skip '01' bits */
-         proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_tdd_uarfcn, tvb, bit_offset, 14, FALSE);
-         bit_offset += 14;
-         value = tvb_get_bits8(tvb,bit_offset,1);
-         bit_offset += 1;
-         if (value)
-         {
-            proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_bandwidth_tdd, tvb, bit_offset, 3, FALSE);
-            bit_offset += 3;
-         }
-         proto_item_set_len(item2,((bit_offset-bit_offset_sav)>>3)+1);
-      }
-      value = tvb_get_bits8(tvb,bit_offset,1);
-      bit_offset += 1;
-      if (value)
-      { /* 3G Measurement Parameters Description */
-         bit_offset_sav = bit_offset;
-         item2 = proto_tree_add_text(subtree, tvb, bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_3G_MEAS_PARAM_DESC].strptr);
-         subtree2 = proto_item_add_subtree(item2, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_3G_MEAS_PARAM_DESC]);
-         proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_qsearch_i, tvb, bit_offset, 4, FALSE);
-         bit_offset += 4;
-         value = tvb_get_bits8(tvb,bit_offset,1);
-         bit_offset += 1;
-         if (value)
-         {
-            proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_fdd_qoffset, tvb, bit_offset, 4, FALSE);
-            bit_offset += 4;
-            proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_fdd_qmin, tvb, bit_offset, 3, FALSE);
-            bit_offset += 3;
-         }
-         value = tvb_get_bits8(tvb,bit_offset,1);
-         bit_offset += 1;
-         if (value)
-         {
-            proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_tdd_qoffset, tvb, bit_offset, 4, FALSE);
-            bit_offset += 4;
-         }
-         proto_item_set_len(item2,((bit_offset-bit_offset_sav)>>3)+1);
-      }
-      if (((curr_offset + len)<<3) - bit_offset > 0)
-      {
-         /* There is still room left in the Rest Octets IE */
-         if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
-         { /* Additions in release R5 */
+    proto_tree *subtree, *subtree2;
+    proto_item *item, *item2;
+    guint32    curr_offset;
+    gint bit_offset, bit_offset_sav;
+    guint8 value;
+
+    len = 4;
+    curr_offset = offset;
+    bit_offset = curr_offset<<3;
+
+    item = proto_tree_add_text(tree, tvb, curr_offset, len, "%s",
+                               gsm_rr_elem_strings[DE_RR_SI2TER_REST_OCT].strptr);
+
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_SI2TER_REST_OCT]);
+
+    if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
+    {
+        bit_offset += 1;
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_si2ter_mp_change_mark, tvb, bit_offset, 1, FALSE);
+        bit_offset += 1;
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_si2ter_3g_change_mark, tvb, bit_offset, 1, FALSE);
+        bit_offset += 1;
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_si2ter_index, tvb, bit_offset, 3, FALSE);
+        bit_offset += 3;
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_si2ter_count, tvb, bit_offset, 3, FALSE);
+        bit_offset += 3;
+        value = tvb_get_bits8(tvb,bit_offset,1);
+        bit_offset += 1;
+        if (value)
+        { /* UTRAN FDD Description */
+            bit_offset_sav = bit_offset;
+            item2 = proto_tree_add_text(subtree, tvb, bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_UTRAN_FDD_DESC].strptr);
+            subtree2 = proto_item_add_subtree(item2, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_UTRAN_FDD_DESC]);
+            bit_offset += 2; /* skip '01' bits */
+            proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_fdd_uarfcn, tvb, bit_offset, 14, FALSE);
+            bit_offset += 14;
+            value = tvb_get_bits8(tvb,bit_offset,1);
             bit_offset += 1;
+            if (value)
+            {
+                proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_bandwidth_fdd, tvb, bit_offset, 3, FALSE);
+                bit_offset += 3;
+            }
+            proto_item_set_len(item2,((bit_offset-bit_offset_sav)>>3)+1);
+        }
+        value = tvb_get_bits8(tvb,bit_offset,1);
+        bit_offset += 1;
+        if (value)
+        { /* UTRAN TDD Description */
+            bit_offset_sav = bit_offset;
+            item2 = proto_tree_add_text(subtree, tvb, bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_UTRAN_TDD_DESC].strptr);
+            subtree2 = proto_item_add_subtree(item2, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_UTRAN_TDD_DESC]);
+            bit_offset += 2; /* skip '01' bits */
+            proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_tdd_uarfcn, tvb, bit_offset, 14, FALSE);
+            bit_offset += 14;
             value = tvb_get_bits8(tvb,bit_offset,1);
             bit_offset += 1;
             if (value)
-            { /* 3G Additional Measurement Parameters Description */
-               bit_offset_sav = bit_offset;
-               item2 = proto_tree_add_text(subtree, tvb, bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_3G_ADD_MEAS_PARAM_DESC].strptr);
-               subtree2 = proto_item_add_subtree(item2, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_3G_ADD_MEAS_PARAM_DESC]);
-               proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_fdd_qmin_offset, tvb, bit_offset, 3, FALSE);
-               bit_offset += 3;
-               proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_fdd_rscpmin, tvb, bit_offset, 4, FALSE);
-               bit_offset += 4;
-               proto_item_set_len(item2,((bit_offset-bit_offset_sav)>>3)+1);
+            {
+                proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_bandwidth_tdd, tvb, bit_offset, 3, FALSE);
+                bit_offset += 3;
             }
-         }
-         else
+            proto_item_set_len(item2,((bit_offset-bit_offset_sav)>>3)+1);
+        }
+        value = tvb_get_bits8(tvb,bit_offset,1);
+        bit_offset += 1;
+        if (value)
+        { /* 3G Measurement Parameters Description */
+            bit_offset_sav = bit_offset;
+            item2 = proto_tree_add_text(subtree, tvb, bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_3G_MEAS_PARAM_DESC].strptr);
+            subtree2 = proto_item_add_subtree(item2, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_3G_MEAS_PARAM_DESC]);
+            proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_qsearch_i, tvb, bit_offset, 4, FALSE);
+            bit_offset += 4;
+            value = tvb_get_bits8(tvb,bit_offset,1);
             bit_offset += 1;
-      }
-   }
-   else
-   {
-      bit_offset += 1;
-      proto_tree_add_text(subtree,tvb, curr_offset, len ,"Empty");
-   }
+            if (value)
+            {
+                proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_fdd_qoffset, tvb, bit_offset, 4, FALSE);
+                bit_offset += 4;
+                proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_fdd_qmin, tvb, bit_offset, 3, FALSE);
+                bit_offset += 3;
+            }
+            value = tvb_get_bits8(tvb,bit_offset,1);
+            bit_offset += 1;
+            if (value)
+            {
+                proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_tdd_qoffset, tvb, bit_offset, 4, FALSE);
+                bit_offset += 4;
+            }
+            proto_item_set_len(item2,((bit_offset-bit_offset_sav)>>3)+1);
+        }
+        if (((curr_offset + len)<<3) - bit_offset > 0)
+        {
+            /* There is still room left in the Rest Octets IE */
+            if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
+            { /* Additions in release R5 */
+                bit_offset += 1;
+                value = tvb_get_bits8(tvb,bit_offset,1);
+                bit_offset += 1;
+                if (value)
+                { /* 3G Additional Measurement Parameters Description */
+                    bit_offset_sav = bit_offset;
+                    item2 = proto_tree_add_text(subtree, tvb, bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_3G_ADD_MEAS_PARAM_DESC].strptr);
+                    subtree2 = proto_item_add_subtree(item2, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_3G_ADD_MEAS_PARAM_DESC]);
+                    proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_fdd_qmin_offset, tvb, bit_offset, 3, FALSE);
+                    bit_offset += 3;
+                    proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_fdd_rscpmin, tvb, bit_offset, 4, FALSE);
+                    bit_offset += 4;
+                    proto_item_set_len(item2,((bit_offset-bit_offset_sav)>>3)+1);
+                }
+            }
+            else
+                bit_offset += 1;
+        }
+    }
+    else
+    {
+        bit_offset += 1;
+        proto_tree_add_text(subtree,tvb, curr_offset, len ,"Empty");
+    }
 
-       curr_offset = curr_offset + len;
+    curr_offset = curr_offset + len;
 
-       return curr_offset-offset;
+    return curr_offset-offset;
 }
 
 /*
  * [3] 10.5.2.33b SI 2quater Rest Octets
  */
 static const true_false_string gsm_a_rr_gsm_report_type_value = {
-       "The MS shall use the Measurement Report message for reporting",
-       "The MS shall use the Enhanced Measurement Report message for reporting if at least one BSIC is allocated to each BA (list) frequency. Otherwise, the Measurement Report message shall be used"
+    "The MS shall use the Measurement Report message for reporting",
+    "The MS shall use the Enhanced Measurement Report message for reporting if at least one BSIC is allocated to each BA (list) frequency. Otherwise, the Measurement Report message shall be used"
 };
 
 static const true_false_string gsm_a_rr_frequency_scrolling_value = {
-       "Next BSIC in the structure relates to the subsequent frequency in the BA(list)",
-       "Next BSIC in the structure relates to the same frequency in the BA(list)"
+    "Next BSIC in the structure relates to the subsequent frequency in the BA(list)",
+    "Next BSIC in the structure relates to the same frequency in the BA(list)"
 };
 
 static const true_false_string gsm_a_rr_rep_priority_value = {
-       "High reporting priority",
-       "Normal reporting priority"
+    "High reporting priority",
+    "Normal reporting priority"
 };
 
 static const true_false_string gsm_a_rr_report_type_value = {
-       "The MS shall use the PACKET MEASUREMENT REPORT message for reporting",
-       "The MS shall use the PACKET ENHANCED MEASUREMENT REPORT message for reporting"
+    "The MS shall use the PACKET MEASUREMENT REPORT message for reporting",
+    "The MS shall use the PACKET ENHANCED MEASUREMENT REPORT message for reporting"
 };
 
 static const true_false_string gsm_a_rr_reporting_rate_value = {
-       "Reduced reporting rate allowed",
-       "Normal reporting rate"
+    "Reduced reporting rate allowed",
+    "Normal reporting rate"
 };
 
 static const true_false_string gsm_a_rr_invalid_bsic_reporting_value = {
-       "Report on cells with invalid BSIC and allowed NCC part of BSIC is allowed",
-       "Report on cells with invalid BSIC and allowed NCC part of BSIC is not allowed"
+    "Report on cells with invalid BSIC and allowed NCC part of BSIC is allowed",
+    "Report on cells with invalid BSIC and allowed NCC part of BSIC is not allowed"
 };
 
 static const value_string gsm_a_rr_scale_ord_vals[] = {
-       { 0, "An offset of 0 dB shall be used for the reported RXLEV values"},
-       { 1, "An offset of 10 dB shall be used for the reported RXLEV values"},
-       { 2, "An automatic offset shall be used for the reported RXLEV values"},
-       { 0, NULL }
+    { 0, "An offset of 0 dB shall be used for the reported RXLEV values"},
+    { 1, "An offset of 10 dB shall be used for the reported RXLEV values"},
+    { 2, "An automatic offset shall be used for the reported RXLEV values"},
+    { 0, NULL }
 };
 
 static const value_string gsm_a_rr_xxx_reporting_offset_vals[] = {
-       { 0, "Apply an offset of 0 dB to the reported value when prioritising the cells for reporting"},
-       { 1, "Apply an offset of 6 dB to the reported value when prioritising the cells for reporting"},
-       { 2, "Apply an offset of 12 dB to the reported value when prioritising the cells for reporting"},
-       { 3, "Apply an offset of 18 dB to the reported value when prioritising the cells for reporting"},
-       { 4, "Apply an offset of 24 dB to the reported value when prioritising the cells for reporting"},
-       { 5, "Apply an offset of 30 dB to the reported value when prioritising the cells for reporting"},
-       { 6, "Apply an offset of 36 dB to the reported value when prioritising the cells for reporting"},
-       { 7, "Apply an offset of 42 dB to the reported value when prioritising the cells for reporting"},
-       { 0, NULL }
+    { 0, "Apply an offset of 0 dB to the reported value when prioritising the cells for reporting"},
+    { 1, "Apply an offset of 6 dB to the reported value when prioritising the cells for reporting"},
+    { 2, "Apply an offset of 12 dB to the reported value when prioritising the cells for reporting"},
+    { 3, "Apply an offset of 18 dB to the reported value when prioritising the cells for reporting"},
+    { 4, "Apply an offset of 24 dB to the reported value when prioritising the cells for reporting"},
+    { 5, "Apply an offset of 30 dB to the reported value when prioritising the cells for reporting"},
+    { 6, "Apply an offset of 36 dB to the reported value when prioritising the cells for reporting"},
+    { 7, "Apply an offset of 42 dB to the reported value when prioritising the cells for reporting"},
+    { 0, NULL }
 };
 
 static const value_string gsm_a_rr_xxx_reporting_threshold_vals[] = {
-       { 0, "Apply priority reporting if the reported value is above 0 dB"},
-       { 1, "Apply priority reporting if the reported value is above 6 dB"},
-       { 2, "Apply priority reporting if the reported value is above 12 dB"},
-       { 3, "Apply priority reporting if the reported value is above 18 dB"},
-       { 4, "Apply priority reporting if the reported value is above 24 dB"},
-       { 5, "Apply priority reporting if the reported value is above 30 dB"},
-       { 6, "Apply priority reporting if the reported value is above 36 dB"},
-       { 7, "Never apply priority reporting"},
-       { 0, NULL }
+    { 0, "Apply priority reporting if the reported value is above 0 dB"},
+    { 1, "Apply priority reporting if the reported value is above 6 dB"},
+    { 2, "Apply priority reporting if the reported value is above 12 dB"},
+    { 3, "Apply priority reporting if the reported value is above 18 dB"},
+    { 4, "Apply priority reporting if the reported value is above 24 dB"},
+    { 5, "Apply priority reporting if the reported value is above 30 dB"},
+    { 6, "Apply priority reporting if the reported value is above 36 dB"},
+    { 7, "Never apply priority reporting"},
+    { 0, NULL }
 };
 
 static const value_string gsm_a_rr_network_control_order_vals[] = {
-   { 0, "NC0"},
-   { 1, "NC1"},
-   { 2, "NC2"},
-   { 3, "NC0"},
-   { 0, NULL }
+    { 0, "NC0"},
+    { 1, "NC1"},
+    { 2, "NC2"},
+    { 3, "NC0"},
+    { 0, NULL }
 };
 
 static const value_string gsm_a_rr_nc_non_drx_period_vals[] = {
-   { 0, "No non-DRX mode after a measurement report has been sent"},
-   { 1, "0,24 s"},
-   { 2, "0,48 s"},
-   { 3, "0.72 s"},
-   { 4, "0.96 s"},
-   { 5, "1.20 s"},
-   { 6, "1.44 s"},
-   { 7, "1.92 s"},
-   { 0, NULL }
+    { 0, "No non-DRX mode after a measurement report has been sent"},
+    { 1, "0,24 s"},
+    { 2, "0,48 s"},
+    { 3, "0.72 s"},
+    { 4, "0.96 s"},
+    { 5, "1.20 s"},
+    { 6, "1.44 s"},
+    { 7, "1.92 s"},
+    { 0, NULL }
 };
 
 static const value_string gsm_a_rr_nc_reporting_period_x_vals[] = {
-   { 0, "0.48 s"},
-   { 1, "0.96 s"},
-   { 2, "1.92 s"},
-   { 3, "3.84 s"},
-   { 4, "7.68 s"},
-   { 5, "15.36 s"},
-   { 6, "30.72 s"},
-   { 7, "61.44 s"},
-   { 0, NULL }
+    { 0, "0.48 s"},
+    { 1, "0.96 s"},
+    { 2, "1.92 s"},
+    { 3, "3.84 s"},
+    { 4, "7.68 s"},
+    { 5, "15.36 s"},
+    { 6, "30.72 s"},
+    { 7, "61.44 s"},
+    { 0, NULL }
 };
 
 static const true_false_string gsm_a_rr_qsearch_c_initial_value = {
-       "Always",
-       "use Qsearch I"
+    "Always",
+    "use Qsearch I"
 };
 
 static const true_false_string gsm_a_rr_fdd_rep_quant_value = {
-       "Ec/No",
-       "RSCP"
+    "Ec/No",
+    "RSCP"
 };
 
 static const true_false_string gsm_a_rr_3g_search_prio_value = {
-       "3G cells may be searched when BSIC decoding is required",
-       "3G cells may not be searched when BSIC decoding is required"
+    "3G cells may be searched when BSIC decoding is required",
+    "3G cells may not be searched when BSIC decoding is required"
 };
 
 static const true_false_string gsm_a_rr_3g_ccn_active_value = {
-       "CCN towards 3G cells is enabled in the cell",
-       "CCN towards 3G cells is disabled in the cell"
+    "CCN towards 3G cells is enabled in the cell",
+    "CCN towards 3G cells is disabled in the cell"
 };
 
 static gint
 de_rr_si2quater_meas_info_utran_fdd_desc(tvbuff_t *tvb, proto_tree *tree, gint bit_offset)
 {
-   proto_tree *subtree, *subtree2;
-   proto_item *item, *item2;
-   gint curr_bit_offset, idx;
-   gint xdd_cell_info, wsize, nwi, jwi, w[64], i, iused, xdd_indic0;
-   guint8 value;
-
-   curr_bit_offset = bit_offset; 
-
-   item = proto_tree_add_text(tree, tvb, curr_bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_UTRAN_FDD_DESC].strptr);
-   subtree = proto_item_add_subtree(item, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_UTRAN_FDD_DESC]);
-   value = tvb_get_bits8(tvb,curr_bit_offset,1);
-   curr_bit_offset += 1;
-   if (value)
-   {
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_bandwidth_fdd, tvb, curr_bit_offset, 3, FALSE);
-      curr_bit_offset += 3;
-   }
-   value = tvb_get_bits8(tvb,curr_bit_offset,1);
-   curr_bit_offset += 1;
-   while (value)
-   {
-      curr_bit_offset += 1; /* skip a 0 bit */
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_fdd_uarfcn, tvb, curr_bit_offset, 14, FALSE);
-      curr_bit_offset += 14;
-      xdd_indic0 = tvb_get_bits8(tvb,curr_bit_offset,1);
-      proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, 1, "FDD Indic0: %d", xdd_indic0);
-      curr_bit_offset += 1;
-      idx = tvb_get_bits8(tvb,curr_bit_offset,5);
-      proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, 1, "Nr of FDD Cells : %d", idx);
-      curr_bit_offset += 5;
-      idx = convert_n_to_p[idx];
-      item2 = proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, (idx>>3)+1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_UTRAN_FDD_DESC].strptr);
-      subtree2 = proto_item_add_subtree(item2, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_FDD_CELL_INFORMATION_FIELD]);
-      proto_tree_add_text(subtree2,tvb, curr_bit_offset>>3, (idx>>3)+1, "Field is %d bits long", idx);
-      if (xdd_indic0)
-      {
-         proto_tree_add_text(subtree2,tvb, curr_bit_offset>>3, 0, "Scrambling Code: %d", 0);
-         proto_tree_add_text(subtree2,tvb, curr_bit_offset>>3, 0, "Diversity: %d", 0);
-      }
-      if (idx)
-      {
-         wsize = 10;
-         nwi = 1;
-         jwi = 0;
-         i = 1;
-
-         while (idx > 0)
-         {
-            w[i] = tvb_get_bits16(tvb, curr_bit_offset, wsize, FALSE);
-            curr_bit_offset += wsize;
-            idx -= wsize;
-            if (w[i] == 0)
+    proto_tree *subtree, *subtree2;
+    proto_item *item, *item2;
+    gint curr_bit_offset, idx;
+    gint xdd_cell_info, wsize, nwi, jwi, w[64], i, iused, xdd_indic0;
+    guint8 value;
+
+    curr_bit_offset = bit_offset; 
+
+    item = proto_tree_add_text(tree, tvb, curr_bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_UTRAN_FDD_DESC].strptr);
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_UTRAN_FDD_DESC]);
+    value = tvb_get_bits8(tvb,curr_bit_offset,1);
+    curr_bit_offset += 1;
+    if (value)
+    {
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_bandwidth_fdd, tvb, curr_bit_offset, 3, FALSE);
+        curr_bit_offset += 3;
+    }
+    value = tvb_get_bits8(tvb,curr_bit_offset,1);
+    curr_bit_offset += 1;
+    while (value)
+    {
+        curr_bit_offset += 1; /* skip a 0 bit */
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_fdd_uarfcn, tvb, curr_bit_offset, 14, FALSE);
+        curr_bit_offset += 14;
+        xdd_indic0 = tvb_get_bits8(tvb,curr_bit_offset,1);
+        proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, 1, "FDD Indic0: %d", xdd_indic0);
+        curr_bit_offset += 1;
+        idx = tvb_get_bits8(tvb,curr_bit_offset,5);
+        proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, 1, "Nr of FDD Cells : %d", idx);
+        curr_bit_offset += 5;
+        idx = convert_n_to_p[idx];
+        item2 = proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, (idx>>3)+1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_UTRAN_FDD_DESC].strptr);
+        subtree2 = proto_item_add_subtree(item2, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_FDD_CELL_INFORMATION_FIELD]);
+        proto_tree_add_text(subtree2,tvb, curr_bit_offset>>3, (idx>>3)+1, "Field is %d bits long", idx);
+        if (xdd_indic0)
+        {
+            proto_tree_add_text(subtree2,tvb, curr_bit_offset>>3, 0, "Scrambling Code: %d", 0);
+            proto_tree_add_text(subtree2,tvb, curr_bit_offset>>3, 0, "Diversity: %d", 0);
+        }
+        if (idx)
+        {
+            wsize = 10;
+            nwi = 1;
+            jwi = 0;
+            i = 1;
+
+            while (idx > 0)
             {
-               idx = 0;
-               break;
+                w[i] = tvb_get_bits16(tvb, curr_bit_offset, wsize, FALSE);
+                curr_bit_offset += wsize;
+                idx -= wsize;
+                if (w[i] == 0)
+                {
+                    idx = 0;
+                    break;
+                }
+                if (++jwi==nwi)
+                {
+                    jwi = 0;
+                    nwi <<= 1;
+                    wsize--;
+                }
+                i++;
             }
-            if (++jwi==nwi)
+            if (idx < 0)
             {
-               jwi = 0;
-               nwi <<= 1;
-               wsize--;
+                curr_bit_offset += idx;
             }
-            i++;
-         }
-         if (idx < 0)
-         {
-            curr_bit_offset += idx;
-         }
-         iused = i-1;
-
-         for (i=1; i <= iused; i++)
-         {
-            xdd_cell_info = f_k(i, w, 1024);
-            proto_tree_add_text(subtree2,tvb, curr_bit_offset>>3, 0, "Scrambling Code: %d", xdd_cell_info & 0x01FF);
-            proto_tree_add_text(subtree2,tvb, curr_bit_offset>>3, 0, "Diversity: %d", (xdd_cell_info >> 9) & 0x01);
-         }
-      }
-      value = tvb_get_bits8(tvb,curr_bit_offset,1);
-      curr_bit_offset += 1;
-   }
-   proto_item_set_len(item,((curr_bit_offset-bit_offset)>>3)+1);
-
-   return (curr_bit_offset - bit_offset);
+            iused = i-1;
+
+            for (i=1; i <= iused; i++)
+            {
+                xdd_cell_info = f_k(i, w, 1024);
+                proto_tree_add_text(subtree2,tvb, curr_bit_offset>>3, 0, "Scrambling Code: %d", xdd_cell_info & 0x01FF);
+                proto_tree_add_text(subtree2,tvb, curr_bit_offset>>3, 0, "Diversity: %d", (xdd_cell_info >> 9) & 0x01);
+            }
+        }
+        value = tvb_get_bits8(tvb,curr_bit_offset,1);
+        curr_bit_offset += 1;
+    }
+    proto_item_set_len(item,((curr_bit_offset-bit_offset)>>3)+1);
+
+    return (curr_bit_offset - bit_offset);
 }
 
 static gint
 de_rr_si2quater_meas_info_utran_tdd_desc(tvbuff_t *tvb, proto_tree *tree, gint bit_offset)
 {
-   proto_tree *subtree, *subtree2;
-   proto_item *item, *item2;
-   gint curr_bit_offset, idx;
-   gint xdd_cell_info, wsize, nwi, jwi, w[64], i, iused, xdd_indic0;
-   guint8 value;
-
-   curr_bit_offset = bit_offset; 
-
-   item = proto_tree_add_text(tree, tvb, curr_bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_UTRAN_TDD_DESC].strptr);
-   subtree = proto_item_add_subtree(item, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_UTRAN_TDD_DESC]);
-   value = tvb_get_bits8(tvb,curr_bit_offset,1);
-   curr_bit_offset += 1;
-   if (value)
-   {
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_bandwidth_tdd, tvb, curr_bit_offset, 3, FALSE);
-      curr_bit_offset += 3;
-   }
-   value = tvb_get_bits8(tvb,curr_bit_offset,1);
-   curr_bit_offset += 1;
-   while (value)
-   {
-      curr_bit_offset += 1; /* skip a 0 bit */
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_tdd_uarfcn, tvb, curr_bit_offset, 14, FALSE);
-      curr_bit_offset += 14;
-      xdd_indic0 = tvb_get_bits8(tvb,curr_bit_offset,1);
-      proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, 1, "TDD Indic0: %d", xdd_indic0);
-      curr_bit_offset += 1;
-      idx = tvb_get_bits8(tvb,curr_bit_offset,5);
-      proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, 1, "Nr of TDD Cells : %d", idx);
-      curr_bit_offset += 5;
-      idx = convert_n_to_q[idx];
-      item2 = proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, (idx>>3)+1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_UTRAN_TDD_DESC].strptr);
-      subtree2 = proto_item_add_subtree(item2, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_TDD_CELL_INFORMATION_FIELD]);
-      proto_tree_add_text(subtree2,tvb, curr_bit_offset>>3, (idx>>3)+1, "Field is %d bits long", idx);
-      if (xdd_indic0)
-      {
-         proto_tree_add_text(subtree2,tvb, curr_bit_offset>>3, 0, "Cell Parameter: %d", 0);
-         proto_tree_add_text(subtree2,tvb, curr_bit_offset>>3, 0, "Sync Case TSTD: %d", 0);
-         proto_tree_add_text(subtree2,tvb, curr_bit_offset>>3, 0, "Diversity TDD: %d", 0);
-      }
-      if (idx)
-      {
-         wsize = 9;
-         nwi = 1;
-         jwi = 0;
-         i = 1;
-
-         while (idx > 0)
-         {
-            w[i] = tvb_get_bits16(tvb, curr_bit_offset, wsize, FALSE);
-            curr_bit_offset += wsize;
-            idx -= wsize;
-            if (w[i] == 0)
+    proto_tree *subtree, *subtree2;
+    proto_item *item, *item2;
+    gint curr_bit_offset, idx;
+    gint xdd_cell_info, wsize, nwi, jwi, w[64], i, iused, xdd_indic0;
+    guint8 value;
+
+    curr_bit_offset = bit_offset; 
+
+    item = proto_tree_add_text(tree, tvb, curr_bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_UTRAN_TDD_DESC].strptr);
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_UTRAN_TDD_DESC]);
+    value = tvb_get_bits8(tvb,curr_bit_offset,1);
+    curr_bit_offset += 1;
+    if (value)
+    {
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_bandwidth_tdd, tvb, curr_bit_offset, 3, FALSE);
+        curr_bit_offset += 3;
+    }
+    value = tvb_get_bits8(tvb,curr_bit_offset,1);
+    curr_bit_offset += 1;
+    while (value)
+    {
+        curr_bit_offset += 1; /* skip a 0 bit */
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_tdd_uarfcn, tvb, curr_bit_offset, 14, FALSE);
+        curr_bit_offset += 14;
+        xdd_indic0 = tvb_get_bits8(tvb,curr_bit_offset,1);
+        proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, 1, "TDD Indic0: %d", xdd_indic0);
+        curr_bit_offset += 1;
+        idx = tvb_get_bits8(tvb,curr_bit_offset,5);
+        proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, 1, "Nr of TDD Cells : %d", idx);
+        curr_bit_offset += 5;
+        idx = convert_n_to_q[idx];
+        item2 = proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, (idx>>3)+1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_UTRAN_TDD_DESC].strptr);
+        subtree2 = proto_item_add_subtree(item2, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_TDD_CELL_INFORMATION_FIELD]);
+        proto_tree_add_text(subtree2,tvb, curr_bit_offset>>3, (idx>>3)+1, "Field is %d bits long", idx);
+        if (xdd_indic0)
+        {
+            proto_tree_add_text(subtree2,tvb, curr_bit_offset>>3, 0, "Cell Parameter: %d", 0);
+            proto_tree_add_text(subtree2,tvb, curr_bit_offset>>3, 0, "Sync Case TSTD: %d", 0);
+            proto_tree_add_text(subtree2,tvb, curr_bit_offset>>3, 0, "Diversity TDD: %d", 0);
+        }
+        if (idx)
+        {
+            wsize = 9;
+            nwi = 1;
+            jwi = 0;
+            i = 1;
+
+            while (idx > 0)
             {
-               idx = 0;
-               break;
+                w[i] = tvb_get_bits16(tvb, curr_bit_offset, wsize, FALSE);
+                curr_bit_offset += wsize;
+                idx -= wsize;
+                if (w[i] == 0)
+                {
+                    idx = 0;
+                    break;
+                }
+                if (++jwi==nwi)
+                {
+                    jwi = 0;
+                    nwi <<= 1;
+                    wsize--;
+                }
+                i++;
             }
-            if (++jwi==nwi)
+            if (idx < 0)
+            {
+                curr_bit_offset += idx;
+            }
+            iused = i-1;
+
+            for (i=1; i <= iused; i++)
             {
-               jwi = 0;
-               nwi <<= 1;
-               wsize--;
+                xdd_cell_info = f_k(i, w, 512);
+                proto_tree_add_text(subtree2,tvb, curr_bit_offset>>3, 0, "Cell Parameter: %d", xdd_cell_info & 0x07F);
+                proto_tree_add_text(subtree2,tvb, curr_bit_offset>>3, 0, "Sync Case TSTD: %d", (xdd_cell_info >> 7) & 0x01);
+                proto_tree_add_text(subtree2,tvb, curr_bit_offset>>3, 0, "Diversity TDD: %d", (xdd_cell_info >> 8) & 0x01);
             }
-            i++;
-         }
-         if (idx < 0)
-         {
-            curr_bit_offset += idx;
-         }
-         iused = i-1;
-
-         for (i=1; i <= iused; i++)
-         {
-            xdd_cell_info = f_k(i, w, 512);
-            proto_tree_add_text(subtree2,tvb, curr_bit_offset>>3, 0, "Cell Parameter: %d", xdd_cell_info & 0x07F);
-            proto_tree_add_text(subtree2,tvb, curr_bit_offset>>3, 0, "Sync Case TSTD: %d", (xdd_cell_info >> 7) & 0x01);
-            proto_tree_add_text(subtree2,tvb, curr_bit_offset>>3, 0, "Diversity TDD: %d", (xdd_cell_info >> 8) & 0x01);
-         }
-      }
-      value = tvb_get_bits8(tvb,curr_bit_offset,1);
-      curr_bit_offset += 1;
-   }
-   proto_item_set_len(item,((curr_bit_offset-bit_offset)>>3)+1);
-
-   return (curr_bit_offset - bit_offset);
+        }
+        value = tvb_get_bits8(tvb,curr_bit_offset,1);
+        curr_bit_offset += 1;
+    }
+    proto_item_set_len(item,((curr_bit_offset-bit_offset)>>3)+1);
+
+    return (curr_bit_offset - bit_offset);
 }
 
 static gint
 de_rr_rtd_desc(tvbuff_t *tvb, proto_tree *tree, gint bit_offset, rr_rest_octets_elem_idx_t id)
 {
-   proto_tree *subtree;
-   proto_item *item;
-   gint curr_bit_offset, idx;
-   guint8 value;
-
-   curr_bit_offset = bit_offset;
-
-   item = proto_tree_add_text(tree, tvb, curr_bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[id].strptr);
-   subtree = proto_item_add_subtree(item, ett_gsm_rr_rest_octets_elem[id]);
-   value = tvb_get_bits8(tvb,curr_bit_offset,1);
-   curr_bit_offset += 1;
-   if (value)
-   {
-      value = tvb_get_bits8(tvb,curr_bit_offset,1);
-      curr_bit_offset += 1;
-      if (value)
-      {
-         idx = tvb_get_bits8(tvb,curr_bit_offset,5);
-         proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, 1, "BA Index Start RTD: %d", idx);
-         curr_bit_offset += 5;
-      }
-      else
-         idx = 0;
-      value = tvb_get_bits8(tvb,curr_bit_offset,1);
-      curr_bit_offset += 1;
-      while (value == 0)
-      {
-         proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, 1, "RTD index %d: %d TDMA frame(s) modulo 51 TDMA frames", idx, tvb_get_bits8(tvb,curr_bit_offset,6));
-         curr_bit_offset += 6;
-         value = tvb_get_bits8(tvb,curr_bit_offset,1);
-         curr_bit_offset += 1;
-      }
-      value = tvb_get_bits8(tvb,curr_bit_offset,1);
-      curr_bit_offset += 1;
-      while (value == 0)
-      {
-         idx += 1;
-         value = tvb_get_bits8(tvb,curr_bit_offset,1);
-         curr_bit_offset += 1;
-         while (value == 0)
-         {
+    proto_tree *subtree;
+    proto_item *item;
+    gint curr_bit_offset, idx;
+    guint8 value;
+
+    curr_bit_offset = bit_offset;
+
+    item = proto_tree_add_text(tree, tvb, curr_bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[id].strptr);
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_rest_octets_elem[id]);
+    value = tvb_get_bits8(tvb,curr_bit_offset,1);
+    curr_bit_offset += 1;
+    if (value)
+    {
+        value = tvb_get_bits8(tvb,curr_bit_offset,1);
+        curr_bit_offset += 1;
+        if (value)
+        {
+            idx = tvb_get_bits8(tvb,curr_bit_offset,5);
+            proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, 1, "BA Index Start RTD: %d", idx);
+            curr_bit_offset += 5;
+        }
+        else
+            idx = 0;
+        value = tvb_get_bits8(tvb,curr_bit_offset,1);
+        curr_bit_offset += 1;
+        while (value == 0)
+        {
             proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, 1, "RTD index %d: %d TDMA frame(s) modulo 51 TDMA frames", idx, tvb_get_bits8(tvb,curr_bit_offset,6));
             curr_bit_offset += 6;
             value = tvb_get_bits8(tvb,curr_bit_offset,1);
             curr_bit_offset += 1;
-         }
-      }
-   }
-   value = tvb_get_bits8(tvb,curr_bit_offset,1);
-   curr_bit_offset += 1;
-   if (value)
-   {
-      value = tvb_get_bits8(tvb,curr_bit_offset,1);
-      curr_bit_offset += 1;
-      if (value)
-      {
-         idx = tvb_get_bits8(tvb,curr_bit_offset,5);
-         proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, 1, "BA Index Start RTD: %d", idx);
-         curr_bit_offset += 5;
-      }
-      else
-         idx = 0;
-      value = tvb_get_bits8(tvb,curr_bit_offset,1);
-      curr_bit_offset += 1;
-      while (value == 0)
-      {
-         proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, 2, "RTD index %d: %d/64 TDMA frame(s) modulo 51 TDMA frames", idx, tvb_get_bits16(tvb,curr_bit_offset,12,FALSE));
-         curr_bit_offset += 12;
-         value = tvb_get_bits8(tvb,curr_bit_offset,1);
-         curr_bit_offset += 1;
-      }
-      value = tvb_get_bits8(tvb,curr_bit_offset,1);
-      curr_bit_offset += 1;
-      while (value == 0)
-      {
-         idx += 1;
-         value = tvb_get_bits8(tvb,curr_bit_offset,1);
-         curr_bit_offset += 1;
-         while (value == 0)
-         {
+        }
+        value = tvb_get_bits8(tvb,curr_bit_offset,1);
+        curr_bit_offset += 1;
+        while (value == 0)
+        {
+            idx += 1;
+            value = tvb_get_bits8(tvb,curr_bit_offset,1);
+            curr_bit_offset += 1;
+            while (value == 0)
+            {
+                proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, 1, "RTD index %d: %d TDMA frame(s) modulo 51 TDMA frames", idx, tvb_get_bits8(tvb,curr_bit_offset,6));
+                curr_bit_offset += 6;
+                value = tvb_get_bits8(tvb,curr_bit_offset,1);
+                curr_bit_offset += 1;
+            }
+        }
+    }
+    value = tvb_get_bits8(tvb,curr_bit_offset,1);
+    curr_bit_offset += 1;
+    if (value)
+    {
+        value = tvb_get_bits8(tvb,curr_bit_offset,1);
+        curr_bit_offset += 1;
+        if (value)
+        {
+            idx = tvb_get_bits8(tvb,curr_bit_offset,5);
+            proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, 1, "BA Index Start RTD: %d", idx);
+            curr_bit_offset += 5;
+        }
+        else
+            idx = 0;
+        value = tvb_get_bits8(tvb,curr_bit_offset,1);
+        curr_bit_offset += 1;
+        while (value == 0)
+        {
             proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, 2, "RTD index %d: %d/64 TDMA frame(s) modulo 51 TDMA frames", idx, tvb_get_bits16(tvb,curr_bit_offset,12,FALSE));
             curr_bit_offset += 12;
             value = tvb_get_bits8(tvb,curr_bit_offset,1);
             curr_bit_offset += 1;
-         }
-      }
-   }
-   proto_item_set_len(item,((curr_bit_offset-bit_offset)>>3)+1);
+        }
+        value = tvb_get_bits8(tvb,curr_bit_offset,1);
+        curr_bit_offset += 1;
+        while (value == 0)
+        {
+            idx += 1;
+            value = tvb_get_bits8(tvb,curr_bit_offset,1);
+            curr_bit_offset += 1;
+            while (value == 0)
+            {
+                proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, 2, "RTD index %d: %d/64 TDMA frame(s) modulo 51 TDMA frames", idx, tvb_get_bits16(tvb,curr_bit_offset,12,FALSE));
+                curr_bit_offset += 12;
+                value = tvb_get_bits8(tvb,curr_bit_offset,1);
+                curr_bit_offset += 1;
+            }
+        }
+    }
+    proto_item_set_len(item,((curr_bit_offset-bit_offset)>>3)+1);
 
-   return (curr_bit_offset - bit_offset);
+    return (curr_bit_offset - bit_offset);
 }
 
 static gint
 de_rr_bsic_desc(tvbuff_t *tvb, proto_tree *tree, gint bit_offset, rr_rest_octets_elem_idx_t id)
 {
-   proto_tree *subtree;
-   proto_item *item;
-   gint curr_bit_offset, idx;
-   guint8 value;
-
-   curr_bit_offset = bit_offset;
-   item = proto_tree_add_text(tree, tvb, curr_bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[id].strptr);
-   subtree = proto_item_add_subtree(item, ett_gsm_rr_rest_octets_elem[id]);
-   value = tvb_get_bits8(tvb,curr_bit_offset,1);
-   curr_bit_offset += 1;
-   if (value)
-   {
-      proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, 1, "BA Index Start BSIC: %d", tvb_get_bits8(tvb,curr_bit_offset,5));
-      curr_bit_offset += 5;
-   }
-   proto_tree_add_bits_item(subtree, hf_gsm_a_rr_bsic, tvb, bit_offset, 6, FALSE);
-   curr_bit_offset += 6;
-   idx = tvb_get_bits8(tvb,curr_bit_offset,7);
-   proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, 1, "Number Remaining BSIC: %d", idx);
-   curr_bit_offset += 7;
-   while (idx)
-   {
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_frequency_scrolling, tvb, curr_bit_offset, 1, FALSE);
-      curr_bit_offset += 1;
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_bsic, tvb, bit_offset, 6, FALSE);
-      curr_bit_offset += 6;
-      idx -= 1;
-   }
-   proto_item_set_len(item,((curr_bit_offset-bit_offset)>>3)+1);
-
-   return(curr_bit_offset - bit_offset);
+    proto_tree *subtree;
+    proto_item *item;
+    gint curr_bit_offset, idx;
+    guint8 value;
+
+    curr_bit_offset = bit_offset;
+    item = proto_tree_add_text(tree, tvb, curr_bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[id].strptr);
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_rest_octets_elem[id]);
+    value = tvb_get_bits8(tvb,curr_bit_offset,1);
+    curr_bit_offset += 1;
+    if (value)
+    {
+        proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, 1, "BA Index Start BSIC: %d", tvb_get_bits8(tvb,curr_bit_offset,5));
+        curr_bit_offset += 5;
+    }
+    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_bsic, tvb, bit_offset, 6, FALSE);
+    curr_bit_offset += 6;
+    idx = tvb_get_bits8(tvb,curr_bit_offset,7);
+    proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, 1, "Number Remaining BSIC: %d", idx);
+    curr_bit_offset += 7;
+    while (idx)
+    {
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_frequency_scrolling, tvb, curr_bit_offset, 1, FALSE);
+        curr_bit_offset += 1;
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_bsic, tvb, bit_offset, 6, FALSE);
+        curr_bit_offset += 6;
+        idx -= 1;
+    }
+    proto_item_set_len(item,((curr_bit_offset-bit_offset)>>3)+1);
+
+    return(curr_bit_offset - bit_offset);
 }
 
 static gint
 de_rr_report_priority_desc(tvbuff_t *tvb, proto_tree *tree, gint bit_offset, rr_rest_octets_elem_idx_t id)
 {
-   proto_tree *subtree;
-   proto_item *item;
-   gint curr_bit_offset, idx;
+    proto_tree *subtree;
+    proto_item *item;
+    gint curr_bit_offset, idx;
 
-   curr_bit_offset = bit_offset;
+    curr_bit_offset = bit_offset;
 
-   item = proto_tree_add_text(tree, tvb, curr_bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[id].strptr);
-   subtree = proto_item_add_subtree(item, ett_gsm_rr_rest_octets_elem[id]);
-   idx = tvb_get_bits8(tvb,curr_bit_offset,7);
-   proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, 1, "Number Cells: %d", idx);
-   curr_bit_offset += 7;
-   while (idx)
-   {
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_rep_priority, tvb, curr_bit_offset, 1, FALSE);
-      curr_bit_offset += 1;
-      idx -= 1;
-   }
-   proto_item_set_len(item,((curr_bit_offset-bit_offset)>>3)+1);
+    item = proto_tree_add_text(tree, tvb, curr_bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[id].strptr);
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_rest_octets_elem[id]);
+    idx = tvb_get_bits8(tvb,curr_bit_offset,7);
+    proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, 1, "Number Cells: %d", idx);
+    curr_bit_offset += 7;
+    while (idx)
+    {
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_rep_priority, tvb, curr_bit_offset, 1, FALSE);
+        curr_bit_offset += 1;
+        idx -= 1;
+    }
+    proto_item_set_len(item,((curr_bit_offset-bit_offset)>>3)+1);
 
-   return(curr_bit_offset - bit_offset);
+    return(curr_bit_offset - bit_offset);
 }
 
 static gint
 de_rr_meas_param_desc(tvbuff_t *tvb, proto_tree *tree, gint bit_offset, rr_rest_octets_elem_idx_t id)
 {
-   proto_tree *subtree;
-   proto_item *item;
-   gint curr_bit_offset;
-   guint8 value;
-
-   curr_bit_offset = bit_offset;
-   item = proto_tree_add_text(tree, tvb, curr_bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[id].strptr);
-   subtree = proto_item_add_subtree(item, ett_gsm_rr_rest_octets_elem[id]);
-   if (id == DE_RR_REST_OCTETS_GPRS_MEAS_PARAM_DESC)
-   {
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_report_type, tvb, curr_bit_offset, 1, FALSE);
-      curr_bit_offset += 1;
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_reporting_rate, tvb, curr_bit_offset, 1, FALSE);
-      curr_bit_offset +=1;
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_invalid_bsic_reporting, tvb, curr_bit_offset, 1, FALSE);
-      curr_bit_offset +=1;
-   }
-   value = tvb_get_bits8(tvb,curr_bit_offset,1);
-   curr_bit_offset += 1;
-   if (value)
-   {
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_multiband_reporting, tvb, curr_bit_offset, 2, FALSE);
-      curr_bit_offset += 2;
-   }
-   value = tvb_get_bits8(tvb,curr_bit_offset,1);
-   curr_bit_offset += 1;
-   if (value)
-   {
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_serving_band_reporting, tvb, curr_bit_offset, 2, FALSE);
-      curr_bit_offset += 2;
-   }
-   proto_tree_add_bits_item(subtree, hf_gsm_a_rr_scale_ord, tvb, curr_bit_offset, 2, FALSE);
-   curr_bit_offset += 2;
-   value = tvb_get_bits8(tvb,curr_bit_offset,1);
-   curr_bit_offset += 1;
-   if (value)
-   {
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_900_reporting_offset, tvb, curr_bit_offset, 3, FALSE);
-      curr_bit_offset += 3;
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_900_reporting_threshold, tvb, curr_bit_offset, 3, FALSE);
-      curr_bit_offset += 3;
-   }
-   value = tvb_get_bits8(tvb,curr_bit_offset,1);
-   curr_bit_offset += 1;
-   if (value)
-   {
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_1800_reporting_offset, tvb, curr_bit_offset, 3, FALSE);
-      curr_bit_offset += 3;
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_1800_reporting_threshold, tvb, curr_bit_offset, 3, FALSE);
-      curr_bit_offset += 3;
-   }
-   value = tvb_get_bits8(tvb,curr_bit_offset,1);
-   curr_bit_offset += 1;
-   if (value)
-   {
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_400_reporting_offset, tvb, curr_bit_offset, 3, FALSE);
-      curr_bit_offset += 3;
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_400_reporting_threshold, tvb, curr_bit_offset, 3, FALSE);
-      curr_bit_offset += 3;
-   }
-   value = tvb_get_bits8(tvb,curr_bit_offset,1);
-   curr_bit_offset += 1;
-   if (value)
-   {
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_1900_reporting_offset, tvb, curr_bit_offset, 3, FALSE);
-      curr_bit_offset += 3;
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_1900_reporting_threshold, tvb, curr_bit_offset, 3, FALSE);
-      curr_bit_offset += 3;
-   }
-   value = tvb_get_bits8(tvb,curr_bit_offset,1);
-   curr_bit_offset += 1;
-   if (value)
-   {
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_850_reporting_offset, tvb, curr_bit_offset, 3, FALSE);
-      curr_bit_offset += 3;
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_850_reporting_threshold, tvb, curr_bit_offset, 3, FALSE);
-      curr_bit_offset += 3;
-   }
-   proto_item_set_len(item,((curr_bit_offset-bit_offset)>>3)+1);
-
-   return(curr_bit_offset - bit_offset);
+    proto_tree *subtree;
+    proto_item *item;
+    gint curr_bit_offset;
+    guint8 value;
+
+    curr_bit_offset = bit_offset;
+    item = proto_tree_add_text(tree, tvb, curr_bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[id].strptr);
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_rest_octets_elem[id]);
+    if (id == DE_RR_REST_OCTETS_GPRS_MEAS_PARAM_DESC)
+    {
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_report_type, tvb, curr_bit_offset, 1, FALSE);
+        curr_bit_offset += 1;
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_reporting_rate, tvb, curr_bit_offset, 1, FALSE);
+        curr_bit_offset +=1;
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_invalid_bsic_reporting, tvb, curr_bit_offset, 1, FALSE);
+        curr_bit_offset +=1;
+    }
+    value = tvb_get_bits8(tvb,curr_bit_offset,1);
+    curr_bit_offset += 1;
+    if (value)
+    {
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_multiband_reporting, tvb, curr_bit_offset, 2, FALSE);
+        curr_bit_offset += 2;
+    }
+    value = tvb_get_bits8(tvb,curr_bit_offset,1);
+    curr_bit_offset += 1;
+    if (value)
+    {
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_serving_band_reporting, tvb, curr_bit_offset, 2, FALSE);
+        curr_bit_offset += 2;
+    }
+    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_scale_ord, tvb, curr_bit_offset, 2, FALSE);
+    curr_bit_offset += 2;
+    value = tvb_get_bits8(tvb,curr_bit_offset,1);
+    curr_bit_offset += 1;
+    if (value)
+    {
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_900_reporting_offset, tvb, curr_bit_offset, 3, FALSE);
+        curr_bit_offset += 3;
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_900_reporting_threshold, tvb, curr_bit_offset, 3, FALSE);
+        curr_bit_offset += 3;
+    }
+    value = tvb_get_bits8(tvb,curr_bit_offset,1);
+    curr_bit_offset += 1;
+    if (value)
+    {
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_1800_reporting_offset, tvb, curr_bit_offset, 3, FALSE);
+        curr_bit_offset += 3;
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_1800_reporting_threshold, tvb, curr_bit_offset, 3, FALSE);
+        curr_bit_offset += 3;
+    }
+    value = tvb_get_bits8(tvb,curr_bit_offset,1);
+    curr_bit_offset += 1;
+    if (value)
+    {
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_400_reporting_offset, tvb, curr_bit_offset, 3, FALSE);
+        curr_bit_offset += 3;
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_400_reporting_threshold, tvb, curr_bit_offset, 3, FALSE);
+        curr_bit_offset += 3;
+    }
+    value = tvb_get_bits8(tvb,curr_bit_offset,1);
+    curr_bit_offset += 1;
+    if (value)
+    {
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_1900_reporting_offset, tvb, curr_bit_offset, 3, FALSE);
+        curr_bit_offset += 3;
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_1900_reporting_threshold, tvb, curr_bit_offset, 3, FALSE);
+        curr_bit_offset += 3;
+    }
+    value = tvb_get_bits8(tvb,curr_bit_offset,1);
+    curr_bit_offset += 1;
+    if (value)
+    {
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_850_reporting_offset, tvb, curr_bit_offset, 3, FALSE);
+        curr_bit_offset += 3;
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_850_reporting_threshold, tvb, curr_bit_offset, 3, FALSE);
+        curr_bit_offset += 3;
+    }
+    proto_item_set_len(item,((curr_bit_offset-bit_offset)>>3)+1);
+
+    return(curr_bit_offset - bit_offset);
 }
 
 static gint
 de_rr_3g_add_meas_param_desc2(tvbuff_t *tvb, proto_tree *tree, gint bit_offset)
 {
-   proto_tree *subtree;
-   proto_item *item;
-   gint curr_bit_offset;
-   guint8 value;
+    proto_tree *subtree;
+    proto_item *item;
+    gint curr_bit_offset;
+    guint8 value;
 
-   curr_bit_offset = bit_offset;
-   item = proto_tree_add_text(tree, tvb, curr_bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_3G_ADD_MEAS_PARAM_DESC2].strptr);
-   subtree = proto_item_add_subtree(item, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_3G_ADD_MEAS_PARAM_DESC2]);
-   value = tvb_get_bits8(tvb,curr_bit_offset,1);
-   curr_bit_offset += 1;
-   if (value)
-   {
-      proto_tree_add_bits_item(subtree, hf_gsm_a_rr_fdd_reporting_threshold_2, tvb, curr_bit_offset, 6, FALSE);
-      curr_bit_offset += 6;
-   }
-   proto_item_set_len(item,((curr_bit_offset-bit_offset)>>3)+1);
+    curr_bit_offset = bit_offset;
+    item = proto_tree_add_text(tree, tvb, curr_bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_3G_ADD_MEAS_PARAM_DESC2].strptr);
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_3G_ADD_MEAS_PARAM_DESC2]);
+    value = tvb_get_bits8(tvb,curr_bit_offset,1);
+    curr_bit_offset += 1;
+    if (value)
+    {
+        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_fdd_reporting_threshold_2, tvb, curr_bit_offset, 6, FALSE);
+        curr_bit_offset += 6;
+    }
+    proto_item_set_len(item,((curr_bit_offset-bit_offset)>>3)+1);
 
-   return(curr_bit_offset - bit_offset);
+    return(curr_bit_offset - bit_offset);
 }
 
 static guint16
 de_rr_si2quater_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
-       proto_tree      *subtree, *subtree2, *subtree3;
-       proto_item      *item, *item2, *item3;
-       guint32 curr_offset;
-   gint bit_offset, bit_offset_sav, idx;
-   guint8 value;
-
-       len = 20;
-       curr_offset = offset;
-   bit_offset = curr_offset<<3;
-
-       item = proto_tree_add_text(tree, tvb, curr_offset, len, "%s",
-               gsm_rr_elem_strings[DE_RR_SI2QUATER_REST_OCT].strptr);
-
-       subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_SI2QUATER_REST_OCT]);
-
-   proto_tree_add_bits_item(subtree, hf_gsm_a_rr_ba_ind, tvb, bit_offset, 1, FALSE);
-   bit_offset += 1;
-   proto_tree_add_bits_item(subtree, hf_gsm_a_rr_3g_ba_ind, tvb, bit_offset, 1, FALSE);
-   bit_offset += 1;
-   proto_tree_add_bits_item(subtree, hf_gsm_a_rr_mp_change_mark, tvb, bit_offset, 1, FALSE);
-   bit_offset += 1;
-   proto_tree_add_bits_item(subtree, hf_gsm_a_rr_si2quater_index, tvb, bit_offset, 4, FALSE);
-   bit_offset += 4;
-   proto_tree_add_bits_item(subtree, hf_gsm_a_rr_si2quater_count, tvb, bit_offset, 4, FALSE);
-   bit_offset += 4;
-   value = tvb_get_bits8(tvb,bit_offset,1);
-   bit_offset += 1;
-   if (value)
-   { /* Measurement Parameters Description */
-      bit_offset_sav = bit_offset;
-      item2 = proto_tree_add_text(subtree, tvb, bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_MEAS_PARAM_DESC].strptr);
-      subtree2 = proto_item_add_subtree(item2, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_MEAS_PARAM_DESC]);
-      proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_gsm_report_type, tvb, bit_offset, 1, FALSE);
-      bit_offset += 1;
-      proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_serving_band_reporting, tvb, bit_offset, 2, FALSE);
-      bit_offset += 2;
-      proto_item_set_len(item2,((bit_offset-bit_offset_sav)>>3)+1);
-   }
-   value  = tvb_get_bits8(tvb,bit_offset,1);
-   bit_offset += 1;
-   if (value)
-   { /* GPRS Real Time Difference Description */
-      bit_offset += de_rr_rtd_desc(tvb, subtree, bit_offset, DE_RR_REST_OCTETS_GPRS_RTD_DESC);
-
-   }
-   value  = tvb_get_bits8(tvb,bit_offset,1);
-   bit_offset += 1;
-   if (value)
-   { /* GPRS BSIC Description */
-      bit_offset += de_rr_bsic_desc(tvb, subtree, bit_offset, DE_RR_REST_OCTETS_GPRS_BSIC_DESC);
-   }
-   value  = tvb_get_bits8(tvb,bit_offset,1);
-   bit_offset += 1;
-   if (value)
-   { /* GPRS Report Priority Description */
-      bit_offset += de_rr_report_priority_desc(tvb, subtree, bit_offset, DE_RR_REST_OCTETS_GPRS_REPORT_PRIO_DESC);
-   }
-   value  = tvb_get_bits8(tvb,bit_offset,1);
-   bit_offset += 1;
-   if (value)
-   { /* GPRS Measurement Parameters Description */
-      bit_offset += de_rr_meas_param_desc(tvb, subtree, bit_offset, DE_RR_REST_OCTETS_GPRS_MEAS_PARAM_DESC);
-   }
-   value = tvb_get_bits8(tvb,bit_offset,1);
-   bit_offset += 1;
-   if (value)
-   { /* NC Measurement Parameters */
-      bit_offset_sav = bit_offset;
-      item2 = proto_tree_add_text(subtree, tvb, bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_NC_MEAS_PARAM].strptr);
-      subtree2 = proto_item_add_subtree(item2, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_NC_MEAS_PARAM]);
-      proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_network_control_order, tvb, bit_offset, 2, FALSE);
-      bit_offset += 2;
-      value = tvb_get_bits8(tvb,bit_offset,1);
-      bit_offset += 1;
-      if (value)
-      {
-         proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_nc_non_drx_period, tvb, bit_offset, 3, FALSE);
-         bit_offset += 3;
-         proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_nc_reporting_period_i, tvb, bit_offset, 3, FALSE);
-         bit_offset += 3;
-         proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_nc_reporting_period_t, tvb, bit_offset, 3, FALSE);
-         bit_offset += 3;
-      }
-      proto_item_set_len(item2,((bit_offset-bit_offset_sav)>>3)+1);
-   }
-   value = tvb_get_bits8(tvb,bit_offset,1);
-   bit_offset += 1;
-   if (value)
-   { /* SI 2quater Extension Information */
-      bit_offset_sav = bit_offset;
-      item2 = proto_tree_add_text(subtree, tvb, bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_SI2Q_EXT_INFO].strptr);
-      subtree2 = proto_item_add_subtree(item2, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_SI2Q_EXT_INFO]);
-      idx = tvb_get_bits8(tvb,bit_offset,8);
-      proto_tree_add_text(subtree2,tvb, bit_offset>>3, 1, "Extension Length: %d", idx);
-      bit_offset += 8;
-      proto_item_set_len(item2,((bit_offset+idx+1-bit_offset_sav)>>3)+1);
-      value = tvb_get_bits8(tvb,bit_offset,1);
-      bit_offset += 1;
-      if (value)
-      { /* CCN Support Description */
-         bit_offset_sav = bit_offset;
-         item3 = proto_tree_add_text(subtree2, tvb, bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_CCN_SUPPORT_DESC].strptr);
-         subtree3 = proto_item_add_subtree(item3, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_CCN_SUPPORT_DESC]);
-         value = tvb_get_bits8(tvb,bit_offset,7);
-         proto_tree_add_text(subtree3,tvb, bit_offset>>3, 1, "Number Cells: %d", value);
-         bit_offset += 7;
-         idx -= 7;
-         item2 = proto_tree_add_text(subtree3,tvb, bit_offset>>3, (value>>3)+1, "CCN Supported: ");
-         while (value)
-         {
-            proto_item_append_text(item2,"%d",tvb_get_bits8(tvb,bit_offset,1));
-            bit_offset += 1;
-            value -= 1;
-            idx -= 1;
-         }
-         proto_item_set_len(item3,((bit_offset+-bit_offset_sav)>>3)+1);
-      }
-      bit_offset += idx;
-   }
-   value = tvb_get_bits8(tvb,bit_offset,1);
-   bit_offset += 1;
-   if (value)
-   { /* 3G Neighbour Cell Description */
-      bit_offset_sav = bit_offset;
-      item2 = proto_tree_add_text(subtree, tvb, bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_3G_NEIGH_CELL_DESC].strptr);
-      subtree2 = proto_item_add_subtree(item2, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_3G_NEIGH_CELL_DESC]);
-      value = tvb_get_bits8(tvb,bit_offset,1);
-      bit_offset += 1;
-      if (value)
-      {
-         proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_index_start_3g, tvb, bit_offset, 7, FALSE);
-         bit_offset += 7;
-      }
-      value = tvb_get_bits8(tvb,bit_offset,1);
-      bit_offset += 1;
-      if (value)
-      {
-         proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_absolute_index_start_emr, tvb, bit_offset, 7, FALSE);
-         bit_offset += 7;
-      }
-      value = tvb_get_bits8(tvb,bit_offset,1);
-      bit_offset += 1;
-      if (value)
-      { /* UTRAN FDD Description */
-         bit_offset += de_rr_si2quater_meas_info_utran_fdd_desc(tvb, subtree2, bit_offset);
-      }
-      value = tvb_get_bits8(tvb,bit_offset,1);
-      bit_offset += 1;
-      if (value)
-      { /* UTRAN TDD Description */
-         bit_offset += de_rr_si2quater_meas_info_utran_tdd_desc(tvb, subtree2, bit_offset);
-      }
-      proto_item_set_len(item2,((bit_offset-bit_offset_sav)>>3)+1);
-   }
-   value = tvb_get_bits8(tvb,bit_offset,1);
-   bit_offset += 1;
-   if (value)
-   { /* 3G Measurement Parameters Description */
-      bit_offset_sav = bit_offset;
-      item2 = proto_tree_add_text(subtree, tvb, bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_3G_MEAS_PARAM_DESC].strptr);
-      subtree2 = proto_item_add_subtree(item2, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_3G_MEAS_PARAM_DESC]);
-      proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_qsearch_i, tvb, bit_offset, 4, FALSE);
-      bit_offset += 4;
-      proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_qsearch_c_initial, tvb, bit_offset, 1, FALSE);
-      bit_offset += 1;
-      value = tvb_get_bits8(tvb,bit_offset,1);
-      bit_offset += 1;
-      if (value)
-      {
-         proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_fdd_qoffset, tvb, bit_offset, 4, FALSE);
-         bit_offset += 4;
-         proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_fdd_rep_quant, tvb, bit_offset, 1, FALSE);
-         bit_offset += 1;
-         proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_fdd_multirat_reporting, tvb, bit_offset, 2, FALSE);
-         bit_offset += 2;
-         proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_fdd_qmin, tvb, bit_offset, 3, FALSE);
-         bit_offset += 3;
-      }
-      value = tvb_get_bits8(tvb,bit_offset,1);
-      bit_offset += 1;
-      if (value)
-      {
-         proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_tdd_qoffset, tvb, bit_offset, 4, FALSE);
-         bit_offset += 4;
-         proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_tdd_multirat_reporting, tvb, bit_offset, 2, FALSE);
-         bit_offset += 2;
-      }
-      proto_item_set_len(item2,((bit_offset-bit_offset_sav)>>3)+1);
-   }
-   value = tvb_get_bits8(tvb,bit_offset,1);
-   bit_offset += 1;
-   if (value)
-   { /* GPRS 3G Measurement Parameters Description */
-      bit_offset_sav = bit_offset;
-      item2 = proto_tree_add_text(subtree, tvb, bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_GPRS_3G_MEAS_PARAM_DESC].strptr);
-      subtree2 = proto_item_add_subtree(item2, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_GPRS_3G_MEAS_PARAM_DESC]);
-      proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_qsearch_p, tvb, bit_offset, 4, FALSE);
-      bit_offset += 4;
-      proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_3g_search_prio, tvb, bit_offset, 1, FALSE);
-      bit_offset += 1;
-      value = tvb_get_bits8(tvb,bit_offset,1);
-      bit_offset += 1;
-      if (value)
-      {
-         proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_fdd_rep_quant, tvb, bit_offset, 1, FALSE);
-         bit_offset += 1;
-         proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_fdd_multirat_reporting, tvb, bit_offset, 2, FALSE);
-         bit_offset += 2;
-      }
-      value = tvb_get_bits8(tvb,bit_offset,1);
-      bit_offset += 1;
-      if (value)
-      {
-         proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_fdd_reporting_offset, tvb, bit_offset, 3, FALSE);
-         bit_offset += 3;
-         proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_fdd_reporting_threshold, tvb, bit_offset, 3, FALSE);
-         bit_offset += 3;
-      }
-      value = tvb_get_bits8(tvb,bit_offset,1);
-      bit_offset += 1;
-      if (value)
-      {
-         proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_tdd_multirat_reporting, tvb, bit_offset, 2, FALSE);
-         bit_offset += 2;
-      }
-      value = tvb_get_bits8(tvb,bit_offset,1);
-      bit_offset += 1;
-      if (value)
-      {
-         proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_tdd_reporting_offset, tvb, bit_offset, 3, FALSE);
-         bit_offset += 3;
-         proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_tdd_reporting_threshold, tvb, bit_offset, 3, FALSE);
-         bit_offset += 3;
-      }
-      proto_item_set_len(item2,((bit_offset-bit_offset_sav)>>3)+1);
-   }
-   if (((curr_offset + len)<<3) - bit_offset > 0)
-   {
-      /* There is still room left in the Rest Octets IE */
-      if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
-      { /* Additions in Rel-5 */
-         bit_offset += 1;
-         value = tvb_get_bits8(tvb,bit_offset,1);
-         bit_offset += 1;
-         if (value)
-         { /* 3G Additional Measurement Parameters Description */
+    proto_tree *subtree, *subtree2, *subtree3;
+    proto_item *item, *item2, *item3;
+    guint32    curr_offset;
+    gint bit_offset, bit_offset_sav, idx;
+    guint8 value;
+
+    len = 20;
+    curr_offset = offset;
+    bit_offset = curr_offset<<3;
+
+    item = proto_tree_add_text(tree, tvb, curr_offset, len, "%s",
+                               gsm_rr_elem_strings[DE_RR_SI2QUATER_REST_OCT].strptr);
+
+    subtree = proto_item_add_subtree(item, ett_gsm_rr_elem[DE_RR_SI2QUATER_REST_OCT]);
+
+    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_ba_ind, tvb, bit_offset, 1, FALSE);
+    bit_offset += 1;
+    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_3g_ba_ind, tvb, bit_offset, 1, FALSE);
+    bit_offset += 1;
+    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_mp_change_mark, tvb, bit_offset, 1, FALSE);
+    bit_offset += 1;
+    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_si2quater_index, tvb, bit_offset, 4, FALSE);
+    bit_offset += 4;
+    proto_tree_add_bits_item(subtree, hf_gsm_a_rr_si2quater_count, tvb, bit_offset, 4, FALSE);
+    bit_offset += 4;
+    value = tvb_get_bits8(tvb,bit_offset,1);
+    bit_offset += 1;
+    if (value)
+    { /* Measurement Parameters Description */
+        bit_offset_sav = bit_offset;
+        item2 = proto_tree_add_text(subtree, tvb, bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_MEAS_PARAM_DESC].strptr);
+        subtree2 = proto_item_add_subtree(item2, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_MEAS_PARAM_DESC]);
+        proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_gsm_report_type, tvb, bit_offset, 1, FALSE);
+        bit_offset += 1;
+        proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_serving_band_reporting, tvb, bit_offset, 2, FALSE);
+        bit_offset += 2;
+        proto_item_set_len(item2,((bit_offset-bit_offset_sav)>>3)+1);
+    }
+    value  = tvb_get_bits8(tvb,bit_offset,1);
+    bit_offset += 1;
+    if (value)
+    { /* GPRS Real Time Difference Description */
+        bit_offset += de_rr_rtd_desc(tvb, subtree, bit_offset, DE_RR_REST_OCTETS_GPRS_RTD_DESC);
+
+    }
+    value  = tvb_get_bits8(tvb,bit_offset,1);
+    bit_offset += 1;
+    if (value)
+    { /* GPRS BSIC Description */
+        bit_offset += de_rr_bsic_desc(tvb, subtree, bit_offset, DE_RR_REST_OCTETS_GPRS_BSIC_DESC);
+    }
+    value  = tvb_get_bits8(tvb,bit_offset,1);
+    bit_offset += 1;
+    if (value)
+    { /* GPRS Report Priority Description */
+        bit_offset += de_rr_report_priority_desc(tvb, subtree, bit_offset, DE_RR_REST_OCTETS_GPRS_REPORT_PRIO_DESC);
+    }
+    value  = tvb_get_bits8(tvb,bit_offset,1);
+    bit_offset += 1;
+    if (value)
+    { /* GPRS Measurement Parameters Description */
+        bit_offset += de_rr_meas_param_desc(tvb, subtree, bit_offset, DE_RR_REST_OCTETS_GPRS_MEAS_PARAM_DESC);
+    }
+    value = tvb_get_bits8(tvb,bit_offset,1);
+    bit_offset += 1;
+    if (value)
+    { /* NC Measurement Parameters */
+        bit_offset_sav = bit_offset;
+        item2 = proto_tree_add_text(subtree, tvb, bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_NC_MEAS_PARAM].strptr);
+        subtree2 = proto_item_add_subtree(item2, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_NC_MEAS_PARAM]);
+        proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_network_control_order, tvb, bit_offset, 2, FALSE);
+        bit_offset += 2;
+        value = tvb_get_bits8(tvb,bit_offset,1);
+        bit_offset += 1;
+        if (value)
+        {
+            proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_nc_non_drx_period, tvb, bit_offset, 3, FALSE);
+            bit_offset += 3;
+            proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_nc_reporting_period_i, tvb, bit_offset, 3, FALSE);
+            bit_offset += 3;
+            proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_nc_reporting_period_t, tvb, bit_offset, 3, FALSE);
+            bit_offset += 3;
+        }
+        proto_item_set_len(item2,((bit_offset-bit_offset_sav)>>3)+1);
+    }
+    value = tvb_get_bits8(tvb,bit_offset,1);
+    bit_offset += 1;
+    if (value)
+    { /* SI 2quater Extension Information */
+        bit_offset_sav = bit_offset;
+        item2 = proto_tree_add_text(subtree, tvb, bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_SI2Q_EXT_INFO].strptr);
+        subtree2 = proto_item_add_subtree(item2, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_SI2Q_EXT_INFO]);
+        idx = tvb_get_bits8(tvb,bit_offset,8);
+        proto_tree_add_text(subtree2,tvb, bit_offset>>3, 1, "Extension Length: %d", idx);
+        bit_offset += 8;
+        proto_item_set_len(item2,((bit_offset+idx+1-bit_offset_sav)>>3)+1);
+        value = tvb_get_bits8(tvb,bit_offset,1);
+        bit_offset += 1;
+        if (value)
+        { /* CCN Support Description */
             bit_offset_sav = bit_offset;
-            item2 = proto_tree_add_text(subtree, tvb, bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_3G_ADD_MEAS_PARAM_DESC].strptr);
-            subtree2 = proto_item_add_subtree(item2, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_3G_ADD_MEAS_PARAM_DESC]);
-            proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_fdd_qmin_offset, tvb, bit_offset, 3, FALSE);
+            item3 = proto_tree_add_text(subtree2, tvb, bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_CCN_SUPPORT_DESC].strptr);
+            subtree3 = proto_item_add_subtree(item3, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_CCN_SUPPORT_DESC]);
+            value = tvb_get_bits8(tvb,bit_offset,7);
+            proto_tree_add_text(subtree3,tvb, bit_offset>>3, 1, "Number Cells: %d", value);
+            bit_offset += 7;
+            idx -= 7;
+            item2 = proto_tree_add_text(subtree3,tvb, bit_offset>>3, (value>>3)+1, "CCN Supported: ");
+            while (value)
+            {
+                proto_item_append_text(item2,"%d",tvb_get_bits8(tvb,bit_offset,1));
+                bit_offset += 1;
+                value -= 1;
+                idx -= 1;
+            }
+            proto_item_set_len(item3,((bit_offset+-bit_offset_sav)>>3)+1);
+        }
+        bit_offset += idx;
+    }
+    value = tvb_get_bits8(tvb,bit_offset,1);
+    bit_offset += 1;
+    if (value)
+    { /* 3G Neighbour Cell Description */
+        bit_offset_sav = bit_offset;
+        item2 = proto_tree_add_text(subtree, tvb, bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_3G_NEIGH_CELL_DESC].strptr);
+        subtree2 = proto_item_add_subtree(item2, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_3G_NEIGH_CELL_DESC]);
+        value = tvb_get_bits8(tvb,bit_offset,1);
+        bit_offset += 1;
+        if (value)
+        {
+            proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_index_start_3g, tvb, bit_offset, 7, FALSE);
+            bit_offset += 7;
+        }
+        value = tvb_get_bits8(tvb,bit_offset,1);
+        bit_offset += 1;
+        if (value)
+        {
+            proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_absolute_index_start_emr, tvb, bit_offset, 7, FALSE);
+            bit_offset += 7;
+        }
+        value = tvb_get_bits8(tvb,bit_offset,1);
+        bit_offset += 1;
+        if (value)
+        { /* UTRAN FDD Description */
+            bit_offset += de_rr_si2quater_meas_info_utran_fdd_desc(tvb, subtree2, bit_offset);
+        }
+        value = tvb_get_bits8(tvb,bit_offset,1);
+        bit_offset += 1;
+        if (value)
+        { /* UTRAN TDD Description */
+            bit_offset += de_rr_si2quater_meas_info_utran_tdd_desc(tvb, subtree2, bit_offset);
+        }
+        proto_item_set_len(item2,((bit_offset-bit_offset_sav)>>3)+1);
+    }
+    value = tvb_get_bits8(tvb,bit_offset,1);
+    bit_offset += 1;
+    if (value)
+    { /* 3G Measurement Parameters Description */
+        bit_offset_sav = bit_offset;
+        item2 = proto_tree_add_text(subtree, tvb, bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_3G_MEAS_PARAM_DESC].strptr);
+        subtree2 = proto_item_add_subtree(item2, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_3G_MEAS_PARAM_DESC]);
+        proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_qsearch_i, tvb, bit_offset, 4, FALSE);
+        bit_offset += 4;
+        proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_qsearch_c_initial, tvb, bit_offset, 1, FALSE);
+        bit_offset += 1;
+        value = tvb_get_bits8(tvb,bit_offset,1);
+        bit_offset += 1;
+        if (value)
+        {
+            proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_fdd_qoffset, tvb, bit_offset, 4, FALSE);
+            bit_offset += 4;
+            proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_fdd_rep_quant, tvb, bit_offset, 1, FALSE);
+            bit_offset += 1;
+            proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_fdd_multirat_reporting, tvb, bit_offset, 2, FALSE);
+            bit_offset += 2;
+            proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_fdd_qmin, tvb, bit_offset, 3, FALSE);
             bit_offset += 3;
-            proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_fdd_rscpmin, tvb, bit_offset, 4, FALSE);
+        }
+        value = tvb_get_bits8(tvb,bit_offset,1);
+        bit_offset += 1;
+        if (value)
+        {
+            proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_tdd_qoffset, tvb, bit_offset, 4, FALSE);
             bit_offset += 4;
-            proto_item_set_len(item2,((bit_offset-bit_offset_sav)>>3)+1);
-         }
-         value = tvb_get_bits8(tvb,bit_offset,1);
-         bit_offset += 1;
-         if (value)
-         { /* 3G Additional Measurement Parameters Description 2 */
-            bit_offset += de_rr_3g_add_meas_param_desc2(tvb, subtree, bit_offset);
-         }
-         if (((curr_offset + len)<<3) - bit_offset > 0)
-         {
-            /* There is still room left in the Rest Octets IE */
-            if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
-            { /* Additions in Rel-6 */
-               bit_offset += 1;
-               proto_tree_add_bits_item(subtree, hf_gsm_a_rr_3g_ccn_active, tvb, bit_offset, 1, FALSE);
-               bit_offset += 1;
-               if (((curr_offset + len)<<3) - bit_offset > 0)
-               {
-                  /* There is still room left in the Rest Octets IE */
-                  if (gsm_a_rr_is_bit_high(tvb,bit_offset) == TRUE)
-                  { /* Additions in Rel-7 */
-                     bit_offset += 1;
-                     value = tvb_get_bits8(tvb,bit_offset,1);
-                     bit_offset += 1;
-                     if (value)
-                     {
-                        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_700_reporting_offset, tvb, bit_offset, 3, FALSE);
-                        bit_offset += 3;
-                        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_700_reporting_threshold, tvb, bit_offset, 3, FALSE);
-                        bit_offset += 3;
-                     }
-                     value = tvb_get_bits8(tvb,bit_offset,1);
-                     bit_offset += 1;
-                     if (value)
-                     {
-                        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_810_reporting_offset, tvb, bit_offset, 3, FALSE);
-                        bit_offset += 3;
-                        proto_tree_add_bits_item(subtree, hf_gsm_a_rr_810_reporting_threshold, tvb, bit_offset, 3, FALSE);
-                        bit_offset += 3;
-                     }
-                  }
-                  else
-                     bit_offset += 1;
-               }
+            proto_tree_add_bits_item(subtree2, hf_gsm_a_rr_tdd_multirat_reporting, tvb, bit_offset, 2, FALSE);
+            bit_offset += 2;
+        }
+        proto_item_set_len(item2,((bit_offset-bit_offset_sav)>>3)+1);
+    }
+    value = tvb_get_bits8(tvb,bit_offset,1);
+    bit_offset += 1;
+    if (value)
+    { /* GPRS 3G Measurement Parameters Description */
+        bit_offset_sav = bit_offset;
+        item2 = proto_tree_add_text(subtree, tvb, bit_offset>>3, -1, "%s", gsm_rr_rest_octets_elem_strings[DE_RR_REST_OCTETS_GPRS_3G_MEAS_PARAM_DESC].strptr);
+        subtree2 = proto_item_add_subtree(item2, ett_gsm_rr_rest_octets_elem[DE_RR_REST_OCTETS_GPRS_3G_MEAS_PARAM_DESC]);
+       &