regenerated with new asn2eth
authorkukosa <kukosa@f5534014-38df-0310-8fa8-9805f1628bb7>
Mon, 15 May 2006 06:36:17 +0000 (06:36 +0000)
committerkukosa <kukosa@f5534014-38df-0310-8fa8-9805f1628bb7>
Mon, 15 May 2006 06:36:17 +0000 (06:36 +0000)
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@18158 f5534014-38df-0310-8fa8-9805f1628bb7

14 files changed:
asn1/ranap/Makefile.nmake
asn1/ranap/packet-ranap-template.c
asn1/ranap/ranap.cnf
asn1/rnsap/Makefile.nmake
asn1/rnsap/packet-rnsap-template.c
asn1/rrlp/Makefile.nmake
asn1/rrlp/rrlp.cnf
asn1/ulp/Makefile.nmake
asn1/ulp/packet-ulp-template.c
asn1/ulp/ulp.cnf
epan/dissectors/packet-ranap.c
epan/dissectors/packet-rnsap.c
epan/dissectors/packet-rrlp.c
epan/dissectors/packet-ulp.c

index 0019ab978b063b2fefc1e9b9cc5735b7b0da7f5e..f781cd5f8c37114b5b0cd555f2c48c4451637554 100644 (file)
@@ -15,7 +15,7 @@ generate_dissector: $(DISSECTOR_FILES)
 
 $(DISSECTOR_FILES): ../../tools/asn2eth.py ranap.asn packet-$(PROTOCOL_NAME)-template.c packet-$(PROTOCOL_NAME)-template.h ranap.cnf 
 !IFDEF PYTHON
-       $(PYTHON) ../../tools/asn2eth.py -X -e -p $(PROTOCOL_NAME) -c ranap.cnf -s packet-$(PROTOCOL_NAME)-template ranap.asn
+       $(PYTHON) ../../tools/asn2eth.py -e -p $(PROTOCOL_NAME) -c ranap.cnf -s packet-$(PROTOCOL_NAME)-template ranap.asn
 !ELSE
        @echo Error: You need Python to use asn2eth.py
        @exit 1
index f5ace88f1fce5f9e181e0cdfda66ceea29788ebc..5a20f740c43f3af9f8113cacc6398a124672f6a7 100644 (file)
@@ -60,7 +60,6 @@
 int proto_ranap = -1;
 static dissector_table_t nas_pdu_dissector_table;
 
-static int hf_ranap_RANAP_PDU = -1;
 static int hf_ranap_pdu_length = -1;
 static int hf_ranap_IE_length = -1;
 
@@ -1075,8 +1074,7 @@ dissect_ranap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     ranap_item = proto_tree_add_item(tree, proto_ranap, tvb, 0, -1, FALSE);
     ranap_tree = proto_item_add_subtree(ranap_item, ett_ranap);
 
-       per_aligment_type_callback(TRUE);
-       offset = dissect_ranap_RANAP_PDU(tvb, offset, pinfo, ranap_tree, hf_ranap_RANAP_PDU);
+       offset = dissect_RANAP_PDU_PDU(tvb, pinfo, ranap_tree);
 
 }
 
@@ -1135,10 +1133,6 @@ void proto_register_ranap(void) {
 
   /* List of fields */
   static hf_register_info hf[] = {
-    { &hf_ranap_RANAP_PDU,
-      { "RANAP_PDU", "ranap.ranap_pdu",
-        FT_UINT32, BASE_DEC, VALS(ranap_RANAP_PDU_vals), 0,
-        "RANAP_PDU", HFILL }},
        { &hf_ranap_pdu_length,
                { "PDU Length", "ranap.pdu_length", FT_UINT32, BASE_DEC,
                NULL, 0, "Number of octets in the PDU", HFILL }},
index 145e1d9287652a2c32e0ccc3359aaf7ffb444876..e0576883e3f40af3fea3dee8ade2645ccfb60f1d 100644 (file)
@@ -3,7 +3,8 @@
 
 # $Id$
 
-#.PDU
+#.PDU_NEW
+RANAP-PDU
 
 #.NO_EMIT
 
@@ -49,11 +50,7 @@ VAL_PTR = &ProtocolIE_ID
 
        offset = dissect_ranap_ies(tvb, offset, pinfo, tree);
 
-#.FN_PARS NAS-PDU
-
-VAL_PTR = &nas_pdu_tvb
-
-#.FN_BODY NAS-PDU
+#.FN_BODY NAS-PDU  VAL_PTR = &nas_pdu_tvb
 
 tvbuff_t *nas_pdu_tvb=NULL;
 
@@ -75,12 +72,7 @@ tvbuff_t *nas_pdu_tvb=NULL;
 #.FN_BODY RANAP_PRIVATE_IES_Value
 /* FIX ME */
 
-
-#.FN_PARS PLMNidentity
-
-VAL_PTR = &parameter_tvb
-
-#.FN_BODY PLMNidentity
+#.FN_BODY PLMNidentity  VAL_PTR = &parameter_tvb
 
        tvbuff_t *parameter_tvb=NULL;
 
index 1e0e277d118fa955fd72951499abd3e2d266b25c..90ce7e27f2b077bf92405f018be40c2b4e4dabc1 100644 (file)
@@ -15,7 +15,7 @@ generate_dissector: $(DISSECTOR_FILES)
 
 $(DISSECTOR_FILES): ../../tools/asn2eth.py rnsap.asn packet-rnsap-template.c packet-rnsap-template.h rnsap.cnf
 !IFDEF PYTHON
-       $(PYTHON) ../../tools/asn2eth.py -X -e -p $(PROTOCOL_NAME) -c rnsap.cnf -s packet-rnsap-template rnsap.asn
+       $(PYTHON) ../../tools/asn2eth.py -e -p $(PROTOCOL_NAME) -c rnsap.cnf -s packet-rnsap-template rnsap.asn
 !ELSE
        @echo Error: You need Python to use asn2eth.py
        @exit 1
index d8f095b589551a0586f25e73fa48c82a67ccd1a7..8b35bd6395742df293dca315db73c44c9b5a938d 100644 (file)
@@ -2283,7 +2283,6 @@ dissect_rnsap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
        rnsap_item = proto_tree_add_item(tree, proto_rnsap, tvb, 0, -1, FALSE);
        rnsap_tree = proto_item_add_subtree(rnsap_item, ett_rnsap);
        
-       per_aligment_type_callback(TRUE);
        dissect_RNSAP_PDU_PDU(tvb, pinfo, rnsap_tree);
 }
 
index 3ed03295c1c04d7727b988a2b064ce9cdc79e5a8..c0340ffe86617018f12bc1cf5f34d016a4ed2960 100644 (file)
@@ -15,7 +15,7 @@ generate_dissector: $(DISSECTOR_FILES)
 
 $(DISSECTOR_FILES): ../../tools/asn2eth.py rrlp.asn packet-rrlp-template.c packet-rrlp-template.h rrlp.cnf
 !IFDEF PYTHON
-       $(PYTHON) ../../tools/asn2eth.py -X -e -p $(PROTOCOL_NAME) -c rrlp.cnf -s packet-rrlp-template rrlp.asn
+       $(PYTHON) ../../tools/asn2eth.py -u -e -p $(PROTOCOL_NAME) -c rrlp.cnf -s packet-rrlp-template rrlp.asn
 !ELSE
        @echo Error: You need Python to use asn2eth.py
        @exit 1
index 0b942abf5ec4e34a397a25c8910278bc4d65ad91..115469081bd801a6092d1718a4f5cca46705e8a8 100644 (file)
@@ -15,5 +15,6 @@ PDU
        if (check_col(pinfo->cinfo, COL_INFO))
                col_clear(pinfo->cinfo, COL_INFO);
 
-  per_aligment_type_callback(FALSE);
   %(DEFAULT_BODY)s
+#.END
+
index 5ddf0d924fd9f4c7bea57acb49d1aebd7199354b..17733671567962c54efd0087989b6091b8715d3f 100644 (file)
@@ -15,7 +15,7 @@ generate_dissector: $(DISSECTOR_FILES)
 
 $(DISSECTOR_FILES): ../../tools/asn2eth.py ULP.asn packet-ulp-template.c packet-ulp-template.h ulp.cnf
 !IFDEF PYTHON
-       $(PYTHON) ../../tools/asn2eth.py -X -e -p $(PROTOCOL_NAME) -c ulp.cnf -s packet-ulp-template ULP.asn
+       $(PYTHON) ../../tools/asn2eth.py -u -e -p $(PROTOCOL_NAME) -c ulp.cnf -s packet-ulp-template ULP.asn
 !ELSE
        @echo Error: You need Python to use asn2eth.py
        @exit 1
index ca278c4c8c9a12b0e83bd34b4ce8e985f5fa95d4..5efc728e6be561a65f213c97212e43b8a55ffcdc 100644 (file)
@@ -65,8 +65,6 @@ static int proto_ulp = -1;
 static gint ett_ulp = -1;
 #include "packet-ulp-ett.c"
 
-guint32 StatusCode_value_map[20] = {0, 1, 2, 3, 4, 5, 6, 7, 8 ,9 ,10 ,11, 12, 13, 14, 15, 16, 17, 100 , 101};
-
 /* Include constants */
 #include "packet-ulp-val.h"
 
index 2c875d9a32fb3aac05b763ba43e753abf39a2220..500f85414628d5888673a86c596d2cad2a64e0f2 100644 (file)
@@ -15,17 +15,9 @@ ULP-PDU
        if (check_col(pinfo->cinfo, COL_INFO))
                col_clear(pinfo->cinfo, COL_INFO);
 
-  per_aligment_type_callback(FALSE);
   %(DEFAULT_BODY)s
 
-#.FN_BODY StatusCode
-# Remove once asn2eth is fixed to handle PER Enummeration extensions
-  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
-                                                                       19, NULL, NULL, TRUE, 0, StatusCode_value_map);
-
-#.FN_PARS UlpMessage   VAL_PTR = &UlpMessage
-
-#.FN_BODY UlpMessage
+#.FN_BODY UlpMessage  VAL_PTR = &UlpMessage
 
 guint32 UlpMessage;
 
@@ -35,7 +27,9 @@ guint32 UlpMessage;
        {
            col_append_fstr(pinfo->cinfo, COL_INFO, "%%s ", val_to_str(UlpMessage,ulp_UlpMessage_vals,"Unknown"));
        }
+#.END
 
 #.TYPE_ATTR
 IPv4Address  TYPE = FT_IPv4  DISPLAY = BASE_NONE  STRINGS = NULL
 IPv6Address  TYPE = FT_IPv6  DISPLAY = BASE_NONE  STRINGS = NULL
+
index 0ca8a3196fc298b9acc77ccc0fc0231bf251c520..582ec96caa5de4b546bbbc55c22f49bcdbd26e26 100644 (file)
@@ -1,7 +1,7 @@
 /* Do not modify this file.                                                   */
 /* It is created automatically by the ASN.1 to Ethereal dissector compiler    */
 /* .\packet-ranap.c                                                           */
-/* ../../tools/asn2eth.py -X -e -p ranap -c ranap.cnf -s packet-ranap-template ranap.asn */
+/* ../../tools/asn2eth.py -e -p ranap -c ranap.cnf -s packet-ranap-template ranap.asn */
 
 /* Input file: packet-ranap-template.c */
 
 int proto_ranap = -1;
 static dissector_table_t nas_pdu_dissector_table;
 
-static int hf_ranap_RANAP_PDU = -1;
 static int hf_ranap_pdu_length = -1;
 static int hf_ranap_IE_length = -1;
 
 
 /*--- Included file: packet-ranap-hf.c ---*/
 #line 1 "packet-ranap-hf.c"
+static int hf_ranap_RANAP_PDU_PDU = -1;           /* RANAP_PDU */
 static int hf_ranap_initiatingMessage = -1;       /* InitiatingMessage */
 static int hf_ranap_successfulOutcome = -1;       /* SuccessfulOutcome */
 static int hf_ranap_unsuccessfulOutcome = -1;     /* UnsuccessfulOutcome */
@@ -592,7 +592,7 @@ static int hf_ranap_private_id = -1;              /* PrivateIE_ID */
 static int hf_ranap_private_value = -1;           /* RANAP_PRIVATE_IES_Value */
 
 /*--- End of included file: packet-ranap-hf.c ---*/
-#line 68 "packet-ranap-template.c"
+#line 67 "packet-ranap-template.c"
 
 /* Initialize the subtree pointers */
 static int ett_ranap = -1;
@@ -859,7 +859,7 @@ static gint ett_ranap_PrivateIE_Container = -1;
 static gint ett_ranap_PrivateIE_Field = -1;
 
 /*--- End of included file: packet-ranap-ett.c ---*/
-#line 73 "packet-ranap-template.c"
+#line 72 "packet-ranap-template.c"
 
 
 /* Global variables */
@@ -931,7 +931,7 @@ dissect_ranap_ProcedureCode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, p
   offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                               0U, 255U, &ProcedureCode, NULL, FALSE);
 
-#line 32 "ranap.cnf"
+#line 33 "ranap.cnf"
        if (check_col(pinfo->cinfo, COL_INFO))
        col_add_fstr(pinfo->cinfo, COL_INFO, "%s ",
                    val_to_str(ProcedureCode, ranap_ProcedureCode_vals,
@@ -954,8 +954,8 @@ static const value_string ranap_Criticality_vals[] = {
 
 static int
 dissect_ranap_Criticality(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -979,7 +979,7 @@ static int dissect_secondCriticality(tvbuff_t *tvb, int offset, packet_info *pin
 
 static int
 dissect_ranap_Value(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-#line 45 "ranap.cnf"
+#line 46 "ranap.cnf"
        
        offset = dissect_ranap_messages(tvb, offset, pinfo, tree);
 
@@ -1271,7 +1271,7 @@ static int dissect_id(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
 
 static int
 dissect_ranap_RANAP_PROTOCOL_IES_Value(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-#line 49 "ranap.cnf"
+#line 50 "ranap.cnf"
 
        offset = dissect_ranap_ies(tvb, offset, pinfo, tree);
 
@@ -1348,7 +1348,7 @@ static int dissect_ext_id(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
 
 static int
 dissect_ranap_Extension(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-#line 72 "ranap.cnf"
+#line 69 "ranap.cnf"
 
        offset = dissect_ranap_ies(tvb, offset, pinfo, tree);
 
@@ -1906,12 +1906,11 @@ static int dissect_private_id(tvbuff_t *tvb, int offset, packet_info *pinfo, pro
 
 static int
 dissect_ranap_RANAP_PRIVATE_IES_Value(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-#line 76 "ranap.cnf"
+#line 73 "ranap.cnf"
 /* FIX ME */
 
 
 
-
   return offset;
 }
 static int dissect_private_value(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
@@ -3027,8 +3026,8 @@ static const value_string ranap_AccuracyFulfilmentIndicator_vals[] = {
 
 static int
 dissect_ranap_AccuracyFulfilmentIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -3056,7 +3055,7 @@ static int dissect_aPN(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
 
 static int
 dissect_ranap_PLMNidentity(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-#line 84 "ranap.cnf"
+#line 76 "ranap.cnf"
 
        tvbuff_t *parameter_tvb=NULL;
 
@@ -3138,8 +3137,8 @@ static const value_string ranap_T_latitudeSign_vals[] = {
 
 static int
 dissect_ranap_T_latitudeSign(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -3364,8 +3363,8 @@ static const value_string ranap_T_directionOfAltitude_vals[] = {
 
 static int
 dissect_ranap_T_directionOfAltitude(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -3542,8 +3541,8 @@ static const value_string ranap_Alt_RAB_Parameter_MaxBitrateType_vals[] = {
 
 static int
 dissect_ranap_Alt_RAB_Parameter_MaxBitrateType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -3636,8 +3635,8 @@ static const value_string ranap_Alt_RAB_Parameter_GuaranteedBitrateType_vals[] =
 
 static int
 dissect_ranap_Alt_RAB_Parameter_GuaranteedBitrateType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -3851,8 +3850,8 @@ static const value_string ranap_RequestedLocationRelatedDataType_vals[] = {
 
 static int
 dissect_ranap_RequestedLocationRelatedDataType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 3, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     4, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -3901,8 +3900,8 @@ static const value_string ranap_CN_DomainIndicator_vals[] = {
 
 static int
 dissect_ranap_CN_DomainIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -4266,8 +4265,8 @@ static const value_string ranap_ClientType_vals[] = {
 
 static int
 dissect_ranap_ClientType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 7, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     8, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -4398,8 +4397,8 @@ static const value_string ranap_TriggeringMessage_vals[] = {
 
 static int
 dissect_ranap_TriggeringMessage(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 3, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     4, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -4573,7 +4572,7 @@ static int dissect_id_DRX_CycleLengthCoefficient(tvbuff_t *tvb, int offset, pack
 
 static int
 dissect_ranap_NAS_PDU(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-#line 57 "ranap.cnf"
+#line 54 "ranap.cnf"
 
 tvbuff_t *nas_pdu_tvb=NULL;
 
@@ -4605,8 +4604,8 @@ static const value_string ranap_SAPI_vals[] = {
 
 static int
 dissect_ranap_SAPI(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -4752,8 +4751,8 @@ static const value_string ranap_FrequenceLayerConvergenceFlag_vals[] = {
 
 static int
 dissect_ranap_FrequenceLayerConvergenceFlag(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 0, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     1, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -4949,8 +4948,8 @@ static const value_string ranap_InformationExchangeType_vals[] = {
 
 static int
 dissect_ranap_InformationExchangeType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -5176,8 +5175,8 @@ static const value_string ranap_T_traceActivationIndicator_vals[] = {
 
 static int
 dissect_ranap_T_traceActivationIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -5830,8 +5829,8 @@ static const value_string ranap_KeyStatus_vals[] = {
 
 static int
 dissect_ranap_KeyStatus(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -6027,8 +6026,8 @@ static const value_string ranap_LocationRelatedDataRequestTypeSpecificToGERANIuM
 
 static int
 dissect_ranap_LocationRelatedDataRequestTypeSpecificToGERANIuMode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -6045,8 +6044,8 @@ static const value_string ranap_SignallingIndication_vals[] = {
 
 static int
 dissect_ranap_SignallingIndication(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 0, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     1, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -6180,8 +6179,8 @@ static const value_string ranap_MBMSBearerServiceType_vals[] = {
 
 static int
 dissect_ranap_MBMSBearerServiceType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -6199,8 +6198,8 @@ static const value_string ranap_MBMSCNDe_Registration_vals[] = {
 
 static int
 dissect_ranap_MBMSCNDe_Registration(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -6218,8 +6217,8 @@ static const value_string ranap_MBMSRegistrationRequestType_vals[] = {
 
 static int
 dissect_ranap_MBMSRegistrationRequestType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -6350,8 +6349,8 @@ static const value_string ranap_NonSearchingIndication_vals[] = {
 
 static int
 dissect_ranap_NonSearchingIndication(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -6456,7 +6455,7 @@ static const value_string ranap_PagingCause_vals[] = {
 
 static int
 dissect_ranap_PagingCause(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-#line 95 "ranap.cnf"
+#line 87 "ranap.cnf"
   offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
                                                                        5, NULL, NULL, TRUE, 1, NULL);
 
@@ -6481,8 +6480,8 @@ static const value_string ranap_PDP_Type_vals[] = {
 
 static int
 dissect_ranap_PDP_Type(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 4, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     5, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -6595,8 +6594,8 @@ static const value_string ranap_PositioningPriority_vals[] = {
 
 static int
 dissect_ranap_PositioningPriority(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -7253,8 +7252,8 @@ static const value_string ranap_TypeOfError_vals[] = {
 
 static int
 dissect_ranap_TypeOfError(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -7274,8 +7273,8 @@ static const value_string ranap_TrafficClass_vals[] = {
 
 static int
 dissect_ranap_TrafficClass(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 3, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     4, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -7295,8 +7294,8 @@ static const value_string ranap_RAB_AsymmetryIndicator_vals[] = {
 
 static int
 dissect_ranap_RAB_AsymmetryIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 3, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     4, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -7348,8 +7347,8 @@ static const value_string ranap_DeliveryOrder_vals[] = {
 
 static int
 dissect_ranap_DeliveryOrder(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -7458,8 +7457,8 @@ static const value_string ranap_DeliveryOfErroneousSDU_vals[] = {
 
 static int
 dissect_ranap_DeliveryOfErroneousSDU(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -7632,8 +7631,8 @@ static const value_string ranap_Pre_emptionCapability_vals[] = {
 
 static int
 dissect_ranap_Pre_emptionCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -7651,8 +7650,8 @@ static const value_string ranap_Pre_emptionVulnerability_vals[] = {
 
 static int
 dissect_ranap_Pre_emptionVulnerability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -7670,8 +7669,8 @@ static const value_string ranap_QueuingAllowed_vals[] = {
 
 static int
 dissect_ranap_QueuingAllowed(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -7710,8 +7709,8 @@ static const value_string ranap_SourceStatisticsDescriptor_vals[] = {
 
 static int
 dissect_ranap_SourceStatisticsDescriptor(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -7729,8 +7728,8 @@ static const value_string ranap_RelocationRequirement_vals[] = {
 
 static int
 dissect_ranap_RelocationRequirement(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -8013,8 +8012,8 @@ static const value_string ranap_DataVolumeReportingIndication_vals[] = {
 
 static int
 dissect_ranap_DataVolumeReportingIndication(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -8032,8 +8031,8 @@ static const value_string ranap_UserPlaneMode_vals[] = {
 
 static int
 dissect_ranap_UserPlaneMode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -8084,8 +8083,8 @@ static const value_string ranap_Service_Handover_vals[] = {
 
 static int
 dissect_ranap_Service_Handover(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -8200,7 +8199,7 @@ static int dissect_id_RAB_SetupOrModifiedList(tvbuff_t *tvb, int offset, packet_
 
 static int
 dissect_ranap_FirstValue(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-#line 69 "ranap.cnf"
+#line 66 "ranap.cnf"
        offset = dissect_ranap_FirstValue_ies(tvb, offset, pinfo, tree);
 
 
@@ -8215,7 +8214,7 @@ static int dissect_firstValue(tvbuff_t *tvb, int offset, packet_info *pinfo, pro
 
 static int
 dissect_ranap_SecondValue(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-#line 66 "ranap.cnf"
+#line 63 "ranap.cnf"
        offset = dissect_ranap_SecondValue_ies(tvb, offset, pinfo, tree);
 
 
@@ -8347,8 +8346,8 @@ static const value_string ranap_T_emptyFullRAListofIdleModeUEs_vals[] = {
 
 static int
 dissect_ranap_T_emptyFullRAListofIdleModeUEs(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -8390,8 +8389,8 @@ static const value_string ranap_RedirectionCompleted_vals[] = {
 
 static int
 dissect_ranap_RedirectionCompleted(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 0, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     1, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -8424,8 +8423,8 @@ static const value_string ranap_RejectCauseValue_vals[] = {
 
 static int
 dissect_ranap_RejectCauseValue(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 4, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     5, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -8443,8 +8442,8 @@ static const value_string ranap_RelocationType_vals[] = {
 
 static int
 dissect_ranap_RelocationType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -8467,7 +8466,7 @@ static const value_string ranap_Event_vals[] = {
 
 static int
 dissect_ranap_Event(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-#line 100 "ranap.cnf"
+#line 92 "ranap.cnf"
   offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
                                                                        3, NULL, NULL, TRUE, 1, NULL);
 
@@ -8490,8 +8489,8 @@ static const value_string ranap_ReportArea_vals[] = {
 
 static int
 dissect_ranap_ReportArea(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -8528,8 +8527,8 @@ static const value_string ranap_ResponseTime_vals[] = {
 
 static int
 dissect_ranap_ResponseTime(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -8915,8 +8914,8 @@ static const value_string ranap_TraceDepth_vals[] = {
 
 static int
 dissect_ranap_TraceDepth(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -8937,8 +8936,8 @@ static const value_string ranap_T_interface_vals[] = {
 
 static int
 dissect_ranap_T_interface(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 4, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     5, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -9179,8 +9178,8 @@ static const value_string ranap_MBMSLinkingInformation_vals[] = {
 
 static int
 dissect_ranap_MBMSLinkingInformation(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 0, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     1, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -9197,8 +9196,8 @@ static const value_string ranap_AlternativeRABConfigurationRequest_vals[] = {
 
 static int
 dissect_ranap_AlternativeRABConfigurationRequest(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 0, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     1, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -9674,8 +9673,8 @@ static const value_string ranap_RateControlAllowed_vals[] = {
 
 static int
 dissect_ranap_RateControlAllowed(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -9691,8 +9690,8 @@ static const value_string ranap_Presence_vals[] = {
 
 static int
 dissect_ranap_Presence(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -9753,9 +9752,16 @@ dissect_ranap_ProtocolIE_ContainerPairList(tvbuff_t *tvb, int offset, packet_inf
   return offset;
 }
 
+/*--- PDUs ---*/
+
+static int dissect_RANAP_PDU_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+  per_aligment_type_callback(TRUE);
+  return dissect_ranap_RANAP_PDU(tvb, 0, pinfo, tree, hf_ranap_RANAP_PDU_PDU);
+}
+
 
 /*--- End of included file: packet-ranap-fn.c ---*/
-#line 86 "packet-ranap-template.c"
+#line 85 "packet-ranap-template.c"
 
 
 
@@ -10748,8 +10754,7 @@ dissect_ranap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     ranap_item = proto_tree_add_item(tree, proto_ranap, tvb, 0, -1, FALSE);
     ranap_tree = proto_item_add_subtree(ranap_item, ett_ranap);
 
-       per_aligment_type_callback(TRUE);
-       offset = dissect_ranap_RANAP_PDU(tvb, offset, pinfo, ranap_tree, hf_ranap_RANAP_PDU);
+       offset = dissect_RANAP_PDU_PDU(tvb, pinfo, ranap_tree);
 
 }
 
@@ -10808,10 +10813,6 @@ void proto_register_ranap(void) {
 
   /* List of fields */
   static hf_register_info hf[] = {
-    { &hf_ranap_RANAP_PDU,
-      { "RANAP_PDU", "ranap.ranap_pdu",
-        FT_UINT32, BASE_DEC, VALS(ranap_RANAP_PDU_vals), 0,
-        "RANAP_PDU", HFILL }},
        { &hf_ranap_pdu_length,
                { "PDU Length", "ranap.pdu_length", FT_UINT32, BASE_DEC,
                NULL, 0, "Number of octets in the PDU", HFILL }},
@@ -10822,6 +10823,10 @@ void proto_register_ranap(void) {
 
 /*--- Included file: packet-ranap-hfarr.c ---*/
 #line 1 "packet-ranap-hfarr.c"
+    { &hf_ranap_RANAP_PDU_PDU,
+      { "RANAP-PDU", "ranap.RANAP_PDU",
+        FT_UINT32, BASE_DEC, VALS(ranap_RANAP_PDU_vals), 0,
+        "RANAP-PDU", HFILL }},
     { &hf_ranap_initiatingMessage,
       { "initiatingMessage", "ranap.initiatingMessage",
         FT_NONE, BASE_NONE, NULL, 0,
@@ -12884,7 +12889,7 @@ void proto_register_ranap(void) {
         "PrivateIE-Field/value", HFILL }},
 
 /*--- End of included file: packet-ranap-hfarr.c ---*/
-#line 1150 "packet-ranap-template.c"
+#line 1144 "packet-ranap-template.c"
   };
 
   /* List of subtrees */
@@ -13153,7 +13158,7 @@ void proto_register_ranap(void) {
     &ett_ranap_PrivateIE_Field,
 
 /*--- End of included file: packet-ranap-ettarr.c ---*/
-#line 1157 "packet-ranap-template.c"
+#line 1151 "packet-ranap-template.c"
   };
 
   /* Register protocol */
index 99d14ac4d8bd86050196d51179b60ce09f173793..badf7bb012d7721d1f7b81aabff9f5db0555df9c 100644 (file)
@@ -1,7 +1,7 @@
 /* Do not modify this file.                                                   */
 /* It is created automatically by the ASN.1 to Ethereal dissector compiler    */
 /* .\packet-rnsap.c                                                           */
-/* ../../tools/asn2eth.py -X -e -p rnsap -c rnsap.cnf -s packet-rnsap-template rnsap.asn */
+/* ../../tools/asn2eth.py -e -p rnsap -c rnsap.cnf -s packet-rnsap-template rnsap.asn */
 
 /* Input file: packet-rnsap-template.c */
 
@@ -3259,8 +3259,8 @@ static const value_string rnsap_T_ddMode_vals[] = {
 
 static int
 dissect_rnsap_T_ddMode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, &ddMode, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, &ddMode, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -3297,8 +3297,8 @@ static const value_string rnsap_Criticality_vals[] = {
 
 static int
 dissect_rnsap_Criticality(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -6024,8 +6024,8 @@ static const value_string rnsap_AntennaColocationIndicator_vals[] = {
 
 static int
 dissect_rnsap_AntennaColocationIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 0, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     1, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -6260,25 +6260,25 @@ static const value_string rnsap_CauseRadioNetwork_vals[] = {
   {  25, "transaction-not-supported-by-destination-node-b" },
   {  26, "rl-already-activated-or-alocated" },
   {  27, "number-of-UL-codes-not-supported" },
-  {  27, "cell-reserved-for-operator-use" },
-  {  27, "dpc-mode-change-not-supported" },
-  {  27, "information-temporarily-not-available" },
-  {  27, "information-provision-not-supported-for-the-object" },
-  {  27, "power-balancing-status-not-compatible" },
-  {  27, "delayed-activation-not-supported" },
-  {  27, "rl-timing-adjustment-not-supported" },
-  {  27, "unknown-RNTI" },
-  {  27, "measurement-repetition-rate-not-compatible" },
-  {  27, "ue-not-capable-of-support" },
-  {  27, "f-dpch-not-supported" },
+  {  28, "cell-reserved-for-operator-use" },
+  {  29, "dpc-mode-change-not-supported" },
+  {  30, "information-temporarily-not-available" },
+  {  31, "information-provision-not-supported-for-the-object" },
+  {  32, "power-balancing-status-not-compatible" },
+  {  33, "delayed-activation-not-supported" },
+  {  34, "rl-timing-adjustment-not-supported" },
+  {  35, "unknown-RNTI" },
+  {  36, "measurement-repetition-rate-not-compatible" },
+  {  37, "ue-not-capable-of-support" },
+  {  38, "f-dpch-not-supported" },
   { 0, NULL }
 };
 
 
 static int
 dissect_rnsap_CauseRadioNetwork(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 27, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     27, NULL, NULL, TRUE, 12, NULL);
 
   return offset;
 }
@@ -6296,8 +6296,8 @@ static const value_string rnsap_CauseTransport_vals[] = {
 
 static int
 dissect_rnsap_CauseTransport(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -6320,8 +6320,8 @@ static const value_string rnsap_CauseProtocol_vals[] = {
 
 static int
 dissect_rnsap_CauseProtocol(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 6, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     7, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -6342,8 +6342,8 @@ static const value_string rnsap_CauseMisc_vals[] = {
 
 static int
 dissect_rnsap_CauseMisc(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 4, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     5, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -6397,8 +6397,8 @@ static const value_string rnsap_CoverageIndicator_vals[] = {
 
 static int
 dissect_rnsap_CoverageIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -6418,8 +6418,8 @@ static const value_string rnsap_TriggeringMessage_vals[] = {
 
 static int
 dissect_rnsap_TriggeringMessage(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 3, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     4, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -6607,8 +6607,8 @@ static const value_string rnsap_T_sRNTI_BitMaskIndex_vals[] = {
 
 static int
 dissect_rnsap_T_sRNTI_BitMaskIndex(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 18, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     19, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -6662,8 +6662,8 @@ static const value_string rnsap_D_RNTI_ReleaseIndication_vals[] = {
 
 static int
 dissect_rnsap_D_RNTI_ReleaseIndication(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -6681,8 +6681,8 @@ static const value_string rnsap_PayloadCRC_PresenceIndicator_vals[] = {
 
 static int
 dissect_rnsap_PayloadCRC_PresenceIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -6700,8 +6700,8 @@ static const value_string rnsap_UL_FP_Mode_vals[] = {
 
 static int
 dissect_rnsap_UL_FP_Mode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -6762,8 +6762,8 @@ static const value_string rnsap_TrCH_SrcStatisticsDescr_vals[] = {
 
 static int
 dissect_rnsap_TrCH_SrcStatisticsDescr(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -6812,8 +6812,8 @@ static const value_string rnsap_TransmissionTimeIntervalDynamic_vals[] = {
 
 static int
 dissect_rnsap_TransmissionTimeIntervalDynamic(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 3, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     4, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -7033,8 +7033,8 @@ static const value_string rnsap_TransmissionTimeIntervalSemiStatic_vals[] = {
 
 static int
 dissect_rnsap_TransmissionTimeIntervalSemiStatic(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 4, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     5, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -7053,8 +7053,8 @@ static const value_string rnsap_ChannelCodingType_vals[] = {
 
 static int
 dissect_rnsap_ChannelCodingType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -7072,8 +7072,8 @@ static const value_string rnsap_CodingRate_vals[] = {
 
 static int
 dissect_rnsap_CodingRate(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -7107,8 +7107,8 @@ static const value_string rnsap_CRC_Size_vals[] = {
 
 static int
 dissect_rnsap_CRC_Size(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 4, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     5, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -7126,8 +7126,8 @@ static const value_string rnsap_SecondInterleavingMode_vals[] = {
 
 static int
 dissect_rnsap_SecondInterleavingMode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -7256,8 +7256,8 @@ static const value_string rnsap_Pre_emptionCapability_vals[] = {
 
 static int
 dissect_rnsap_Pre_emptionCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -7275,8 +7275,8 @@ static const value_string rnsap_Pre_emptionVulnerability_vals[] = {
 
 static int
 dissect_rnsap_Pre_emptionVulnerability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -7333,8 +7333,8 @@ static const value_string rnsap_QE_Selector_vals[] = {
 
 static int
 dissect_rnsap_QE_Selector(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -7352,8 +7352,8 @@ static const value_string rnsap_DRACControl_vals[] = {
 
 static int
 dissect_rnsap_DRACControl(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -7715,8 +7715,8 @@ static const value_string rnsap_TransportBearerRequestIndicator_vals[] = {
 
 static int
 dissect_rnsap_TransportBearerRequestIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -8263,8 +8263,8 @@ static const value_string rnsap_TFCI_Coding_vals[] = {
 
 static int
 dissect_rnsap_TFCI_Coding(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 3, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     4, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -8640,8 +8640,8 @@ static const value_string rnsap_TDD_TPC_DownlinkStepSize_vals[] = {
 
 static int
 dissect_rnsap_TDD_TPC_DownlinkStepSize(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -8914,8 +8914,8 @@ static const value_string rnsap_Transmission_Gap_Pattern_Sequence_ScramblingCode
 
 static int
 dissect_rnsap_Transmission_Gap_Pattern_Sequence_ScramblingCode_Information(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -8999,8 +8999,8 @@ static const value_string rnsap_TFCI_SignallingMode_vals[] = {
 
 static int
 dissect_rnsap_TFCI_SignallingMode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -9018,8 +9018,8 @@ static const value_string rnsap_TFCI_Presence_vals[] = {
 
 static int
 dissect_rnsap_TFCI_Presence(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -9037,8 +9037,8 @@ static const value_string rnsap_MultiplexingPosition_vals[] = {
 
 static int
 dissect_rnsap_MultiplexingPosition(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -9056,8 +9056,8 @@ static const value_string rnsap_LimitedPowerIncrease_vals[] = {
 
 static int
 dissect_rnsap_LimitedPowerIncrease(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -9149,8 +9149,8 @@ static const value_string rnsap_FDD_TPC_DownlinkStepSize_vals[] = {
 
 static int
 dissect_rnsap_FDD_TPC_DownlinkStepSize(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 3, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     4, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -9171,8 +9171,8 @@ static const value_string rnsap_InnerLoopDLPCStatus_vals[] = {
 
 static int
 dissect_rnsap_InnerLoopDLPCStatus(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -9245,8 +9245,8 @@ static const value_string rnsap_RepetitionPeriod_vals[] = {
 
 static int
 dissect_rnsap_RepetitionPeriod(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 6, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     7, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -9322,8 +9322,8 @@ static const value_string rnsap_MidambleConfigurationBurstType1And3_vals[] = {
 
 static int
 dissect_rnsap_MidambleConfigurationBurstType1And3(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -9402,8 +9402,8 @@ static const value_string rnsap_MidambleConfigurationBurstType2_vals[] = {
 
 static int
 dissect_rnsap_MidambleConfigurationBurstType2(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -9591,8 +9591,8 @@ static const value_string rnsap_TDD_ChannelisationCode_vals[] = {
 
 static int
 dissect_rnsap_TDD_ChannelisationCode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 30, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     31, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -9791,8 +9791,8 @@ static const value_string rnsap_DL_DPCH_TimingAdjustment_vals[] = {
 
 static int
 dissect_rnsap_DL_DPCH_TimingAdjustment(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -9947,8 +9947,8 @@ static const value_string rnsap_DPC_Mode_vals[] = {
 
 static int
 dissect_rnsap_DPC_Mode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -10557,16 +10557,16 @@ static const value_string rnsap_DedicatedMeasurementType_vals[] = {
   {   4, "rx-timing-deviation" },
   {   5, "round-trip-time" },
   {   6, "rx-timing-deviation-LCR" },
-  {   6, "angle-Of-Arrival-LCR" },
-  {   6, "hs-sich-quality" },
+  {   7, "angle-Of-Arrival-LCR" },
+  {   8, "hs-sich-quality" },
   { 0, NULL }
 };
 
 
 static int
 dissect_rnsap_DedicatedMeasurementType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 6, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     6, NULL, NULL, TRUE, 3, NULL);
 
   return offset;
 }
@@ -10766,8 +10766,8 @@ static const value_string rnsap_MeasurementFilterCoefficient_vals[] = {
 
 static int
 dissect_rnsap_MeasurementFilterCoefficient(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 14, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     15, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -10970,8 +10970,8 @@ static const value_string rnsap_TxDiversityIndicator_vals[] = {
 
 static int
 dissect_rnsap_TxDiversityIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -10989,8 +10989,8 @@ static const value_string rnsap_STTD_SupportIndicator_vals[] = {
 
 static int
 dissect_rnsap_STTD_SupportIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -11011,8 +11011,8 @@ static const value_string rnsap_ClosedLoopMode1_SupportIndicator_vals[] = {
 
 static int
 dissect_rnsap_ClosedLoopMode1_SupportIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -11117,8 +11117,8 @@ static const value_string rnsap_SCTD_Indicator_vals[] = {
 
 static int
 dissect_rnsap_SCTD_Indicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -11447,8 +11447,8 @@ static const value_string rnsap_PartialReportingIndicator_vals[] = {
 
 static int
 dissect_rnsap_PartialReportingIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 0, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     1, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -11490,8 +11490,8 @@ static const value_string rnsap_PowerAdjustmentType_vals[] = {
 
 static int
 dissect_rnsap_PowerAdjustmentType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -11614,8 +11614,8 @@ static const value_string rnsap_DiversityControlField_vals[] = {
 
 static int
 dissect_rnsap_DiversityControlField(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -11646,8 +11646,8 @@ static const value_string rnsap_TransmitDiversityIndicator_vals[] = {
 
 static int
 dissect_rnsap_TransmitDiversityIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -12235,8 +12235,8 @@ static const value_string rnsap_FirstRLS_Indicator_vals[] = {
 
 static int
 dissect_rnsap_FirstRLS_Indicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -12389,8 +12389,8 @@ static const value_string rnsap_MultipleURAsIndicator_vals[] = {
 
 static int
 dissect_rnsap_MultipleURAsIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -12502,8 +12502,8 @@ static const value_string rnsap_T_latitudeSign_vals[] = {
 
 static int
 dissect_rnsap_T_latitudeSign(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -12728,8 +12728,8 @@ static const value_string rnsap_TimingAdvanceApplied_vals[] = {
 
 static int
 dissect_rnsap_TimingAdvanceApplied(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -12760,8 +12760,8 @@ static const value_string rnsap_UL_PhysCH_SF_Variation_vals[] = {
 
 static int
 dissect_rnsap_UL_PhysCH_SF_Variation(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -13480,8 +13480,8 @@ static const value_string rnsap_SSDT_SupportIndicator_vals[] = {
 
 static int
 dissect_rnsap_SSDT_SupportIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -13499,8 +13499,8 @@ static const value_string rnsap_Closedlooptimingadjustmentmode_vals[] = {
 
 static int
 dissect_rnsap_Closedlooptimingadjustmentmode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -15170,8 +15170,8 @@ static const value_string rnsap_TypeOfError_vals[] = {
 
 static int
 dissect_rnsap_TypeOfError(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -15518,8 +15518,8 @@ static const value_string rnsap_UL_ScramblingCodeLength_vals[] = {
 
 static int
 dissect_rnsap_UL_ScramblingCodeLength(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -15561,8 +15561,8 @@ static const value_string rnsap_MinUL_ChannelisationCodeLength_vals[] = {
 
 static int
 dissect_rnsap_MinUL_ChannelisationCodeLength(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 6, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     7, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -15611,8 +15611,8 @@ static const value_string rnsap_DiversityMode_vals[] = {
 
 static int
 dissect_rnsap_DiversityMode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 3, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     4, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -16877,8 +16877,8 @@ static const value_string rnsap_TransportFormatManagement_vals[] = {
 
 static int
 dissect_rnsap_TransportFormatManagement(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -17186,8 +17186,8 @@ static const value_string rnsap_T_directionOfAltitude_vals[] = {
 
 static int
 dissect_rnsap_T_directionOfAltitude(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -17377,8 +17377,8 @@ static const value_string rnsap_UL_DL_mode_vals[] = {
 
 static int
 dissect_rnsap_UL_DL_mode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -17397,8 +17397,8 @@ static const value_string rnsap_Downlink_Compressed_Mode_Method_vals[] = {
 
 static int
 dissect_rnsap_Downlink_Compressed_Mode_Method(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -17416,8 +17416,8 @@ static const value_string rnsap_Uplink_Compressed_Mode_Method_vals[] = {
 
 static int
 dissect_rnsap_Uplink_Compressed_Mode_Method(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -17435,8 +17435,8 @@ static const value_string rnsap_DL_FrameType_vals[] = {
 
 static int
 dissect_rnsap_DL_FrameType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -18197,8 +18197,8 @@ static const value_string rnsap_FNReportingIndicator_vals[] = {
 
 static int
 dissect_rnsap_FNReportingIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -18217,15 +18217,15 @@ static const value_string rnsap_PagingCause_vals[] = {
   {   3, "terminating-background-call" },
   {   4, "terminating-low-priority-signalling" },
   {   5, "terminating-high-priority-signalling" },
-  {   5, "terminating-cause-unknown" },
+  {   6, "terminating-cause-unknown" },
   { 0, NULL }
 };
 
 
 static int
 dissect_rnsap_PagingCause(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 5, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     5, NULL, NULL, TRUE, 2, NULL);
 
   return offset;
 }
@@ -18244,8 +18244,8 @@ static const value_string rnsap_CNDomainType_vals[] = {
 
 static int
 dissect_rnsap_CNDomainType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -18266,8 +18266,8 @@ static const value_string rnsap_PagingRecordType_vals[] = {
 
 static int
 dissect_rnsap_PagingRecordType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 4, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     5, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -18343,8 +18343,8 @@ static const value_string rnsap_TUTRANGPSAccuracyClass_vals[] = {
 
 static int
 dissect_rnsap_TUTRANGPSAccuracyClass(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -19124,16 +19124,16 @@ static const value_string rnsap_CommonMeasurementType_vals[] = {
   {   4, "received-total-wide-band-power" },
   {   5, "uplink-timeslot-iscp" },
   {   6, "rT-load" },
-  {   6, "nRT-load-Information" },
-  {   6, "upPTSInterference" },
+  {   7, "nRT-load-Information" },
+  {   8, "upPTSInterference" },
   { 0, NULL }
 };
 
 
 static int
 dissect_rnsap_CommonMeasurementType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 6, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     6, NULL, NULL, TRUE, 3, NULL);
 
   return offset;
 }
@@ -19151,8 +19151,8 @@ static const value_string rnsap_CongestionCause_vals[] = {
 
 static int
 dissect_rnsap_CongestionCause(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -19211,8 +19211,8 @@ static const value_string rnsap_IPSpacingFDD_vals[] = {
 
 static int
 dissect_rnsap_IPSpacingFDD(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 7, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     8, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -19230,8 +19230,8 @@ static const value_string rnsap_IPLength_vals[] = {
 
 static int
 dissect_rnsap_IPLength(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -19346,8 +19346,8 @@ static const value_string rnsap_IPSpacingTDD_vals[] = {
 
 static int
 dissect_rnsap_IPSpacingTDD(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 4, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     5, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -19391,8 +19391,8 @@ static const value_string rnsap_IP_P_CCPCH_vals[] = {
 
 static int
 dissect_rnsap_IP_P_CCPCH(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -19489,8 +19489,8 @@ static const value_string rnsap_GPS_Status_Health_vals[] = {
 
 static int
 dissect_rnsap_GPS_Status_Health(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 6, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     7, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -19599,8 +19599,8 @@ static const value_string rnsap_UDRE_vals[] = {
 
 static int
 dissect_rnsap_UDRE(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 3, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     4, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -20531,8 +20531,8 @@ static const value_string rnsap_PRCDeviation_vals[] = {
 
 static int
 dissect_rnsap_PRCDeviation(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 3, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     4, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -20639,16 +20639,16 @@ static const value_string rnsap_T_informationTypeItem_vals[] = {
   {   5, "gPS-RX-POS" },
   {   6, "sFNSFN-GA-AccessPointPosition" },
   {   7, "cell-Capacity-Class" },
-  {   7, "nACC-Related-Data" },
-  {   7, "mBMSBearerServiceFullAddress" },
+  {   8, "nACC-Related-Data" },
+  {   9, "mBMSBearerServiceFullAddress" },
   { 0, NULL }
 };
 
 
 static int
 dissect_rnsap_T_informationTypeItem(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 7, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     7, NULL, NULL, TRUE, 3, NULL);
 
   return offset;
 }
@@ -20669,8 +20669,8 @@ static const value_string rnsap_T_gPSInformationItem_vals[] = {
 
 static int
 dissect_rnsap_T_gPSInformationItem(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 4, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     5, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -20742,8 +20742,8 @@ static const value_string rnsap_RestrictionStateIndicator_vals[] = {
 
 static int
 dissect_rnsap_RestrictionStateIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -20907,8 +20907,8 @@ static const value_string rnsap_MidambleAllocationMode_vals[] = {
 
 static int
 dissect_rnsap_MidambleAllocationMode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -20932,8 +20932,8 @@ static const value_string rnsap_MidambleConfigurationLCR_vals[] = {
 
 static int
 dissect_rnsap_MidambleConfigurationLCR(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 7, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     8, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -20971,8 +20971,8 @@ static const value_string rnsap_Modulation_vals[] = {
 
 static int
 dissect_rnsap_Modulation(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -21591,8 +21591,8 @@ static const value_string rnsap_TSTD_Indicator_vals[] = {
 
 static int
 dissect_rnsap_TSTD_Indicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -22290,8 +22290,8 @@ static const value_string rnsap_TSTD_Support_Indicator_vals[] = {
 
 static int
 dissect_rnsap_TSTD_Support_Indicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -22464,8 +22464,8 @@ static const value_string rnsap_DPC_Mode_Change_SupportIndicator_vals[] = {
 
 static int
 dissect_rnsap_DPC_Mode_Change_SupportIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 0, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     1, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -22557,8 +22557,8 @@ static const value_string rnsap_DL_PowerBalancing_ActivationIndicator_vals[] = {
 
 static int
 dissect_rnsap_DL_PowerBalancing_ActivationIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 0, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     1, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -22575,8 +22575,8 @@ static const value_string rnsap_DL_PowerBalancing_UpdatedIndicator_vals[] = {
 
 static int
 dissect_rnsap_DL_PowerBalancing_UpdatedIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 0, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     1, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -22627,8 +22627,8 @@ static const value_string rnsap_IPSub_vals[] = {
 
 static int
 dissect_rnsap_IPSub(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -22803,8 +22803,8 @@ static const value_string rnsap_CommonTransportChannelResourcesInitialisationNot
 
 static int
 dissect_rnsap_CommonTransportChannelResourcesInitialisationNotRequired(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 0, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     1, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -23054,8 +23054,8 @@ static const value_string rnsap_TrafficClass_vals[] = {
 
 static int
 dissect_rnsap_TrafficClass(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 3, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     4, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -23148,8 +23148,8 @@ static const value_string rnsap_T1_vals[] = {
 
 static int
 dissect_rnsap_T1(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 15, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     16, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -23192,8 +23192,8 @@ static const value_string rnsap_DiscardTimer_vals[] = {
 
 static int
 dissect_rnsap_DiscardTimer(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 26, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     27, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -23216,8 +23216,8 @@ static const value_string rnsap_MAC_hsWindowSize_vals[] = {
 
 static int
 dissect_rnsap_MAC_hsWindowSize(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 6, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     7, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -23313,8 +23313,8 @@ static const value_string rnsap_RLC_Mode_vals[] = {
 
 static int
 dissect_rnsap_RLC_Mode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -23448,8 +23448,8 @@ static const value_string rnsap_CQI_Feedback_Cycle_vals[] = {
 
 static int
 dissect_rnsap_CQI_Feedback_Cycle(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 8, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     9, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -23798,8 +23798,8 @@ static const value_string rnsap_T_process_Memory_Size_vals[] = {
 
 static int
 dissect_rnsap_T_process_Memory_Size(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 60, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     61, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -23916,8 +23916,8 @@ static const value_string rnsap_HSSCCH_CodeChangeIndicator_vals[] = {
 
 static int
 dissect_rnsap_HSSCCH_CodeChangeIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 0, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     1, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -24128,8 +24128,8 @@ static const value_string rnsap_HSSCCH_Code_Change_Grant_vals[] = {
 
 static int
 dissect_rnsap_HSSCCH_Code_Change_Grant(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 0, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     1, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -24570,8 +24570,8 @@ static const value_string rnsap_AOA_LCR_Accuracy_Class_vals[] = {
 
 static int
 dissect_rnsap_AOA_LCR_Accuracy_Class(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 7, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     8, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -24740,8 +24740,8 @@ static const value_string rnsap_MAChs_ResetIndicator_vals[] = {
 
 static int
 dissect_rnsap_MAChs_ResetIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 0, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     1, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -24760,8 +24760,8 @@ static const value_string rnsap_TDD_TPC_UplinkStepSize_LCR_vals[] = {
 
 static int
 dissect_rnsap_TDD_TPC_UplinkStepSize_LCR(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -24908,8 +24908,8 @@ static const value_string rnsap_T_maxSYNC_UL_transmissions_vals[] = {
 
 static int
 dissect_rnsap_T_maxSYNC_UL_transmissions(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 3, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     4, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -25257,8 +25257,8 @@ static const value_string rnsap_Support_8PSK_vals[] = {
 
 static int
 dissect_rnsap_Support_8PSK(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 0, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     1, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -25319,8 +25319,8 @@ static const value_string rnsap_Primary_CPICH_Usage_For_Channel_Estimation_vals[
 
 static int
 dissect_rnsap_Primary_CPICH_Usage_For_Channel_Estimation(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -25384,8 +25384,8 @@ static const value_string rnsap_Phase_Reference_Update_Indicator_vals[] = {
 
 static int
 dissect_rnsap_Phase_Reference_Update_Indicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 0, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     1, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -25425,8 +25425,8 @@ static const value_string rnsap_Unidirectional_DCH_Indicator_vals[] = {
 
 static int
 dissect_rnsap_Unidirectional_DCH_Indicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -25756,8 +25756,8 @@ static const value_string rnsap_UEMeasurementType_vals[] = {
 
 static int
 dissect_rnsap_UEMeasurementType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -25776,8 +25776,8 @@ static const value_string rnsap_UEMeasurementTimeslotInfoHCRBurstType_vals[] = {
 
 static int
 dissect_rnsap_UEMeasurementTimeslotInfoHCRBurstType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -25872,8 +25872,8 @@ static const value_string rnsap_UEMeasurementReportCharacteristicsPeriodicAmount
 
 static int
 dissect_rnsap_UEMeasurementReportCharacteristicsPeriodicAmountofReporting(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 7, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     8, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -25904,8 +25904,8 @@ static const value_string rnsap_UEMeasurementReportCharacteristicsPeriodicReport
 
 static int
 dissect_rnsap_UEMeasurementReportCharacteristicsPeriodicReportingInterval(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 14, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     15, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -26021,8 +26021,8 @@ static const value_string rnsap_UEMeasurementTimeToTrigger_vals[] = {
 
 static int
 dissect_rnsap_UEMeasurementTimeToTrigger(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 15, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     16, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -26215,8 +26215,8 @@ static const value_string rnsap_UEMeasurementParameterModAllow_vals[] = {
 
 static int
 dissect_rnsap_UEMeasurementParameterModAllow(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 0, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     1, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -26544,8 +26544,8 @@ static const value_string rnsap_T_interface_vals[] = {
 
 static int
 dissect_rnsap_T_interface(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -26599,8 +26599,8 @@ static const value_string rnsap_TraceDepth_vals[] = {
 
 static int
 dissect_rnsap_TraceDepth(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -27106,8 +27106,8 @@ static const value_string rnsap_TransmissionMode_vals[] = {
 
 static int
 dissect_rnsap_TransmissionMode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -27259,8 +27259,8 @@ static const value_string rnsap_HARQ_Preamble_Mode_vals[] = {
 
 static int
 dissect_rnsap_HARQ_Preamble_Mode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -27277,8 +27277,8 @@ static const value_string rnsap_SynchronisationIndicator_vals[] = {
 
 static int
 dissect_rnsap_SynchronisationIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 0, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     1, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -27296,8 +27296,8 @@ static const value_string rnsap_UL_DPDCHIndicatorEDCH_vals[] = {
 
 static int
 dissect_rnsap_UL_DPDCHIndicatorEDCH(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -27321,8 +27321,8 @@ static const value_string rnsap_Max_Set_E_DPDCHs_vals[] = {
 
 static int
 dissect_rnsap_Max_Set_E_DPDCHs(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 7, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     8, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -27438,8 +27438,8 @@ static const value_string rnsap_E_TTI_vals[] = {
 
 static int
 dissect_rnsap_E_TTI(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -27548,8 +27548,8 @@ static const value_string rnsap_EDCH_RL_Indication_vals[] = {
 
 static int
 dissect_rnsap_EDCH_RL_Indication(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -27676,8 +27676,8 @@ static const value_string rnsap_BundlingModeIndicator_vals[] = {
 
 static int
 dissect_rnsap_BundlingModeIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -27993,8 +27993,8 @@ static const value_string rnsap_E_Primary_Secondary_Grant_Selector_vals[] = {
 
 static int
 dissect_rnsap_E_Primary_Secondary_Grant_Selector(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -28011,8 +28011,8 @@ static const value_string rnsap_E_RGCH_Release_Indicator_vals[] = {
 
 static int
 dissect_rnsap_E_RGCH_Release_Indicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 0, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     1, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -28421,8 +28421,8 @@ static const value_string rnsap_Initial_DL_DPCH_TimingAdjustment_Allowed_vals[]
 
 static int
 dissect_rnsap_Initial_DL_DPCH_TimingAdjustment_Allowed(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 0, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     1, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -28439,8 +28439,8 @@ static const value_string rnsap_User_Plane_Congestion_Fields_Inclusion_vals[] =
 
 static int
 dissect_rnsap_User_Plane_Congestion_Fields_Inclusion(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 0, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     1, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -28457,8 +28457,8 @@ static const value_string rnsap_HARQ_Preamble_Mode_Activation_Indicator_vals[] =
 
 static int
 dissect_rnsap_HARQ_Preamble_Mode_Activation_Indicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 0, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     1, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -28832,8 +28832,8 @@ static const value_string rnsap_FrequencyBandIndicator_vals[] = {
 
 static int
 dissect_rnsap_FrequencyBandIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 21, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     22, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -29902,8 +29902,8 @@ static const value_string rnsap_Band_Indicator_vals[] = {
 
 static int
 dissect_rnsap_Band_Indicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -30160,8 +30160,8 @@ static const value_string rnsap_Presence_vals[] = {
 
 static int
 dissect_rnsap_Presence(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -30276,6 +30276,7 @@ dissect_rnsap_ProtocolIE_ContainerPairList(tvbuff_t *tvb, int offset, packet_inf
 /*--- PDUs ---*/
 
 static void dissect_RNSAP_PDU_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+  per_aligment_type_callback(TRUE);
   dissect_rnsap_RNSAP_PDU(tvb, 0, pinfo, tree, hf_rnsap_RNSAP_PDU_PDU);
 }
 
@@ -31977,7 +31978,6 @@ dissect_rnsap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
        rnsap_item = proto_tree_add_item(tree, proto_rnsap, tvb, 0, -1, FALSE);
        rnsap_tree = proto_item_add_subtree(rnsap_item, ett_rnsap);
        
-       per_aligment_type_callback(TRUE);
        dissect_RNSAP_PDU_PDU(tvb, pinfo, rnsap_tree);
 }
 
@@ -38885,7 +38885,7 @@ void proto_register_rnsap(void) {
         "PrivateIE-Field/privateIEvalue", HFILL }},
 
 /*--- End of included file: packet-rnsap-hfarr.c ---*/
-#line 2318 "packet-rnsap-template.c"
+#line 2317 "packet-rnsap-template.c"
   };
 
   /* List of subtrees */
@@ -39748,7 +39748,7 @@ void proto_register_rnsap(void) {
     &ett_rnsap_PrivateIE_Field,
 
 /*--- End of included file: packet-rnsap-ettarr.c ---*/
-#line 2328 "packet-rnsap-template.c"
+#line 2327 "packet-rnsap-template.c"
   };
 
 
index 36ea4ea18b79e88672e2f3e69f92d92d938c0922..248352a9cf5b7669684cd90c058531906310acce 100644 (file)
@@ -1,7 +1,7 @@
 /* Do not modify this file.                                                   */
 /* It is created automatically by the ASN.1 to Ethereal dissector compiler    */
 /* .\packet-rrlp.c                                                            */
-/* ../../tools/asn2eth.py -X -e -p rrlp -c rrlp.cnf -s packet-rrlp-template rrlp.asn */
+/* ../../tools/asn2eth.py -u -e -p rrlp -c rrlp.cnf -s packet-rrlp-template rrlp.asn */
 
 /* Input file: packet-rrlp-template.c */
 
@@ -578,8 +578,8 @@ static const value_string rrlp_PositionMethod_vals[] = {
 
 static int
 dissect_rrlp_PositionMethod(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -610,8 +610,8 @@ static const value_string rrlp_UseMultipleSets_vals[] = {
 
 static int
 dissect_rrlp_UseMultipleSets(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -630,8 +630,8 @@ static const value_string rrlp_EnvironmentCharacter_vals[] = {
 
 static int
 dissect_rrlp_EnvironmentCharacter(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -699,8 +699,8 @@ static const value_string rrlp_TimeSlotScheme_vals[] = {
 
 static int
 dissect_rrlp_TimeSlotScheme(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -2584,8 +2584,8 @@ static const value_string rrlp_ReferenceRelation_vals[] = {
 
 static int
 dissect_rrlp_ReferenceRelation(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -3231,8 +3231,8 @@ static const value_string rrlp_MpathIndic_vals[] = {
 
 static int
 dissect_rrlp_MpathIndic(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 3, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     4, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -3352,8 +3352,8 @@ static const value_string rrlp_LocErrorReason_vals[] = {
 
 static int
 dissect_rrlp_LocErrorReason(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 10, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     11, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -3564,8 +3564,8 @@ static const value_string rrlp_UlPseudoSegInd_vals[] = {
 
 static int
 dissect_rrlp_UlPseudoSegInd(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -3627,8 +3627,8 @@ static const value_string rrlp_MoreAssDataToBeSent_vals[] = {
 
 static int
 dissect_rrlp_MoreAssDataToBeSent(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -3710,8 +3710,8 @@ static const value_string rrlp_ErrorCodes_vals[] = {
 
 static int
 dissect_rrlp_ErrorCodes(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 5, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     6, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -3804,7 +3804,6 @@ dissect_rrlp_PDU(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *
        if (check_col(pinfo->cinfo, COL_INFO))
                col_clear(pinfo->cinfo, COL_INFO);
 
-  per_aligment_type_callback(FALSE);
     offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                    ett_rrlp_PDU, PDU_sequence);
 
@@ -3816,6 +3815,7 @@ dissect_rrlp_PDU(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *
 /*--- PDUs ---*/
 
 static void dissect_PDU_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+  per_aligment_type_callback(FALSE);
   dissect_rrlp_PDU(tvb, 0, pinfo, tree, hf_rrlp_PDU_PDU);
 }
 
index 7c1ef37f7fc32db3f82c462d131d4bd937107801..ee7cdb32480674d746d7d6125df466e98fee76dc 100644 (file)
@@ -1,7 +1,7 @@
 /* Do not modify this file.                                                   */
 /* It is created automatically by the ASN.1 to Ethereal dissector compiler    */
 /* .\packet-ulp.c                                                             */
-/* ../../tools/asn2eth.py -X -e -p ulp -c ulp.cnf -s packet-ulp-template ULP.asn */
+/* ../../tools/asn2eth.py -u -e -p ulp -c ulp.cnf -s packet-ulp-template ULP.asn */
 
 /* Input file: packet-ulp-template.c */
 
@@ -315,8 +315,6 @@ static gint ett_ulp_PosProtocol = -1;
 /*--- End of included file: packet-ulp-ett.c ---*/
 #line 67 "packet-ulp-template.c"
 
-guint32 StatusCode_value_map[20] = {0, 1, 2, 3, 4, 5, 6, 7, 8 ,9 ,10 ,11, 12, 13, 14, 15, 16, 17, 100 , 101};
-
 /* Include constants */
 
 /*--- Included file: packet-ulp-val.h ---*/
@@ -328,7 +326,7 @@ guint32 StatusCode_value_map[20] = {0, 1, 2, 3, 4, 5, 6, 7, 8 ,9 ,10 ,11, 12, 13
 #define maxClientLength                50
 
 /*--- End of included file: packet-ulp-val.h ---*/
-#line 72 "packet-ulp-template.c"
+#line 70 "packet-ulp-template.c"
 
 
 /*--- Included file: packet-ulp-fn.c ---*/
@@ -669,8 +667,8 @@ static const value_string ulp_PosMethod_vals[] = {
 
 static int
 dissect_ulp_PosMethod(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 9, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     10, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -691,8 +689,8 @@ static const value_string ulp_NotificationType_vals[] = {
 
 static int
 dissect_ulp_NotificationType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 4, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     5, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -711,8 +709,8 @@ static const value_string ulp_EncodingType_vals[] = {
 
 static int
 dissect_ulp_EncodingType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -748,8 +746,8 @@ static const value_string ulp_FormatIndicator_vals[] = {
 
 static int
 dissect_ulp_FormatIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 6, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     7, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -863,8 +861,8 @@ static const value_string ulp_SLPMode_vals[] = {
 
 static int
 dissect_ulp_SLPMode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -1022,8 +1020,8 @@ static const value_string ulp_PrefMethod_vals[] = {
 
 static int
 dissect_ulp_PrefMethod(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -1713,8 +1711,8 @@ static const value_string ulp_Status_vals[] = {
 
 static int
 dissect_ulp_Status(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 2, NULL, NULL, TRUE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     3, NULL, NULL, TRUE, 0, NULL);
 
   return offset;
 }
@@ -1987,8 +1985,8 @@ static const value_string ulp_T_latitudeSign_vals[] = {
 
 static int
 dissect_ulp_T_latitudeSign(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -2064,8 +2062,8 @@ static const value_string ulp_T_altitudeDirection_vals[] = {
 
 static int
 dissect_ulp_T_altitudeDirection(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
-                                              0, 1, NULL, NULL, FALSE);
+  offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
+                                     2, NULL, NULL, FALSE, 0, NULL);
 
   return offset;
 }
@@ -2429,14 +2427,12 @@ static const value_string ulp_StatusCode_vals[] = {
   { 0, NULL }
 };
 
+static guint32 StatusCode_value_map[20+0] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 100, 101};
 
 static int
 dissect_ulp_StatusCode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-#line 23 "ulp.cnf"
   offset = dissect_per_enumerated(tvb, offset, pinfo, tree, hf_index,
-                                                                       19, NULL, NULL, TRUE, 0, StatusCode_value_map);
-
-
+                                     20, NULL, NULL, TRUE, 0, StatusCode_value_map);
 
   return offset;
 }
@@ -2591,7 +2587,7 @@ static const per_choice_t UlpMessage_choice[] = {
 
 static int
 dissect_ulp_UlpMessage(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
-#line 29 "ulp.cnf"
+#line 21 "ulp.cnf"
 
 guint32 UlpMessage;
 
@@ -2606,7 +2602,6 @@ guint32 UlpMessage;
        }
 
 
-
   return offset;
 }
 static int dissect_message(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
@@ -2633,7 +2628,6 @@ dissect_ulp_ULP_PDU(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tre
        if (check_col(pinfo->cinfo, COL_INFO))
                col_clear(pinfo->cinfo, COL_INFO);
 
-  per_aligment_type_callback(FALSE);
     offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                    ett_ulp_ULP_PDU, ULP_PDU_sequence);
 
@@ -2646,12 +2640,13 @@ dissect_ulp_ULP_PDU(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tre
 /*--- PDUs ---*/
 
 static void dissect_ULP_PDU_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+  per_aligment_type_callback(FALSE);
   dissect_ulp_ULP_PDU(tvb, 0, pinfo, tree, hf_ulp_ULP_PDU_PDU);
 }
 
 
 /*--- End of included file: packet-ulp-fn.c ---*/
-#line 74 "packet-ulp-template.c"
+#line 72 "packet-ulp-template.c"
 
 /*--- proto_reg_handoff_ulp ---------------------------------------*/
 void
@@ -3375,7 +3370,7 @@ void proto_register_ulp(void) {
         "PosProtocol/rrc", HFILL }},
 
 /*--- End of included file: packet-ulp-hfarr.c ---*/
-#line 97 "packet-ulp-template.c"
+#line 95 "packet-ulp-template.c"
   };
 
   /* List of subtrees */
@@ -3444,7 +3439,7 @@ void proto_register_ulp(void) {
     &ett_ulp_PosProtocol,
 
 /*--- End of included file: packet-ulp-ettarr.c ---*/
-#line 103 "packet-ulp-template.c"
+#line 101 "packet-ulp-template.c"
   };
 
   module_t *ulp_module;