diff --git a/control/rcControl.go b/control/rcControl.go
index 32209db..34fd310 100644
--- a/control/rcControl.go
+++ b/control/rcControl.go
@@ -8,7 +8,7 @@
 	"strconv"
 	"sync"
 	"time"
-
+	//"encoding/hex"
 	"gerrit.o-ran-sc.org/r/ric-app/rc/protocol/grpc/ricmsgcommrpc/rc"
 	"gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp"
 )
@@ -242,13 +242,14 @@
 
 	lNrOrEUtraCellType := aRicHoControlMsg.RicControlGrpcReqPtr.RICControlMessageData.RICControlCellTypeVal
 	lTargetCellVal := aRicHoControlMsg.RicControlGrpcReqPtr.RICControlMessageData.TargetCellID
+	//lTargetCellValBuf, _:= hex.DecodeString(lTargetCellVal)
 	lTargetCellValBuf := []byte(lTargetCellVal)
 	//lNRPlmnId := []byte(aRicHoControlMsg.RicControlGrpcReqPtr.RICControlMessageData.TargetCellID.PlmnID)
         //lNRCellId := aRicHoControlMsg.RicControlGrpcReqPtr.RICControlMessageData.TargetCellID.NRCellID
 
 
 	var lRicControlMessage []byte = make([]byte, 1024)
-	lRicControlMessageEncoded, err := e2sm.SetRicControlMessage(lRicControlMessage, lTargetPrimaryCell, lTargetCell, lNrCGIOrECGI, int64(lNrOrEUtraCellType), lTargetCellValBuf)
+	lRicControlMessageEncoded, err := e2sm.SetRicControlMessage(lRicControlMessage, lTargetPrimaryCell, lTargetCell, lNrCGIOrECGI, int64(lNrOrEUtraCellType), ueId_data.pLMNIdentitybuf, lTargetCellValBuf)
 	if err != nil {
 		xapp.Logger.Error("SetRicControlMessage Failed: %v, UEID:%v", err, aRicHoControlMsg.RicControlGrpcReqPtr.RICControlHeaderData.UEID)
 		log.Printf("SetRicControlMessage Failed: %v, UEID:%v", err, aRicHoControlMsg.RicControlGrpcReqPtr.RICControlHeaderData.UEID)
diff --git a/control/rcE2SmRc.go b/control/rcE2SmRc.go
index f72707c..2f9a9d4 100644
--- a/control/rcE2SmRc.go
+++ b/control/rcE2SmRc.go
@@ -15,7 +15,8 @@
 	_"encoding/binary"
 	"encoding/hex"
 	"strings"
-	"strconv"
+	//"strconv"
+	"fmt"
 )
 
 type E2sm struct {
@@ -28,6 +29,7 @@
 	//cptr_ueIDbuf := unsafe.Pointer(&ueIDbuf[0])
 
 	lplmnIdBuf := strings.Join(strings.Fields(ueIdData.pLMNIdentitybuf), "")
+	/*
 	lIntvar, _ := strconv.Atoi(lplmnIdBuf)
 	xapp.Logger.Info("lIntvar = %d\n", lIntvar)
 
@@ -35,6 +37,13 @@
 	//ml.MavLog(ml.INFO, lTransId, " lIntegerByte = %v\n", lIntegerByte)
 	xapp.Logger.Info(" lIntegerByte = %v\n", lIntegerByte)
         lOutByte := get_bytepack_plmnId(lIntegerByte)
+	*/
+	lOutByte, err := hex.DecodeString(lplmnIdBuf)
+	if err != nil {
+		panic(err)
+	}
+	fmt.Println(lOutByte)
+	fmt.Printf("% x", lOutByte)
         xapp.Logger.Info("lOutByte Len:%d\n", len(lOutByte))
         xapp.Logger.Info("lOutByte = %02X\n", lOutByte)
 	cptrRanParameterValue := unsafe.Pointer(&lOutByte[0])
@@ -80,12 +89,23 @@
 	return
 }
 
-func (c *E2sm) SetRicControlMessage(buffer []byte, targetPrimaryCell int64, targetCell int64, nrCGIOrECGI int64, nrOrEUtraCell int64, ranParameterValue []byte) (newBuffer []byte, err error) {
+func (c *E2sm) SetRicControlMessage(buffer []byte, targetPrimaryCell int64, targetCell int64, nrCGIOrECGI int64, nrOrEUtraCell int64, pLMNIdentitybuf string,NRcellIdbuf []byte) (newBuffer []byte, err error) {
 	
 	xapp.Logger.Info("SetRicControlMessagei Enter  ")
+	//lOutByte, err := hex.DecodeString(string(ranParameterValue))
+	 lplmnIdBuf := strings.Join(strings.Fields(pLMNIdentitybuf), "")
+        //lOutByte, err := hex.DecodeString(lplmnIdBuf)
+        //if err != nil {
+          //      return 
+        //}
+	NRCGI:="00"+lplmnIdBuf+string(NRcellIdbuf)
+	lOutByte, _ := hex.DecodeString(NRCGI)
+	//tmp_plmn:=[]byte(lplmnIdBuf)
+        cptrRanParameterValue := unsafe.Pointer(&lOutByte[0])
+
 
 	cptr := unsafe.Pointer(&buffer[0])
-	cptrRanParameterValue := unsafe.Pointer(&ranParameterValue[0])
+	//cptrRanParameterValue2 := unsafe.Pointer(&NRcellIdbuf[0])
 
 	/*
 	lIntvar, _ := strconv.Atoi(string(ranParameterValue))
@@ -100,7 +120,7 @@
 	*/
 
 	size := C.e2sm_encode_ric_control_message(cptr, C.size_t(len(buffer)), C.long(targetPrimaryCell),
-		C.long(targetCell), C.long(nrOrEUtraCell), C.long(nrCGIOrECGI), cptrRanParameterValue, C.size_t(len(ranParameterValue)))
+		C.long(targetCell), C.long(nrOrEUtraCell), C.long(nrCGIOrECGI), cptrRanParameterValue,C.size_t(len(lOutByte)))
 
 	if size < 0 {
 		return make([]byte, 0), errors.New("e2sm wrapper is unable to set RicControlMessage due to wrong or invalid input")
diff --git a/e2sm/headers/AMF-UE-NGAP-ID.h b/e2sm/headers/AMF-UE-NGAP-ID.h
old mode 100755
new mode 100644
index f48bc42..932f0b6
--- a/e2sm/headers/AMF-UE-NGAP-ID.h
+++ b/e2sm/headers/AMF-UE-NGAP-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_AMF_UE_NGAP_ID_H_
diff --git a/e2sm/headers/AMFPointer.h b/e2sm/headers/AMFPointer.h
old mode 100755
new mode 100644
index dafad79..92ce162
--- a/e2sm/headers/AMFPointer.h
+++ b/e2sm/headers/AMFPointer.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_AMFPointer_H_
diff --git a/e2sm/headers/AMFRegionID.h b/e2sm/headers/AMFRegionID.h
old mode 100755
new mode 100644
index af03c30..ff98dd1
--- a/e2sm/headers/AMFRegionID.h
+++ b/e2sm/headers/AMFRegionID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_AMFRegionID_H_
diff --git a/e2sm/headers/AMFSetID.h b/e2sm/headers/AMFSetID.h
old mode 100755
new mode 100644
index 5d947d6..ed26a69
--- a/e2sm/headers/AMFSetID.h
+++ b/e2sm/headers/AMFSetID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_AMFSetID_H_
diff --git a/e2sm/headers/BIT_STRING.h b/e2sm/headers/BIT_STRING.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/BOOLEAN.h b/e2sm/headers/BOOLEAN.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/CGI.h b/e2sm/headers/CGI.h
old mode 100755
new mode 100644
index 4843a4e..16cc1dc
--- a/e2sm/headers/CGI.h
+++ b/e2sm/headers/CGI.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_CGI_H_
diff --git a/e2sm/headers/CallProcessBreakpoint-RANParameter-Item.h b/e2sm/headers/CallProcessBreakpoint-RANParameter-Item.h
old mode 100755
new mode 100644
index c22ecea..d61cab7
--- a/e2sm/headers/CallProcessBreakpoint-RANParameter-Item.h
+++ b/e2sm/headers/CallProcessBreakpoint-RANParameter-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_CallProcessBreakpoint_RANParameter_Item_H_
diff --git a/e2sm/headers/CellIdentification-RANParameter-Item.h b/e2sm/headers/CellIdentification-RANParameter-Item.h
old mode 100755
new mode 100644
index 18ea41f..f0356ba
--- a/e2sm/headers/CellIdentification-RANParameter-Item.h
+++ b/e2sm/headers/CellIdentification-RANParameter-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_CellIdentification_RANParameter_Item_H_
diff --git a/e2sm/headers/ControlAction-RANParameter-Item.h b/e2sm/headers/ControlAction-RANParameter-Item.h
old mode 100755
new mode 100644
index 4c06bda..f88a201
--- a/e2sm/headers/ControlAction-RANParameter-Item.h
+++ b/e2sm/headers/ControlAction-RANParameter-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_ControlAction_RANParameter_Item_H_
diff --git a/e2sm/headers/ControlOutcome-RANParameter-Item.h b/e2sm/headers/ControlOutcome-RANParameter-Item.h
old mode 100755
new mode 100644
index 861361c..f9dcfbd
--- a/e2sm/headers/ControlOutcome-RANParameter-Item.h
+++ b/e2sm/headers/ControlOutcome-RANParameter-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_ControlOutcome_RANParameter_Item_H_
diff --git a/e2sm/headers/CoreCPID.h b/e2sm/headers/CoreCPID.h
old mode 100755
new mode 100644
index 7b6340a..a55ecc5
--- a/e2sm/headers/CoreCPID.h
+++ b/e2sm/headers/CoreCPID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_CoreCPID_H_
diff --git a/e2sm/headers/E-UTRA-ARFCN.h b/e2sm/headers/E-UTRA-ARFCN.h
old mode 100755
new mode 100644
index 1ecf02a..8e5dd50
--- a/e2sm/headers/E-UTRA-ARFCN.h
+++ b/e2sm/headers/E-UTRA-ARFCN.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E_UTRA_ARFCN_H_
diff --git a/e2sm/headers/E-UTRA-PCI.h b/e2sm/headers/E-UTRA-PCI.h
old mode 100755
new mode 100644
index c49b263..a660525
--- a/e2sm/headers/E-UTRA-PCI.h
+++ b/e2sm/headers/E-UTRA-PCI.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E_UTRA_PCI_H_
diff --git a/e2sm/headers/E-UTRA-TAC.h b/e2sm/headers/E-UTRA-TAC.h
old mode 100755
new mode 100644
index 2544b77..5b24d52
--- a/e2sm/headers/E-UTRA-TAC.h
+++ b/e2sm/headers/E-UTRA-TAC.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E_UTRA_TAC_H_
diff --git a/e2sm/headers/E2SM-RC-ActionDefinition-Format1-Item.h b/e2sm/headers/E2SM-RC-ActionDefinition-Format1-Item.h
old mode 100755
new mode 100644
index d648c97..ff713df
--- a/e2sm/headers/E2SM-RC-ActionDefinition-Format1-Item.h
+++ b/e2sm/headers/E2SM-RC-ActionDefinition-Format1-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_ActionDefinition_Format1_Item_H_
@@ -19,6 +19,9 @@
 extern "C" {
 #endif
 
+/* Forward declarations */
+struct RANParameter_Definition;
+
 /* E2SM-RC-ActionDefinition-Format1-Item */
 typedef struct E2SM_RC_ActionDefinition_Format1_Item {
 	RANParameter_ID_t	 ranParameter_ID;
@@ -26,6 +29,7 @@
 	 * This type is extensible,
 	 * possible extensions are below.
 	 */
+	struct RANParameter_Definition	*ranParameter_Definition;	/* OPTIONAL */
 	
 	/* Context for parsing across buffer boundaries */
 	asn_struct_ctx_t _asn_ctx;
@@ -34,7 +38,7 @@
 /* Implementation */
 extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ActionDefinition_Format1_Item;
 extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ActionDefinition_Format1_Item_specs_1;
-extern asn_TYPE_member_t asn_MBR_E2SM_RC_ActionDefinition_Format1_Item_1[1];
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_ActionDefinition_Format1_Item_1[2];
 
 #ifdef __cplusplus
 }
diff --git a/e2sm/headers/E2SM-RC-ActionDefinition-Format1.h b/e2sm/headers/E2SM-RC-ActionDefinition-Format1.h
old mode 100755
new mode 100644
index a74bdfb..72f6ab0
--- a/e2sm/headers/E2SM-RC-ActionDefinition-Format1.h
+++ b/e2sm/headers/E2SM-RC-ActionDefinition-Format1.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_ActionDefinition_Format1_H_
diff --git a/e2sm/headers/E2SM-RC-ActionDefinition-Format2-Item.h b/e2sm/headers/E2SM-RC-ActionDefinition-Format2-Item.h
old mode 100755
new mode 100644
index e76d1f5..ee6c64e
--- a/e2sm/headers/E2SM-RC-ActionDefinition-Format2-Item.h
+++ b/e2sm/headers/E2SM-RC-ActionDefinition-Format2-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_ActionDefinition_Format2_Item_H_
diff --git a/e2sm/headers/E2SM-RC-ActionDefinition-Format2.h b/e2sm/headers/E2SM-RC-ActionDefinition-Format2.h
old mode 100755
new mode 100644
index 22834d9..b7066fe
--- a/e2sm/headers/E2SM-RC-ActionDefinition-Format2.h
+++ b/e2sm/headers/E2SM-RC-ActionDefinition-Format2.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_ActionDefinition_Format2_H_
diff --git a/e2sm/headers/E2SM-RC-ActionDefinition-Format3-Item.h b/e2sm/headers/E2SM-RC-ActionDefinition-Format3-Item.h
old mode 100755
new mode 100644
index 908f00c..2d78b6b
--- a/e2sm/headers/E2SM-RC-ActionDefinition-Format3-Item.h
+++ b/e2sm/headers/E2SM-RC-ActionDefinition-Format3-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_ActionDefinition_Format3_Item_H_
@@ -19,6 +19,9 @@
 extern "C" {
 #endif
 
+/* Forward declarations */
+struct RANParameter_Definition;
+
 /* E2SM-RC-ActionDefinition-Format3-Item */
 typedef struct E2SM_RC_ActionDefinition_Format3_Item {
 	RANParameter_ID_t	 ranParameter_ID;
@@ -26,6 +29,7 @@
 	 * This type is extensible,
 	 * possible extensions are below.
 	 */
+	struct RANParameter_Definition	*ranParameter_Definition;	/* OPTIONAL */
 	
 	/* Context for parsing across buffer boundaries */
 	asn_struct_ctx_t _asn_ctx;
@@ -34,7 +38,7 @@
 /* Implementation */
 extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ActionDefinition_Format3_Item;
 extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ActionDefinition_Format3_Item_specs_1;
-extern asn_TYPE_member_t asn_MBR_E2SM_RC_ActionDefinition_Format3_Item_1[1];
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_ActionDefinition_Format3_Item_1[2];
 
 #ifdef __cplusplus
 }
diff --git a/e2sm/headers/E2SM-RC-ActionDefinition-Format3.h b/e2sm/headers/E2SM-RC-ActionDefinition-Format3.h
old mode 100755
new mode 100644
index a5a5643..0b33258
--- a/e2sm/headers/E2SM-RC-ActionDefinition-Format3.h
+++ b/e2sm/headers/E2SM-RC-ActionDefinition-Format3.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_ActionDefinition_Format3_H_
diff --git a/e2sm/headers/E2SM-RC-ActionDefinition-Format4-Indication-Item.h b/e2sm/headers/E2SM-RC-ActionDefinition-Format4-Indication-Item.h
new file mode 100644
index 0000000..bf7f608
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-ActionDefinition-Format4-Indication-Item.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#ifndef	_E2SM_RC_ActionDefinition_Format4_Indication_Item_H_
+#define	_E2SM_RC_ActionDefinition_Format4_Indication_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RIC-InsertIndication-ID.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct E2SM_RC_ActionDefinition_Format4_RANP_Item;
+
+/* E2SM-RC-ActionDefinition-Format4-Indication-Item */
+typedef struct E2SM_RC_ActionDefinition_Format4_Indication_Item {
+	RIC_InsertIndication_ID_t	 ric_InsertIndication_ID;
+	struct E2SM_RC_ActionDefinition_Format4_Indication_Item__ranP_InsertIndication_List {
+		A_SEQUENCE_OF(struct E2SM_RC_ActionDefinition_Format4_RANP_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ranP_InsertIndication_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_ActionDefinition_Format4_Indication_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ActionDefinition_Format4_Indication_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ActionDefinition_Format4_Indication_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_ActionDefinition_Format4_Indication_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_ActionDefinition_Format4_Indication_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-ActionDefinition-Format4-RANP-Item.h b/e2sm/headers/E2SM-RC-ActionDefinition-Format4-RANP-Item.h
new file mode 100644
index 0000000..bc981c8
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-ActionDefinition-Format4-RANP-Item.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#ifndef	_E2SM_RC_ActionDefinition_Format4_RANP_Item_H_
+#define	_E2SM_RC_ActionDefinition_Format4_RANP_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANParameter-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RANParameter_Definition;
+
+/* E2SM-RC-ActionDefinition-Format4-RANP-Item */
+typedef struct E2SM_RC_ActionDefinition_Format4_RANP_Item {
+	RANParameter_ID_t	 ranParameter_ID;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	struct RANParameter_Definition	*ranParameter_Definition;	/* OPTIONAL */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_ActionDefinition_Format4_RANP_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ActionDefinition_Format4_RANP_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ActionDefinition_Format4_RANP_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_ActionDefinition_Format4_RANP_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_ActionDefinition_Format4_RANP_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-ActionDefinition-Format4-Style-Item.h b/e2sm/headers/E2SM-RC-ActionDefinition-Format4-Style-Item.h
new file mode 100644
index 0000000..d09cf7a
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-ActionDefinition-Format4-Style-Item.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#ifndef	_E2SM_RC_ActionDefinition_Format4_Style_Item_H_
+#define	_E2SM_RC_ActionDefinition_Format4_Style_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RIC-Style-Type.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct E2SM_RC_ActionDefinition_Format4_Indication_Item;
+
+/* E2SM-RC-ActionDefinition-Format4-Style-Item */
+typedef struct E2SM_RC_ActionDefinition_Format4_Style_Item {
+	RIC_Style_Type_t	 requested_Insert_Style_Type;
+	struct E2SM_RC_ActionDefinition_Format4_Style_Item__ric_InsertIndication_List {
+		A_SEQUENCE_OF(struct E2SM_RC_ActionDefinition_Format4_Indication_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ric_InsertIndication_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_ActionDefinition_Format4_Style_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ActionDefinition_Format4_Style_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ActionDefinition_Format4_Style_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_ActionDefinition_Format4_Style_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_ActionDefinition_Format4_Style_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-ActionDefinition-Format4.h b/e2sm/headers/E2SM-RC-ActionDefinition-Format4.h
new file mode 100644
index 0000000..8eb9dce
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-ActionDefinition-Format4.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#ifndef	_E2SM_RC_ActionDefinition_Format4_H_
+#define	_E2SM_RC_ActionDefinition_Format4_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct UEID;
+struct E2SM_RC_ActionDefinition_Format4_Style_Item;
+
+/* E2SM-RC-ActionDefinition-Format4 */
+typedef struct E2SM_RC_ActionDefinition_Format4 {
+	struct E2SM_RC_ActionDefinition_Format4__ric_InsertStyle_List {
+		A_SEQUENCE_OF(struct E2SM_RC_ActionDefinition_Format4_Style_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ric_InsertStyle_List;
+	struct UEID	*ueID;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_ActionDefinition_Format4_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ActionDefinition_Format4;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ActionDefinition_Format4_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_ActionDefinition_Format4_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_ActionDefinition_Format4_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-ActionDefinition.h b/e2sm/headers/E2SM-RC-ActionDefinition.h
old mode 100755
new mode 100644
index 801457d..99dd1b9
--- a/e2sm/headers/E2SM-RC-ActionDefinition.h
+++ b/e2sm/headers/E2SM-RC-ActionDefinition.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_ActionDefinition_H_
@@ -25,15 +25,16 @@
 	E2SM_RC_ActionDefinition__ric_actionDefinition_formats_PR_NOTHING,	/* No components present */
 	E2SM_RC_ActionDefinition__ric_actionDefinition_formats_PR_actionDefinition_Format1,
 	E2SM_RC_ActionDefinition__ric_actionDefinition_formats_PR_actionDefinition_Format2,
-	E2SM_RC_ActionDefinition__ric_actionDefinition_formats_PR_actionDefinition_Format3
+	E2SM_RC_ActionDefinition__ric_actionDefinition_formats_PR_actionDefinition_Format3,
 	/* Extensions may appear below */
-	
+	E2SM_RC_ActionDefinition__ric_actionDefinition_formats_PR_actionDefinition_Format4
 } E2SM_RC_ActionDefinition__ric_actionDefinition_formats_PR;
 
 /* Forward declarations */
 struct E2SM_RC_ActionDefinition_Format1;
 struct E2SM_RC_ActionDefinition_Format2;
 struct E2SM_RC_ActionDefinition_Format3;
+struct E2SM_RC_ActionDefinition_Format4;
 
 /* E2SM-RC-ActionDefinition */
 typedef struct E2SM_RC_ActionDefinition {
@@ -48,6 +49,7 @@
 			 * This type is extensible,
 			 * possible extensions are below.
 			 */
+			struct E2SM_RC_ActionDefinition_Format4	*actionDefinition_Format4;
 		} choice;
 		
 		/* Context for parsing across buffer boundaries */
diff --git a/e2sm/headers/E2SM-RC-CallProcessID-Format1.h b/e2sm/headers/E2SM-RC-CallProcessID-Format1.h
old mode 100755
new mode 100644
index dda1821..7a2461b
--- a/e2sm/headers/E2SM-RC-CallProcessID-Format1.h
+++ b/e2sm/headers/E2SM-RC-CallProcessID-Format1.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_CallProcessID_Format1_H_
diff --git a/e2sm/headers/E2SM-RC-CallProcessID.h b/e2sm/headers/E2SM-RC-CallProcessID.h
old mode 100755
new mode 100644
index f08137c..12864c4
--- a/e2sm/headers/E2SM-RC-CallProcessID.h
+++ b/e2sm/headers/E2SM-RC-CallProcessID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_CallProcessID_H_
diff --git a/e2sm/headers/E2SM-RC-ControlHeader-Format1.h b/e2sm/headers/E2SM-RC-ControlHeader-Format1.h
old mode 100755
new mode 100644
index b847d4f..62c7bec
--- a/e2sm/headers/E2SM-RC-ControlHeader-Format1.h
+++ b/e2sm/headers/E2SM-RC-ControlHeader-Format1.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_ControlHeader_Format1_H_
diff --git a/e2sm/headers/E2SM-RC-ControlHeader-Format2.h b/e2sm/headers/E2SM-RC-ControlHeader-Format2.h
new file mode 100644
index 0000000..1f2caf2
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-ControlHeader-Format2.h
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#ifndef	_E2SM_RC_ControlHeader_Format2_H_
+#define	_E2SM_RC_ControlHeader_Format2_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E2SM_RC_ControlHeader_Format2__ric_ControlDecision {
+	E2SM_RC_ControlHeader_Format2__ric_ControlDecision_accept	= 0,
+	E2SM_RC_ControlHeader_Format2__ric_ControlDecision_reject	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_E2SM_RC_ControlHeader_Format2__ric_ControlDecision;
+
+/* Forward declarations */
+struct UEID;
+
+/* E2SM-RC-ControlHeader-Format2 */
+typedef struct E2SM_RC_ControlHeader_Format2 {
+	struct UEID	*ueID;	/* OPTIONAL */
+	long	*ric_ControlDecision;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_ControlHeader_Format2_t;
+
+/* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_ric_ControlDecision_3;	// (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlHeader_Format2;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlHeader_Format2_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_ControlHeader_Format2_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_ControlHeader_Format2_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-ControlHeader.h b/e2sm/headers/E2SM-RC-ControlHeader.h
old mode 100755
new mode 100644
index a9b57df..89cf030
--- a/e2sm/headers/E2SM-RC-ControlHeader.h
+++ b/e2sm/headers/E2SM-RC-ControlHeader.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_ControlHeader_H_
@@ -22,13 +22,14 @@
 /* Dependencies */
 typedef enum E2SM_RC_ControlHeader__ric_controlHeader_formats_PR {
 	E2SM_RC_ControlHeader__ric_controlHeader_formats_PR_NOTHING,	/* No components present */
-	E2SM_RC_ControlHeader__ric_controlHeader_formats_PR_controlHeader_Format1
+	E2SM_RC_ControlHeader__ric_controlHeader_formats_PR_controlHeader_Format1,
 	/* Extensions may appear below */
-	
+	E2SM_RC_ControlHeader__ric_controlHeader_formats_PR_controlHeader_Format2
 } E2SM_RC_ControlHeader__ric_controlHeader_formats_PR;
 
 /* Forward declarations */
 struct E2SM_RC_ControlHeader_Format1;
+struct E2SM_RC_ControlHeader_Format2;
 
 /* E2SM-RC-ControlHeader */
 typedef struct E2SM_RC_ControlHeader {
@@ -40,6 +41,7 @@
 			 * This type is extensible,
 			 * possible extensions are below.
 			 */
+			struct E2SM_RC_ControlHeader_Format2	*controlHeader_Format2;
 		} choice;
 		
 		/* Context for parsing across buffer boundaries */
diff --git a/e2sm/headers/E2SM-RC-ControlMessage-Format1-Item.h b/e2sm/headers/E2SM-RC-ControlMessage-Format1-Item.h
old mode 100755
new mode 100644
index 19518d1..1301ffd
--- a/e2sm/headers/E2SM-RC-ControlMessage-Format1-Item.h
+++ b/e2sm/headers/E2SM-RC-ControlMessage-Format1-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_ControlMessage_Format1_Item_H_
diff --git a/e2sm/headers/E2SM-RC-ControlMessage-Format1.h b/e2sm/headers/E2SM-RC-ControlMessage-Format1.h
old mode 100755
new mode 100644
index 35802d6..f9f8f8a
--- a/e2sm/headers/E2SM-RC-ControlMessage-Format1.h
+++ b/e2sm/headers/E2SM-RC-ControlMessage-Format1.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_ControlMessage_Format1_H_
diff --git a/e2sm/headers/E2SM-RC-ControlMessage-Format2-ControlAction-Item.h b/e2sm/headers/E2SM-RC-ControlMessage-Format2-ControlAction-Item.h
new file mode 100644
index 0000000..6e2159e
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-ControlMessage-Format2-ControlAction-Item.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#ifndef	_E2SM_RC_ControlMessage_Format2_ControlAction_Item_H_
+#define	_E2SM_RC_ControlMessage_Format2_ControlAction_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RIC-ControlAction-ID.h"
+#include "E2SM-RC-ControlMessage-Format1.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2SM-RC-ControlMessage-Format2-ControlAction-Item */
+typedef struct E2SM_RC_ControlMessage_Format2_ControlAction_Item {
+	RIC_ControlAction_ID_t	 ric_ControlAction_ID;
+	E2SM_RC_ControlMessage_Format1_t	 ranP_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_ControlMessage_Format2_ControlAction_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlMessage_Format2_ControlAction_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlMessage_Format2_ControlAction_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_ControlMessage_Format2_ControlAction_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_ControlMessage_Format2_ControlAction_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-ControlMessage-Format2-Style-Item.h b/e2sm/headers/E2SM-RC-ControlMessage-Format2-Style-Item.h
new file mode 100644
index 0000000..cd8fc01
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-ControlMessage-Format2-Style-Item.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#ifndef	_E2SM_RC_ControlMessage_Format2_Style_Item_H_
+#define	_E2SM_RC_ControlMessage_Format2_Style_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RIC-Style-Type.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct E2SM_RC_ControlMessage_Format2_ControlAction_Item;
+
+/* E2SM-RC-ControlMessage-Format2-Style-Item */
+typedef struct E2SM_RC_ControlMessage_Format2_Style_Item {
+	RIC_Style_Type_t	 indicated_Control_Style_Type;
+	struct E2SM_RC_ControlMessage_Format2_Style_Item__ric_ControlAction_List {
+		A_SEQUENCE_OF(struct E2SM_RC_ControlMessage_Format2_ControlAction_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ric_ControlAction_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_ControlMessage_Format2_Style_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlMessage_Format2_Style_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlMessage_Format2_Style_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_ControlMessage_Format2_Style_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_ControlMessage_Format2_Style_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-ControlMessage-Format2.h b/e2sm/headers/E2SM-RC-ControlMessage-Format2.h
new file mode 100644
index 0000000..708bd7e
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-ControlMessage-Format2.h
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#ifndef	_E2SM_RC_ControlMessage_Format2_H_
+#define	_E2SM_RC_ControlMessage_Format2_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct E2SM_RC_ControlMessage_Format2_Style_Item;
+
+/* E2SM-RC-ControlMessage-Format2 */
+typedef struct E2SM_RC_ControlMessage_Format2 {
+	struct E2SM_RC_ControlMessage_Format2__ric_ControlStyle_List {
+		A_SEQUENCE_OF(struct E2SM_RC_ControlMessage_Format2_Style_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ric_ControlStyle_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_ControlMessage_Format2_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlMessage_Format2;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlMessage_Format2_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_ControlMessage_Format2_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_ControlMessage_Format2_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-ControlMessage.h b/e2sm/headers/E2SM-RC-ControlMessage.h
old mode 100755
new mode 100644
index 12e93b8..3e40e27
--- a/e2sm/headers/E2SM-RC-ControlMessage.h
+++ b/e2sm/headers/E2SM-RC-ControlMessage.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_ControlMessage_H_
@@ -22,13 +22,14 @@
 /* Dependencies */
 typedef enum E2SM_RC_ControlMessage__ric_controlMessage_formats_PR {
 	E2SM_RC_ControlMessage__ric_controlMessage_formats_PR_NOTHING,	/* No components present */
-	E2SM_RC_ControlMessage__ric_controlMessage_formats_PR_controlMessage_Format1
+	E2SM_RC_ControlMessage__ric_controlMessage_formats_PR_controlMessage_Format1,
 	/* Extensions may appear below */
-	
+	E2SM_RC_ControlMessage__ric_controlMessage_formats_PR_controlMessage_Format2
 } E2SM_RC_ControlMessage__ric_controlMessage_formats_PR;
 
 /* Forward declarations */
 struct E2SM_RC_ControlMessage_Format1;
+struct E2SM_RC_ControlMessage_Format2;
 
 /* E2SM-RC-ControlMessage */
 typedef struct E2SM_RC_ControlMessage {
@@ -40,6 +41,7 @@
 			 * This type is extensible,
 			 * possible extensions are below.
 			 */
+			struct E2SM_RC_ControlMessage_Format2	*controlMessage_Format2;
 		} choice;
 		
 		/* Context for parsing across buffer boundaries */
diff --git a/e2sm/headers/E2SM-RC-ControlOutcome-Format1-Item.h b/e2sm/headers/E2SM-RC-ControlOutcome-Format1-Item.h
old mode 100755
new mode 100644
index b290d8a..c9d6936
--- a/e2sm/headers/E2SM-RC-ControlOutcome-Format1-Item.h
+++ b/e2sm/headers/E2SM-RC-ControlOutcome-Format1-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_ControlOutcome_Format1_Item_H_
diff --git a/e2sm/headers/E2SM-RC-ControlOutcome-Format1.h b/e2sm/headers/E2SM-RC-ControlOutcome-Format1.h
old mode 100755
new mode 100644
index cb087a3..cdfafd9
--- a/e2sm/headers/E2SM-RC-ControlOutcome-Format1.h
+++ b/e2sm/headers/E2SM-RC-ControlOutcome-Format1.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_ControlOutcome_Format1_H_
diff --git a/e2sm/headers/E2SM-RC-ControlOutcome-Format2-ControlOutcome-Item.h b/e2sm/headers/E2SM-RC-ControlOutcome-Format2-ControlOutcome-Item.h
new file mode 100644
index 0000000..d3252e3
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-ControlOutcome-Format2-ControlOutcome-Item.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#ifndef	_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item_H_
+#define	_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RIC-ControlAction-ID.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct E2SM_RC_ControlOutcome_Format2_RANP_Item;
+
+/* E2SM-RC-ControlOutcome-Format2-ControlOutcome-Item */
+typedef struct E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item {
+	RIC_ControlAction_ID_t	 ric_ControlAction_ID;
+	struct E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item__ranP_List {
+		A_SEQUENCE_OF(struct E2SM_RC_ControlOutcome_Format2_RANP_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ranP_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-ControlOutcome-Format2-RANP-Item.h b/e2sm/headers/E2SM-RC-ControlOutcome-Format2-RANP-Item.h
new file mode 100644
index 0000000..981033a
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-ControlOutcome-Format2-RANP-Item.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#ifndef	_E2SM_RC_ControlOutcome_Format2_RANP_Item_H_
+#define	_E2SM_RC_ControlOutcome_Format2_RANP_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANParameter-ID.h"
+#include "RANParameter-Value.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2SM-RC-ControlOutcome-Format2-RANP-Item */
+typedef struct E2SM_RC_ControlOutcome_Format2_RANP_Item {
+	RANParameter_ID_t	 ranParameter_ID;
+	RANParameter_Value_t	 ranParameter_value;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_ControlOutcome_Format2_RANP_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlOutcome_Format2_RANP_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlOutcome_Format2_RANP_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_ControlOutcome_Format2_RANP_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_ControlOutcome_Format2_RANP_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-ControlOutcome-Format2-Style-Item.h b/e2sm/headers/E2SM-RC-ControlOutcome-Format2-Style-Item.h
new file mode 100644
index 0000000..57ad472
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-ControlOutcome-Format2-Style-Item.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#ifndef	_E2SM_RC_ControlOutcome_Format2_Style_Item_H_
+#define	_E2SM_RC_ControlOutcome_Format2_Style_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RIC-Style-Type.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item;
+
+/* E2SM-RC-ControlOutcome-Format2-Style-Item */
+typedef struct E2SM_RC_ControlOutcome_Format2_Style_Item {
+	RIC_Style_Type_t	 indicated_Control_Style_Type;
+	struct E2SM_RC_ControlOutcome_Format2_Style_Item__ric_ControlOutcome_List {
+		A_SEQUENCE_OF(struct E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ric_ControlOutcome_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_ControlOutcome_Format2_Style_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlOutcome_Format2_Style_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlOutcome_Format2_Style_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_ControlOutcome_Format2_Style_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_ControlOutcome_Format2_Style_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-ControlOutcome-Format2.h b/e2sm/headers/E2SM-RC-ControlOutcome-Format2.h
new file mode 100644
index 0000000..47d9e46
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-ControlOutcome-Format2.h
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#ifndef	_E2SM_RC_ControlOutcome_Format2_H_
+#define	_E2SM_RC_ControlOutcome_Format2_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct E2SM_RC_ControlOutcome_Format2_Style_Item;
+
+/* E2SM-RC-ControlOutcome-Format2 */
+typedef struct E2SM_RC_ControlOutcome_Format2 {
+	struct E2SM_RC_ControlOutcome_Format2__ric_ControlStyle_List {
+		A_SEQUENCE_OF(struct E2SM_RC_ControlOutcome_Format2_Style_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ric_ControlStyle_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_ControlOutcome_Format2_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlOutcome_Format2;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlOutcome_Format2_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_ControlOutcome_Format2_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_ControlOutcome_Format2_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-ControlOutcome-Format3-Item.h b/e2sm/headers/E2SM-RC-ControlOutcome-Format3-Item.h
new file mode 100644
index 0000000..dc2f5f3
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-ControlOutcome-Format3-Item.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#ifndef	_E2SM_RC_ControlOutcome_Format3_Item_H_
+#define	_E2SM_RC_ControlOutcome_Format3_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANParameter-ID.h"
+#include "RANParameter-ValueType.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2SM-RC-ControlOutcome-Format3-Item */
+typedef struct E2SM_RC_ControlOutcome_Format3_Item {
+	RANParameter_ID_t	 ranParameter_ID;
+	RANParameter_ValueType_t	 ranParameter_valueType;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_ControlOutcome_Format3_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlOutcome_Format3_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlOutcome_Format3_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_ControlOutcome_Format3_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_ControlOutcome_Format3_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-ControlOutcome-Format3.h b/e2sm/headers/E2SM-RC-ControlOutcome-Format3.h
new file mode 100644
index 0000000..bbb1fad
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-ControlOutcome-Format3.h
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#ifndef	_E2SM_RC_ControlOutcome_Format3_H_
+#define	_E2SM_RC_ControlOutcome_Format3_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct E2SM_RC_ControlOutcome_Format3_Item;
+
+/* E2SM-RC-ControlOutcome-Format3 */
+typedef struct E2SM_RC_ControlOutcome_Format3 {
+	struct E2SM_RC_ControlOutcome_Format3__ranP_List {
+		A_SEQUENCE_OF(struct E2SM_RC_ControlOutcome_Format3_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ranP_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_ControlOutcome_Format3_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlOutcome_Format3;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlOutcome_Format3_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_ControlOutcome_Format3_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_ControlOutcome_Format3_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-ControlOutcome.h b/e2sm/headers/E2SM-RC-ControlOutcome.h
old mode 100755
new mode 100644
index 6193e02..1b7caff
--- a/e2sm/headers/E2SM-RC-ControlOutcome.h
+++ b/e2sm/headers/E2SM-RC-ControlOutcome.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_ControlOutcome_H_
@@ -22,13 +22,16 @@
 /* Dependencies */
 typedef enum E2SM_RC_ControlOutcome__ric_controlOutcome_formats_PR {
 	E2SM_RC_ControlOutcome__ric_controlOutcome_formats_PR_NOTHING,	/* No components present */
-	E2SM_RC_ControlOutcome__ric_controlOutcome_formats_PR_controlOutcome_Format1
+	E2SM_RC_ControlOutcome__ric_controlOutcome_formats_PR_controlOutcome_Format1,
 	/* Extensions may appear below */
-	
+	E2SM_RC_ControlOutcome__ric_controlOutcome_formats_PR_controlOutcome_Format2,
+	E2SM_RC_ControlOutcome__ric_controlOutcome_formats_PR_controlOutcome_Format3
 } E2SM_RC_ControlOutcome__ric_controlOutcome_formats_PR;
 
 /* Forward declarations */
 struct E2SM_RC_ControlOutcome_Format1;
+struct E2SM_RC_ControlOutcome_Format2;
+struct E2SM_RC_ControlOutcome_Format3;
 
 /* E2SM-RC-ControlOutcome */
 typedef struct E2SM_RC_ControlOutcome {
@@ -40,6 +43,8 @@
 			 * This type is extensible,
 			 * possible extensions are below.
 			 */
+			struct E2SM_RC_ControlOutcome_Format2	*controlOutcome_Format2;
+			struct E2SM_RC_ControlOutcome_Format3	*controlOutcome_Format3;
 		} choice;
 		
 		/* Context for parsing across buffer boundaries */
diff --git a/e2sm/headers/E2SM-RC-EventTrigger-Format1-Item.h b/e2sm/headers/E2SM-RC-EventTrigger-Format1-Item.h
old mode 100755
new mode 100644
index a4e694e..2ea05aa
--- a/e2sm/headers/E2SM-RC-EventTrigger-Format1-Item.h
+++ b/e2sm/headers/E2SM-RC-EventTrigger-Format1-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_EventTrigger_Format1_Item_H_
diff --git a/e2sm/headers/E2SM-RC-EventTrigger-Format1.h b/e2sm/headers/E2SM-RC-EventTrigger-Format1.h
old mode 100755
new mode 100644
index 447098d..c27c233
--- a/e2sm/headers/E2SM-RC-EventTrigger-Format1.h
+++ b/e2sm/headers/E2SM-RC-EventTrigger-Format1.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_EventTrigger_Format1_H_
diff --git a/e2sm/headers/E2SM-RC-EventTrigger-Format2.h b/e2sm/headers/E2SM-RC-EventTrigger-Format2.h
old mode 100755
new mode 100644
index b1ff532..5eecde6
--- a/e2sm/headers/E2SM-RC-EventTrigger-Format2.h
+++ b/e2sm/headers/E2SM-RC-EventTrigger-Format2.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_EventTrigger_Format2_H_
diff --git a/e2sm/headers/E2SM-RC-EventTrigger-Format3-Item.h b/e2sm/headers/E2SM-RC-EventTrigger-Format3-Item.h
old mode 100755
new mode 100644
index 794cbde..f625475
--- a/e2sm/headers/E2SM-RC-EventTrigger-Format3-Item.h
+++ b/e2sm/headers/E2SM-RC-EventTrigger-Format3-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_EventTrigger_Format3_Item_H_
diff --git a/e2sm/headers/E2SM-RC-EventTrigger-Format3.h b/e2sm/headers/E2SM-RC-EventTrigger-Format3.h
old mode 100755
new mode 100644
index 652cf04..fbd4fe9
--- a/e2sm/headers/E2SM-RC-EventTrigger-Format3.h
+++ b/e2sm/headers/E2SM-RC-EventTrigger-Format3.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_EventTrigger_Format3_H_
diff --git a/e2sm/headers/E2SM-RC-EventTrigger-Format4-Item.h b/e2sm/headers/E2SM-RC-EventTrigger-Format4-Item.h
old mode 100755
new mode 100644
index 562e45c..f32719b
--- a/e2sm/headers/E2SM-RC-EventTrigger-Format4-Item.h
+++ b/e2sm/headers/E2SM-RC-EventTrigger-Format4-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_EventTrigger_Format4_Item_H_
diff --git a/e2sm/headers/E2SM-RC-EventTrigger-Format4.h b/e2sm/headers/E2SM-RC-EventTrigger-Format4.h
old mode 100755
new mode 100644
index 9fbdebe..98a9481
--- a/e2sm/headers/E2SM-RC-EventTrigger-Format4.h
+++ b/e2sm/headers/E2SM-RC-EventTrigger-Format4.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_EventTrigger_Format4_H_
diff --git a/e2sm/headers/E2SM-RC-EventTrigger-Format5.h b/e2sm/headers/E2SM-RC-EventTrigger-Format5.h
old mode 100755
new mode 100644
index 5e2f640..6eff2d6
--- a/e2sm/headers/E2SM-RC-EventTrigger-Format5.h
+++ b/e2sm/headers/E2SM-RC-EventTrigger-Format5.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_EventTrigger_Format5_H_
diff --git a/e2sm/headers/E2SM-RC-EventTrigger.h b/e2sm/headers/E2SM-RC-EventTrigger.h
old mode 100755
new mode 100644
index 6e7b392..8601557
--- a/e2sm/headers/E2SM-RC-EventTrigger.h
+++ b/e2sm/headers/E2SM-RC-EventTrigger.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_EventTrigger_H_
diff --git a/e2sm/headers/E2SM-RC-IndicationHeader-Format1.h b/e2sm/headers/E2SM-RC-IndicationHeader-Format1.h
old mode 100755
new mode 100644
index 038ecab..eb3dad0
--- a/e2sm/headers/E2SM-RC-IndicationHeader-Format1.h
+++ b/e2sm/headers/E2SM-RC-IndicationHeader-Format1.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_IndicationHeader_Format1_H_
diff --git a/e2sm/headers/E2SM-RC-IndicationHeader-Format2.h b/e2sm/headers/E2SM-RC-IndicationHeader-Format2.h
old mode 100755
new mode 100644
index 3d9b6be..a3fabc5
--- a/e2sm/headers/E2SM-RC-IndicationHeader-Format2.h
+++ b/e2sm/headers/E2SM-RC-IndicationHeader-Format2.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_IndicationHeader_Format2_H_
diff --git a/e2sm/headers/E2SM-RC-IndicationHeader-Format3.h b/e2sm/headers/E2SM-RC-IndicationHeader-Format3.h
new file mode 100644
index 0000000..2b7da45
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-IndicationHeader-Format3.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#ifndef	_E2SM_RC_IndicationHeader_Format3_H_
+#define	_E2SM_RC_IndicationHeader_Format3_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RIC-EventTriggerCondition-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct UEID;
+
+/* E2SM-RC-IndicationHeader-Format3 */
+typedef struct E2SM_RC_IndicationHeader_Format3 {
+	RIC_EventTriggerCondition_ID_t	*ric_eventTriggerCondition_ID;	/* OPTIONAL */
+	struct UEID	*ueID;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_IndicationHeader_Format3_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_IndicationHeader_Format3;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationHeader_Format3_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationHeader_Format3_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_IndicationHeader_Format3_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-IndicationHeader.h b/e2sm/headers/E2SM-RC-IndicationHeader.h
old mode 100755
new mode 100644
index 0260e01..702648a
--- a/e2sm/headers/E2SM-RC-IndicationHeader.h
+++ b/e2sm/headers/E2SM-RC-IndicationHeader.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_IndicationHeader_H_
@@ -23,14 +23,15 @@
 typedef enum E2SM_RC_IndicationHeader__ric_indicationHeader_formats_PR {
 	E2SM_RC_IndicationHeader__ric_indicationHeader_formats_PR_NOTHING,	/* No components present */
 	E2SM_RC_IndicationHeader__ric_indicationHeader_formats_PR_indicationHeader_Format1,
-	E2SM_RC_IndicationHeader__ric_indicationHeader_formats_PR_indicationHeader_Format2
+	E2SM_RC_IndicationHeader__ric_indicationHeader_formats_PR_indicationHeader_Format2,
 	/* Extensions may appear below */
-	
+	E2SM_RC_IndicationHeader__ric_indicationHeader_formats_PR_indicationHeader_Format3
 } E2SM_RC_IndicationHeader__ric_indicationHeader_formats_PR;
 
 /* Forward declarations */
 struct E2SM_RC_IndicationHeader_Format1;
 struct E2SM_RC_IndicationHeader_Format2;
+struct E2SM_RC_IndicationHeader_Format3;
 
 /* E2SM-RC-IndicationHeader */
 typedef struct E2SM_RC_IndicationHeader {
@@ -43,6 +44,7 @@
 			 * This type is extensible,
 			 * possible extensions are below.
 			 */
+			struct E2SM_RC_IndicationHeader_Format3	*indicationHeader_Format3;
 		} choice;
 		
 		/* Context for parsing across buffer boundaries */
diff --git a/e2sm/headers/E2SM-RC-IndicationMessage-Format1-Item.h b/e2sm/headers/E2SM-RC-IndicationMessage-Format1-Item.h
old mode 100755
new mode 100644
index c4fae50..0676924
--- a/e2sm/headers/E2SM-RC-IndicationMessage-Format1-Item.h
+++ b/e2sm/headers/E2SM-RC-IndicationMessage-Format1-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_IndicationMessage_Format1_Item_H_
diff --git a/e2sm/headers/E2SM-RC-IndicationMessage-Format1.h b/e2sm/headers/E2SM-RC-IndicationMessage-Format1.h
old mode 100755
new mode 100644
index 47d52cc..69275eb
--- a/e2sm/headers/E2SM-RC-IndicationMessage-Format1.h
+++ b/e2sm/headers/E2SM-RC-IndicationMessage-Format1.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_IndicationMessage_Format1_H_
diff --git a/e2sm/headers/E2SM-RC-IndicationMessage-Format2-Item.h b/e2sm/headers/E2SM-RC-IndicationMessage-Format2-Item.h
old mode 100755
new mode 100644
index 082363b..ca1e403
--- a/e2sm/headers/E2SM-RC-IndicationMessage-Format2-Item.h
+++ b/e2sm/headers/E2SM-RC-IndicationMessage-Format2-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_IndicationMessage_Format2_Item_H_
diff --git a/e2sm/headers/E2SM-RC-IndicationMessage-Format2-RANParameter-Item.h b/e2sm/headers/E2SM-RC-IndicationMessage-Format2-RANParameter-Item.h
old mode 100755
new mode 100644
index 872e316..ea0a0a1
--- a/e2sm/headers/E2SM-RC-IndicationMessage-Format2-RANParameter-Item.h
+++ b/e2sm/headers/E2SM-RC-IndicationMessage-Format2-RANParameter-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_IndicationMessage_Format2_RANParameter_Item_H_
diff --git a/e2sm/headers/E2SM-RC-IndicationMessage-Format2.h b/e2sm/headers/E2SM-RC-IndicationMessage-Format2.h
old mode 100755
new mode 100644
index 641f801..079f0e9
--- a/e2sm/headers/E2SM-RC-IndicationMessage-Format2.h
+++ b/e2sm/headers/E2SM-RC-IndicationMessage-Format2.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_IndicationMessage_Format2_H_
diff --git a/e2sm/headers/E2SM-RC-IndicationMessage-Format3-Item.h b/e2sm/headers/E2SM-RC-IndicationMessage-Format3-Item.h
old mode 100755
new mode 100644
index 2ec97e2..79ae9ff
--- a/e2sm/headers/E2SM-RC-IndicationMessage-Format3-Item.h
+++ b/e2sm/headers/E2SM-RC-IndicationMessage-Format3-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_IndicationMessage_Format3_Item_H_
diff --git a/e2sm/headers/E2SM-RC-IndicationMessage-Format3.h b/e2sm/headers/E2SM-RC-IndicationMessage-Format3.h
old mode 100755
new mode 100644
index a73592f..dbee9b2
--- a/e2sm/headers/E2SM-RC-IndicationMessage-Format3.h
+++ b/e2sm/headers/E2SM-RC-IndicationMessage-Format3.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_IndicationMessage_Format3_H_
diff --git a/e2sm/headers/E2SM-RC-IndicationMessage-Format4-ItemCell.h b/e2sm/headers/E2SM-RC-IndicationMessage-Format4-ItemCell.h
old mode 100755
new mode 100644
index 7962352..6b12c53
--- a/e2sm/headers/E2SM-RC-IndicationMessage-Format4-ItemCell.h
+++ b/e2sm/headers/E2SM-RC-IndicationMessage-Format4-ItemCell.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_IndicationMessage_Format4_ItemCell_H_
diff --git a/e2sm/headers/E2SM-RC-IndicationMessage-Format4-ItemUE.h b/e2sm/headers/E2SM-RC-IndicationMessage-Format4-ItemUE.h
old mode 100755
new mode 100644
index 51a2974..c588fa5
--- a/e2sm/headers/E2SM-RC-IndicationMessage-Format4-ItemUE.h
+++ b/e2sm/headers/E2SM-RC-IndicationMessage-Format4-ItemUE.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_IndicationMessage_Format4_ItemUE_H_
diff --git a/e2sm/headers/E2SM-RC-IndicationMessage-Format4.h b/e2sm/headers/E2SM-RC-IndicationMessage-Format4.h
old mode 100755
new mode 100644
index e51abf4..cdd90f7
--- a/e2sm/headers/E2SM-RC-IndicationMessage-Format4.h
+++ b/e2sm/headers/E2SM-RC-IndicationMessage-Format4.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_IndicationMessage_Format4_H_
diff --git a/e2sm/headers/E2SM-RC-IndicationMessage-Format5-Item.h b/e2sm/headers/E2SM-RC-IndicationMessage-Format5-Item.h
old mode 100755
new mode 100644
index f46f196..d06af14
--- a/e2sm/headers/E2SM-RC-IndicationMessage-Format5-Item.h
+++ b/e2sm/headers/E2SM-RC-IndicationMessage-Format5-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_IndicationMessage_Format5_Item_H_
diff --git a/e2sm/headers/E2SM-RC-IndicationMessage-Format5.h b/e2sm/headers/E2SM-RC-IndicationMessage-Format5.h
old mode 100755
new mode 100644
index ca2c7c0..6143915
--- a/e2sm/headers/E2SM-RC-IndicationMessage-Format5.h
+++ b/e2sm/headers/E2SM-RC-IndicationMessage-Format5.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_IndicationMessage_Format5_H_
diff --git a/e2sm/headers/E2SM-RC-IndicationMessage-Format6-Indication-Item.h b/e2sm/headers/E2SM-RC-IndicationMessage-Format6-Indication-Item.h
new file mode 100644
index 0000000..98e053f
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-IndicationMessage-Format6-Indication-Item.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#ifndef	_E2SM_RC_IndicationMessage_Format6_Indication_Item_H_
+#define	_E2SM_RC_IndicationMessage_Format6_Indication_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RIC-InsertIndication-ID.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct E2SM_RC_IndicationMessage_Format6_RANP_Item;
+
+/* E2SM-RC-IndicationMessage-Format6-Indication-Item */
+typedef struct E2SM_RC_IndicationMessage_Format6_Indication_Item {
+	RIC_InsertIndication_ID_t	 ric_InsertIndication_ID;
+	struct E2SM_RC_IndicationMessage_Format6_Indication_Item__ranP_InsertIndication_List {
+		A_SEQUENCE_OF(struct E2SM_RC_IndicationMessage_Format6_RANP_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ranP_InsertIndication_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_IndicationMessage_Format6_Indication_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_IndicationMessage_Format6_Indication_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationMessage_Format6_Indication_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_Format6_Indication_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_IndicationMessage_Format6_Indication_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-IndicationMessage-Format6-RANP-Item.h b/e2sm/headers/E2SM-RC-IndicationMessage-Format6-RANP-Item.h
new file mode 100644
index 0000000..a36ab9a
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-IndicationMessage-Format6-RANP-Item.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#ifndef	_E2SM_RC_IndicationMessage_Format6_RANP_Item_H_
+#define	_E2SM_RC_IndicationMessage_Format6_RANP_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANParameter-ID.h"
+#include "RANParameter-ValueType.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2SM-RC-IndicationMessage-Format6-RANP-Item */
+typedef struct E2SM_RC_IndicationMessage_Format6_RANP_Item {
+	RANParameter_ID_t	 ranParameter_ID;
+	RANParameter_ValueType_t	 ranParameter_valueType;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_IndicationMessage_Format6_RANP_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_IndicationMessage_Format6_RANP_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationMessage_Format6_RANP_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_Format6_RANP_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_IndicationMessage_Format6_RANP_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-IndicationMessage-Format6-Style-Item.h b/e2sm/headers/E2SM-RC-IndicationMessage-Format6-Style-Item.h
new file mode 100644
index 0000000..384f8d9
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-IndicationMessage-Format6-Style-Item.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#ifndef	_E2SM_RC_IndicationMessage_Format6_Style_Item_H_
+#define	_E2SM_RC_IndicationMessage_Format6_Style_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RIC-Style-Type.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct E2SM_RC_IndicationMessage_Format6_Indication_Item;
+
+/* E2SM-RC-IndicationMessage-Format6-Style-Item */
+typedef struct E2SM_RC_IndicationMessage_Format6_Style_Item {
+	RIC_Style_Type_t	 indicated_Insert_Style_Type;
+	struct E2SM_RC_IndicationMessage_Format6_Style_Item__ric_InsertIndication_List {
+		A_SEQUENCE_OF(struct E2SM_RC_IndicationMessage_Format6_Indication_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ric_InsertIndication_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_IndicationMessage_Format6_Style_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_IndicationMessage_Format6_Style_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationMessage_Format6_Style_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_Format6_Style_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_IndicationMessage_Format6_Style_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-IndicationMessage-Format6.h b/e2sm/headers/E2SM-RC-IndicationMessage-Format6.h
new file mode 100644
index 0000000..8ca2e68
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-IndicationMessage-Format6.h
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#ifndef	_E2SM_RC_IndicationMessage_Format6_H_
+#define	_E2SM_RC_IndicationMessage_Format6_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct E2SM_RC_IndicationMessage_Format6_Style_Item;
+
+/* E2SM-RC-IndicationMessage-Format6 */
+typedef struct E2SM_RC_IndicationMessage_Format6 {
+	struct E2SM_RC_IndicationMessage_Format6__ric_InsertStyle_List {
+		A_SEQUENCE_OF(struct E2SM_RC_IndicationMessage_Format6_Style_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ric_InsertStyle_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_IndicationMessage_Format6_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_IndicationMessage_Format6;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationMessage_Format6_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_Format6_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_IndicationMessage_Format6_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-IndicationMessage.h b/e2sm/headers/E2SM-RC-IndicationMessage.h
old mode 100755
new mode 100644
index 0a8fa90..348f452
--- a/e2sm/headers/E2SM-RC-IndicationMessage.h
+++ b/e2sm/headers/E2SM-RC-IndicationMessage.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_IndicationMessage_H_
@@ -26,9 +26,9 @@
 	E2SM_RC_IndicationMessage__ric_indicationMessage_formats_PR_indicationMessage_Format2,
 	E2SM_RC_IndicationMessage__ric_indicationMessage_formats_PR_indicationMessage_Format3,
 	E2SM_RC_IndicationMessage__ric_indicationMessage_formats_PR_indicationMessage_Format4,
-	E2SM_RC_IndicationMessage__ric_indicationMessage_formats_PR_indicationMessage_Format5
+	E2SM_RC_IndicationMessage__ric_indicationMessage_formats_PR_indicationMessage_Format5,
 	/* Extensions may appear below */
-	
+	E2SM_RC_IndicationMessage__ric_indicationMessage_formats_PR_indicationMessage_Format6
 } E2SM_RC_IndicationMessage__ric_indicationMessage_formats_PR;
 
 /* Forward declarations */
@@ -37,6 +37,7 @@
 struct E2SM_RC_IndicationMessage_Format3;
 struct E2SM_RC_IndicationMessage_Format4;
 struct E2SM_RC_IndicationMessage_Format5;
+struct E2SM_RC_IndicationMessage_Format6;
 
 /* E2SM-RC-IndicationMessage */
 typedef struct E2SM_RC_IndicationMessage {
@@ -52,6 +53,7 @@
 			 * This type is extensible,
 			 * possible extensions are below.
 			 */
+			struct E2SM_RC_IndicationMessage_Format6	*indicationMessage_Format6;
 		} choice;
 		
 		/* Context for parsing across buffer boundaries */
diff --git a/e2sm/headers/E2SM-RC-RANFunctionDefinition.h b/e2sm/headers/E2SM-RC-RANFunctionDefinition.h
old mode 100755
new mode 100644
index 1293799..16f5522
--- a/e2sm/headers/E2SM-RC-RANFunctionDefinition.h
+++ b/e2sm/headers/E2SM-RC-RANFunctionDefinition.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_E2SM_RC_RANFunctionDefinition_H_
diff --git a/e2sm/headers/EN-GNB-ID.h b/e2sm/headers/EN-GNB-ID.h
old mode 100755
new mode 100644
index 3aa81d5..18ec07b
--- a/e2sm/headers/EN-GNB-ID.h
+++ b/e2sm/headers/EN-GNB-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_EN_GNB_ID_H_
diff --git a/e2sm/headers/ENB-ID.h b/e2sm/headers/ENB-ID.h
old mode 100755
new mode 100644
index 3572d4e..23d144a
--- a/e2sm/headers/ENB-ID.h
+++ b/e2sm/headers/ENB-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_ENB_ID_H_
diff --git a/e2sm/headers/ENB-UE-X2AP-ID-Extension.h b/e2sm/headers/ENB-UE-X2AP-ID-Extension.h
old mode 100755
new mode 100644
index 1b3df82..e8f5297
--- a/e2sm/headers/ENB-UE-X2AP-ID-Extension.h
+++ b/e2sm/headers/ENB-UE-X2AP-ID-Extension.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_ENB_UE_X2AP_ID_Extension_H_
diff --git a/e2sm/headers/ENB-UE-X2AP-ID.h b/e2sm/headers/ENB-UE-X2AP-ID.h
old mode 100755
new mode 100644
index 739d699..43ca62f
--- a/e2sm/headers/ENB-UE-X2AP-ID.h
+++ b/e2sm/headers/ENB-UE-X2AP-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_ENB_UE_X2AP_ID_H_
diff --git a/e2sm/headers/EUTRA-CGI.h b/e2sm/headers/EUTRA-CGI.h
old mode 100755
new mode 100644
index 47d879e..239b231
--- a/e2sm/headers/EUTRA-CGI.h
+++ b/e2sm/headers/EUTRA-CGI.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_EUTRA_CGI_H_
diff --git a/e2sm/headers/EUTRACellIdentity.h b/e2sm/headers/EUTRACellIdentity.h
old mode 100755
new mode 100644
index 58a5341..1d78b40
--- a/e2sm/headers/EUTRACellIdentity.h
+++ b/e2sm/headers/EUTRACellIdentity.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_EUTRACellIdentity_H_
diff --git a/e2sm/headers/EventTrigger-Cell-Info-Item-Choice-Group.h b/e2sm/headers/EventTrigger-Cell-Info-Item-Choice-Group.h
old mode 100755
new mode 100644
index f5f8be7..38bc4ee
--- a/e2sm/headers/EventTrigger-Cell-Info-Item-Choice-Group.h
+++ b/e2sm/headers/EventTrigger-Cell-Info-Item-Choice-Group.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_EventTrigger_Cell_Info_Item_Choice_Group_H_
diff --git a/e2sm/headers/EventTrigger-Cell-Info-Item-Choice-Individual.h b/e2sm/headers/EventTrigger-Cell-Info-Item-Choice-Individual.h
old mode 100755
new mode 100644
index 88febb4..4fef2d2
--- a/e2sm/headers/EventTrigger-Cell-Info-Item-Choice-Individual.h
+++ b/e2sm/headers/EventTrigger-Cell-Info-Item-Choice-Individual.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_EventTrigger_Cell_Info_Item_Choice_Individual_H_
diff --git a/e2sm/headers/EventTrigger-Cell-Info-Item.h b/e2sm/headers/EventTrigger-Cell-Info-Item.h
old mode 100755
new mode 100644
index e5680ab..c3a3e97
--- a/e2sm/headers/EventTrigger-Cell-Info-Item.h
+++ b/e2sm/headers/EventTrigger-Cell-Info-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_EventTrigger_Cell_Info_Item_H_
diff --git a/e2sm/headers/EventTrigger-Cell-Info.h b/e2sm/headers/EventTrigger-Cell-Info.h
old mode 100755
new mode 100644
index 4a23f62..f38e59e
--- a/e2sm/headers/EventTrigger-Cell-Info.h
+++ b/e2sm/headers/EventTrigger-Cell-Info.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_EventTrigger_Cell_Info_H_
diff --git a/e2sm/headers/EventTrigger-UE-Info-Item-Choice-Group.h b/e2sm/headers/EventTrigger-UE-Info-Item-Choice-Group.h
old mode 100755
new mode 100644
index 04c53e1..d3b988e
--- a/e2sm/headers/EventTrigger-UE-Info-Item-Choice-Group.h
+++ b/e2sm/headers/EventTrigger-UE-Info-Item-Choice-Group.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_EventTrigger_UE_Info_Item_Choice_Group_H_
diff --git a/e2sm/headers/EventTrigger-UE-Info-Item-Choice-Individual.h b/e2sm/headers/EventTrigger-UE-Info-Item-Choice-Individual.h
old mode 100755
new mode 100644
index a38e848..321e050
--- a/e2sm/headers/EventTrigger-UE-Info-Item-Choice-Individual.h
+++ b/e2sm/headers/EventTrigger-UE-Info-Item-Choice-Individual.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_EventTrigger_UE_Info_Item_Choice_Individual_H_
@@ -13,17 +13,19 @@
 
 /* Including external dependencies */
 #include "UEID.h"
-#include "RANParameter-Testing.h"
 #include <constr_SEQUENCE.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+/* Forward declarations */
+struct RANParameter_Testing;
+
 /* EventTrigger-UE-Info-Item-Choice-Individual */
 typedef struct EventTrigger_UE_Info_Item_Choice_Individual {
 	UEID_t	 ueID;
-	RANParameter_Testing_t	 ranParameterTesting;
+	struct RANParameter_Testing	*ranParameterTesting;	/* OPTIONAL */
 	/*
 	 * This type is extensible,
 	 * possible extensions are below.
diff --git a/e2sm/headers/EventTrigger-UE-Info-Item.h b/e2sm/headers/EventTrigger-UE-Info-Item.h
old mode 100755
new mode 100644
index 8124db8..a157b7e
--- a/e2sm/headers/EventTrigger-UE-Info-Item.h
+++ b/e2sm/headers/EventTrigger-UE-Info-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_EventTrigger_UE_Info_Item_H_
diff --git a/e2sm/headers/EventTrigger-UE-Info.h b/e2sm/headers/EventTrigger-UE-Info.h
old mode 100755
new mode 100644
index 951e3b3..56d73ec
--- a/e2sm/headers/EventTrigger-UE-Info.h
+++ b/e2sm/headers/EventTrigger-UE-Info.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_EventTrigger_UE_Info_H_
diff --git a/e2sm/headers/EventTrigger-UEevent-Info-Item.h b/e2sm/headers/EventTrigger-UEevent-Info-Item.h
old mode 100755
new mode 100644
index a546e61..985e916
--- a/e2sm/headers/EventTrigger-UEevent-Info-Item.h
+++ b/e2sm/headers/EventTrigger-UEevent-Info-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_EventTrigger_UEevent_Info_Item_H_
diff --git a/e2sm/headers/EventTrigger-UEevent-Info.h b/e2sm/headers/EventTrigger-UEevent-Info.h
old mode 100755
new mode 100644
index d1ef88e..9639f21
--- a/e2sm/headers/EventTrigger-UEevent-Info.h
+++ b/e2sm/headers/EventTrigger-UEevent-Info.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_EventTrigger_UEevent_Info_H_
diff --git a/e2sm/headers/FiveGS-TAC.h b/e2sm/headers/FiveGS-TAC.h
old mode 100755
new mode 100644
index 4231728..a930b18
--- a/e2sm/headers/FiveGS-TAC.h
+++ b/e2sm/headers/FiveGS-TAC.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_FiveGS_TAC_H_
diff --git a/e2sm/headers/FiveQI.h b/e2sm/headers/FiveQI.h
old mode 100755
new mode 100644
index c03dd83..cdf9148
--- a/e2sm/headers/FiveQI.h
+++ b/e2sm/headers/FiveQI.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_FiveQI_H_
diff --git a/e2sm/headers/FreqBandNrItem.h b/e2sm/headers/FreqBandNrItem.h
old mode 100755
new mode 100644
index b8aefe4..f9ecc2f
--- a/e2sm/headers/FreqBandNrItem.h
+++ b/e2sm/headers/FreqBandNrItem.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_FreqBandNrItem_H_
diff --git a/e2sm/headers/GNB-CU-CP-UE-E1AP-ID.h b/e2sm/headers/GNB-CU-CP-UE-E1AP-ID.h
old mode 100755
new mode 100644
index 00a88a0..6b4f5e1
--- a/e2sm/headers/GNB-CU-CP-UE-E1AP-ID.h
+++ b/e2sm/headers/GNB-CU-CP-UE-E1AP-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_GNB_CU_CP_UE_E1AP_ID_H_
diff --git a/e2sm/headers/GNB-CU-UE-F1AP-ID.h b/e2sm/headers/GNB-CU-UE-F1AP-ID.h
old mode 100755
new mode 100644
index 343ebaa..9dd0120
--- a/e2sm/headers/GNB-CU-UE-F1AP-ID.h
+++ b/e2sm/headers/GNB-CU-UE-F1AP-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_GNB_CU_UE_F1AP_ID_H_
diff --git a/e2sm/headers/GNB-CU-UP-ID.h b/e2sm/headers/GNB-CU-UP-ID.h
old mode 100755
new mode 100644
index 5b6b19c..78fff79
--- a/e2sm/headers/GNB-CU-UP-ID.h
+++ b/e2sm/headers/GNB-CU-UP-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_GNB_CU_UP_ID_H_
diff --git a/e2sm/headers/GNB-DU-ID.h b/e2sm/headers/GNB-DU-ID.h
old mode 100755
new mode 100644
index 6de06ec..a1a4bb9
--- a/e2sm/headers/GNB-DU-ID.h
+++ b/e2sm/headers/GNB-DU-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_GNB_DU_ID_H_
diff --git a/e2sm/headers/GNB-ID.h b/e2sm/headers/GNB-ID.h
old mode 100755
new mode 100644
index b1aa95d..62875f3
--- a/e2sm/headers/GNB-ID.h
+++ b/e2sm/headers/GNB-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_GNB_ID_H_
diff --git a/e2sm/headers/GUAMI.h b/e2sm/headers/GUAMI.h
old mode 100755
new mode 100644
index aef3e6e..cb1ebae
--- a/e2sm/headers/GUAMI.h
+++ b/e2sm/headers/GUAMI.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_GUAMI_H_
diff --git a/e2sm/headers/GUMMEI.h b/e2sm/headers/GUMMEI.h
old mode 100755
new mode 100644
index 34c6025..1cdfa1d
--- a/e2sm/headers/GUMMEI.h
+++ b/e2sm/headers/GUMMEI.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_GUMMEI_H_
diff --git a/e2sm/headers/GlobalENB-ID.h b/e2sm/headers/GlobalENB-ID.h
old mode 100755
new mode 100644
index df70c24..5077540
--- a/e2sm/headers/GlobalENB-ID.h
+++ b/e2sm/headers/GlobalENB-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_GlobalENB_ID_H_
diff --git a/e2sm/headers/GlobalGNB-ID.h b/e2sm/headers/GlobalGNB-ID.h
old mode 100755
new mode 100644
index a5d2a1a..747d9f6
--- a/e2sm/headers/GlobalGNB-ID.h
+++ b/e2sm/headers/GlobalGNB-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_GlobalGNB_ID_H_
diff --git a/e2sm/headers/GlobalNGRANNodeID.h b/e2sm/headers/GlobalNGRANNodeID.h
old mode 100755
new mode 100644
index 4ccdab0..27c6222
--- a/e2sm/headers/GlobalNGRANNodeID.h
+++ b/e2sm/headers/GlobalNGRANNodeID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_GlobalNGRANNodeID_H_
diff --git a/e2sm/headers/GlobalNgENB-ID.h b/e2sm/headers/GlobalNgENB-ID.h
old mode 100755
new mode 100644
index 339339b..8d544cc
--- a/e2sm/headers/GlobalNgENB-ID.h
+++ b/e2sm/headers/GlobalNgENB-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_GlobalNgENB_ID_H_
diff --git a/e2sm/headers/GlobalenGNB-ID.h b/e2sm/headers/GlobalenGNB-ID.h
old mode 100755
new mode 100644
index c80d0c5..60e4eb8
--- a/e2sm/headers/GlobalenGNB-ID.h
+++ b/e2sm/headers/GlobalenGNB-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_GlobalenGNB_ID_H_
diff --git a/e2sm/headers/GroupID.h b/e2sm/headers/GroupID.h
old mode 100755
new mode 100644
index bc418bb..318c470
--- a/e2sm/headers/GroupID.h
+++ b/e2sm/headers/GroupID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_GroupID_H_
diff --git a/e2sm/headers/INTEGER.h b/e2sm/headers/INTEGER.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/IndexToRFSP.h b/e2sm/headers/IndexToRFSP.h
old mode 100755
new mode 100644
index 75a8d3b..9b20ddb
--- a/e2sm/headers/IndexToRFSP.h
+++ b/e2sm/headers/IndexToRFSP.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_IndexToRFSP_H_
diff --git a/e2sm/headers/InsertIndication-RANParameter-Item.h b/e2sm/headers/InsertIndication-RANParameter-Item.h
old mode 100755
new mode 100644
index 41c9327..a23f1ac
--- a/e2sm/headers/InsertIndication-RANParameter-Item.h
+++ b/e2sm/headers/InsertIndication-RANParameter-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_InsertIndication_RANParameter_Item_H_
diff --git a/e2sm/headers/Interface-MessageID.h b/e2sm/headers/Interface-MessageID.h
old mode 100755
new mode 100644
index 5a9fbb0..75bc548
--- a/e2sm/headers/Interface-MessageID.h
+++ b/e2sm/headers/Interface-MessageID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_Interface_MessageID_H_
diff --git a/e2sm/headers/InterfaceID-E1.h b/e2sm/headers/InterfaceID-E1.h
old mode 100755
new mode 100644
index e015a36..84c1339
--- a/e2sm/headers/InterfaceID-E1.h
+++ b/e2sm/headers/InterfaceID-E1.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_InterfaceID_E1_H_
diff --git a/e2sm/headers/InterfaceID-F1.h b/e2sm/headers/InterfaceID-F1.h
old mode 100755
new mode 100644
index e072442..cfd6f2c
--- a/e2sm/headers/InterfaceID-F1.h
+++ b/e2sm/headers/InterfaceID-F1.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_InterfaceID_F1_H_
diff --git a/e2sm/headers/InterfaceID-NG.h b/e2sm/headers/InterfaceID-NG.h
old mode 100755
new mode 100644
index 8a3b0b4..27b2029
--- a/e2sm/headers/InterfaceID-NG.h
+++ b/e2sm/headers/InterfaceID-NG.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_InterfaceID_NG_H_
diff --git a/e2sm/headers/InterfaceID-S1.h b/e2sm/headers/InterfaceID-S1.h
old mode 100755
new mode 100644
index cb4267c..a9d49fa
--- a/e2sm/headers/InterfaceID-S1.h
+++ b/e2sm/headers/InterfaceID-S1.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_InterfaceID_S1_H_
diff --git a/e2sm/headers/InterfaceID-W1.h b/e2sm/headers/InterfaceID-W1.h
old mode 100755
new mode 100644
index 7005ac9..d42db01
--- a/e2sm/headers/InterfaceID-W1.h
+++ b/e2sm/headers/InterfaceID-W1.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_InterfaceID_W1_H_
diff --git a/e2sm/headers/InterfaceID-X2.h b/e2sm/headers/InterfaceID-X2.h
old mode 100755
new mode 100644
index c036b5f..b1effaa
--- a/e2sm/headers/InterfaceID-X2.h
+++ b/e2sm/headers/InterfaceID-X2.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_InterfaceID_X2_H_
diff --git a/e2sm/headers/InterfaceID-Xn.h b/e2sm/headers/InterfaceID-Xn.h
old mode 100755
new mode 100644
index 1cc807a..eded096
--- a/e2sm/headers/InterfaceID-Xn.h
+++ b/e2sm/headers/InterfaceID-Xn.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_InterfaceID_Xn_H_
diff --git a/e2sm/headers/InterfaceIdentifier.h b/e2sm/headers/InterfaceIdentifier.h
old mode 100755
new mode 100644
index 041c122..65ec8a2
--- a/e2sm/headers/InterfaceIdentifier.h
+++ b/e2sm/headers/InterfaceIdentifier.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_InterfaceIdentifier_H_
diff --git a/e2sm/headers/InterfaceType.h b/e2sm/headers/InterfaceType.h
old mode 100755
new mode 100644
index 1c2f84e..c1bb25c
--- a/e2sm/headers/InterfaceType.h
+++ b/e2sm/headers/InterfaceType.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_InterfaceType_H_
diff --git a/e2sm/headers/L2Parameters-RANParameter-Item.h b/e2sm/headers/L2Parameters-RANParameter-Item.h
old mode 100755
new mode 100644
index cddc6d4..86d1dd8
--- a/e2sm/headers/L2Parameters-RANParameter-Item.h
+++ b/e2sm/headers/L2Parameters-RANParameter-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_L2Parameters_RANParameter_Item_H_
@@ -26,7 +26,7 @@
 /* L2Parameters-RANParameter-Item */
 typedef struct L2Parameters_RANParameter_Item {
 	RANParameter_ID_t	 ranParameter_ID;
-	RANParameter_Name_t	 ranParameter_Name;
+	RANParameter_Name_t	 ranParameter_name;
 	/*
 	 * This type is extensible,
 	 * possible extensions are below.
diff --git a/e2sm/headers/LogicalOR.h b/e2sm/headers/LogicalOR.h
old mode 100755
new mode 100644
index e3464be..7d2161c
--- a/e2sm/headers/LogicalOR.h
+++ b/e2sm/headers/LogicalOR.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_LogicalOR_H_
diff --git a/e2sm/headers/MME-Code.h b/e2sm/headers/MME-Code.h
old mode 100755
new mode 100644
index b2819e3..9fdbc1c
--- a/e2sm/headers/MME-Code.h
+++ b/e2sm/headers/MME-Code.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_MME_Code_H_
diff --git a/e2sm/headers/MME-Group-ID.h b/e2sm/headers/MME-Group-ID.h
old mode 100755
new mode 100644
index 9c06267..00389dc
--- a/e2sm/headers/MME-Group-ID.h
+++ b/e2sm/headers/MME-Group-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_MME_Group_ID_H_
diff --git a/e2sm/headers/MME-UE-S1AP-ID.h b/e2sm/headers/MME-UE-S1AP-ID.h
old mode 100755
new mode 100644
index b7d95e3..8c89737
--- a/e2sm/headers/MME-UE-S1AP-ID.h
+++ b/e2sm/headers/MME-UE-S1AP-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_MME_UE_S1AP_ID_H_
diff --git a/e2sm/headers/MessageType-Choice-NI.h b/e2sm/headers/MessageType-Choice-NI.h
old mode 100755
new mode 100644
index faad2fe..847806e
--- a/e2sm/headers/MessageType-Choice-NI.h
+++ b/e2sm/headers/MessageType-Choice-NI.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_MessageType_Choice_NI_H_
diff --git a/e2sm/headers/MessageType-Choice-RRC.h b/e2sm/headers/MessageType-Choice-RRC.h
old mode 100755
new mode 100644
index 72df617..9523774
--- a/e2sm/headers/MessageType-Choice-RRC.h
+++ b/e2sm/headers/MessageType-Choice-RRC.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_MessageType_Choice_RRC_H_
diff --git a/e2sm/headers/MessageType-Choice.h b/e2sm/headers/MessageType-Choice.h
old mode 100755
new mode 100644
index bd0cbff..92c669a
--- a/e2sm/headers/MessageType-Choice.h
+++ b/e2sm/headers/MessageType-Choice.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_MessageType_Choice_H_
diff --git a/e2sm/headers/NG-RANnodeUEXnAPID.h b/e2sm/headers/NG-RANnodeUEXnAPID.h
old mode 100755
new mode 100644
index 6bd8295..9cf70f8
--- a/e2sm/headers/NG-RANnodeUEXnAPID.h
+++ b/e2sm/headers/NG-RANnodeUEXnAPID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_NG_RANnodeUEXnAPID_H_
diff --git a/e2sm/headers/NGENB-CU-UE-W1AP-ID.h b/e2sm/headers/NGENB-CU-UE-W1AP-ID.h
old mode 100755
new mode 100644
index dac9299..1fe6199
--- a/e2sm/headers/NGENB-CU-UE-W1AP-ID.h
+++ b/e2sm/headers/NGENB-CU-UE-W1AP-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_NGENB_CU_UE_W1AP_ID_H_
diff --git a/e2sm/headers/NGENB-DU-ID.h b/e2sm/headers/NGENB-DU-ID.h
old mode 100755
new mode 100644
index 126de2f..04421e8
--- a/e2sm/headers/NGENB-DU-ID.h
+++ b/e2sm/headers/NGENB-DU-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_NGENB_DU_ID_H_
diff --git a/e2sm/headers/NR-ARFCN.h b/e2sm/headers/NR-ARFCN.h
old mode 100755
new mode 100644
index 909dc06..7110ab5
--- a/e2sm/headers/NR-ARFCN.h
+++ b/e2sm/headers/NR-ARFCN.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_NR_ARFCN_H_
diff --git a/e2sm/headers/NR-CGI.h b/e2sm/headers/NR-CGI.h
old mode 100755
new mode 100644
index fbac091..a9c8f52
--- a/e2sm/headers/NR-CGI.h
+++ b/e2sm/headers/NR-CGI.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_NR_CGI_H_
diff --git a/e2sm/headers/NR-PCI.h b/e2sm/headers/NR-PCI.h
old mode 100755
new mode 100644
index ecbc7b3..1e584a8
--- a/e2sm/headers/NR-PCI.h
+++ b/e2sm/headers/NR-PCI.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_NR_PCI_H_
diff --git a/e2sm/headers/NRCellIdentity.h b/e2sm/headers/NRCellIdentity.h
old mode 100755
new mode 100644
index 6c7a264..fb12d0d
--- a/e2sm/headers/NRCellIdentity.h
+++ b/e2sm/headers/NRCellIdentity.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_NRCellIdentity_H_
diff --git a/e2sm/headers/NRFrequencyBand-List.h b/e2sm/headers/NRFrequencyBand-List.h
old mode 100755
new mode 100644
index 362abd3..50f817b
--- a/e2sm/headers/NRFrequencyBand-List.h
+++ b/e2sm/headers/NRFrequencyBand-List.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_NRFrequencyBand_List_H_
diff --git a/e2sm/headers/NRFrequencyBandItem.h b/e2sm/headers/NRFrequencyBandItem.h
old mode 100755
new mode 100644
index 95e118a..e42074d
--- a/e2sm/headers/NRFrequencyBandItem.h
+++ b/e2sm/headers/NRFrequencyBandItem.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_NRFrequencyBandItem_H_
diff --git a/e2sm/headers/NRFrequencyInfo.h b/e2sm/headers/NRFrequencyInfo.h
old mode 100755
new mode 100644
index f5a868d..878dc08
--- a/e2sm/headers/NRFrequencyInfo.h
+++ b/e2sm/headers/NRFrequencyInfo.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_NRFrequencyInfo_H_
@@ -37,6 +37,8 @@
 
 /* Implementation */
 extern asn_TYPE_descriptor_t asn_DEF_NRFrequencyInfo;
+extern asn_SEQUENCE_specifics_t asn_SPC_NRFrequencyInfo_specs_1;
+extern asn_TYPE_member_t asn_MBR_NRFrequencyInfo_1[3];
 
 #ifdef __cplusplus
 }
diff --git a/e2sm/headers/NRFrequencyShift7p5khz.h b/e2sm/headers/NRFrequencyShift7p5khz.h
old mode 100755
new mode 100644
index d3f0304..3e74e69
--- a/e2sm/headers/NRFrequencyShift7p5khz.h
+++ b/e2sm/headers/NRFrequencyShift7p5khz.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_NRFrequencyShift7p5khz_H_
diff --git a/e2sm/headers/NativeEnumerated.h b/e2sm/headers/NativeEnumerated.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/NativeInteger.h b/e2sm/headers/NativeInteger.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/NativeReal.h b/e2sm/headers/NativeReal.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/NeighborCell-Item-Choice-E-UTRA.h b/e2sm/headers/NeighborCell-Item-Choice-E-UTRA.h
old mode 100755
new mode 100644
index 1c807b3..aa44c2e
--- a/e2sm/headers/NeighborCell-Item-Choice-E-UTRA.h
+++ b/e2sm/headers/NeighborCell-Item-Choice-E-UTRA.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_NeighborCell_Item_Choice_E_UTRA_H_
diff --git a/e2sm/headers/NeighborCell-Item-Choice-NR.h b/e2sm/headers/NeighborCell-Item-Choice-NR.h
old mode 100755
new mode 100644
index 526f742..ac38b8a
--- a/e2sm/headers/NeighborCell-Item-Choice-NR.h
+++ b/e2sm/headers/NeighborCell-Item-Choice-NR.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_NeighborCell_Item_Choice_NR_H_
@@ -16,7 +16,7 @@
 #include "NR-PCI.h"
 #include "FiveGS-TAC.h"
 #include <NativeEnumerated.h>
-#include "NR-ARFCN.h"
+#include "NRFrequencyInfo.h"
 #include <NativeInteger.h>
 #include <constr_SEQUENCE.h>
 
@@ -53,7 +53,7 @@
 	NR_PCI_t	 nR_PCI;
 	FiveGS_TAC_t	 fiveGS_TAC;
 	long	 nR_mode_info;
-	NR_ARFCN_t	 nR_ARFCN;
+	NRFrequencyInfo_t	 nR_FreqInfo;
 	long	 x2_Xn_established;
 	long	 hO_validated;
 	long	 version;
diff --git a/e2sm/headers/NeighborCell-Item.h b/e2sm/headers/NeighborCell-Item.h
old mode 100755
new mode 100644
index e17e94c..f2eb861
--- a/e2sm/headers/NeighborCell-Item.h
+++ b/e2sm/headers/NeighborCell-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_NeighborCell_Item_H_
diff --git a/e2sm/headers/NeighborCell-List.h b/e2sm/headers/NeighborCell-List.h
old mode 100755
new mode 100644
index e27559c..148c62a
--- a/e2sm/headers/NeighborCell-List.h
+++ b/e2sm/headers/NeighborCell-List.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_NeighborCell_List_H_
diff --git a/e2sm/headers/NeighborRelation-Info.h b/e2sm/headers/NeighborRelation-Info.h
old mode 100755
new mode 100644
index c7d489d..8740c59
--- a/e2sm/headers/NeighborRelation-Info.h
+++ b/e2sm/headers/NeighborRelation-Info.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_NeighborRelation_Info_H_
diff --git a/e2sm/headers/NgENB-ID.h b/e2sm/headers/NgENB-ID.h
old mode 100755
new mode 100644
index 28554b7..a4778ba
--- a/e2sm/headers/NgENB-ID.h
+++ b/e2sm/headers/NgENB-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_NgENB_ID_H_
diff --git a/e2sm/headers/OCTET_STRING.h b/e2sm/headers/OCTET_STRING.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/OPEN_TYPE.h b/e2sm/headers/OPEN_TYPE.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/PLMNIdentity.h b/e2sm/headers/PLMNIdentity.h
old mode 100755
new mode 100644
index 93c6631..85ee6c2
--- a/e2sm/headers/PLMNIdentity.h
+++ b/e2sm/headers/PLMNIdentity.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_PLMNIdentity_H_
diff --git a/e2sm/headers/PolicyAction-RANParameter-Item.h b/e2sm/headers/PolicyAction-RANParameter-Item.h
old mode 100755
new mode 100644
index 3b39c3f..d633354
--- a/e2sm/headers/PolicyAction-RANParameter-Item.h
+++ b/e2sm/headers/PolicyAction-RANParameter-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_PolicyAction_RANParameter_Item_H_
diff --git a/e2sm/headers/PolicyCondition-RANParameter-Item.h b/e2sm/headers/PolicyCondition-RANParameter-Item.h
old mode 100755
new mode 100644
index ccc4803..4120d7d
--- a/e2sm/headers/PolicyCondition-RANParameter-Item.h
+++ b/e2sm/headers/PolicyCondition-RANParameter-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_PolicyCondition_RANParameter_Item_H_
diff --git a/e2sm/headers/PrintableString.h b/e2sm/headers/PrintableString.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/QCI.h b/e2sm/headers/QCI.h
old mode 100755
new mode 100644
index 5a6efc2..07805df
--- a/e2sm/headers/QCI.h
+++ b/e2sm/headers/QCI.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_QCI_H_
diff --git a/e2sm/headers/QoSID.h b/e2sm/headers/QoSID.h
old mode 100755
new mode 100644
index 3165105..342322c
--- a/e2sm/headers/QoSID.h
+++ b/e2sm/headers/QoSID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_QoSID_H_
diff --git a/e2sm/headers/QosFlowIdentifier.h b/e2sm/headers/QosFlowIdentifier.h
old mode 100755
new mode 100644
index 86ef499..824219c
--- a/e2sm/headers/QosFlowIdentifier.h
+++ b/e2sm/headers/QosFlowIdentifier.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_QosFlowIdentifier_H_
diff --git a/e2sm/headers/RAN-CallProcess-ID.h b/e2sm/headers/RAN-CallProcess-ID.h
old mode 100755
new mode 100644
index fd51354..ecea6c7
--- a/e2sm/headers/RAN-CallProcess-ID.h
+++ b/e2sm/headers/RAN-CallProcess-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RAN_CallProcess_ID_H_
@@ -19,11 +19,12 @@
 #endif
 
 /* RAN-CallProcess-ID */
-typedef long	 RAN_CallProcess_ID_t;
+typedef unsigned long	 RAN_CallProcess_ID_t;
 
 /* Implementation */
 extern asn_per_constraints_t asn_PER_type_RAN_CallProcess_ID_constr_1;
 extern asn_TYPE_descriptor_t asn_DEF_RAN_CallProcess_ID;
+extern const asn_INTEGER_specifics_t asn_SPC_RAN_CallProcess_ID_specs_1;
 asn_struct_free_f RAN_CallProcess_ID_free;
 asn_struct_print_f RAN_CallProcess_ID_print;
 asn_constr_check_f RAN_CallProcess_ID_constraint;
diff --git a/e2sm/headers/RANFunctionDefinition-Control-Action-Item.h b/e2sm/headers/RANFunctionDefinition-Control-Action-Item.h
old mode 100755
new mode 100644
index cbcfe8e..38fe9a3
--- a/e2sm/headers/RANFunctionDefinition-Control-Action-Item.h
+++ b/e2sm/headers/RANFunctionDefinition-Control-Action-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANFunctionDefinition_Control_Action_Item_H_
diff --git a/e2sm/headers/RANFunctionDefinition-Control-Item.h b/e2sm/headers/RANFunctionDefinition-Control-Item.h
old mode 100755
new mode 100644
index e4033ec..3b6a251
--- a/e2sm/headers/RANFunctionDefinition-Control-Item.h
+++ b/e2sm/headers/RANFunctionDefinition-Control-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANFunctionDefinition_Control_Item_H_
diff --git a/e2sm/headers/RANFunctionDefinition-Control.h b/e2sm/headers/RANFunctionDefinition-Control.h
old mode 100755
new mode 100644
index d222a50..84e65df
--- a/e2sm/headers/RANFunctionDefinition-Control.h
+++ b/e2sm/headers/RANFunctionDefinition-Control.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANFunctionDefinition_Control_H_
diff --git a/e2sm/headers/RANFunctionDefinition-EventTrigger-Breakpoint-Item.h b/e2sm/headers/RANFunctionDefinition-EventTrigger-Breakpoint-Item.h
old mode 100755
new mode 100644
index e8b263e..e230f2b
--- a/e2sm/headers/RANFunctionDefinition-EventTrigger-Breakpoint-Item.h
+++ b/e2sm/headers/RANFunctionDefinition-EventTrigger-Breakpoint-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANFunctionDefinition_EventTrigger_Breakpoint_Item_H_
diff --git a/e2sm/headers/RANFunctionDefinition-EventTrigger-CallProcess-Item.h b/e2sm/headers/RANFunctionDefinition-EventTrigger-CallProcess-Item.h
old mode 100755
new mode 100644
index c3137de..a38820f
--- a/e2sm/headers/RANFunctionDefinition-EventTrigger-CallProcess-Item.h
+++ b/e2sm/headers/RANFunctionDefinition-EventTrigger-CallProcess-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANFunctionDefinition_EventTrigger_CallProcess_Item_H_
diff --git a/e2sm/headers/RANFunctionDefinition-EventTrigger-Style-Item.h b/e2sm/headers/RANFunctionDefinition-EventTrigger-Style-Item.h
old mode 100755
new mode 100644
index 3cd426c..3a5cdba
--- a/e2sm/headers/RANFunctionDefinition-EventTrigger-Style-Item.h
+++ b/e2sm/headers/RANFunctionDefinition-EventTrigger-Style-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANFunctionDefinition_EventTrigger_Style_Item_H_
diff --git a/e2sm/headers/RANFunctionDefinition-EventTrigger.h b/e2sm/headers/RANFunctionDefinition-EventTrigger.h
old mode 100755
new mode 100644
index c08d4d2..70f00f7
--- a/e2sm/headers/RANFunctionDefinition-EventTrigger.h
+++ b/e2sm/headers/RANFunctionDefinition-EventTrigger.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANFunctionDefinition_EventTrigger_H_
diff --git a/e2sm/headers/RANFunctionDefinition-Insert-Indication-Item.h b/e2sm/headers/RANFunctionDefinition-Insert-Indication-Item.h
old mode 100755
new mode 100644
index 2d87885..ae2542f
--- a/e2sm/headers/RANFunctionDefinition-Insert-Indication-Item.h
+++ b/e2sm/headers/RANFunctionDefinition-Insert-Indication-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANFunctionDefinition_Insert_Indication_Item_H_
diff --git a/e2sm/headers/RANFunctionDefinition-Insert-Item.h b/e2sm/headers/RANFunctionDefinition-Insert-Item.h
old mode 100755
new mode 100644
index dfe347f..c16b201
--- a/e2sm/headers/RANFunctionDefinition-Insert-Item.h
+++ b/e2sm/headers/RANFunctionDefinition-Insert-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANFunctionDefinition_Insert_Item_H_
diff --git a/e2sm/headers/RANFunctionDefinition-Insert.h b/e2sm/headers/RANFunctionDefinition-Insert.h
old mode 100755
new mode 100644
index 9e63c3d..e5216b9
--- a/e2sm/headers/RANFunctionDefinition-Insert.h
+++ b/e2sm/headers/RANFunctionDefinition-Insert.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANFunctionDefinition_Insert_H_
diff --git a/e2sm/headers/RANFunctionDefinition-Policy-Action-Item.h b/e2sm/headers/RANFunctionDefinition-Policy-Action-Item.h
old mode 100755
new mode 100644
index 4c0ead9..3d0f2c8
--- a/e2sm/headers/RANFunctionDefinition-Policy-Action-Item.h
+++ b/e2sm/headers/RANFunctionDefinition-Policy-Action-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANFunctionDefinition_Policy_Action_Item_H_
diff --git a/e2sm/headers/RANFunctionDefinition-Policy-Item.h b/e2sm/headers/RANFunctionDefinition-Policy-Item.h
old mode 100755
new mode 100644
index 58752ca..4286c88
--- a/e2sm/headers/RANFunctionDefinition-Policy-Item.h
+++ b/e2sm/headers/RANFunctionDefinition-Policy-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANFunctionDefinition_Policy_Item_H_
diff --git a/e2sm/headers/RANFunctionDefinition-Policy.h b/e2sm/headers/RANFunctionDefinition-Policy.h
old mode 100755
new mode 100644
index 11743ba..962a98d
--- a/e2sm/headers/RANFunctionDefinition-Policy.h
+++ b/e2sm/headers/RANFunctionDefinition-Policy.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANFunctionDefinition_Policy_H_
diff --git a/e2sm/headers/RANFunctionDefinition-Report-Item.h b/e2sm/headers/RANFunctionDefinition-Report-Item.h
old mode 100755
new mode 100644
index c951556..ac716d6
--- a/e2sm/headers/RANFunctionDefinition-Report-Item.h
+++ b/e2sm/headers/RANFunctionDefinition-Report-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANFunctionDefinition_Report_Item_H_
diff --git a/e2sm/headers/RANFunctionDefinition-Report.h b/e2sm/headers/RANFunctionDefinition-Report.h
old mode 100755
new mode 100644
index 1b9d203..8535468
--- a/e2sm/headers/RANFunctionDefinition-Report.h
+++ b/e2sm/headers/RANFunctionDefinition-Report.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANFunctionDefinition_Report_H_
diff --git a/e2sm/headers/RANParameter-Definition-Choice-LIST-Item.h b/e2sm/headers/RANParameter-Definition-Choice-LIST-Item.h
old mode 100755
new mode 100644
index 1be0c9a..3afeca9
--- a/e2sm/headers/RANParameter-Definition-Choice-LIST-Item.h
+++ b/e2sm/headers/RANParameter-Definition-Choice-LIST-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANParameter_Definition_Choice_LIST_Item_H_
diff --git a/e2sm/headers/RANParameter-Definition-Choice-LIST.h b/e2sm/headers/RANParameter-Definition-Choice-LIST.h
old mode 100755
new mode 100644
index c0c035e..5ccaa43
--- a/e2sm/headers/RANParameter-Definition-Choice-LIST.h
+++ b/e2sm/headers/RANParameter-Definition-Choice-LIST.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANParameter_Definition_Choice_LIST_H_
diff --git a/e2sm/headers/RANParameter-Definition-Choice-STRUCTURE-Item.h b/e2sm/headers/RANParameter-Definition-Choice-STRUCTURE-Item.h
old mode 100755
new mode 100644
index 2cf8f46..f0fea4a
--- a/e2sm/headers/RANParameter-Definition-Choice-STRUCTURE-Item.h
+++ b/e2sm/headers/RANParameter-Definition-Choice-STRUCTURE-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANParameter_Definition_Choice_STRUCTURE_Item_H_
diff --git a/e2sm/headers/RANParameter-Definition-Choice-STRUCTURE.h b/e2sm/headers/RANParameter-Definition-Choice-STRUCTURE.h
old mode 100755
new mode 100644
index 6c004fa..aa0b336
--- a/e2sm/headers/RANParameter-Definition-Choice-STRUCTURE.h
+++ b/e2sm/headers/RANParameter-Definition-Choice-STRUCTURE.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANParameter_Definition_Choice_STRUCTURE_H_
diff --git a/e2sm/headers/RANParameter-Definition-Choice.h b/e2sm/headers/RANParameter-Definition-Choice.h
old mode 100755
new mode 100644
index f60f05e..a140a8c
--- a/e2sm/headers/RANParameter-Definition-Choice.h
+++ b/e2sm/headers/RANParameter-Definition-Choice.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANParameter_Definition_Choice_H_
diff --git a/e2sm/headers/RANParameter-Definition.h b/e2sm/headers/RANParameter-Definition.h
old mode 100755
new mode 100644
index 71b63cd..d575f31
--- a/e2sm/headers/RANParameter-Definition.h
+++ b/e2sm/headers/RANParameter-Definition.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANParameter_Definition_H_
diff --git a/e2sm/headers/RANParameter-ID.h b/e2sm/headers/RANParameter-ID.h
old mode 100755
new mode 100644
index 4135c39..670a579
--- a/e2sm/headers/RANParameter-ID.h
+++ b/e2sm/headers/RANParameter-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANParameter_ID_H_
@@ -19,11 +19,12 @@
 #endif
 
 /* RANParameter-ID */
-typedef long	 RANParameter_ID_t;
+typedef unsigned long	 RANParameter_ID_t;
 
 /* Implementation */
 extern asn_per_constraints_t asn_PER_type_RANParameter_ID_constr_1;
 extern asn_TYPE_descriptor_t asn_DEF_RANParameter_ID;
+extern const asn_INTEGER_specifics_t asn_SPC_RANParameter_ID_specs_1;
 asn_struct_free_f RANParameter_ID_free;
 asn_struct_print_f RANParameter_ID_print;
 asn_constr_check_f RANParameter_ID_constraint;
diff --git a/e2sm/headers/RANParameter-LIST.h b/e2sm/headers/RANParameter-LIST.h
old mode 100755
new mode 100644
index daba313..1a0a4c4
--- a/e2sm/headers/RANParameter-LIST.h
+++ b/e2sm/headers/RANParameter-LIST.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANParameter_LIST_H_
diff --git a/e2sm/headers/RANParameter-Name.h b/e2sm/headers/RANParameter-Name.h
old mode 100755
new mode 100644
index 6efd1a5..44d89e3
--- a/e2sm/headers/RANParameter-Name.h
+++ b/e2sm/headers/RANParameter-Name.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANParameter_Name_H_
diff --git a/e2sm/headers/RANParameter-STRUCTURE-Item.h b/e2sm/headers/RANParameter-STRUCTURE-Item.h
old mode 100755
new mode 100644
index 6a702d7..ece61f1
--- a/e2sm/headers/RANParameter-STRUCTURE-Item.h
+++ b/e2sm/headers/RANParameter-STRUCTURE-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANParameter_STRUCTURE_Item_H_
diff --git a/e2sm/headers/RANParameter-STRUCTURE.h b/e2sm/headers/RANParameter-STRUCTURE.h
old mode 100755
new mode 100644
index 0b1c4d4..d7eaab3
--- a/e2sm/headers/RANParameter-STRUCTURE.h
+++ b/e2sm/headers/RANParameter-STRUCTURE.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANParameter_STRUCTURE_H_
diff --git a/e2sm/headers/RANParameter-Testing-Item-Choice-ElementFalse.h b/e2sm/headers/RANParameter-Testing-Item-Choice-ElementFalse.h
old mode 100755
new mode 100644
index cc87683..5b940f7
--- a/e2sm/headers/RANParameter-Testing-Item-Choice-ElementFalse.h
+++ b/e2sm/headers/RANParameter-Testing-Item-Choice-ElementFalse.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANParameter_Testing_Item_Choice_ElementFalse_H_
diff --git a/e2sm/headers/RANParameter-Testing-Item-Choice-ElementTrue.h b/e2sm/headers/RANParameter-Testing-Item-Choice-ElementTrue.h
old mode 100755
new mode 100644
index 85554f6..eb94431
--- a/e2sm/headers/RANParameter-Testing-Item-Choice-ElementTrue.h
+++ b/e2sm/headers/RANParameter-Testing-Item-Choice-ElementTrue.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANParameter_Testing_Item_Choice_ElementTrue_H_
diff --git a/e2sm/headers/RANParameter-Testing-Item-Choice-List.h b/e2sm/headers/RANParameter-Testing-Item-Choice-List.h
old mode 100755
new mode 100644
index 43de60a..857d9f0
--- a/e2sm/headers/RANParameter-Testing-Item-Choice-List.h
+++ b/e2sm/headers/RANParameter-Testing-Item-Choice-List.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANParameter_Testing_Item_Choice_List_H_
diff --git a/e2sm/headers/RANParameter-Testing-Item-Choice-Structure.h b/e2sm/headers/RANParameter-Testing-Item-Choice-Structure.h
old mode 100755
new mode 100644
index 7c9a516..d03e650
--- a/e2sm/headers/RANParameter-Testing-Item-Choice-Structure.h
+++ b/e2sm/headers/RANParameter-Testing-Item-Choice-Structure.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANParameter_Testing_Item_Choice_Structure_H_
diff --git a/e2sm/headers/RANParameter-Testing-Item.h b/e2sm/headers/RANParameter-Testing-Item.h
old mode 100755
new mode 100644
index 218c8f0..1a44511
--- a/e2sm/headers/RANParameter-Testing-Item.h
+++ b/e2sm/headers/RANParameter-Testing-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANParameter_Testing_Item_H_
diff --git a/e2sm/headers/RANParameter-Testing-LIST.h b/e2sm/headers/RANParameter-Testing-LIST.h
old mode 100755
new mode 100644
index 8c43900..ca1aa83
--- a/e2sm/headers/RANParameter-Testing-LIST.h
+++ b/e2sm/headers/RANParameter-Testing-LIST.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANParameter_Testing_LIST_H_
diff --git a/e2sm/headers/RANParameter-Testing-STRUCTURE.h b/e2sm/headers/RANParameter-Testing-STRUCTURE.h
old mode 100755
new mode 100644
index e3cd354..a34b34b
--- a/e2sm/headers/RANParameter-Testing-STRUCTURE.h
+++ b/e2sm/headers/RANParameter-Testing-STRUCTURE.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANParameter_Testing_STRUCTURE_H_
diff --git a/e2sm/headers/RANParameter-Testing.h b/e2sm/headers/RANParameter-Testing.h
old mode 100755
new mode 100644
index 4c4bf1a..b7a4bbf
--- a/e2sm/headers/RANParameter-Testing.h
+++ b/e2sm/headers/RANParameter-Testing.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANParameter_Testing_H_
diff --git a/e2sm/headers/RANParameter-TestingCondition.h b/e2sm/headers/RANParameter-TestingCondition.h
old mode 100755
new mode 100644
index 2ece0f0..bd059f1
--- a/e2sm/headers/RANParameter-TestingCondition.h
+++ b/e2sm/headers/RANParameter-TestingCondition.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANParameter_TestingCondition_H_
diff --git a/e2sm/headers/RANParameter-Value.h b/e2sm/headers/RANParameter-Value.h
old mode 100755
new mode 100644
index 2ef91a4..f5510b9
--- a/e2sm/headers/RANParameter-Value.h
+++ b/e2sm/headers/RANParameter-Value.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANParameter_Value_H_
diff --git a/e2sm/headers/RANParameter-ValueType-Choice-ElementFalse.h b/e2sm/headers/RANParameter-ValueType-Choice-ElementFalse.h
old mode 100755
new mode 100644
index d8d925a..a6dad9d
--- a/e2sm/headers/RANParameter-ValueType-Choice-ElementFalse.h
+++ b/e2sm/headers/RANParameter-ValueType-Choice-ElementFalse.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANParameter_ValueType_Choice_ElementFalse_H_
diff --git a/e2sm/headers/RANParameter-ValueType-Choice-ElementTrue.h b/e2sm/headers/RANParameter-ValueType-Choice-ElementTrue.h
old mode 100755
new mode 100644
index efd275a..2475273
--- a/e2sm/headers/RANParameter-ValueType-Choice-ElementTrue.h
+++ b/e2sm/headers/RANParameter-ValueType-Choice-ElementTrue.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANParameter_ValueType_Choice_ElementTrue_H_
diff --git a/e2sm/headers/RANParameter-ValueType-Choice-List.h b/e2sm/headers/RANParameter-ValueType-Choice-List.h
old mode 100755
new mode 100644
index f06bc9b..fcd6d8c
--- a/e2sm/headers/RANParameter-ValueType-Choice-List.h
+++ b/e2sm/headers/RANParameter-ValueType-Choice-List.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANParameter_ValueType_Choice_List_H_
diff --git a/e2sm/headers/RANParameter-ValueType-Choice-Structure.h b/e2sm/headers/RANParameter-ValueType-Choice-Structure.h
old mode 100755
new mode 100644
index 9931c70..a8f1d04
--- a/e2sm/headers/RANParameter-ValueType-Choice-Structure.h
+++ b/e2sm/headers/RANParameter-ValueType-Choice-Structure.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANParameter_ValueType_Choice_Structure_H_
diff --git a/e2sm/headers/RANParameter-ValueType.h b/e2sm/headers/RANParameter-ValueType.h
old mode 100755
new mode 100644
index 09941b1..9fea3d5
--- a/e2sm/headers/RANParameter-ValueType.h
+++ b/e2sm/headers/RANParameter-ValueType.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANParameter_ValueType_H_
diff --git a/e2sm/headers/RANUEID.h b/e2sm/headers/RANUEID.h
old mode 100755
new mode 100644
index bfd9fa8..3cee4f8
--- a/e2sm/headers/RANUEID.h
+++ b/e2sm/headers/RANUEID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANUEID_H_
diff --git a/e2sm/headers/RANfunction-Name.h b/e2sm/headers/RANfunction-Name.h
old mode 100755
new mode 100644
index 9262ade..deb65f9
--- a/e2sm/headers/RANfunction-Name.h
+++ b/e2sm/headers/RANfunction-Name.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RANfunction_Name_H_
diff --git a/e2sm/headers/REAL.h b/e2sm/headers/REAL.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/RIC-CallProcessBreakpoint-ID.h b/e2sm/headers/RIC-CallProcessBreakpoint-ID.h
old mode 100755
new mode 100644
index c228957..0a2b6af
--- a/e2sm/headers/RIC-CallProcessBreakpoint-ID.h
+++ b/e2sm/headers/RIC-CallProcessBreakpoint-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RIC_CallProcessBreakpoint_ID_H_
diff --git a/e2sm/headers/RIC-CallProcessBreakpoint-Name.h b/e2sm/headers/RIC-CallProcessBreakpoint-Name.h
old mode 100755
new mode 100644
index e25b00d..30b3303
--- a/e2sm/headers/RIC-CallProcessBreakpoint-Name.h
+++ b/e2sm/headers/RIC-CallProcessBreakpoint-Name.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RIC_CallProcessBreakpoint_Name_H_
diff --git a/e2sm/headers/RIC-CallProcessType-ID.h b/e2sm/headers/RIC-CallProcessType-ID.h
old mode 100755
new mode 100644
index ec6f05c..901ba5e
--- a/e2sm/headers/RIC-CallProcessType-ID.h
+++ b/e2sm/headers/RIC-CallProcessType-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RIC_CallProcessType_ID_H_
diff --git a/e2sm/headers/RIC-CallProcessType-Name.h b/e2sm/headers/RIC-CallProcessType-Name.h
old mode 100755
new mode 100644
index 787cb02..13a9013
--- a/e2sm/headers/RIC-CallProcessType-Name.h
+++ b/e2sm/headers/RIC-CallProcessType-Name.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RIC_CallProcessType_Name_H_
diff --git a/e2sm/headers/RIC-ControlAction-ID.h b/e2sm/headers/RIC-ControlAction-ID.h
old mode 100755
new mode 100644
index 5c62283..b19f1ea
--- a/e2sm/headers/RIC-ControlAction-ID.h
+++ b/e2sm/headers/RIC-ControlAction-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RIC_ControlAction_ID_H_
diff --git a/e2sm/headers/RIC-ControlAction-Name.h b/e2sm/headers/RIC-ControlAction-Name.h
old mode 100755
new mode 100644
index 30eb1b5..fcbc03e
--- a/e2sm/headers/RIC-ControlAction-Name.h
+++ b/e2sm/headers/RIC-ControlAction-Name.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RIC_ControlAction_Name_H_
diff --git a/e2sm/headers/RIC-EventTrigger-Cell-ID.h b/e2sm/headers/RIC-EventTrigger-Cell-ID.h
old mode 100755
new mode 100644
index 9fd9ebe..737098d
--- a/e2sm/headers/RIC-EventTrigger-Cell-ID.h
+++ b/e2sm/headers/RIC-EventTrigger-Cell-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RIC_EventTrigger_Cell_ID_H_
diff --git a/e2sm/headers/RIC-EventTrigger-UE-ID.h b/e2sm/headers/RIC-EventTrigger-UE-ID.h
old mode 100755
new mode 100644
index d5c32f3..702ee72
--- a/e2sm/headers/RIC-EventTrigger-UE-ID.h
+++ b/e2sm/headers/RIC-EventTrigger-UE-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RIC_EventTrigger_UE_ID_H_
diff --git a/e2sm/headers/RIC-EventTrigger-UEevent-ID.h b/e2sm/headers/RIC-EventTrigger-UEevent-ID.h
old mode 100755
new mode 100644
index 51c9aa0..61d07a7
--- a/e2sm/headers/RIC-EventTrigger-UEevent-ID.h
+++ b/e2sm/headers/RIC-EventTrigger-UEevent-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RIC_EventTrigger_UEevent_ID_H_
diff --git a/e2sm/headers/RIC-EventTriggerCondition-ID.h b/e2sm/headers/RIC-EventTriggerCondition-ID.h
old mode 100755
new mode 100644
index 5079e45..ec0335b
--- a/e2sm/headers/RIC-EventTriggerCondition-ID.h
+++ b/e2sm/headers/RIC-EventTriggerCondition-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RIC_EventTriggerCondition_ID_H_
diff --git a/e2sm/headers/RIC-Format-Type.h b/e2sm/headers/RIC-Format-Type.h
old mode 100755
new mode 100644
index a81c54a..e82251d
--- a/e2sm/headers/RIC-Format-Type.h
+++ b/e2sm/headers/RIC-Format-Type.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RIC_Format_Type_H_
diff --git a/e2sm/headers/RIC-InsertIndication-ID.h b/e2sm/headers/RIC-InsertIndication-ID.h
old mode 100755
new mode 100644
index 55b4384..6ea6430
--- a/e2sm/headers/RIC-InsertIndication-ID.h
+++ b/e2sm/headers/RIC-InsertIndication-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RIC_InsertIndication_ID_H_
diff --git a/e2sm/headers/RIC-InsertIndication-Name.h b/e2sm/headers/RIC-InsertIndication-Name.h
old mode 100755
new mode 100644
index 2387e30..2c7fed1
--- a/e2sm/headers/RIC-InsertIndication-Name.h
+++ b/e2sm/headers/RIC-InsertIndication-Name.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RIC_InsertIndication_Name_H_
diff --git a/e2sm/headers/RIC-PolicyAction-RANParameter-Item.h b/e2sm/headers/RIC-PolicyAction-RANParameter-Item.h
old mode 100755
new mode 100644
index 83a93ef..f4e6dd0
--- a/e2sm/headers/RIC-PolicyAction-RANParameter-Item.h
+++ b/e2sm/headers/RIC-PolicyAction-RANParameter-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RIC_PolicyAction_RANParameter_Item_H_
diff --git a/e2sm/headers/RIC-PolicyAction.h b/e2sm/headers/RIC-PolicyAction.h
old mode 100755
new mode 100644
index 92e63d1..8bff62f
--- a/e2sm/headers/RIC-PolicyAction.h
+++ b/e2sm/headers/RIC-PolicyAction.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RIC_PolicyAction_H_
@@ -13,6 +13,7 @@
 
 /* Including external dependencies */
 #include "RIC-ControlAction-ID.h"
+#include <NativeEnumerated.h>
 #include <asn_SEQUENCE_OF.h>
 #include <constr_SEQUENCE_OF.h>
 #include <constr_SEQUENCE.h>
@@ -21,6 +22,15 @@
 extern "C" {
 #endif
 
+/* Dependencies */
+typedef enum RIC_PolicyAction__ric_PolicyDecision {
+	RIC_PolicyAction__ric_PolicyDecision_accept	= 0,
+	RIC_PolicyAction__ric_PolicyDecision_reject	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RIC_PolicyAction__ric_PolicyDecision;
+
 /* Forward declarations */
 struct RIC_PolicyAction_RANParameter_Item;
 
@@ -37,15 +47,17 @@
 	 * This type is extensible,
 	 * possible extensions are below.
 	 */
+	long	*ric_PolicyDecision;	/* OPTIONAL */
 	
 	/* Context for parsing across buffer boundaries */
 	asn_struct_ctx_t _asn_ctx;
 } RIC_PolicyAction_t;
 
 /* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_ric_PolicyDecision_6;	// (Use -fall-defs-global to expose) */
 extern asn_TYPE_descriptor_t asn_DEF_RIC_PolicyAction;
 extern asn_SEQUENCE_specifics_t asn_SPC_RIC_PolicyAction_specs_1;
-extern asn_TYPE_member_t asn_MBR_RIC_PolicyAction_1[2];
+extern asn_TYPE_member_t asn_MBR_RIC_PolicyAction_1[3];
 
 #ifdef __cplusplus
 }
diff --git a/e2sm/headers/RIC-Style-Name.h b/e2sm/headers/RIC-Style-Name.h
old mode 100755
new mode 100644
index 1d870ce..9603b4a
--- a/e2sm/headers/RIC-Style-Name.h
+++ b/e2sm/headers/RIC-Style-Name.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RIC_Style_Name_H_
diff --git a/e2sm/headers/RIC-Style-Type.h b/e2sm/headers/RIC-Style-Type.h
old mode 100755
new mode 100644
index efc0e91..c36f8a8
--- a/e2sm/headers/RIC-Style-Type.h
+++ b/e2sm/headers/RIC-Style-Type.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RIC_Style_Type_H_
diff --git a/e2sm/headers/RRC-MessageID.h b/e2sm/headers/RRC-MessageID.h
old mode 100755
new mode 100644
index 0a2f333..5c4461c
--- a/e2sm/headers/RRC-MessageID.h
+++ b/e2sm/headers/RRC-MessageID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RRC_MessageID_H_
diff --git a/e2sm/headers/RRC-State.h b/e2sm/headers/RRC-State.h
old mode 100755
new mode 100644
index bdc3146..7cbbbd0
--- a/e2sm/headers/RRC-State.h
+++ b/e2sm/headers/RRC-State.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RRC_State_H_
diff --git a/e2sm/headers/RRCclass-LTE.h b/e2sm/headers/RRCclass-LTE.h
old mode 100755
new mode 100644
index f7b019e..a56f897
--- a/e2sm/headers/RRCclass-LTE.h
+++ b/e2sm/headers/RRCclass-LTE.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RRCclass_LTE_H_
diff --git a/e2sm/headers/RRCclass-NR.h b/e2sm/headers/RRCclass-NR.h
old mode 100755
new mode 100644
index 20ad1ef..9f6475c
--- a/e2sm/headers/RRCclass-NR.h
+++ b/e2sm/headers/RRCclass-NR.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_RRCclass_NR_H_
diff --git a/e2sm/headers/Report-RANParameter-Item.h b/e2sm/headers/Report-RANParameter-Item.h
old mode 100755
new mode 100644
index 4ba5ccb..4e6b386
--- a/e2sm/headers/Report-RANParameter-Item.h
+++ b/e2sm/headers/Report-RANParameter-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_Report_RANParameter_Item_H_
diff --git a/e2sm/headers/S-NSSAI.h b/e2sm/headers/S-NSSAI.h
old mode 100755
new mode 100644
index 529fa19..ade3ead
--- a/e2sm/headers/S-NSSAI.h
+++ b/e2sm/headers/S-NSSAI.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_S_NSSAI_H_
diff --git a/e2sm/headers/SD.h b/e2sm/headers/SD.h
old mode 100755
new mode 100644
index e1f8205..20fd4a6
--- a/e2sm/headers/SD.h
+++ b/e2sm/headers/SD.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_SD_H_
diff --git a/e2sm/headers/SST.h b/e2sm/headers/SST.h
old mode 100755
new mode 100644
index 1b75898..948c5ae
--- a/e2sm/headers/SST.h
+++ b/e2sm/headers/SST.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_SST_H_
diff --git a/e2sm/headers/ServingCell-ARFCN.h b/e2sm/headers/ServingCell-ARFCN.h
old mode 100755
new mode 100644
index f5bcac5..a161892
--- a/e2sm/headers/ServingCell-ARFCN.h
+++ b/e2sm/headers/ServingCell-ARFCN.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_ServingCell_ARFCN_H_
diff --git a/e2sm/headers/ServingCell-PCI.h b/e2sm/headers/ServingCell-PCI.h
old mode 100755
new mode 100644
index 872be1f..c516cae
--- a/e2sm/headers/ServingCell-PCI.h
+++ b/e2sm/headers/ServingCell-PCI.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_ServingCell_PCI_H_
diff --git a/e2sm/headers/SubscriberProfileIDforRFP.h b/e2sm/headers/SubscriberProfileIDforRFP.h
old mode 100755
new mode 100644
index 3c05cb9..441e728
--- a/e2sm/headers/SubscriberProfileIDforRFP.h
+++ b/e2sm/headers/SubscriberProfileIDforRFP.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_SubscriberProfileIDforRFP_H_
diff --git a/e2sm/headers/SupportedSULBandList.h b/e2sm/headers/SupportedSULBandList.h
old mode 100755
new mode 100644
index 7985160..d1ac7b9
--- a/e2sm/headers/SupportedSULBandList.h
+++ b/e2sm/headers/SupportedSULBandList.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_SupportedSULBandList_H_
diff --git a/e2sm/headers/SupportedSULFreqBandItem.h b/e2sm/headers/SupportedSULFreqBandItem.h
old mode 100755
new mode 100644
index e4fc2c1..3eceeab
--- a/e2sm/headers/SupportedSULFreqBandItem.h
+++ b/e2sm/headers/SupportedSULFreqBandItem.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_SupportedSULFreqBandItem_H_
diff --git a/e2sm/headers/TriggerType-Choice-L2state.h b/e2sm/headers/TriggerType-Choice-L2state.h
old mode 100755
new mode 100644
index d22cc96..ea9570a
--- a/e2sm/headers/TriggerType-Choice-L2state.h
+++ b/e2sm/headers/TriggerType-Choice-L2state.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_TriggerType_Choice_L2state_H_
diff --git a/e2sm/headers/TriggerType-Choice-RRCstate-Item.h b/e2sm/headers/TriggerType-Choice-RRCstate-Item.h
old mode 100755
new mode 100644
index 0ab1f55..c5c9774
--- a/e2sm/headers/TriggerType-Choice-RRCstate-Item.h
+++ b/e2sm/headers/TriggerType-Choice-RRCstate-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_TriggerType_Choice_RRCstate_Item_H_
diff --git a/e2sm/headers/TriggerType-Choice-RRCstate.h b/e2sm/headers/TriggerType-Choice-RRCstate.h
old mode 100755
new mode 100644
index ea2bcc5..1805bd8
--- a/e2sm/headers/TriggerType-Choice-RRCstate.h
+++ b/e2sm/headers/TriggerType-Choice-RRCstate.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_TriggerType_Choice_RRCstate_H_
diff --git a/e2sm/headers/TriggerType-Choice-UEID.h b/e2sm/headers/TriggerType-Choice-UEID.h
old mode 100755
new mode 100644
index ad50aaf..8920c36
--- a/e2sm/headers/TriggerType-Choice-UEID.h
+++ b/e2sm/headers/TriggerType-Choice-UEID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_TriggerType_Choice_UEID_H_
diff --git a/e2sm/headers/TriggerType-Choice.h b/e2sm/headers/TriggerType-Choice.h
old mode 100755
new mode 100644
index 41dbff4..20afe9c
--- a/e2sm/headers/TriggerType-Choice.h
+++ b/e2sm/headers/TriggerType-Choice.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_TriggerType_Choice_H_
diff --git a/e2sm/headers/UEID-EN-GNB.h b/e2sm/headers/UEID-EN-GNB.h
old mode 100755
new mode 100644
index b8f6104..2d19777
--- a/e2sm/headers/UEID-EN-GNB.h
+++ b/e2sm/headers/UEID-EN-GNB.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_UEID_EN_GNB_H_
diff --git a/e2sm/headers/UEID-ENB.h b/e2sm/headers/UEID-ENB.h
old mode 100755
new mode 100644
index 0549076..833b52f
--- a/e2sm/headers/UEID-ENB.h
+++ b/e2sm/headers/UEID-ENB.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_UEID_ENB_H_
diff --git a/e2sm/headers/UEID-GNB-CU-CP-E1AP-ID-Item.h b/e2sm/headers/UEID-GNB-CU-CP-E1AP-ID-Item.h
old mode 100755
new mode 100644
index 9818980..6844487
--- a/e2sm/headers/UEID-GNB-CU-CP-E1AP-ID-Item.h
+++ b/e2sm/headers/UEID-GNB-CU-CP-E1AP-ID-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_UEID_GNB_CU_CP_E1AP_ID_Item_H_
diff --git a/e2sm/headers/UEID-GNB-CU-CP-E1AP-ID-List.h b/e2sm/headers/UEID-GNB-CU-CP-E1AP-ID-List.h
old mode 100755
new mode 100644
index faca51a..5dd862a
--- a/e2sm/headers/UEID-GNB-CU-CP-E1AP-ID-List.h
+++ b/e2sm/headers/UEID-GNB-CU-CP-E1AP-ID-List.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_UEID_GNB_CU_CP_E1AP_ID_List_H_
diff --git a/e2sm/headers/UEID-GNB-CU-CP-F1AP-ID-Item.h b/e2sm/headers/UEID-GNB-CU-CP-F1AP-ID-Item.h
old mode 100755
new mode 100644
index 580de4c..8193bcf
--- a/e2sm/headers/UEID-GNB-CU-CP-F1AP-ID-Item.h
+++ b/e2sm/headers/UEID-GNB-CU-CP-F1AP-ID-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_UEID_GNB_CU_CP_F1AP_ID_Item_H_
diff --git a/e2sm/headers/UEID-GNB-CU-F1AP-ID-List.h b/e2sm/headers/UEID-GNB-CU-F1AP-ID-List.h
old mode 100755
new mode 100644
index ff71811..b1384c3
--- a/e2sm/headers/UEID-GNB-CU-F1AP-ID-List.h
+++ b/e2sm/headers/UEID-GNB-CU-F1AP-ID-List.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_UEID_GNB_CU_F1AP_ID_List_H_
diff --git a/e2sm/headers/UEID-GNB-CU-UP.h b/e2sm/headers/UEID-GNB-CU-UP.h
old mode 100755
new mode 100644
index d9e8fc0..545fe5d
--- a/e2sm/headers/UEID-GNB-CU-UP.h
+++ b/e2sm/headers/UEID-GNB-CU-UP.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_UEID_GNB_CU_UP_H_
diff --git a/e2sm/headers/UEID-GNB-DU.h b/e2sm/headers/UEID-GNB-DU.h
old mode 100755
new mode 100644
index bf224c4..3fc4b80
--- a/e2sm/headers/UEID-GNB-DU.h
+++ b/e2sm/headers/UEID-GNB-DU.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_UEID_GNB_DU_H_
diff --git a/e2sm/headers/UEID-GNB.h b/e2sm/headers/UEID-GNB.h
old mode 100755
new mode 100644
index 4a76f62..4d62c06
--- a/e2sm/headers/UEID-GNB.h
+++ b/e2sm/headers/UEID-GNB.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_UEID_GNB_H_
diff --git a/e2sm/headers/UEID-NG-ENB-DU.h b/e2sm/headers/UEID-NG-ENB-DU.h
old mode 100755
new mode 100644
index 1aa0b27..fb405e5
--- a/e2sm/headers/UEID-NG-ENB-DU.h
+++ b/e2sm/headers/UEID-NG-ENB-DU.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_UEID_NG_ENB_DU_H_
diff --git a/e2sm/headers/UEID-NG-ENB.h b/e2sm/headers/UEID-NG-ENB.h
old mode 100755
new mode 100644
index bb19c7e..cd0125d
--- a/e2sm/headers/UEID-NG-ENB.h
+++ b/e2sm/headers/UEID-NG-ENB.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_UEID_NG_ENB_H_
diff --git a/e2sm/headers/UEID.h b/e2sm/headers/UEID.h
old mode 100755
new mode 100644
index 26988b5..2526585
--- a/e2sm/headers/UEID.h
+++ b/e2sm/headers/UEID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_UEID_H_
diff --git a/e2sm/headers/UEIdentification-RANParameter-Item.h b/e2sm/headers/UEIdentification-RANParameter-Item.h
old mode 100755
new mode 100644
index 75f461f..54a1d4b
--- a/e2sm/headers/UEIdentification-RANParameter-Item.h
+++ b/e2sm/headers/UEIdentification-RANParameter-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #ifndef	_UEIdentification_RANParameter_Item_H_
diff --git a/e2sm/headers/asn_SEQUENCE_OF.h b/e2sm/headers/asn_SEQUENCE_OF.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/asn_SET_OF.h b/e2sm/headers/asn_SET_OF.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/asn_application.h b/e2sm/headers/asn_application.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/asn_bit_data.h b/e2sm/headers/asn_bit_data.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/asn_codecs.h b/e2sm/headers/asn_codecs.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/asn_codecs_prim.h b/e2sm/headers/asn_codecs_prim.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/asn_constant.h b/e2sm/headers/asn_constant.h
old mode 100755
new mode 100644
index 4566a7a..9340288
--- a/e2sm/headers/asn_constant.h
+++ b/e2sm/headers/asn_constant.h
@@ -9,11 +9,6 @@
 extern "C" {
 #endif
 
-#define maxE1APid (65535)
-#define maxF1APid (4)
-#define maxEARFCN (65535)
-#define maxNRARFCN (3279165)
-#define maxnoofNrCellBands (32)
 #define maxnoofMessages (65535)
 #define maxnoofE2InfoChanges (65535)
 #define maxnoofUEInfoChanges (65535)
@@ -37,6 +32,13 @@
 #define maxnoofInsertIndication (65535)
 #define maxnoofControlAction (65535)
 #define maxnoofPolicyAction (65535)
+#define maxnoofInsertIndicationActions (63)
+#define maxnoofMulCtrlActions (63)
+#define maxE1APid (65535)
+#define maxF1APid (4)
+#define maxEARFCN (65535)
+#define maxNRARFCN (3279165)
+#define maxnoofNrCellBands (32)
 
 
 #ifdef __cplusplus
diff --git a/e2sm/headers/asn_internal.h b/e2sm/headers/asn_internal.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/asn_ioc.h b/e2sm/headers/asn_ioc.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/asn_random_fill.h b/e2sm/headers/asn_random_fill.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/asn_system.h b/e2sm/headers/asn_system.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/ber_decoder.h b/e2sm/headers/ber_decoder.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/ber_tlv_length.h b/e2sm/headers/ber_tlv_length.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/ber_tlv_tag.h b/e2sm/headers/ber_tlv_tag.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/constr_CHOICE.h b/e2sm/headers/constr_CHOICE.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/constr_SEQUENCE.h b/e2sm/headers/constr_SEQUENCE.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/constr_SEQUENCE_OF.h b/e2sm/headers/constr_SEQUENCE_OF.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/constr_SET_OF.h b/e2sm/headers/constr_SET_OF.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/constr_TYPE.h b/e2sm/headers/constr_TYPE.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/constraints.h b/e2sm/headers/constraints.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/der_encoder.h b/e2sm/headers/der_encoder.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/oer_decoder.h b/e2sm/headers/oer_decoder.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/oer_encoder.h b/e2sm/headers/oer_encoder.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/oer_support.h b/e2sm/headers/oer_support.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/per_decoder.h b/e2sm/headers/per_decoder.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/per_encoder.h b/e2sm/headers/per_encoder.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/per_opentype.h b/e2sm/headers/per_opentype.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/per_support.h b/e2sm/headers/per_support.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/tags b/e2sm/headers/tags
deleted file mode 100755
index 0f08eea..0000000
--- a/e2sm/headers/tags
+++ /dev/null
@@ -1,11 +0,0 @@
-!_TAG_FILE_FORMAT	2	/extended format; --format=1 will not append ;" to lines/
-!_TAG_FILE_SORTED	1	/0=unsorted, 1=sorted, 2=foldcase/
-!_TAG_OUTPUT_EXCMD	mixed	/number, pattern, mixed, or combineV2/
-!_TAG_OUTPUT_FILESEP	slash	/slash or backslash/
-!_TAG_OUTPUT_MODE	u-ctags	/u-ctags or e-ctags/
-!_TAG_PATTERN_LENGTH_LIMIT	96	/0 for no limit/
-!_TAG_PROC_CWD	/home/ubuntu/tm/rc/e2sm/headers/	//
-!_TAG_PROGRAM_AUTHOR	Universal Ctags Team	//
-!_TAG_PROGRAM_NAME	Universal Ctags	/Derived from Exuberant Ctags/
-!_TAG_PROGRAM_URL	https://ctags.io/	/official site/
-!_TAG_PROGRAM_VERSION	5.9.0	/7877f202/
diff --git a/e2sm/headers/xer_decoder.h b/e2sm/headers/xer_decoder.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/xer_encoder.h b/e2sm/headers/xer_encoder.h
old mode 100755
new mode 100644
diff --git a/e2sm/headers/xer_support.h b/e2sm/headers/xer_support.h
old mode 100755
new mode 100644
diff --git a/e2sm/lib/AMF-UE-NGAP-ID.c b/e2sm/lib/AMF-UE-NGAP-ID.c
index 403bacf..0180c9e 100644
--- a/e2sm/lib/AMF-UE-NGAP-ID.c
+++ b/e2sm/lib/AMF-UE-NGAP-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "AMF-UE-NGAP-ID.h"
diff --git a/e2sm/lib/AMFPointer.c b/e2sm/lib/AMFPointer.c
index 70592cd..b8be1d1 100644
--- a/e2sm/lib/AMFPointer.c
+++ b/e2sm/lib/AMFPointer.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "AMFPointer.h"
diff --git a/e2sm/lib/AMFRegionID.c b/e2sm/lib/AMFRegionID.c
index f686a27..fc663d9 100644
--- a/e2sm/lib/AMFRegionID.c
+++ b/e2sm/lib/AMFRegionID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "AMFRegionID.h"
diff --git a/e2sm/lib/AMFSetID.c b/e2sm/lib/AMFSetID.c
index 797bdba..28886f2 100644
--- a/e2sm/lib/AMFSetID.c
+++ b/e2sm/lib/AMFSetID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "AMFSetID.h"
diff --git a/e2sm/lib/CGI.c b/e2sm/lib/CGI.c
index a0f0d66..99b1946 100644
--- a/e2sm/lib/CGI.c
+++ b/e2sm/lib/CGI.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "CGI.h"
diff --git a/e2sm/lib/CallProcessBreakpoint-RANParameter-Item.c b/e2sm/lib/CallProcessBreakpoint-RANParameter-Item.c
index 4825bb7..4933869 100644
--- a/e2sm/lib/CallProcessBreakpoint-RANParameter-Item.c
+++ b/e2sm/lib/CallProcessBreakpoint-RANParameter-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "CallProcessBreakpoint-RANParameter-Item.h"
diff --git a/e2sm/lib/CellIdentification-RANParameter-Item.c b/e2sm/lib/CellIdentification-RANParameter-Item.c
index 8c6f787..6cec813 100644
--- a/e2sm/lib/CellIdentification-RANParameter-Item.c
+++ b/e2sm/lib/CellIdentification-RANParameter-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "CellIdentification-RANParameter-Item.h"
diff --git a/e2sm/lib/ControlAction-RANParameter-Item.c b/e2sm/lib/ControlAction-RANParameter-Item.c
index c9cca4f..86fddd9 100644
--- a/e2sm/lib/ControlAction-RANParameter-Item.c
+++ b/e2sm/lib/ControlAction-RANParameter-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "ControlAction-RANParameter-Item.h"
diff --git a/e2sm/lib/ControlOutcome-RANParameter-Item.c b/e2sm/lib/ControlOutcome-RANParameter-Item.c
index 30a3ff8..63e624f 100644
--- a/e2sm/lib/ControlOutcome-RANParameter-Item.c
+++ b/e2sm/lib/ControlOutcome-RANParameter-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "ControlOutcome-RANParameter-Item.h"
diff --git a/e2sm/lib/CoreCPID.c b/e2sm/lib/CoreCPID.c
index 1a5c8d4..c3764b7 100644
--- a/e2sm/lib/CoreCPID.c
+++ b/e2sm/lib/CoreCPID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "CoreCPID.h"
diff --git a/e2sm/lib/E-UTRA-ARFCN.c b/e2sm/lib/E-UTRA-ARFCN.c
index 6fa8a7e..00bd514 100644
--- a/e2sm/lib/E-UTRA-ARFCN.c
+++ b/e2sm/lib/E-UTRA-ARFCN.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E-UTRA-ARFCN.h"
diff --git a/e2sm/lib/E-UTRA-PCI.c b/e2sm/lib/E-UTRA-PCI.c
index 4d9f07d..6477cd1 100644
--- a/e2sm/lib/E-UTRA-PCI.c
+++ b/e2sm/lib/E-UTRA-PCI.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E-UTRA-PCI.h"
diff --git a/e2sm/lib/E-UTRA-TAC.c b/e2sm/lib/E-UTRA-TAC.c
index 55ad809..29b30e9 100644
--- a/e2sm/lib/E-UTRA-TAC.c
+++ b/e2sm/lib/E-UTRA-TAC.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E-UTRA-TAC.h"
diff --git a/e2sm/lib/E2SM-RC-ActionDefinition-Format1-Item.c b/e2sm/lib/E2SM-RC-ActionDefinition-Format1-Item.c
index ae6439a..ba8dfa8 100644
--- a/e2sm/lib/E2SM-RC-ActionDefinition-Format1-Item.c
+++ b/e2sm/lib/E2SM-RC-ActionDefinition-Format1-Item.c
@@ -1,12 +1,13 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-ActionDefinition-Format1-Item.h"
 
+#include "RANParameter-Definition.h"
 asn_TYPE_member_t asn_MBR_E2SM_RC_ActionDefinition_Format1_Item_1[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ActionDefinition_Format1_Item, ranParameter_ID),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
@@ -17,19 +18,31 @@
 		0, 0, /* No default value */
 		"ranParameter-ID"
 		},
+	{ ATF_POINTER, 1, offsetof(struct E2SM_RC_ActionDefinition_Format1_Item, ranParameter_Definition),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANParameter_Definition,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranParameter-Definition"
+		},
 };
+static const int asn_MAP_E2SM_RC_ActionDefinition_Format1_Item_oms_1[] = { 1 };
 static const ber_tlv_tag_t asn_DEF_E2SM_RC_ActionDefinition_Format1_Item_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
 static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ActionDefinition_Format1_Item_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ranParameter-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranParameter-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranParameter-Definition */
 };
 asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ActionDefinition_Format1_Item_specs_1 = {
 	sizeof(struct E2SM_RC_ActionDefinition_Format1_Item),
 	offsetof(struct E2SM_RC_ActionDefinition_Format1_Item, _asn_ctx),
 	asn_MAP_E2SM_RC_ActionDefinition_Format1_Item_tag2el_1,
-	1,	/* Count of tags in the map */
-	0, 0, 0,	/* Optional elements (not needed) */
+	2,	/* Count of tags in the map */
+	asn_MAP_E2SM_RC_ActionDefinition_Format1_Item_oms_1,	/* Optional members */
+	0, 1,	/* Root/Additions */
 	1,	/* First extension addition */
 };
 asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ActionDefinition_Format1_Item = {
@@ -44,7 +57,7 @@
 		/sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format1_Item_tags_1[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
 	asn_MBR_E2SM_RC_ActionDefinition_Format1_Item_1,
-	1,	/* Elements count */
+	2,	/* Elements count */
 	&asn_SPC_E2SM_RC_ActionDefinition_Format1_Item_specs_1	/* Additional specs */
 };
 
diff --git a/e2sm/lib/E2SM-RC-ActionDefinition-Format1.c b/e2sm/lib/E2SM-RC-ActionDefinition-Format1.c
index cfe2b5c..7cd3499 100644
--- a/e2sm/lib/E2SM-RC-ActionDefinition-Format1.c
+++ b/e2sm/lib/E2SM-RC-ActionDefinition-Format1.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-ActionDefinition-Format1.h"
diff --git a/e2sm/lib/E2SM-RC-ActionDefinition-Format2-Item.c b/e2sm/lib/E2SM-RC-ActionDefinition-Format2-Item.c
index 3b48569..9a9621b 100644
--- a/e2sm/lib/E2SM-RC-ActionDefinition-Format2-Item.c
+++ b/e2sm/lib/E2SM-RC-ActionDefinition-Format2-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-ActionDefinition-Format2-Item.h"
diff --git a/e2sm/lib/E2SM-RC-ActionDefinition-Format2.c b/e2sm/lib/E2SM-RC-ActionDefinition-Format2.c
index f15018d..057bff9 100644
--- a/e2sm/lib/E2SM-RC-ActionDefinition-Format2.c
+++ b/e2sm/lib/E2SM-RC-ActionDefinition-Format2.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-ActionDefinition-Format2.h"
diff --git a/e2sm/lib/E2SM-RC-ActionDefinition-Format3-Item.c b/e2sm/lib/E2SM-RC-ActionDefinition-Format3-Item.c
index 1390c44..1afbd78 100644
--- a/e2sm/lib/E2SM-RC-ActionDefinition-Format3-Item.c
+++ b/e2sm/lib/E2SM-RC-ActionDefinition-Format3-Item.c
@@ -1,12 +1,13 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-ActionDefinition-Format3-Item.h"
 
+#include "RANParameter-Definition.h"
 asn_TYPE_member_t asn_MBR_E2SM_RC_ActionDefinition_Format3_Item_1[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ActionDefinition_Format3_Item, ranParameter_ID),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
@@ -17,19 +18,31 @@
 		0, 0, /* No default value */
 		"ranParameter-ID"
 		},
+	{ ATF_POINTER, 1, offsetof(struct E2SM_RC_ActionDefinition_Format3_Item, ranParameter_Definition),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANParameter_Definition,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranParameter-Definition"
+		},
 };
+static const int asn_MAP_E2SM_RC_ActionDefinition_Format3_Item_oms_1[] = { 1 };
 static const ber_tlv_tag_t asn_DEF_E2SM_RC_ActionDefinition_Format3_Item_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
 static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ActionDefinition_Format3_Item_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ranParameter-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranParameter-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranParameter-Definition */
 };
 asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ActionDefinition_Format3_Item_specs_1 = {
 	sizeof(struct E2SM_RC_ActionDefinition_Format3_Item),
 	offsetof(struct E2SM_RC_ActionDefinition_Format3_Item, _asn_ctx),
 	asn_MAP_E2SM_RC_ActionDefinition_Format3_Item_tag2el_1,
-	1,	/* Count of tags in the map */
-	0, 0, 0,	/* Optional elements (not needed) */
+	2,	/* Count of tags in the map */
+	asn_MAP_E2SM_RC_ActionDefinition_Format3_Item_oms_1,	/* Optional members */
+	0, 1,	/* Root/Additions */
 	1,	/* First extension addition */
 };
 asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ActionDefinition_Format3_Item = {
@@ -44,7 +57,7 @@
 		/sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format3_Item_tags_1[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
 	asn_MBR_E2SM_RC_ActionDefinition_Format3_Item_1,
-	1,	/* Elements count */
+	2,	/* Elements count */
 	&asn_SPC_E2SM_RC_ActionDefinition_Format3_Item_specs_1	/* Additional specs */
 };
 
diff --git a/e2sm/lib/E2SM-RC-ActionDefinition-Format3.c b/e2sm/lib/E2SM-RC-ActionDefinition-Format3.c
index 1413d05..c745f9f 100644
--- a/e2sm/lib/E2SM-RC-ActionDefinition-Format3.c
+++ b/e2sm/lib/E2SM-RC-ActionDefinition-Format3.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-ActionDefinition-Format3.h"
diff --git a/e2sm/lib/E2SM-RC-ActionDefinition-Format4-Indication-Item.c b/e2sm/lib/E2SM-RC-ActionDefinition-Format4-Indication-Item.c
new file mode 100644
index 0000000..8ec642f
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-ActionDefinition-Format4-Indication-Item.c
@@ -0,0 +1,140 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#include "E2SM-RC-ActionDefinition-Format4-Indication-Item.h"
+
+#include "E2SM-RC-ActionDefinition-Format4-RANP-Item.h"
+static int
+memb_ranP_InsertIndication_List_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size >= 1 && size <= 65535)) {
+		/* Perform validation of the inner elements */
+		return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_oer_constraints_t asn_OER_type_ranP_InsertIndication_List_constr_3 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_type_ranP_InsertIndication_List_constr_3 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  1,  65535 }	/* (SIZE(1..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_ranP_InsertIndication_List_constr_3 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_memb_ranP_InsertIndication_List_constr_3 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  1,  65535 }	/* (SIZE(1..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ranP_InsertIndication_List_3[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2SM_RC_ActionDefinition_Format4_RANP_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ranP_InsertIndication_List_tags_3[] = {
+	(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ranP_InsertIndication_List_specs_3 = {
+	sizeof(struct E2SM_RC_ActionDefinition_Format4_Indication_Item__ranP_InsertIndication_List),
+	offsetof(struct E2SM_RC_ActionDefinition_Format4_Indication_Item__ranP_InsertIndication_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ranP_InsertIndication_List_3 = {
+	"ranP-InsertIndication-List",
+	"ranP-InsertIndication-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ranP_InsertIndication_List_tags_3,
+	sizeof(asn_DEF_ranP_InsertIndication_List_tags_3)
+		/sizeof(asn_DEF_ranP_InsertIndication_List_tags_3[0]) - 1, /* 1 */
+	asn_DEF_ranP_InsertIndication_List_tags_3,	/* Same as above */
+	sizeof(asn_DEF_ranP_InsertIndication_List_tags_3)
+		/sizeof(asn_DEF_ranP_InsertIndication_List_tags_3[0]), /* 2 */
+	{ &asn_OER_type_ranP_InsertIndication_List_constr_3, &asn_PER_type_ranP_InsertIndication_List_constr_3, SEQUENCE_OF_constraint },
+	asn_MBR_ranP_InsertIndication_List_3,
+	1,	/* Single element */
+	&asn_SPC_ranP_InsertIndication_List_specs_3	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_ActionDefinition_Format4_Indication_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ActionDefinition_Format4_Indication_Item, ric_InsertIndication_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_InsertIndication_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-InsertIndication-ID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ActionDefinition_Format4_Indication_Item, ranP_InsertIndication_List),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		0,
+		&asn_DEF_ranP_InsertIndication_List_3,
+		0,
+		{ &asn_OER_memb_ranP_InsertIndication_List_constr_3, &asn_PER_memb_ranP_InsertIndication_List_constr_3,  memb_ranP_InsertIndication_List_constraint_1 },
+		0, 0, /* No default value */
+		"ranP-InsertIndication-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_ActionDefinition_Format4_Indication_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ActionDefinition_Format4_Indication_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-InsertIndication-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranP-InsertIndication-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ActionDefinition_Format4_Indication_Item_specs_1 = {
+	sizeof(struct E2SM_RC_ActionDefinition_Format4_Indication_Item),
+	offsetof(struct E2SM_RC_ActionDefinition_Format4_Indication_Item, _asn_ctx),
+	asn_MAP_E2SM_RC_ActionDefinition_Format4_Indication_Item_tag2el_1,
+	2,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ActionDefinition_Format4_Indication_Item = {
+	"E2SM-RC-ActionDefinition-Format4-Indication-Item",
+	"E2SM-RC-ActionDefinition-Format4-Indication-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_ActionDefinition_Format4_Indication_Item_tags_1,
+	sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format4_Indication_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format4_Indication_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_ActionDefinition_Format4_Indication_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format4_Indication_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format4_Indication_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_ActionDefinition_Format4_Indication_Item_1,
+	2,	/* Elements count */
+	&asn_SPC_E2SM_RC_ActionDefinition_Format4_Indication_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-ActionDefinition-Format4-RANP-Item.c b/e2sm/lib/E2SM-RC-ActionDefinition-Format4-RANP-Item.c
new file mode 100644
index 0000000..5b21ba5
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-ActionDefinition-Format4-RANP-Item.c
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#include "E2SM-RC-ActionDefinition-Format4-RANP-Item.h"
+
+#include "RANParameter-Definition.h"
+asn_TYPE_member_t asn_MBR_E2SM_RC_ActionDefinition_Format4_RANP_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ActionDefinition_Format4_RANP_Item, ranParameter_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANParameter_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranParameter-ID"
+		},
+	{ ATF_POINTER, 1, offsetof(struct E2SM_RC_ActionDefinition_Format4_RANP_Item, ranParameter_Definition),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANParameter_Definition,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranParameter-Definition"
+		},
+};
+static const int asn_MAP_E2SM_RC_ActionDefinition_Format4_RANP_Item_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_ActionDefinition_Format4_RANP_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ActionDefinition_Format4_RANP_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranParameter-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranParameter-Definition */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ActionDefinition_Format4_RANP_Item_specs_1 = {
+	sizeof(struct E2SM_RC_ActionDefinition_Format4_RANP_Item),
+	offsetof(struct E2SM_RC_ActionDefinition_Format4_RANP_Item, _asn_ctx),
+	asn_MAP_E2SM_RC_ActionDefinition_Format4_RANP_Item_tag2el_1,
+	2,	/* Count of tags in the map */
+	asn_MAP_E2SM_RC_ActionDefinition_Format4_RANP_Item_oms_1,	/* Optional members */
+	0, 1,	/* Root/Additions */
+	1,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ActionDefinition_Format4_RANP_Item = {
+	"E2SM-RC-ActionDefinition-Format4-RANP-Item",
+	"E2SM-RC-ActionDefinition-Format4-RANP-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_ActionDefinition_Format4_RANP_Item_tags_1,
+	sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format4_RANP_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format4_RANP_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_ActionDefinition_Format4_RANP_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format4_RANP_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format4_RANP_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_ActionDefinition_Format4_RANP_Item_1,
+	2,	/* Elements count */
+	&asn_SPC_E2SM_RC_ActionDefinition_Format4_RANP_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-ActionDefinition-Format4-Style-Item.c b/e2sm/lib/E2SM-RC-ActionDefinition-Format4-Style-Item.c
new file mode 100644
index 0000000..c2ec5e4
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-ActionDefinition-Format4-Style-Item.c
@@ -0,0 +1,140 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#include "E2SM-RC-ActionDefinition-Format4-Style-Item.h"
+
+#include "E2SM-RC-ActionDefinition-Format4-Indication-Item.h"
+static int
+memb_ric_InsertIndication_List_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size >= 1 && size <= 63)) {
+		/* Perform validation of the inner elements */
+		return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_oer_constraints_t asn_OER_type_ric_InsertIndication_List_constr_3 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..63)) */};
+static asn_per_constraints_t asn_PER_type_ric_InsertIndication_List_constr_3 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 6,  6,  1,  63 }	/* (SIZE(1..63)) */,
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_ric_InsertIndication_List_constr_3 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..63)) */};
+static asn_per_constraints_t asn_PER_memb_ric_InsertIndication_List_constr_3 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 6,  6,  1,  63 }	/* (SIZE(1..63)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ric_InsertIndication_List_3[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2SM_RC_ActionDefinition_Format4_Indication_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ric_InsertIndication_List_tags_3[] = {
+	(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ric_InsertIndication_List_specs_3 = {
+	sizeof(struct E2SM_RC_ActionDefinition_Format4_Style_Item__ric_InsertIndication_List),
+	offsetof(struct E2SM_RC_ActionDefinition_Format4_Style_Item__ric_InsertIndication_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ric_InsertIndication_List_3 = {
+	"ric-InsertIndication-List",
+	"ric-InsertIndication-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ric_InsertIndication_List_tags_3,
+	sizeof(asn_DEF_ric_InsertIndication_List_tags_3)
+		/sizeof(asn_DEF_ric_InsertIndication_List_tags_3[0]) - 1, /* 1 */
+	asn_DEF_ric_InsertIndication_List_tags_3,	/* Same as above */
+	sizeof(asn_DEF_ric_InsertIndication_List_tags_3)
+		/sizeof(asn_DEF_ric_InsertIndication_List_tags_3[0]), /* 2 */
+	{ &asn_OER_type_ric_InsertIndication_List_constr_3, &asn_PER_type_ric_InsertIndication_List_constr_3, SEQUENCE_OF_constraint },
+	asn_MBR_ric_InsertIndication_List_3,
+	1,	/* Single element */
+	&asn_SPC_ric_InsertIndication_List_specs_3	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_ActionDefinition_Format4_Style_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ActionDefinition_Format4_Style_Item, requested_Insert_Style_Type),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_Style_Type,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"requested-Insert-Style-Type"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ActionDefinition_Format4_Style_Item, ric_InsertIndication_List),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		0,
+		&asn_DEF_ric_InsertIndication_List_3,
+		0,
+		{ &asn_OER_memb_ric_InsertIndication_List_constr_3, &asn_PER_memb_ric_InsertIndication_List_constr_3,  memb_ric_InsertIndication_List_constraint_1 },
+		0, 0, /* No default value */
+		"ric-InsertIndication-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_ActionDefinition_Format4_Style_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ActionDefinition_Format4_Style_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* requested-Insert-Style-Type */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ric-InsertIndication-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ActionDefinition_Format4_Style_Item_specs_1 = {
+	sizeof(struct E2SM_RC_ActionDefinition_Format4_Style_Item),
+	offsetof(struct E2SM_RC_ActionDefinition_Format4_Style_Item, _asn_ctx),
+	asn_MAP_E2SM_RC_ActionDefinition_Format4_Style_Item_tag2el_1,
+	2,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ActionDefinition_Format4_Style_Item = {
+	"E2SM-RC-ActionDefinition-Format4-Style-Item",
+	"E2SM-RC-ActionDefinition-Format4-Style-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_ActionDefinition_Format4_Style_Item_tags_1,
+	sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format4_Style_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format4_Style_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_ActionDefinition_Format4_Style_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format4_Style_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format4_Style_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_ActionDefinition_Format4_Style_Item_1,
+	2,	/* Elements count */
+	&asn_SPC_E2SM_RC_ActionDefinition_Format4_Style_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-ActionDefinition-Format4.c b/e2sm/lib/E2SM-RC-ActionDefinition-Format4.c
new file mode 100644
index 0000000..4044d2b
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-ActionDefinition-Format4.c
@@ -0,0 +1,143 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#include "E2SM-RC-ActionDefinition-Format4.h"
+
+#include "UEID.h"
+#include "E2SM-RC-ActionDefinition-Format4-Style-Item.h"
+static int
+memb_ric_InsertStyle_List_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size >= 1 && size <= 63)) {
+		/* Perform validation of the inner elements */
+		return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_oer_constraints_t asn_OER_type_ric_InsertStyle_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..63)) */};
+static asn_per_constraints_t asn_PER_type_ric_InsertStyle_List_constr_2 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 6,  6,  1,  63 }	/* (SIZE(1..63)) */,
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_ric_InsertStyle_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..63)) */};
+static asn_per_constraints_t asn_PER_memb_ric_InsertStyle_List_constr_2 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 6,  6,  1,  63 }	/* (SIZE(1..63)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ric_InsertStyle_List_2[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2SM_RC_ActionDefinition_Format4_Style_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ric_InsertStyle_List_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ric_InsertStyle_List_specs_2 = {
+	sizeof(struct E2SM_RC_ActionDefinition_Format4__ric_InsertStyle_List),
+	offsetof(struct E2SM_RC_ActionDefinition_Format4__ric_InsertStyle_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ric_InsertStyle_List_2 = {
+	"ric-InsertStyle-List",
+	"ric-InsertStyle-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ric_InsertStyle_List_tags_2,
+	sizeof(asn_DEF_ric_InsertStyle_List_tags_2)
+		/sizeof(asn_DEF_ric_InsertStyle_List_tags_2[0]) - 1, /* 1 */
+	asn_DEF_ric_InsertStyle_List_tags_2,	/* Same as above */
+	sizeof(asn_DEF_ric_InsertStyle_List_tags_2)
+		/sizeof(asn_DEF_ric_InsertStyle_List_tags_2[0]), /* 2 */
+	{ &asn_OER_type_ric_InsertStyle_List_constr_2, &asn_PER_type_ric_InsertStyle_List_constr_2, SEQUENCE_OF_constraint },
+	asn_MBR_ric_InsertStyle_List_2,
+	1,	/* Single element */
+	&asn_SPC_ric_InsertStyle_List_specs_2	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_ActionDefinition_Format4_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ActionDefinition_Format4, ric_InsertStyle_List),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_ric_InsertStyle_List_2,
+		0,
+		{ &asn_OER_memb_ric_InsertStyle_List_constr_2, &asn_PER_memb_ric_InsertStyle_List_constr_2,  memb_ric_InsertStyle_List_constraint_1 },
+		0, 0, /* No default value */
+		"ric-InsertStyle-List"
+		},
+	{ ATF_POINTER, 1, offsetof(struct E2SM_RC_ActionDefinition_Format4, ueID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_UEID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ueID"
+		},
+};
+static const int asn_MAP_E2SM_RC_ActionDefinition_Format4_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_ActionDefinition_Format4_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ActionDefinition_Format4_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-InsertStyle-List */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ueID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ActionDefinition_Format4_specs_1 = {
+	sizeof(struct E2SM_RC_ActionDefinition_Format4),
+	offsetof(struct E2SM_RC_ActionDefinition_Format4, _asn_ctx),
+	asn_MAP_E2SM_RC_ActionDefinition_Format4_tag2el_1,
+	2,	/* Count of tags in the map */
+	asn_MAP_E2SM_RC_ActionDefinition_Format4_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ActionDefinition_Format4 = {
+	"E2SM-RC-ActionDefinition-Format4",
+	"E2SM-RC-ActionDefinition-Format4",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_ActionDefinition_Format4_tags_1,
+	sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format4_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format4_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_ActionDefinition_Format4_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format4_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format4_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_ActionDefinition_Format4_1,
+	2,	/* Elements count */
+	&asn_SPC_E2SM_RC_ActionDefinition_Format4_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-ActionDefinition.c b/e2sm/lib/E2SM-RC-ActionDefinition.c
index a8e2a57..3d18e81 100644
--- a/e2sm/lib/E2SM-RC-ActionDefinition.c
+++ b/e2sm/lib/E2SM-RC-ActionDefinition.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-ActionDefinition.h"
@@ -10,6 +10,7 @@
 #include "E2SM-RC-ActionDefinition-Format1.h"
 #include "E2SM-RC-ActionDefinition-Format2.h"
 #include "E2SM-RC-ActionDefinition-Format3.h"
+#include "E2SM-RC-ActionDefinition-Format4.h"
 static asn_oer_constraints_t asn_OER_type_ric_actionDefinition_formats_constr_3 CC_NOTUSED = {
 	{ 0, 0 },
 	-1};
@@ -46,11 +47,21 @@
 		0, 0, /* No default value */
 		"actionDefinition-Format3"
 		},
+	{ ATF_POINTER, 0, offsetof(struct E2SM_RC_ActionDefinition__ric_actionDefinition_formats, choice.actionDefinition_Format4),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2SM_RC_ActionDefinition_Format4,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"actionDefinition-Format4"
+		},
 };
 static const asn_TYPE_tag2member_t asn_MAP_ric_actionDefinition_formats_tag2el_3[] = {
     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* actionDefinition-Format1 */
     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* actionDefinition-Format2 */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* actionDefinition-Format3 */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* actionDefinition-Format3 */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* actionDefinition-Format4 */
 };
 static asn_CHOICE_specifics_t asn_SPC_ric_actionDefinition_formats_specs_3 = {
 	sizeof(struct E2SM_RC_ActionDefinition__ric_actionDefinition_formats),
@@ -58,7 +69,7 @@
 	offsetof(struct E2SM_RC_ActionDefinition__ric_actionDefinition_formats, present),
 	sizeof(((struct E2SM_RC_ActionDefinition__ric_actionDefinition_formats *)0)->present),
 	asn_MAP_ric_actionDefinition_formats_tag2el_3,
-	3,	/* Count of tags in the map */
+	4,	/* Count of tags in the map */
 	0, 0,
 	3	/* Extensions start */
 };
@@ -73,7 +84,7 @@
 	0,	/* No tags (count) */
 	{ &asn_OER_type_ric_actionDefinition_formats_constr_3, &asn_PER_type_ric_actionDefinition_formats_constr_3, CHOICE_constraint },
 	asn_MBR_ric_actionDefinition_formats_3,
-	3,	/* Elements count */
+	4,	/* Elements count */
 	&asn_SPC_ric_actionDefinition_formats_specs_3	/* Additional specs */
 };
 
diff --git a/e2sm/lib/E2SM-RC-CallProcessID-Format1.c b/e2sm/lib/E2SM-RC-CallProcessID-Format1.c
index d3a25c1..406beb8 100644
--- a/e2sm/lib/E2SM-RC-CallProcessID-Format1.c
+++ b/e2sm/lib/E2SM-RC-CallProcessID-Format1.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-CallProcessID-Format1.h"
diff --git a/e2sm/lib/E2SM-RC-CallProcessID.c b/e2sm/lib/E2SM-RC-CallProcessID.c
index f92d4aa..3d637fa 100644
--- a/e2sm/lib/E2SM-RC-CallProcessID.c
+++ b/e2sm/lib/E2SM-RC-CallProcessID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-CallProcessID.h"
diff --git a/e2sm/lib/E2SM-RC-ControlHeader-Format1.c b/e2sm/lib/E2SM-RC-ControlHeader-Format1.c
index 7388ce6..37549ce 100644
--- a/e2sm/lib/E2SM-RC-ControlHeader-Format1.c
+++ b/e2sm/lib/E2SM-RC-ControlHeader-Format1.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-ControlHeader-Format1.h"
diff --git a/e2sm/lib/E2SM-RC-ControlHeader-Format2.c b/e2sm/lib/E2SM-RC-ControlHeader-Format2.c
new file mode 100644
index 0000000..36367c3
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-ControlHeader-Format2.c
@@ -0,0 +1,114 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#include "E2SM-RC-ControlHeader-Format2.h"
+
+#include "UEID.h"
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_ric_ControlDecision_constr_3 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_type_ric_ControlDecision_constr_3 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_ric_ControlDecision_value2enum_3[] = {
+	{ 0,	6,	"accept" },
+	{ 1,	6,	"reject" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_ric_ControlDecision_enum2value_3[] = {
+	0,	/* accept(0) */
+	1	/* reject(1) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_ric_ControlDecision_specs_3 = {
+	asn_MAP_ric_ControlDecision_value2enum_3,	/* "tag" => N; sorted by tag */
+	asn_MAP_ric_ControlDecision_enum2value_3,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	3,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_ric_ControlDecision_tags_3[] = {
+	(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ric_ControlDecision_3 = {
+	"ric-ControlDecision",
+	"ric-ControlDecision",
+	&asn_OP_NativeEnumerated,
+	asn_DEF_ric_ControlDecision_tags_3,
+	sizeof(asn_DEF_ric_ControlDecision_tags_3)
+		/sizeof(asn_DEF_ric_ControlDecision_tags_3[0]) - 1, /* 1 */
+	asn_DEF_ric_ControlDecision_tags_3,	/* Same as above */
+	sizeof(asn_DEF_ric_ControlDecision_tags_3)
+		/sizeof(asn_DEF_ric_ControlDecision_tags_3[0]), /* 2 */
+	{ &asn_OER_type_ric_ControlDecision_constr_3, &asn_PER_type_ric_ControlDecision_constr_3, NativeEnumerated_constraint },
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_ric_ControlDecision_specs_3	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_ControlHeader_Format2_1[] = {
+	{ ATF_POINTER, 2, offsetof(struct E2SM_RC_ControlHeader_Format2, ueID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_UEID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ueID"
+		},
+	{ ATF_POINTER, 1, offsetof(struct E2SM_RC_ControlHeader_Format2, ric_ControlDecision),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_ric_ControlDecision_3,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-ControlDecision"
+		},
+};
+static const int asn_MAP_E2SM_RC_ControlHeader_Format2_oms_1[] = { 0, 1 };
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_ControlHeader_Format2_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ControlHeader_Format2_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ueID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ric-ControlDecision */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlHeader_Format2_specs_1 = {
+	sizeof(struct E2SM_RC_ControlHeader_Format2),
+	offsetof(struct E2SM_RC_ControlHeader_Format2, _asn_ctx),
+	asn_MAP_E2SM_RC_ControlHeader_Format2_tag2el_1,
+	2,	/* Count of tags in the map */
+	asn_MAP_E2SM_RC_ControlHeader_Format2_oms_1,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlHeader_Format2 = {
+	"E2SM-RC-ControlHeader-Format2",
+	"E2SM-RC-ControlHeader-Format2",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_ControlHeader_Format2_tags_1,
+	sizeof(asn_DEF_E2SM_RC_ControlHeader_Format2_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlHeader_Format2_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_ControlHeader_Format2_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_ControlHeader_Format2_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlHeader_Format2_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_ControlHeader_Format2_1,
+	2,	/* Elements count */
+	&asn_SPC_E2SM_RC_ControlHeader_Format2_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-ControlHeader.c b/e2sm/lib/E2SM-RC-ControlHeader.c
index 0a3ff61..a789e08 100644
--- a/e2sm/lib/E2SM-RC-ControlHeader.c
+++ b/e2sm/lib/E2SM-RC-ControlHeader.c
@@ -1,13 +1,14 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-ControlHeader.h"
 
 #include "E2SM-RC-ControlHeader-Format1.h"
+#include "E2SM-RC-ControlHeader-Format2.h"
 static asn_oer_constraints_t asn_OER_type_ric_controlHeader_formats_constr_2 CC_NOTUSED = {
 	{ 0, 0 },
 	-1};
@@ -26,9 +27,19 @@
 		0, 0, /* No default value */
 		"controlHeader-Format1"
 		},
+	{ ATF_POINTER, 0, offsetof(struct E2SM_RC_ControlHeader__ric_controlHeader_formats, choice.controlHeader_Format2),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2SM_RC_ControlHeader_Format2,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"controlHeader-Format2"
+		},
 };
 static const asn_TYPE_tag2member_t asn_MAP_ric_controlHeader_formats_tag2el_2[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* controlHeader-Format1 */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* controlHeader-Format1 */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* controlHeader-Format2 */
 };
 static asn_CHOICE_specifics_t asn_SPC_ric_controlHeader_formats_specs_2 = {
 	sizeof(struct E2SM_RC_ControlHeader__ric_controlHeader_formats),
@@ -36,7 +47,7 @@
 	offsetof(struct E2SM_RC_ControlHeader__ric_controlHeader_formats, present),
 	sizeof(((struct E2SM_RC_ControlHeader__ric_controlHeader_formats *)0)->present),
 	asn_MAP_ric_controlHeader_formats_tag2el_2,
-	1,	/* Count of tags in the map */
+	2,	/* Count of tags in the map */
 	0, 0,
 	1	/* Extensions start */
 };
@@ -51,7 +62,7 @@
 	0,	/* No tags (count) */
 	{ &asn_OER_type_ric_controlHeader_formats_constr_2, &asn_PER_type_ric_controlHeader_formats_constr_2, CHOICE_constraint },
 	asn_MBR_ric_controlHeader_formats_2,
-	1,	/* Elements count */
+	2,	/* Elements count */
 	&asn_SPC_ric_controlHeader_formats_specs_2	/* Additional specs */
 };
 
diff --git a/e2sm/lib/E2SM-RC-ControlMessage-Format1-Item.c b/e2sm/lib/E2SM-RC-ControlMessage-Format1-Item.c
index 4d3194c..4fab0ab 100644
--- a/e2sm/lib/E2SM-RC-ControlMessage-Format1-Item.c
+++ b/e2sm/lib/E2SM-RC-ControlMessage-Format1-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-ControlMessage-Format1-Item.h"
diff --git a/e2sm/lib/E2SM-RC-ControlMessage-Format1.c b/e2sm/lib/E2SM-RC-ControlMessage-Format1.c
index b7972a2..7721221 100644
--- a/e2sm/lib/E2SM-RC-ControlMessage-Format1.c
+++ b/e2sm/lib/E2SM-RC-ControlMessage-Format1.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-ControlMessage-Format1.h"
diff --git a/e2sm/lib/E2SM-RC-ControlMessage-Format2-ControlAction-Item.c b/e2sm/lib/E2SM-RC-ControlMessage-Format2-ControlAction-Item.c
new file mode 100644
index 0000000..8cf50ff
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-ControlMessage-Format2-ControlAction-Item.c
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#include "E2SM-RC-ControlMessage-Format2-ControlAction-Item.h"
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_ControlMessage_Format2_ControlAction_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ControlMessage_Format2_ControlAction_Item, ric_ControlAction_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_ControlAction_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-ControlAction-ID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ControlMessage_Format2_ControlAction_Item, ranP_List),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2SM_RC_ControlMessage_Format1,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranP-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_ControlMessage_Format2_ControlAction_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ControlMessage_Format2_ControlAction_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-ControlAction-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranP-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlMessage_Format2_ControlAction_Item_specs_1 = {
+	sizeof(struct E2SM_RC_ControlMessage_Format2_ControlAction_Item),
+	offsetof(struct E2SM_RC_ControlMessage_Format2_ControlAction_Item, _asn_ctx),
+	asn_MAP_E2SM_RC_ControlMessage_Format2_ControlAction_Item_tag2el_1,
+	2,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlMessage_Format2_ControlAction_Item = {
+	"E2SM-RC-ControlMessage-Format2-ControlAction-Item",
+	"E2SM-RC-ControlMessage-Format2-ControlAction-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_ControlMessage_Format2_ControlAction_Item_tags_1,
+	sizeof(asn_DEF_E2SM_RC_ControlMessage_Format2_ControlAction_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlMessage_Format2_ControlAction_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_ControlMessage_Format2_ControlAction_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_ControlMessage_Format2_ControlAction_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlMessage_Format2_ControlAction_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_ControlMessage_Format2_ControlAction_Item_1,
+	2,	/* Elements count */
+	&asn_SPC_E2SM_RC_ControlMessage_Format2_ControlAction_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-ControlMessage-Format2-Style-Item.c b/e2sm/lib/E2SM-RC-ControlMessage-Format2-Style-Item.c
new file mode 100644
index 0000000..db5a7c7
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-ControlMessage-Format2-Style-Item.c
@@ -0,0 +1,140 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#include "E2SM-RC-ControlMessage-Format2-Style-Item.h"
+
+#include "E2SM-RC-ControlMessage-Format2-ControlAction-Item.h"
+static int
+memb_ric_ControlAction_List_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size >= 1 && size <= 63)) {
+		/* Perform validation of the inner elements */
+		return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_oer_constraints_t asn_OER_type_ric_ControlAction_List_constr_3 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..63)) */};
+static asn_per_constraints_t asn_PER_type_ric_ControlAction_List_constr_3 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 6,  6,  1,  63 }	/* (SIZE(1..63)) */,
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_ric_ControlAction_List_constr_3 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..63)) */};
+static asn_per_constraints_t asn_PER_memb_ric_ControlAction_List_constr_3 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 6,  6,  1,  63 }	/* (SIZE(1..63)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ric_ControlAction_List_3[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2SM_RC_ControlMessage_Format2_ControlAction_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ric_ControlAction_List_tags_3[] = {
+	(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ric_ControlAction_List_specs_3 = {
+	sizeof(struct E2SM_RC_ControlMessage_Format2_Style_Item__ric_ControlAction_List),
+	offsetof(struct E2SM_RC_ControlMessage_Format2_Style_Item__ric_ControlAction_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ric_ControlAction_List_3 = {
+	"ric-ControlAction-List",
+	"ric-ControlAction-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ric_ControlAction_List_tags_3,
+	sizeof(asn_DEF_ric_ControlAction_List_tags_3)
+		/sizeof(asn_DEF_ric_ControlAction_List_tags_3[0]) - 1, /* 1 */
+	asn_DEF_ric_ControlAction_List_tags_3,	/* Same as above */
+	sizeof(asn_DEF_ric_ControlAction_List_tags_3)
+		/sizeof(asn_DEF_ric_ControlAction_List_tags_3[0]), /* 2 */
+	{ &asn_OER_type_ric_ControlAction_List_constr_3, &asn_PER_type_ric_ControlAction_List_constr_3, SEQUENCE_OF_constraint },
+	asn_MBR_ric_ControlAction_List_3,
+	1,	/* Single element */
+	&asn_SPC_ric_ControlAction_List_specs_3	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_ControlMessage_Format2_Style_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ControlMessage_Format2_Style_Item, indicated_Control_Style_Type),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_Style_Type,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"indicated-Control-Style-Type"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ControlMessage_Format2_Style_Item, ric_ControlAction_List),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		0,
+		&asn_DEF_ric_ControlAction_List_3,
+		0,
+		{ &asn_OER_memb_ric_ControlAction_List_constr_3, &asn_PER_memb_ric_ControlAction_List_constr_3,  memb_ric_ControlAction_List_constraint_1 },
+		0, 0, /* No default value */
+		"ric-ControlAction-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_ControlMessage_Format2_Style_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ControlMessage_Format2_Style_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* indicated-Control-Style-Type */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ric-ControlAction-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlMessage_Format2_Style_Item_specs_1 = {
+	sizeof(struct E2SM_RC_ControlMessage_Format2_Style_Item),
+	offsetof(struct E2SM_RC_ControlMessage_Format2_Style_Item, _asn_ctx),
+	asn_MAP_E2SM_RC_ControlMessage_Format2_Style_Item_tag2el_1,
+	2,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlMessage_Format2_Style_Item = {
+	"E2SM-RC-ControlMessage-Format2-Style-Item",
+	"E2SM-RC-ControlMessage-Format2-Style-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_ControlMessage_Format2_Style_Item_tags_1,
+	sizeof(asn_DEF_E2SM_RC_ControlMessage_Format2_Style_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlMessage_Format2_Style_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_ControlMessage_Format2_Style_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_ControlMessage_Format2_Style_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlMessage_Format2_Style_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_ControlMessage_Format2_Style_Item_1,
+	2,	/* Elements count */
+	&asn_SPC_E2SM_RC_ControlMessage_Format2_Style_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-ControlMessage-Format2.c b/e2sm/lib/E2SM-RC-ControlMessage-Format2.c
new file mode 100644
index 0000000..041281f
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-ControlMessage-Format2.c
@@ -0,0 +1,130 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#include "E2SM-RC-ControlMessage-Format2.h"
+
+#include "E2SM-RC-ControlMessage-Format2-Style-Item.h"
+static int
+memb_ric_ControlStyle_List_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size >= 1 && size <= 63)) {
+		/* Perform validation of the inner elements */
+		return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_oer_constraints_t asn_OER_type_ric_ControlStyle_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..63)) */};
+static asn_per_constraints_t asn_PER_type_ric_ControlStyle_List_constr_2 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 6,  6,  1,  63 }	/* (SIZE(1..63)) */,
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_ric_ControlStyle_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..63)) */};
+static asn_per_constraints_t asn_PER_memb_ric_ControlStyle_List_constr_2 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 6,  6,  1,  63 }	/* (SIZE(1..63)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ric_ControlStyle_List_2[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2SM_RC_ControlMessage_Format2_Style_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ric_ControlStyle_List_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ric_ControlStyle_List_specs_2 = {
+	sizeof(struct E2SM_RC_ControlMessage_Format2__ric_ControlStyle_List),
+	offsetof(struct E2SM_RC_ControlMessage_Format2__ric_ControlStyle_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ric_ControlStyle_List_2 = {
+	"ric-ControlStyle-List",
+	"ric-ControlStyle-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ric_ControlStyle_List_tags_2,
+	sizeof(asn_DEF_ric_ControlStyle_List_tags_2)
+		/sizeof(asn_DEF_ric_ControlStyle_List_tags_2[0]) - 1, /* 1 */
+	asn_DEF_ric_ControlStyle_List_tags_2,	/* Same as above */
+	sizeof(asn_DEF_ric_ControlStyle_List_tags_2)
+		/sizeof(asn_DEF_ric_ControlStyle_List_tags_2[0]), /* 2 */
+	{ &asn_OER_type_ric_ControlStyle_List_constr_2, &asn_PER_type_ric_ControlStyle_List_constr_2, SEQUENCE_OF_constraint },
+	asn_MBR_ric_ControlStyle_List_2,
+	1,	/* Single element */
+	&asn_SPC_ric_ControlStyle_List_specs_2	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_ControlMessage_Format2_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ControlMessage_Format2, ric_ControlStyle_List),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_ric_ControlStyle_List_2,
+		0,
+		{ &asn_OER_memb_ric_ControlStyle_List_constr_2, &asn_PER_memb_ric_ControlStyle_List_constr_2,  memb_ric_ControlStyle_List_constraint_1 },
+		0, 0, /* No default value */
+		"ric-ControlStyle-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_ControlMessage_Format2_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ControlMessage_Format2_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ric-ControlStyle-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlMessage_Format2_specs_1 = {
+	sizeof(struct E2SM_RC_ControlMessage_Format2),
+	offsetof(struct E2SM_RC_ControlMessage_Format2, _asn_ctx),
+	asn_MAP_E2SM_RC_ControlMessage_Format2_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	1,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlMessage_Format2 = {
+	"E2SM-RC-ControlMessage-Format2",
+	"E2SM-RC-ControlMessage-Format2",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_ControlMessage_Format2_tags_1,
+	sizeof(asn_DEF_E2SM_RC_ControlMessage_Format2_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlMessage_Format2_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_ControlMessage_Format2_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_ControlMessage_Format2_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlMessage_Format2_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_ControlMessage_Format2_1,
+	1,	/* Elements count */
+	&asn_SPC_E2SM_RC_ControlMessage_Format2_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-ControlMessage.c b/e2sm/lib/E2SM-RC-ControlMessage.c
index 295c133..52f42ef 100644
--- a/e2sm/lib/E2SM-RC-ControlMessage.c
+++ b/e2sm/lib/E2SM-RC-ControlMessage.c
@@ -1,13 +1,14 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-ControlMessage.h"
 
 #include "E2SM-RC-ControlMessage-Format1.h"
+#include "E2SM-RC-ControlMessage-Format2.h"
 static asn_oer_constraints_t asn_OER_type_ric_controlMessage_formats_constr_2 CC_NOTUSED = {
 	{ 0, 0 },
 	-1};
@@ -26,9 +27,19 @@
 		0, 0, /* No default value */
 		"controlMessage-Format1"
 		},
+	{ ATF_POINTER, 0, offsetof(struct E2SM_RC_ControlMessage__ric_controlMessage_formats, choice.controlMessage_Format2),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2SM_RC_ControlMessage_Format2,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"controlMessage-Format2"
+		},
 };
 static const asn_TYPE_tag2member_t asn_MAP_ric_controlMessage_formats_tag2el_2[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* controlMessage-Format1 */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* controlMessage-Format1 */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* controlMessage-Format2 */
 };
 static asn_CHOICE_specifics_t asn_SPC_ric_controlMessage_formats_specs_2 = {
 	sizeof(struct E2SM_RC_ControlMessage__ric_controlMessage_formats),
@@ -36,7 +47,7 @@
 	offsetof(struct E2SM_RC_ControlMessage__ric_controlMessage_formats, present),
 	sizeof(((struct E2SM_RC_ControlMessage__ric_controlMessage_formats *)0)->present),
 	asn_MAP_ric_controlMessage_formats_tag2el_2,
-	1,	/* Count of tags in the map */
+	2,	/* Count of tags in the map */
 	0, 0,
 	1	/* Extensions start */
 };
@@ -51,7 +62,7 @@
 	0,	/* No tags (count) */
 	{ &asn_OER_type_ric_controlMessage_formats_constr_2, &asn_PER_type_ric_controlMessage_formats_constr_2, CHOICE_constraint },
 	asn_MBR_ric_controlMessage_formats_2,
-	1,	/* Elements count */
+	2,	/* Elements count */
 	&asn_SPC_ric_controlMessage_formats_specs_2	/* Additional specs */
 };
 
diff --git a/e2sm/lib/E2SM-RC-ControlOutcome-Format1-Item.c b/e2sm/lib/E2SM-RC-ControlOutcome-Format1-Item.c
index f9b0bfd..4100d03 100644
--- a/e2sm/lib/E2SM-RC-ControlOutcome-Format1-Item.c
+++ b/e2sm/lib/E2SM-RC-ControlOutcome-Format1-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-ControlOutcome-Format1-Item.h"
diff --git a/e2sm/lib/E2SM-RC-ControlOutcome-Format1.c b/e2sm/lib/E2SM-RC-ControlOutcome-Format1.c
index 8b78e0f..2d2392b 100644
--- a/e2sm/lib/E2SM-RC-ControlOutcome-Format1.c
+++ b/e2sm/lib/E2SM-RC-ControlOutcome-Format1.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-ControlOutcome-Format1.h"
diff --git a/e2sm/lib/E2SM-RC-ControlOutcome-Format2-ControlOutcome-Item.c b/e2sm/lib/E2SM-RC-ControlOutcome-Format2-ControlOutcome-Item.c
new file mode 100644
index 0000000..eeb9de5
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-ControlOutcome-Format2-ControlOutcome-Item.c
@@ -0,0 +1,140 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#include "E2SM-RC-ControlOutcome-Format2-ControlOutcome-Item.h"
+
+#include "E2SM-RC-ControlOutcome-Format2-RANP-Item.h"
+static int
+memb_ranP_List_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size >= 1 && size <= 65535)) {
+		/* Perform validation of the inner elements */
+		return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_oer_constraints_t asn_OER_type_ranP_List_constr_3 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_type_ranP_List_constr_3 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  1,  65535 }	/* (SIZE(1..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_ranP_List_constr_3 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_memb_ranP_List_constr_3 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  1,  65535 }	/* (SIZE(1..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ranP_List_3[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2SM_RC_ControlOutcome_Format2_RANP_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ranP_List_tags_3[] = {
+	(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ranP_List_specs_3 = {
+	sizeof(struct E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item__ranP_List),
+	offsetof(struct E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item__ranP_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ranP_List_3 = {
+	"ranP-List",
+	"ranP-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ranP_List_tags_3,
+	sizeof(asn_DEF_ranP_List_tags_3)
+		/sizeof(asn_DEF_ranP_List_tags_3[0]) - 1, /* 1 */
+	asn_DEF_ranP_List_tags_3,	/* Same as above */
+	sizeof(asn_DEF_ranP_List_tags_3)
+		/sizeof(asn_DEF_ranP_List_tags_3[0]), /* 2 */
+	{ &asn_OER_type_ranP_List_constr_3, &asn_PER_type_ranP_List_constr_3, SEQUENCE_OF_constraint },
+	asn_MBR_ranP_List_3,
+	1,	/* Single element */
+	&asn_SPC_ranP_List_specs_3	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item, ric_ControlAction_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_ControlAction_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-ControlAction-ID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item, ranP_List),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		0,
+		&asn_DEF_ranP_List_3,
+		0,
+		{ &asn_OER_memb_ranP_List_constr_3, &asn_PER_memb_ranP_List_constr_3,  memb_ranP_List_constraint_1 },
+		0, 0, /* No default value */
+		"ranP-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-ControlAction-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranP-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item_specs_1 = {
+	sizeof(struct E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item),
+	offsetof(struct E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item, _asn_ctx),
+	asn_MAP_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item_tag2el_1,
+	2,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item = {
+	"E2SM-RC-ControlOutcome-Format2-ControlOutcome-Item",
+	"E2SM-RC-ControlOutcome-Format2-ControlOutcome-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item_tags_1,
+	sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item_1,
+	2,	/* Elements count */
+	&asn_SPC_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-ControlOutcome-Format2-RANP-Item.c b/e2sm/lib/E2SM-RC-ControlOutcome-Format2-RANP-Item.c
new file mode 100644
index 0000000..f59043e
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-ControlOutcome-Format2-RANP-Item.c
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#include "E2SM-RC-ControlOutcome-Format2-RANP-Item.h"
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_ControlOutcome_Format2_RANP_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ControlOutcome_Format2_RANP_Item, ranParameter_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANParameter_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranParameter-ID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ControlOutcome_Format2_RANP_Item, ranParameter_value),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_RANParameter_Value,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranParameter-value"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_ControlOutcome_Format2_RANP_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ControlOutcome_Format2_RANP_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranParameter-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranParameter-value */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlOutcome_Format2_RANP_Item_specs_1 = {
+	sizeof(struct E2SM_RC_ControlOutcome_Format2_RANP_Item),
+	offsetof(struct E2SM_RC_ControlOutcome_Format2_RANP_Item, _asn_ctx),
+	asn_MAP_E2SM_RC_ControlOutcome_Format2_RANP_Item_tag2el_1,
+	2,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlOutcome_Format2_RANP_Item = {
+	"E2SM-RC-ControlOutcome-Format2-RANP-Item",
+	"E2SM-RC-ControlOutcome-Format2-RANP-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_ControlOutcome_Format2_RANP_Item_tags_1,
+	sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format2_RANP_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format2_RANP_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_ControlOutcome_Format2_RANP_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format2_RANP_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format2_RANP_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_ControlOutcome_Format2_RANP_Item_1,
+	2,	/* Elements count */
+	&asn_SPC_E2SM_RC_ControlOutcome_Format2_RANP_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-ControlOutcome-Format2-Style-Item.c b/e2sm/lib/E2SM-RC-ControlOutcome-Format2-Style-Item.c
new file mode 100644
index 0000000..c358f01
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-ControlOutcome-Format2-Style-Item.c
@@ -0,0 +1,140 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#include "E2SM-RC-ControlOutcome-Format2-Style-Item.h"
+
+#include "E2SM-RC-ControlOutcome-Format2-ControlOutcome-Item.h"
+static int
+memb_ric_ControlOutcome_List_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size >= 1 && size <= 63)) {
+		/* Perform validation of the inner elements */
+		return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_oer_constraints_t asn_OER_type_ric_ControlOutcome_List_constr_3 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..63)) */};
+static asn_per_constraints_t asn_PER_type_ric_ControlOutcome_List_constr_3 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 6,  6,  1,  63 }	/* (SIZE(1..63)) */,
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_ric_ControlOutcome_List_constr_3 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..63)) */};
+static asn_per_constraints_t asn_PER_memb_ric_ControlOutcome_List_constr_3 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 6,  6,  1,  63 }	/* (SIZE(1..63)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ric_ControlOutcome_List_3[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ric_ControlOutcome_List_tags_3[] = {
+	(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ric_ControlOutcome_List_specs_3 = {
+	sizeof(struct E2SM_RC_ControlOutcome_Format2_Style_Item__ric_ControlOutcome_List),
+	offsetof(struct E2SM_RC_ControlOutcome_Format2_Style_Item__ric_ControlOutcome_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ric_ControlOutcome_List_3 = {
+	"ric-ControlOutcome-List",
+	"ric-ControlOutcome-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ric_ControlOutcome_List_tags_3,
+	sizeof(asn_DEF_ric_ControlOutcome_List_tags_3)
+		/sizeof(asn_DEF_ric_ControlOutcome_List_tags_3[0]) - 1, /* 1 */
+	asn_DEF_ric_ControlOutcome_List_tags_3,	/* Same as above */
+	sizeof(asn_DEF_ric_ControlOutcome_List_tags_3)
+		/sizeof(asn_DEF_ric_ControlOutcome_List_tags_3[0]), /* 2 */
+	{ &asn_OER_type_ric_ControlOutcome_List_constr_3, &asn_PER_type_ric_ControlOutcome_List_constr_3, SEQUENCE_OF_constraint },
+	asn_MBR_ric_ControlOutcome_List_3,
+	1,	/* Single element */
+	&asn_SPC_ric_ControlOutcome_List_specs_3	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_ControlOutcome_Format2_Style_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ControlOutcome_Format2_Style_Item, indicated_Control_Style_Type),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_Style_Type,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"indicated-Control-Style-Type"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ControlOutcome_Format2_Style_Item, ric_ControlOutcome_List),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		0,
+		&asn_DEF_ric_ControlOutcome_List_3,
+		0,
+		{ &asn_OER_memb_ric_ControlOutcome_List_constr_3, &asn_PER_memb_ric_ControlOutcome_List_constr_3,  memb_ric_ControlOutcome_List_constraint_1 },
+		0, 0, /* No default value */
+		"ric-ControlOutcome-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_ControlOutcome_Format2_Style_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ControlOutcome_Format2_Style_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* indicated-Control-Style-Type */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ric-ControlOutcome-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlOutcome_Format2_Style_Item_specs_1 = {
+	sizeof(struct E2SM_RC_ControlOutcome_Format2_Style_Item),
+	offsetof(struct E2SM_RC_ControlOutcome_Format2_Style_Item, _asn_ctx),
+	asn_MAP_E2SM_RC_ControlOutcome_Format2_Style_Item_tag2el_1,
+	2,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlOutcome_Format2_Style_Item = {
+	"E2SM-RC-ControlOutcome-Format2-Style-Item",
+	"E2SM-RC-ControlOutcome-Format2-Style-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_ControlOutcome_Format2_Style_Item_tags_1,
+	sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format2_Style_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format2_Style_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_ControlOutcome_Format2_Style_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format2_Style_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format2_Style_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_ControlOutcome_Format2_Style_Item_1,
+	2,	/* Elements count */
+	&asn_SPC_E2SM_RC_ControlOutcome_Format2_Style_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-ControlOutcome-Format2.c b/e2sm/lib/E2SM-RC-ControlOutcome-Format2.c
new file mode 100644
index 0000000..7850d2f
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-ControlOutcome-Format2.c
@@ -0,0 +1,130 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#include "E2SM-RC-ControlOutcome-Format2.h"
+
+#include "E2SM-RC-ControlOutcome-Format2-Style-Item.h"
+static int
+memb_ric_ControlStyle_List_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size >= 1 && size <= 63)) {
+		/* Perform validation of the inner elements */
+		return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_oer_constraints_t asn_OER_type_ric_ControlStyle_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..63)) */};
+static asn_per_constraints_t asn_PER_type_ric_ControlStyle_List_constr_2 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 6,  6,  1,  63 }	/* (SIZE(1..63)) */,
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_ric_ControlStyle_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..63)) */};
+static asn_per_constraints_t asn_PER_memb_ric_ControlStyle_List_constr_2 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 6,  6,  1,  63 }	/* (SIZE(1..63)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ric_ControlStyle_List_2[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2SM_RC_ControlOutcome_Format2_Style_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ric_ControlStyle_List_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ric_ControlStyle_List_specs_2 = {
+	sizeof(struct E2SM_RC_ControlOutcome_Format2__ric_ControlStyle_List),
+	offsetof(struct E2SM_RC_ControlOutcome_Format2__ric_ControlStyle_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ric_ControlStyle_List_2 = {
+	"ric-ControlStyle-List",
+	"ric-ControlStyle-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ric_ControlStyle_List_tags_2,
+	sizeof(asn_DEF_ric_ControlStyle_List_tags_2)
+		/sizeof(asn_DEF_ric_ControlStyle_List_tags_2[0]) - 1, /* 1 */
+	asn_DEF_ric_ControlStyle_List_tags_2,	/* Same as above */
+	sizeof(asn_DEF_ric_ControlStyle_List_tags_2)
+		/sizeof(asn_DEF_ric_ControlStyle_List_tags_2[0]), /* 2 */
+	{ &asn_OER_type_ric_ControlStyle_List_constr_2, &asn_PER_type_ric_ControlStyle_List_constr_2, SEQUENCE_OF_constraint },
+	asn_MBR_ric_ControlStyle_List_2,
+	1,	/* Single element */
+	&asn_SPC_ric_ControlStyle_List_specs_2	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_ControlOutcome_Format2_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ControlOutcome_Format2, ric_ControlStyle_List),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_ric_ControlStyle_List_2,
+		0,
+		{ &asn_OER_memb_ric_ControlStyle_List_constr_2, &asn_PER_memb_ric_ControlStyle_List_constr_2,  memb_ric_ControlStyle_List_constraint_1 },
+		0, 0, /* No default value */
+		"ric-ControlStyle-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_ControlOutcome_Format2_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ControlOutcome_Format2_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ric-ControlStyle-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlOutcome_Format2_specs_1 = {
+	sizeof(struct E2SM_RC_ControlOutcome_Format2),
+	offsetof(struct E2SM_RC_ControlOutcome_Format2, _asn_ctx),
+	asn_MAP_E2SM_RC_ControlOutcome_Format2_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	1,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlOutcome_Format2 = {
+	"E2SM-RC-ControlOutcome-Format2",
+	"E2SM-RC-ControlOutcome-Format2",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_ControlOutcome_Format2_tags_1,
+	sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format2_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format2_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_ControlOutcome_Format2_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format2_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format2_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_ControlOutcome_Format2_1,
+	1,	/* Elements count */
+	&asn_SPC_E2SM_RC_ControlOutcome_Format2_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-ControlOutcome-Format3-Item.c b/e2sm/lib/E2SM-RC-ControlOutcome-Format3-Item.c
new file mode 100644
index 0000000..6f7e7a8
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-ControlOutcome-Format3-Item.c
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#include "E2SM-RC-ControlOutcome-Format3-Item.h"
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_ControlOutcome_Format3_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ControlOutcome_Format3_Item, ranParameter_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANParameter_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranParameter-ID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ControlOutcome_Format3_Item, ranParameter_valueType),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_RANParameter_ValueType,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranParameter-valueType"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_ControlOutcome_Format3_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ControlOutcome_Format3_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranParameter-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranParameter-valueType */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlOutcome_Format3_Item_specs_1 = {
+	sizeof(struct E2SM_RC_ControlOutcome_Format3_Item),
+	offsetof(struct E2SM_RC_ControlOutcome_Format3_Item, _asn_ctx),
+	asn_MAP_E2SM_RC_ControlOutcome_Format3_Item_tag2el_1,
+	2,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlOutcome_Format3_Item = {
+	"E2SM-RC-ControlOutcome-Format3-Item",
+	"E2SM-RC-ControlOutcome-Format3-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_ControlOutcome_Format3_Item_tags_1,
+	sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format3_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format3_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_ControlOutcome_Format3_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format3_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format3_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_ControlOutcome_Format3_Item_1,
+	2,	/* Elements count */
+	&asn_SPC_E2SM_RC_ControlOutcome_Format3_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-ControlOutcome-Format3.c b/e2sm/lib/E2SM-RC-ControlOutcome-Format3.c
new file mode 100644
index 0000000..4c9d361
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-ControlOutcome-Format3.c
@@ -0,0 +1,130 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#include "E2SM-RC-ControlOutcome-Format3.h"
+
+#include "E2SM-RC-ControlOutcome-Format3-Item.h"
+static int
+memb_ranP_List_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 255)) {
+		/* Perform validation of the inner elements */
+		return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_oer_constraints_t asn_OER_type_ranP_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(0..255)) */};
+static asn_per_constraints_t asn_PER_type_ranP_List_constr_2 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 8,  8,  0,  255 }	/* (SIZE(0..255)) */,
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_ranP_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(0..255)) */};
+static asn_per_constraints_t asn_PER_memb_ranP_List_constr_2 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 8,  8,  0,  255 }	/* (SIZE(0..255)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ranP_List_2[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2SM_RC_ControlOutcome_Format3_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ranP_List_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ranP_List_specs_2 = {
+	sizeof(struct E2SM_RC_ControlOutcome_Format3__ranP_List),
+	offsetof(struct E2SM_RC_ControlOutcome_Format3__ranP_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ranP_List_2 = {
+	"ranP-List",
+	"ranP-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ranP_List_tags_2,
+	sizeof(asn_DEF_ranP_List_tags_2)
+		/sizeof(asn_DEF_ranP_List_tags_2[0]) - 1, /* 1 */
+	asn_DEF_ranP_List_tags_2,	/* Same as above */
+	sizeof(asn_DEF_ranP_List_tags_2)
+		/sizeof(asn_DEF_ranP_List_tags_2[0]), /* 2 */
+	{ &asn_OER_type_ranP_List_constr_2, &asn_PER_type_ranP_List_constr_2, SEQUENCE_OF_constraint },
+	asn_MBR_ranP_List_2,
+	1,	/* Single element */
+	&asn_SPC_ranP_List_specs_2	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_ControlOutcome_Format3_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ControlOutcome_Format3, ranP_List),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_ranP_List_2,
+		0,
+		{ &asn_OER_memb_ranP_List_constr_2, &asn_PER_memb_ranP_List_constr_2,  memb_ranP_List_constraint_1 },
+		0, 0, /* No default value */
+		"ranP-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_ControlOutcome_Format3_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ControlOutcome_Format3_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ranP-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlOutcome_Format3_specs_1 = {
+	sizeof(struct E2SM_RC_ControlOutcome_Format3),
+	offsetof(struct E2SM_RC_ControlOutcome_Format3, _asn_ctx),
+	asn_MAP_E2SM_RC_ControlOutcome_Format3_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	1,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlOutcome_Format3 = {
+	"E2SM-RC-ControlOutcome-Format3",
+	"E2SM-RC-ControlOutcome-Format3",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_ControlOutcome_Format3_tags_1,
+	sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format3_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format3_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_ControlOutcome_Format3_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format3_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format3_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_ControlOutcome_Format3_1,
+	1,	/* Elements count */
+	&asn_SPC_E2SM_RC_ControlOutcome_Format3_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-ControlOutcome.c b/e2sm/lib/E2SM-RC-ControlOutcome.c
index 8e6ce7b..e16fc10 100644
--- a/e2sm/lib/E2SM-RC-ControlOutcome.c
+++ b/e2sm/lib/E2SM-RC-ControlOutcome.c
@@ -1,13 +1,15 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-ControlOutcome.h"
 
 #include "E2SM-RC-ControlOutcome-Format1.h"
+#include "E2SM-RC-ControlOutcome-Format2.h"
+#include "E2SM-RC-ControlOutcome-Format3.h"
 static asn_oer_constraints_t asn_OER_type_ric_controlOutcome_formats_constr_2 CC_NOTUSED = {
 	{ 0, 0 },
 	-1};
@@ -26,9 +28,29 @@
 		0, 0, /* No default value */
 		"controlOutcome-Format1"
 		},
+	{ ATF_POINTER, 0, offsetof(struct E2SM_RC_ControlOutcome__ric_controlOutcome_formats, choice.controlOutcome_Format2),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2SM_RC_ControlOutcome_Format2,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"controlOutcome-Format2"
+		},
+	{ ATF_POINTER, 0, offsetof(struct E2SM_RC_ControlOutcome__ric_controlOutcome_formats, choice.controlOutcome_Format3),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2SM_RC_ControlOutcome_Format3,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"controlOutcome-Format3"
+		},
 };
 static const asn_TYPE_tag2member_t asn_MAP_ric_controlOutcome_formats_tag2el_2[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* controlOutcome-Format1 */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* controlOutcome-Format1 */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* controlOutcome-Format2 */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* controlOutcome-Format3 */
 };
 static asn_CHOICE_specifics_t asn_SPC_ric_controlOutcome_formats_specs_2 = {
 	sizeof(struct E2SM_RC_ControlOutcome__ric_controlOutcome_formats),
@@ -36,7 +58,7 @@
 	offsetof(struct E2SM_RC_ControlOutcome__ric_controlOutcome_formats, present),
 	sizeof(((struct E2SM_RC_ControlOutcome__ric_controlOutcome_formats *)0)->present),
 	asn_MAP_ric_controlOutcome_formats_tag2el_2,
-	1,	/* Count of tags in the map */
+	3,	/* Count of tags in the map */
 	0, 0,
 	1	/* Extensions start */
 };
@@ -51,7 +73,7 @@
 	0,	/* No tags (count) */
 	{ &asn_OER_type_ric_controlOutcome_formats_constr_2, &asn_PER_type_ric_controlOutcome_formats_constr_2, CHOICE_constraint },
 	asn_MBR_ric_controlOutcome_formats_2,
-	1,	/* Elements count */
+	3,	/* Elements count */
 	&asn_SPC_ric_controlOutcome_formats_specs_2	/* Additional specs */
 };
 
diff --git a/e2sm/lib/E2SM-RC-EventTrigger-Format1-Item.c b/e2sm/lib/E2SM-RC-EventTrigger-Format1-Item.c
index 346cf2e..46305e3 100644
--- a/e2sm/lib/E2SM-RC-EventTrigger-Format1-Item.c
+++ b/e2sm/lib/E2SM-RC-EventTrigger-Format1-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-EventTrigger-Format1-Item.h"
diff --git a/e2sm/lib/E2SM-RC-EventTrigger-Format1.c b/e2sm/lib/E2SM-RC-EventTrigger-Format1.c
index c8911e9..0bee74e 100644
--- a/e2sm/lib/E2SM-RC-EventTrigger-Format1.c
+++ b/e2sm/lib/E2SM-RC-EventTrigger-Format1.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-EventTrigger-Format1.h"
diff --git a/e2sm/lib/E2SM-RC-EventTrigger-Format2.c b/e2sm/lib/E2SM-RC-EventTrigger-Format2.c
index 54a8e9d..81d7a4d 100644
--- a/e2sm/lib/E2SM-RC-EventTrigger-Format2.c
+++ b/e2sm/lib/E2SM-RC-EventTrigger-Format2.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-EventTrigger-Format2.h"
diff --git a/e2sm/lib/E2SM-RC-EventTrigger-Format3-Item.c b/e2sm/lib/E2SM-RC-EventTrigger-Format3-Item.c
index 9781e8e..3c8b550 100644
--- a/e2sm/lib/E2SM-RC-EventTrigger-Format3-Item.c
+++ b/e2sm/lib/E2SM-RC-EventTrigger-Format3-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-EventTrigger-Format3-Item.h"
diff --git a/e2sm/lib/E2SM-RC-EventTrigger-Format3.c b/e2sm/lib/E2SM-RC-EventTrigger-Format3.c
index 2f0efcd..bc3b9ad 100644
--- a/e2sm/lib/E2SM-RC-EventTrigger-Format3.c
+++ b/e2sm/lib/E2SM-RC-EventTrigger-Format3.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-EventTrigger-Format3.h"
diff --git a/e2sm/lib/E2SM-RC-EventTrigger-Format4-Item.c b/e2sm/lib/E2SM-RC-EventTrigger-Format4-Item.c
index 35d496a..5e06ea5 100644
--- a/e2sm/lib/E2SM-RC-EventTrigger-Format4-Item.c
+++ b/e2sm/lib/E2SM-RC-EventTrigger-Format4-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-EventTrigger-Format4-Item.h"
diff --git a/e2sm/lib/E2SM-RC-EventTrigger-Format4.c b/e2sm/lib/E2SM-RC-EventTrigger-Format4.c
index 8fa15b7..73bbc20 100644
--- a/e2sm/lib/E2SM-RC-EventTrigger-Format4.c
+++ b/e2sm/lib/E2SM-RC-EventTrigger-Format4.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-EventTrigger-Format4.h"
diff --git a/e2sm/lib/E2SM-RC-EventTrigger-Format5.c b/e2sm/lib/E2SM-RC-EventTrigger-Format5.c
index f7ebe17..39f08ad 100644
--- a/e2sm/lib/E2SM-RC-EventTrigger-Format5.c
+++ b/e2sm/lib/E2SM-RC-EventTrigger-Format5.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-EventTrigger-Format5.h"
diff --git a/e2sm/lib/E2SM-RC-EventTrigger.c b/e2sm/lib/E2SM-RC-EventTrigger.c
index 6991f39..ce82353 100644
--- a/e2sm/lib/E2SM-RC-EventTrigger.c
+++ b/e2sm/lib/E2SM-RC-EventTrigger.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-EventTrigger.h"
diff --git a/e2sm/lib/E2SM-RC-IndicationHeader-Format1.c b/e2sm/lib/E2SM-RC-IndicationHeader-Format1.c
index 7a880ae..ee69e7c 100644
--- a/e2sm/lib/E2SM-RC-IndicationHeader-Format1.c
+++ b/e2sm/lib/E2SM-RC-IndicationHeader-Format1.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-IndicationHeader-Format1.h"
diff --git a/e2sm/lib/E2SM-RC-IndicationHeader-Format2.c b/e2sm/lib/E2SM-RC-IndicationHeader-Format2.c
index 4b7724c..0aba4d3 100644
--- a/e2sm/lib/E2SM-RC-IndicationHeader-Format2.c
+++ b/e2sm/lib/E2SM-RC-IndicationHeader-Format2.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-IndicationHeader-Format2.h"
diff --git a/e2sm/lib/E2SM-RC-IndicationHeader-Format3.c b/e2sm/lib/E2SM-RC-IndicationHeader-Format3.c
new file mode 100644
index 0000000..006acee
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-IndicationHeader-Format3.c
@@ -0,0 +1,63 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#include "E2SM-RC-IndicationHeader-Format3.h"
+
+#include "UEID.h"
+asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationHeader_Format3_1[] = {
+	{ ATF_POINTER, 2, offsetof(struct E2SM_RC_IndicationHeader_Format3, ric_eventTriggerCondition_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_EventTriggerCondition_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-eventTriggerCondition-ID"
+		},
+	{ ATF_POINTER, 1, offsetof(struct E2SM_RC_IndicationHeader_Format3, ueID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_UEID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ueID"
+		},
+};
+static const int asn_MAP_E2SM_RC_IndicationHeader_Format3_oms_1[] = { 0, 1 };
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_IndicationHeader_Format3_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_IndicationHeader_Format3_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-eventTriggerCondition-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ueID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationHeader_Format3_specs_1 = {
+	sizeof(struct E2SM_RC_IndicationHeader_Format3),
+	offsetof(struct E2SM_RC_IndicationHeader_Format3, _asn_ctx),
+	asn_MAP_E2SM_RC_IndicationHeader_Format3_tag2el_1,
+	2,	/* Count of tags in the map */
+	asn_MAP_E2SM_RC_IndicationHeader_Format3_oms_1,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_IndicationHeader_Format3 = {
+	"E2SM-RC-IndicationHeader-Format3",
+	"E2SM-RC-IndicationHeader-Format3",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_IndicationHeader_Format3_tags_1,
+	sizeof(asn_DEF_E2SM_RC_IndicationHeader_Format3_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationHeader_Format3_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_IndicationHeader_Format3_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_IndicationHeader_Format3_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationHeader_Format3_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_IndicationHeader_Format3_1,
+	2,	/* Elements count */
+	&asn_SPC_E2SM_RC_IndicationHeader_Format3_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-IndicationHeader.c b/e2sm/lib/E2SM-RC-IndicationHeader.c
index c5764a4..f668077 100644
--- a/e2sm/lib/E2SM-RC-IndicationHeader.c
+++ b/e2sm/lib/E2SM-RC-IndicationHeader.c
@@ -1,14 +1,15 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-IndicationHeader.h"
 
 #include "E2SM-RC-IndicationHeader-Format1.h"
 #include "E2SM-RC-IndicationHeader-Format2.h"
+#include "E2SM-RC-IndicationHeader-Format3.h"
 static asn_oer_constraints_t asn_OER_type_ric_indicationHeader_formats_constr_2 CC_NOTUSED = {
 	{ 0, 0 },
 	-1};
@@ -36,10 +37,20 @@
 		0, 0, /* No default value */
 		"indicationHeader-Format2"
 		},
+	{ ATF_POINTER, 0, offsetof(struct E2SM_RC_IndicationHeader__ric_indicationHeader_formats, choice.indicationHeader_Format3),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2SM_RC_IndicationHeader_Format3,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"indicationHeader-Format3"
+		},
 };
 static const asn_TYPE_tag2member_t asn_MAP_ric_indicationHeader_formats_tag2el_2[] = {
     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* indicationHeader-Format1 */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* indicationHeader-Format2 */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* indicationHeader-Format2 */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* indicationHeader-Format3 */
 };
 static asn_CHOICE_specifics_t asn_SPC_ric_indicationHeader_formats_specs_2 = {
 	sizeof(struct E2SM_RC_IndicationHeader__ric_indicationHeader_formats),
@@ -47,7 +58,7 @@
 	offsetof(struct E2SM_RC_IndicationHeader__ric_indicationHeader_formats, present),
 	sizeof(((struct E2SM_RC_IndicationHeader__ric_indicationHeader_formats *)0)->present),
 	asn_MAP_ric_indicationHeader_formats_tag2el_2,
-	2,	/* Count of tags in the map */
+	3,	/* Count of tags in the map */
 	0, 0,
 	2	/* Extensions start */
 };
@@ -62,7 +73,7 @@
 	0,	/* No tags (count) */
 	{ &asn_OER_type_ric_indicationHeader_formats_constr_2, &asn_PER_type_ric_indicationHeader_formats_constr_2, CHOICE_constraint },
 	asn_MBR_ric_indicationHeader_formats_2,
-	2,	/* Elements count */
+	3,	/* Elements count */
 	&asn_SPC_ric_indicationHeader_formats_specs_2	/* Additional specs */
 };
 
diff --git a/e2sm/lib/E2SM-RC-IndicationMessage-Format1-Item.c b/e2sm/lib/E2SM-RC-IndicationMessage-Format1-Item.c
index b84dcc1..52f38db 100644
--- a/e2sm/lib/E2SM-RC-IndicationMessage-Format1-Item.c
+++ b/e2sm/lib/E2SM-RC-IndicationMessage-Format1-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-IndicationMessage-Format1-Item.h"
diff --git a/e2sm/lib/E2SM-RC-IndicationMessage-Format1.c b/e2sm/lib/E2SM-RC-IndicationMessage-Format1.c
index 0395dbd..4decfe4 100644
--- a/e2sm/lib/E2SM-RC-IndicationMessage-Format1.c
+++ b/e2sm/lib/E2SM-RC-IndicationMessage-Format1.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-IndicationMessage-Format1.h"
diff --git a/e2sm/lib/E2SM-RC-IndicationMessage-Format2-Item.c b/e2sm/lib/E2SM-RC-IndicationMessage-Format2-Item.c
index 5091cd5..c3b98c8 100644
--- a/e2sm/lib/E2SM-RC-IndicationMessage-Format2-Item.c
+++ b/e2sm/lib/E2SM-RC-IndicationMessage-Format2-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-IndicationMessage-Format2-Item.h"
diff --git a/e2sm/lib/E2SM-RC-IndicationMessage-Format2-RANParameter-Item.c b/e2sm/lib/E2SM-RC-IndicationMessage-Format2-RANParameter-Item.c
index c750920..3729403 100644
--- a/e2sm/lib/E2SM-RC-IndicationMessage-Format2-RANParameter-Item.c
+++ b/e2sm/lib/E2SM-RC-IndicationMessage-Format2-RANParameter-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-IndicationMessage-Format2-RANParameter-Item.h"
diff --git a/e2sm/lib/E2SM-RC-IndicationMessage-Format2.c b/e2sm/lib/E2SM-RC-IndicationMessage-Format2.c
index a4210cc..baa97db 100644
--- a/e2sm/lib/E2SM-RC-IndicationMessage-Format2.c
+++ b/e2sm/lib/E2SM-RC-IndicationMessage-Format2.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-IndicationMessage-Format2.h"
diff --git a/e2sm/lib/E2SM-RC-IndicationMessage-Format3-Item.c b/e2sm/lib/E2SM-RC-IndicationMessage-Format3-Item.c
index 2dd2b21..206902a 100644
--- a/e2sm/lib/E2SM-RC-IndicationMessage-Format3-Item.c
+++ b/e2sm/lib/E2SM-RC-IndicationMessage-Format3-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-IndicationMessage-Format3-Item.h"
diff --git a/e2sm/lib/E2SM-RC-IndicationMessage-Format3.c b/e2sm/lib/E2SM-RC-IndicationMessage-Format3.c
index 2573d44..70995c2 100644
--- a/e2sm/lib/E2SM-RC-IndicationMessage-Format3.c
+++ b/e2sm/lib/E2SM-RC-IndicationMessage-Format3.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-IndicationMessage-Format3.h"
diff --git a/e2sm/lib/E2SM-RC-IndicationMessage-Format4-ItemCell.c b/e2sm/lib/E2SM-RC-IndicationMessage-Format4-ItemCell.c
index 113d318..8c04b12 100644
--- a/e2sm/lib/E2SM-RC-IndicationMessage-Format4-ItemCell.c
+++ b/e2sm/lib/E2SM-RC-IndicationMessage-Format4-ItemCell.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-IndicationMessage-Format4-ItemCell.h"
diff --git a/e2sm/lib/E2SM-RC-IndicationMessage-Format4-ItemUE.c b/e2sm/lib/E2SM-RC-IndicationMessage-Format4-ItemUE.c
index 857e906..2ff85c2 100644
--- a/e2sm/lib/E2SM-RC-IndicationMessage-Format4-ItemUE.c
+++ b/e2sm/lib/E2SM-RC-IndicationMessage-Format4-ItemUE.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-IndicationMessage-Format4-ItemUE.h"
diff --git a/e2sm/lib/E2SM-RC-IndicationMessage-Format4.c b/e2sm/lib/E2SM-RC-IndicationMessage-Format4.c
index dfcc96a..00bbc8c 100644
--- a/e2sm/lib/E2SM-RC-IndicationMessage-Format4.c
+++ b/e2sm/lib/E2SM-RC-IndicationMessage-Format4.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-IndicationMessage-Format4.h"
diff --git a/e2sm/lib/E2SM-RC-IndicationMessage-Format5-Item.c b/e2sm/lib/E2SM-RC-IndicationMessage-Format5-Item.c
index 3b9541d..50e9cfd 100644
--- a/e2sm/lib/E2SM-RC-IndicationMessage-Format5-Item.c
+++ b/e2sm/lib/E2SM-RC-IndicationMessage-Format5-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-IndicationMessage-Format5-Item.h"
diff --git a/e2sm/lib/E2SM-RC-IndicationMessage-Format5.c b/e2sm/lib/E2SM-RC-IndicationMessage-Format5.c
index 3a5f71b..d544185 100644
--- a/e2sm/lib/E2SM-RC-IndicationMessage-Format5.c
+++ b/e2sm/lib/E2SM-RC-IndicationMessage-Format5.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-IndicationMessage-Format5.h"
diff --git a/e2sm/lib/E2SM-RC-IndicationMessage-Format6-Indication-Item.c b/e2sm/lib/E2SM-RC-IndicationMessage-Format6-Indication-Item.c
new file mode 100644
index 0000000..cab5f68
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-IndicationMessage-Format6-Indication-Item.c
@@ -0,0 +1,140 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#include "E2SM-RC-IndicationMessage-Format6-Indication-Item.h"
+
+#include "E2SM-RC-IndicationMessage-Format6-RANP-Item.h"
+static int
+memb_ranP_InsertIndication_List_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size <= 65535)) {
+		/* Perform validation of the inner elements */
+		return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_oer_constraints_t asn_OER_type_ranP_InsertIndication_List_constr_3 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(0..65535)) */};
+static asn_per_constraints_t asn_PER_type_ranP_InsertIndication_List_constr_3 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0,  65535 }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_ranP_InsertIndication_List_constr_3 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(0..65535)) */};
+static asn_per_constraints_t asn_PER_memb_ranP_InsertIndication_List_constr_3 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0,  65535 }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ranP_InsertIndication_List_3[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2SM_RC_IndicationMessage_Format6_RANP_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ranP_InsertIndication_List_tags_3[] = {
+	(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ranP_InsertIndication_List_specs_3 = {
+	sizeof(struct E2SM_RC_IndicationMessage_Format6_Indication_Item__ranP_InsertIndication_List),
+	offsetof(struct E2SM_RC_IndicationMessage_Format6_Indication_Item__ranP_InsertIndication_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ranP_InsertIndication_List_3 = {
+	"ranP-InsertIndication-List",
+	"ranP-InsertIndication-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ranP_InsertIndication_List_tags_3,
+	sizeof(asn_DEF_ranP_InsertIndication_List_tags_3)
+		/sizeof(asn_DEF_ranP_InsertIndication_List_tags_3[0]) - 1, /* 1 */
+	asn_DEF_ranP_InsertIndication_List_tags_3,	/* Same as above */
+	sizeof(asn_DEF_ranP_InsertIndication_List_tags_3)
+		/sizeof(asn_DEF_ranP_InsertIndication_List_tags_3[0]), /* 2 */
+	{ &asn_OER_type_ranP_InsertIndication_List_constr_3, &asn_PER_type_ranP_InsertIndication_List_constr_3, SEQUENCE_OF_constraint },
+	asn_MBR_ranP_InsertIndication_List_3,
+	1,	/* Single element */
+	&asn_SPC_ranP_InsertIndication_List_specs_3	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_Format6_Indication_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_IndicationMessage_Format6_Indication_Item, ric_InsertIndication_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_InsertIndication_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-InsertIndication-ID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_IndicationMessage_Format6_Indication_Item, ranP_InsertIndication_List),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		0,
+		&asn_DEF_ranP_InsertIndication_List_3,
+		0,
+		{ &asn_OER_memb_ranP_InsertIndication_List_constr_3, &asn_PER_memb_ranP_InsertIndication_List_constr_3,  memb_ranP_InsertIndication_List_constraint_1 },
+		0, 0, /* No default value */
+		"ranP-InsertIndication-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_IndicationMessage_Format6_Indication_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_IndicationMessage_Format6_Indication_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-InsertIndication-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranP-InsertIndication-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationMessage_Format6_Indication_Item_specs_1 = {
+	sizeof(struct E2SM_RC_IndicationMessage_Format6_Indication_Item),
+	offsetof(struct E2SM_RC_IndicationMessage_Format6_Indication_Item, _asn_ctx),
+	asn_MAP_E2SM_RC_IndicationMessage_Format6_Indication_Item_tag2el_1,
+	2,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_IndicationMessage_Format6_Indication_Item = {
+	"E2SM-RC-IndicationMessage-Format6-Indication-Item",
+	"E2SM-RC-IndicationMessage-Format6-Indication-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_IndicationMessage_Format6_Indication_Item_tags_1,
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format6_Indication_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format6_Indication_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_IndicationMessage_Format6_Indication_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format6_Indication_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format6_Indication_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_IndicationMessage_Format6_Indication_Item_1,
+	2,	/* Elements count */
+	&asn_SPC_E2SM_RC_IndicationMessage_Format6_Indication_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-IndicationMessage-Format6-RANP-Item.c b/e2sm/lib/E2SM-RC-IndicationMessage-Format6-RANP-Item.c
new file mode 100644
index 0000000..76d7014
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-IndicationMessage-Format6-RANP-Item.c
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#include "E2SM-RC-IndicationMessage-Format6-RANP-Item.h"
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_Format6_RANP_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_IndicationMessage_Format6_RANP_Item, ranParameter_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANParameter_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranParameter-ID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_IndicationMessage_Format6_RANP_Item, ranParameter_valueType),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_RANParameter_ValueType,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranParameter-valueType"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_IndicationMessage_Format6_RANP_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_IndicationMessage_Format6_RANP_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranParameter-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranParameter-valueType */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationMessage_Format6_RANP_Item_specs_1 = {
+	sizeof(struct E2SM_RC_IndicationMessage_Format6_RANP_Item),
+	offsetof(struct E2SM_RC_IndicationMessage_Format6_RANP_Item, _asn_ctx),
+	asn_MAP_E2SM_RC_IndicationMessage_Format6_RANP_Item_tag2el_1,
+	2,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_IndicationMessage_Format6_RANP_Item = {
+	"E2SM-RC-IndicationMessage-Format6-RANP-Item",
+	"E2SM-RC-IndicationMessage-Format6-RANP-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_IndicationMessage_Format6_RANP_Item_tags_1,
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format6_RANP_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format6_RANP_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_IndicationMessage_Format6_RANP_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format6_RANP_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format6_RANP_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_IndicationMessage_Format6_RANP_Item_1,
+	2,	/* Elements count */
+	&asn_SPC_E2SM_RC_IndicationMessage_Format6_RANP_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-IndicationMessage-Format6-Style-Item.c b/e2sm/lib/E2SM-RC-IndicationMessage-Format6-Style-Item.c
new file mode 100644
index 0000000..d66939d
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-IndicationMessage-Format6-Style-Item.c
@@ -0,0 +1,140 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#include "E2SM-RC-IndicationMessage-Format6-Style-Item.h"
+
+#include "E2SM-RC-IndicationMessage-Format6-Indication-Item.h"
+static int
+memb_ric_InsertIndication_List_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size >= 1 && size <= 63)) {
+		/* Perform validation of the inner elements */
+		return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_oer_constraints_t asn_OER_type_ric_InsertIndication_List_constr_3 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..63)) */};
+static asn_per_constraints_t asn_PER_type_ric_InsertIndication_List_constr_3 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 6,  6,  1,  63 }	/* (SIZE(1..63)) */,
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_ric_InsertIndication_List_constr_3 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..63)) */};
+static asn_per_constraints_t asn_PER_memb_ric_InsertIndication_List_constr_3 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 6,  6,  1,  63 }	/* (SIZE(1..63)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ric_InsertIndication_List_3[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2SM_RC_IndicationMessage_Format6_Indication_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ric_InsertIndication_List_tags_3[] = {
+	(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ric_InsertIndication_List_specs_3 = {
+	sizeof(struct E2SM_RC_IndicationMessage_Format6_Style_Item__ric_InsertIndication_List),
+	offsetof(struct E2SM_RC_IndicationMessage_Format6_Style_Item__ric_InsertIndication_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ric_InsertIndication_List_3 = {
+	"ric-InsertIndication-List",
+	"ric-InsertIndication-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ric_InsertIndication_List_tags_3,
+	sizeof(asn_DEF_ric_InsertIndication_List_tags_3)
+		/sizeof(asn_DEF_ric_InsertIndication_List_tags_3[0]) - 1, /* 1 */
+	asn_DEF_ric_InsertIndication_List_tags_3,	/* Same as above */
+	sizeof(asn_DEF_ric_InsertIndication_List_tags_3)
+		/sizeof(asn_DEF_ric_InsertIndication_List_tags_3[0]), /* 2 */
+	{ &asn_OER_type_ric_InsertIndication_List_constr_3, &asn_PER_type_ric_InsertIndication_List_constr_3, SEQUENCE_OF_constraint },
+	asn_MBR_ric_InsertIndication_List_3,
+	1,	/* Single element */
+	&asn_SPC_ric_InsertIndication_List_specs_3	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_Format6_Style_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_IndicationMessage_Format6_Style_Item, indicated_Insert_Style_Type),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_Style_Type,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"indicated-Insert-Style-Type"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_IndicationMessage_Format6_Style_Item, ric_InsertIndication_List),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		0,
+		&asn_DEF_ric_InsertIndication_List_3,
+		0,
+		{ &asn_OER_memb_ric_InsertIndication_List_constr_3, &asn_PER_memb_ric_InsertIndication_List_constr_3,  memb_ric_InsertIndication_List_constraint_1 },
+		0, 0, /* No default value */
+		"ric-InsertIndication-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_IndicationMessage_Format6_Style_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_IndicationMessage_Format6_Style_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* indicated-Insert-Style-Type */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ric-InsertIndication-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationMessage_Format6_Style_Item_specs_1 = {
+	sizeof(struct E2SM_RC_IndicationMessage_Format6_Style_Item),
+	offsetof(struct E2SM_RC_IndicationMessage_Format6_Style_Item, _asn_ctx),
+	asn_MAP_E2SM_RC_IndicationMessage_Format6_Style_Item_tag2el_1,
+	2,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_IndicationMessage_Format6_Style_Item = {
+	"E2SM-RC-IndicationMessage-Format6-Style-Item",
+	"E2SM-RC-IndicationMessage-Format6-Style-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_IndicationMessage_Format6_Style_Item_tags_1,
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format6_Style_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format6_Style_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_IndicationMessage_Format6_Style_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format6_Style_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format6_Style_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_IndicationMessage_Format6_Style_Item_1,
+	2,	/* Elements count */
+	&asn_SPC_E2SM_RC_IndicationMessage_Format6_Style_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-IndicationMessage-Format6.c b/e2sm/lib/E2SM-RC-IndicationMessage-Format6.c
new file mode 100644
index 0000000..710524b
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-IndicationMessage-Format6.c
@@ -0,0 +1,130 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
+ */
+
+#include "E2SM-RC-IndicationMessage-Format6.h"
+
+#include "E2SM-RC-IndicationMessage-Format6-Style-Item.h"
+static int
+memb_ric_InsertStyle_List_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	/* Determine the number of elements */
+	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
+	
+	if((size >= 1 && size <= 63)) {
+		/* Perform validation of the inner elements */
+		return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_oer_constraints_t asn_OER_type_ric_InsertStyle_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..63)) */};
+static asn_per_constraints_t asn_PER_type_ric_InsertStyle_List_constr_2 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 6,  6,  1,  63 }	/* (SIZE(1..63)) */,
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_ric_InsertStyle_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..63)) */};
+static asn_per_constraints_t asn_PER_memb_ric_InsertStyle_List_constr_2 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 6,  6,  1,  63 }	/* (SIZE(1..63)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ric_InsertStyle_List_2[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2SM_RC_IndicationMessage_Format6_Style_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ric_InsertStyle_List_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ric_InsertStyle_List_specs_2 = {
+	sizeof(struct E2SM_RC_IndicationMessage_Format6__ric_InsertStyle_List),
+	offsetof(struct E2SM_RC_IndicationMessage_Format6__ric_InsertStyle_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ric_InsertStyle_List_2 = {
+	"ric-InsertStyle-List",
+	"ric-InsertStyle-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ric_InsertStyle_List_tags_2,
+	sizeof(asn_DEF_ric_InsertStyle_List_tags_2)
+		/sizeof(asn_DEF_ric_InsertStyle_List_tags_2[0]) - 1, /* 1 */
+	asn_DEF_ric_InsertStyle_List_tags_2,	/* Same as above */
+	sizeof(asn_DEF_ric_InsertStyle_List_tags_2)
+		/sizeof(asn_DEF_ric_InsertStyle_List_tags_2[0]), /* 2 */
+	{ &asn_OER_type_ric_InsertStyle_List_constr_2, &asn_PER_type_ric_InsertStyle_List_constr_2, SEQUENCE_OF_constraint },
+	asn_MBR_ric_InsertStyle_List_2,
+	1,	/* Single element */
+	&asn_SPC_ric_InsertStyle_List_specs_2	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_Format6_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_IndicationMessage_Format6, ric_InsertStyle_List),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_ric_InsertStyle_List_2,
+		0,
+		{ &asn_OER_memb_ric_InsertStyle_List_constr_2, &asn_PER_memb_ric_InsertStyle_List_constr_2,  memb_ric_InsertStyle_List_constraint_1 },
+		0, 0, /* No default value */
+		"ric-InsertStyle-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_IndicationMessage_Format6_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_IndicationMessage_Format6_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ric-InsertStyle-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationMessage_Format6_specs_1 = {
+	sizeof(struct E2SM_RC_IndicationMessage_Format6),
+	offsetof(struct E2SM_RC_IndicationMessage_Format6, _asn_ctx),
+	asn_MAP_E2SM_RC_IndicationMessage_Format6_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	1,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_IndicationMessage_Format6 = {
+	"E2SM-RC-IndicationMessage-Format6",
+	"E2SM-RC-IndicationMessage-Format6",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_IndicationMessage_Format6_tags_1,
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format6_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format6_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_IndicationMessage_Format6_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format6_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format6_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_IndicationMessage_Format6_1,
+	1,	/* Elements count */
+	&asn_SPC_E2SM_RC_IndicationMessage_Format6_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-IndicationMessage.c b/e2sm/lib/E2SM-RC-IndicationMessage.c
index 3a4cd00..3fab21e 100644
--- a/e2sm/lib/E2SM-RC-IndicationMessage.c
+++ b/e2sm/lib/E2SM-RC-IndicationMessage.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-IndicationMessage.h"
@@ -12,6 +12,7 @@
 #include "E2SM-RC-IndicationMessage-Format3.h"
 #include "E2SM-RC-IndicationMessage-Format4.h"
 #include "E2SM-RC-IndicationMessage-Format5.h"
+#include "E2SM-RC-IndicationMessage-Format6.h"
 static asn_oer_constraints_t asn_OER_type_ric_indicationMessage_formats_constr_2 CC_NOTUSED = {
 	{ 0, 0 },
 	-1};
@@ -66,13 +67,23 @@
 		0, 0, /* No default value */
 		"indicationMessage-Format5"
 		},
+	{ ATF_POINTER, 0, offsetof(struct E2SM_RC_IndicationMessage__ric_indicationMessage_formats, choice.indicationMessage_Format6),
+		(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2SM_RC_IndicationMessage_Format6,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"indicationMessage-Format6"
+		},
 };
 static const asn_TYPE_tag2member_t asn_MAP_ric_indicationMessage_formats_tag2el_2[] = {
     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* indicationMessage-Format1 */
     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* indicationMessage-Format2 */
     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* indicationMessage-Format3 */
     { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* indicationMessage-Format4 */
-    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* indicationMessage-Format5 */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* indicationMessage-Format5 */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* indicationMessage-Format6 */
 };
 static asn_CHOICE_specifics_t asn_SPC_ric_indicationMessage_formats_specs_2 = {
 	sizeof(struct E2SM_RC_IndicationMessage__ric_indicationMessage_formats),
@@ -80,7 +91,7 @@
 	offsetof(struct E2SM_RC_IndicationMessage__ric_indicationMessage_formats, present),
 	sizeof(((struct E2SM_RC_IndicationMessage__ric_indicationMessage_formats *)0)->present),
 	asn_MAP_ric_indicationMessage_formats_tag2el_2,
-	5,	/* Count of tags in the map */
+	6,	/* Count of tags in the map */
 	0, 0,
 	5	/* Extensions start */
 };
@@ -95,7 +106,7 @@
 	0,	/* No tags (count) */
 	{ &asn_OER_type_ric_indicationMessage_formats_constr_2, &asn_PER_type_ric_indicationMessage_formats_constr_2, CHOICE_constraint },
 	asn_MBR_ric_indicationMessage_formats_2,
-	5,	/* Elements count */
+	6,	/* Elements count */
 	&asn_SPC_ric_indicationMessage_formats_specs_2	/* Additional specs */
 };
 
diff --git a/e2sm/lib/E2SM-RC-RANFunctionDefinition.c b/e2sm/lib/E2SM-RC-RANFunctionDefinition.c
index dddb336..ddd21e8 100644
--- a/e2sm/lib/E2SM-RC-RANFunctionDefinition.c
+++ b/e2sm/lib/E2SM-RC-RANFunctionDefinition.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "E2SM-RC-RANFunctionDefinition.h"
diff --git a/e2sm/lib/EN-GNB-ID.c b/e2sm/lib/EN-GNB-ID.c
index 98b8263..69537a9 100644
--- a/e2sm/lib/EN-GNB-ID.c
+++ b/e2sm/lib/EN-GNB-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "EN-GNB-ID.h"
diff --git a/e2sm/lib/ENB-ID.c b/e2sm/lib/ENB-ID.c
index faab5f7..7018be3 100644
--- a/e2sm/lib/ENB-ID.c
+++ b/e2sm/lib/ENB-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "ENB-ID.h"
diff --git a/e2sm/lib/ENB-UE-X2AP-ID-Extension.c b/e2sm/lib/ENB-UE-X2AP-ID-Extension.c
index d9f8c31..e2e10d2 100644
--- a/e2sm/lib/ENB-UE-X2AP-ID-Extension.c
+++ b/e2sm/lib/ENB-UE-X2AP-ID-Extension.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "ENB-UE-X2AP-ID-Extension.h"
diff --git a/e2sm/lib/ENB-UE-X2AP-ID.c b/e2sm/lib/ENB-UE-X2AP-ID.c
index 8af2e3f..f1c8f82 100644
--- a/e2sm/lib/ENB-UE-X2AP-ID.c
+++ b/e2sm/lib/ENB-UE-X2AP-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "ENB-UE-X2AP-ID.h"
diff --git a/e2sm/lib/EUTRA-CGI.c b/e2sm/lib/EUTRA-CGI.c
index 985c769..47f025a 100644
--- a/e2sm/lib/EUTRA-CGI.c
+++ b/e2sm/lib/EUTRA-CGI.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "EUTRA-CGI.h"
diff --git a/e2sm/lib/EUTRACellIdentity.c b/e2sm/lib/EUTRACellIdentity.c
index cefaeb9..d98a49c 100644
--- a/e2sm/lib/EUTRACellIdentity.c
+++ b/e2sm/lib/EUTRACellIdentity.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "EUTRACellIdentity.h"
diff --git a/e2sm/lib/EventTrigger-Cell-Info-Item-Choice-Group.c b/e2sm/lib/EventTrigger-Cell-Info-Item-Choice-Group.c
index 2f6269f..ee77de3 100644
--- a/e2sm/lib/EventTrigger-Cell-Info-Item-Choice-Group.c
+++ b/e2sm/lib/EventTrigger-Cell-Info-Item-Choice-Group.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "EventTrigger-Cell-Info-Item-Choice-Group.h"
diff --git a/e2sm/lib/EventTrigger-Cell-Info-Item-Choice-Individual.c b/e2sm/lib/EventTrigger-Cell-Info-Item-Choice-Individual.c
index 1cf5866..0de3b36 100644
--- a/e2sm/lib/EventTrigger-Cell-Info-Item-Choice-Individual.c
+++ b/e2sm/lib/EventTrigger-Cell-Info-Item-Choice-Individual.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "EventTrigger-Cell-Info-Item-Choice-Individual.h"
diff --git a/e2sm/lib/EventTrigger-Cell-Info-Item.c b/e2sm/lib/EventTrigger-Cell-Info-Item.c
index e96053a..6365bd1 100644
--- a/e2sm/lib/EventTrigger-Cell-Info-Item.c
+++ b/e2sm/lib/EventTrigger-Cell-Info-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "EventTrigger-Cell-Info-Item.h"
diff --git a/e2sm/lib/EventTrigger-Cell-Info.c b/e2sm/lib/EventTrigger-Cell-Info.c
index 30273f7..e80010b 100644
--- a/e2sm/lib/EventTrigger-Cell-Info.c
+++ b/e2sm/lib/EventTrigger-Cell-Info.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "EventTrigger-Cell-Info.h"
diff --git a/e2sm/lib/EventTrigger-UE-Info-Item-Choice-Group.c b/e2sm/lib/EventTrigger-UE-Info-Item-Choice-Group.c
index d819bc1..d8e34f5 100644
--- a/e2sm/lib/EventTrigger-UE-Info-Item-Choice-Group.c
+++ b/e2sm/lib/EventTrigger-UE-Info-Item-Choice-Group.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "EventTrigger-UE-Info-Item-Choice-Group.h"
diff --git a/e2sm/lib/EventTrigger-UE-Info-Item-Choice-Individual.c b/e2sm/lib/EventTrigger-UE-Info-Item-Choice-Individual.c
index d822187..d2f1045 100644
--- a/e2sm/lib/EventTrigger-UE-Info-Item-Choice-Individual.c
+++ b/e2sm/lib/EventTrigger-UE-Info-Item-Choice-Individual.c
@@ -1,12 +1,13 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "EventTrigger-UE-Info-Item-Choice-Individual.h"
 
+#include "RANParameter-Testing.h"
 asn_TYPE_member_t asn_MBR_EventTrigger_UE_Info_Item_Choice_Individual_1[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct EventTrigger_UE_Info_Item_Choice_Individual, ueID),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
@@ -17,7 +18,7 @@
 		0, 0, /* No default value */
 		"ueID"
 		},
-	{ ATF_NOFLAGS, 0, offsetof(struct EventTrigger_UE_Info_Item_Choice_Individual, ranParameterTesting),
+	{ ATF_POINTER, 1, offsetof(struct EventTrigger_UE_Info_Item_Choice_Individual, ranParameterTesting),
 		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
 		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_RANParameter_Testing,
@@ -27,6 +28,7 @@
 		"ranParameterTesting"
 		},
 };
+static const int asn_MAP_EventTrigger_UE_Info_Item_Choice_Individual_oms_1[] = { 1 };
 static const ber_tlv_tag_t asn_DEF_EventTrigger_UE_Info_Item_Choice_Individual_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
@@ -39,7 +41,8 @@
 	offsetof(struct EventTrigger_UE_Info_Item_Choice_Individual, _asn_ctx),
 	asn_MAP_EventTrigger_UE_Info_Item_Choice_Individual_tag2el_1,
 	2,	/* Count of tags in the map */
-	0, 0, 0,	/* Optional elements (not needed) */
+	asn_MAP_EventTrigger_UE_Info_Item_Choice_Individual_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
 	2,	/* First extension addition */
 };
 asn_TYPE_descriptor_t asn_DEF_EventTrigger_UE_Info_Item_Choice_Individual = {
diff --git a/e2sm/lib/EventTrigger-UE-Info-Item.c b/e2sm/lib/EventTrigger-UE-Info-Item.c
index dfb34d0..aa5bfc2 100644
--- a/e2sm/lib/EventTrigger-UE-Info-Item.c
+++ b/e2sm/lib/EventTrigger-UE-Info-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "EventTrigger-UE-Info-Item.h"
diff --git a/e2sm/lib/EventTrigger-UE-Info.c b/e2sm/lib/EventTrigger-UE-Info.c
index 85a6492..6a6f5db 100644
--- a/e2sm/lib/EventTrigger-UE-Info.c
+++ b/e2sm/lib/EventTrigger-UE-Info.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "EventTrigger-UE-Info.h"
diff --git a/e2sm/lib/EventTrigger-UEevent-Info-Item.c b/e2sm/lib/EventTrigger-UEevent-Info-Item.c
index 868fa6b..a1cbb51 100644
--- a/e2sm/lib/EventTrigger-UEevent-Info-Item.c
+++ b/e2sm/lib/EventTrigger-UEevent-Info-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "EventTrigger-UEevent-Info-Item.h"
diff --git a/e2sm/lib/EventTrigger-UEevent-Info.c b/e2sm/lib/EventTrigger-UEevent-Info.c
index 77a5ed7..da36325 100644
--- a/e2sm/lib/EventTrigger-UEevent-Info.c
+++ b/e2sm/lib/EventTrigger-UEevent-Info.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "EventTrigger-UEevent-Info.h"
diff --git a/e2sm/lib/FiveGS-TAC.c b/e2sm/lib/FiveGS-TAC.c
index 48ff439..5177bda 100644
--- a/e2sm/lib/FiveGS-TAC.c
+++ b/e2sm/lib/FiveGS-TAC.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "FiveGS-TAC.h"
diff --git a/e2sm/lib/FiveQI.c b/e2sm/lib/FiveQI.c
index c19218b..d5553dd 100644
--- a/e2sm/lib/FiveQI.c
+++ b/e2sm/lib/FiveQI.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "FiveQI.h"
diff --git a/e2sm/lib/FreqBandNrItem.c b/e2sm/lib/FreqBandNrItem.c
index d5cff17..9a18e25 100644
--- a/e2sm/lib/FreqBandNrItem.c
+++ b/e2sm/lib/FreqBandNrItem.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "FreqBandNrItem.h"
diff --git a/e2sm/lib/GNB-CU-CP-UE-E1AP-ID.c b/e2sm/lib/GNB-CU-CP-UE-E1AP-ID.c
index d18a479..3af431c 100644
--- a/e2sm/lib/GNB-CU-CP-UE-E1AP-ID.c
+++ b/e2sm/lib/GNB-CU-CP-UE-E1AP-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "GNB-CU-CP-UE-E1AP-ID.h"
diff --git a/e2sm/lib/GNB-CU-UE-F1AP-ID.c b/e2sm/lib/GNB-CU-UE-F1AP-ID.c
index 5b6c575..1482a7a 100644
--- a/e2sm/lib/GNB-CU-UE-F1AP-ID.c
+++ b/e2sm/lib/GNB-CU-UE-F1AP-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "GNB-CU-UE-F1AP-ID.h"
diff --git a/e2sm/lib/GNB-CU-UP-ID.c b/e2sm/lib/GNB-CU-UP-ID.c
index f4c8012..5cbc06a 100644
--- a/e2sm/lib/GNB-CU-UP-ID.c
+++ b/e2sm/lib/GNB-CU-UP-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "GNB-CU-UP-ID.h"
diff --git a/e2sm/lib/GNB-DU-ID.c b/e2sm/lib/GNB-DU-ID.c
index 3bbd52c..70a673a 100644
--- a/e2sm/lib/GNB-DU-ID.c
+++ b/e2sm/lib/GNB-DU-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "GNB-DU-ID.h"
diff --git a/e2sm/lib/GNB-ID.c b/e2sm/lib/GNB-ID.c
index ccde106..ba35f41 100644
--- a/e2sm/lib/GNB-ID.c
+++ b/e2sm/lib/GNB-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "GNB-ID.h"
diff --git a/e2sm/lib/GUAMI.c b/e2sm/lib/GUAMI.c
index 05040f5..bd7e402 100644
--- a/e2sm/lib/GUAMI.c
+++ b/e2sm/lib/GUAMI.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "GUAMI.h"
diff --git a/e2sm/lib/GUMMEI.c b/e2sm/lib/GUMMEI.c
index ac0bf5b..316aa33 100644
--- a/e2sm/lib/GUMMEI.c
+++ b/e2sm/lib/GUMMEI.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "GUMMEI.h"
diff --git a/e2sm/lib/GlobalENB-ID.c b/e2sm/lib/GlobalENB-ID.c
index 731c16e..4e8b682 100644
--- a/e2sm/lib/GlobalENB-ID.c
+++ b/e2sm/lib/GlobalENB-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "GlobalENB-ID.h"
diff --git a/e2sm/lib/GlobalGNB-ID.c b/e2sm/lib/GlobalGNB-ID.c
index 47f17dd..c9ead94 100644
--- a/e2sm/lib/GlobalGNB-ID.c
+++ b/e2sm/lib/GlobalGNB-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "GlobalGNB-ID.h"
diff --git a/e2sm/lib/GlobalNGRANNodeID.c b/e2sm/lib/GlobalNGRANNodeID.c
index 58de505..598fad6 100644
--- a/e2sm/lib/GlobalNGRANNodeID.c
+++ b/e2sm/lib/GlobalNGRANNodeID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "GlobalNGRANNodeID.h"
diff --git a/e2sm/lib/GlobalNgENB-ID.c b/e2sm/lib/GlobalNgENB-ID.c
index 549617a..3b6e357 100644
--- a/e2sm/lib/GlobalNgENB-ID.c
+++ b/e2sm/lib/GlobalNgENB-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "GlobalNgENB-ID.h"
diff --git a/e2sm/lib/GlobalenGNB-ID.c b/e2sm/lib/GlobalenGNB-ID.c
index 887b8a4..2cdbad4 100644
--- a/e2sm/lib/GlobalenGNB-ID.c
+++ b/e2sm/lib/GlobalenGNB-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "GlobalenGNB-ID.h"
diff --git a/e2sm/lib/GroupID.c b/e2sm/lib/GroupID.c
index 4fe3f18..b712efc 100644
--- a/e2sm/lib/GroupID.c
+++ b/e2sm/lib/GroupID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "GroupID.h"
diff --git a/e2sm/lib/IndexToRFSP.c b/e2sm/lib/IndexToRFSP.c
index cd7b378..25843d0 100644
--- a/e2sm/lib/IndexToRFSP.c
+++ b/e2sm/lib/IndexToRFSP.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "IndexToRFSP.h"
diff --git a/e2sm/lib/InsertIndication-RANParameter-Item.c b/e2sm/lib/InsertIndication-RANParameter-Item.c
index 0577b21..b460c7e 100644
--- a/e2sm/lib/InsertIndication-RANParameter-Item.c
+++ b/e2sm/lib/InsertIndication-RANParameter-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "InsertIndication-RANParameter-Item.h"
diff --git a/e2sm/lib/Interface-MessageID.c b/e2sm/lib/Interface-MessageID.c
index 6f78561..35413ba 100644
--- a/e2sm/lib/Interface-MessageID.c
+++ b/e2sm/lib/Interface-MessageID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "Interface-MessageID.h"
diff --git a/e2sm/lib/InterfaceID-E1.c b/e2sm/lib/InterfaceID-E1.c
index 3c6109f..5836b33 100644
--- a/e2sm/lib/InterfaceID-E1.c
+++ b/e2sm/lib/InterfaceID-E1.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "InterfaceID-E1.h"
diff --git a/e2sm/lib/InterfaceID-F1.c b/e2sm/lib/InterfaceID-F1.c
index cd36650..b60a8a0 100644
--- a/e2sm/lib/InterfaceID-F1.c
+++ b/e2sm/lib/InterfaceID-F1.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "InterfaceID-F1.h"
diff --git a/e2sm/lib/InterfaceID-NG.c b/e2sm/lib/InterfaceID-NG.c
index a1cc25c..cc17bfe 100644
--- a/e2sm/lib/InterfaceID-NG.c
+++ b/e2sm/lib/InterfaceID-NG.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "InterfaceID-NG.h"
diff --git a/e2sm/lib/InterfaceID-S1.c b/e2sm/lib/InterfaceID-S1.c
index 2710359..e96383e 100644
--- a/e2sm/lib/InterfaceID-S1.c
+++ b/e2sm/lib/InterfaceID-S1.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "InterfaceID-S1.h"
diff --git a/e2sm/lib/InterfaceID-W1.c b/e2sm/lib/InterfaceID-W1.c
index 4bbd6a6..209d381 100644
--- a/e2sm/lib/InterfaceID-W1.c
+++ b/e2sm/lib/InterfaceID-W1.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "InterfaceID-W1.h"
diff --git a/e2sm/lib/InterfaceID-X2.c b/e2sm/lib/InterfaceID-X2.c
index f410123..a048c54 100644
--- a/e2sm/lib/InterfaceID-X2.c
+++ b/e2sm/lib/InterfaceID-X2.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "InterfaceID-X2.h"
diff --git a/e2sm/lib/InterfaceID-Xn.c b/e2sm/lib/InterfaceID-Xn.c
index de8e414..f1494fe 100644
--- a/e2sm/lib/InterfaceID-Xn.c
+++ b/e2sm/lib/InterfaceID-Xn.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "InterfaceID-Xn.h"
diff --git a/e2sm/lib/InterfaceIdentifier.c b/e2sm/lib/InterfaceIdentifier.c
index b04564e..fdfcdb3 100644
--- a/e2sm/lib/InterfaceIdentifier.c
+++ b/e2sm/lib/InterfaceIdentifier.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "InterfaceIdentifier.h"
diff --git a/e2sm/lib/InterfaceType.c b/e2sm/lib/InterfaceType.c
index 359cad7..d09465a 100644
--- a/e2sm/lib/InterfaceType.c
+++ b/e2sm/lib/InterfaceType.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "InterfaceType.h"
diff --git a/e2sm/lib/L2Parameters-RANParameter-Item.c b/e2sm/lib/L2Parameters-RANParameter-Item.c
index 929135d..ea490e2 100644
--- a/e2sm/lib/L2Parameters-RANParameter-Item.c
+++ b/e2sm/lib/L2Parameters-RANParameter-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "L2Parameters-RANParameter-Item.h"
@@ -18,14 +18,14 @@
 		0, 0, /* No default value */
 		"ranParameter-ID"
 		},
-	{ ATF_NOFLAGS, 0, offsetof(struct L2Parameters_RANParameter_Item, ranParameter_Name),
+	{ ATF_NOFLAGS, 0, offsetof(struct L2Parameters_RANParameter_Item, ranParameter_name),
 		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
 		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_RANParameter_Name,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
-		"ranParameter-Name"
+		"ranParameter-name"
 		},
 	{ ATF_POINTER, 1, offsetof(struct L2Parameters_RANParameter_Item, ranParameter_Definition),
 		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
@@ -43,7 +43,7 @@
 };
 static const asn_TYPE_tag2member_t asn_MAP_L2Parameters_RANParameter_Item_tag2el_1[] = {
     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranParameter-ID */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ranParameter-Name */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ranParameter-name */
     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ranParameter-Definition */
 };
 asn_SEQUENCE_specifics_t asn_SPC_L2Parameters_RANParameter_Item_specs_1 = {
diff --git a/e2sm/lib/LogicalOR.c b/e2sm/lib/LogicalOR.c
index 4201a8e..e9dbbf2 100644
--- a/e2sm/lib/LogicalOR.c
+++ b/e2sm/lib/LogicalOR.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "LogicalOR.h"
diff --git a/e2sm/lib/MME-Code.c b/e2sm/lib/MME-Code.c
index 193d640..b9d9b23 100644
--- a/e2sm/lib/MME-Code.c
+++ b/e2sm/lib/MME-Code.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "MME-Code.h"
diff --git a/e2sm/lib/MME-Group-ID.c b/e2sm/lib/MME-Group-ID.c
index cc5af21..0a03c94 100644
--- a/e2sm/lib/MME-Group-ID.c
+++ b/e2sm/lib/MME-Group-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "MME-Group-ID.h"
diff --git a/e2sm/lib/MME-UE-S1AP-ID.c b/e2sm/lib/MME-UE-S1AP-ID.c
index 5e89d7f..695136e 100644
--- a/e2sm/lib/MME-UE-S1AP-ID.c
+++ b/e2sm/lib/MME-UE-S1AP-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "MME-UE-S1AP-ID.h"
diff --git a/e2sm/lib/Makefile.am.libasncodec b/e2sm/lib/Makefile.am.libasncodec
deleted file mode 100644
index dca4816..0000000
--- a/e2sm/lib/Makefile.am.libasncodec
+++ /dev/null
@@ -1,544 +0,0 @@
-ASN_MODULE_SRCS=	\
-	./CGI.c	\
-	./CoreCPID.c	\
-	./InterfaceIdentifier.c	\
-	./InterfaceID-NG.c	\
-	./InterfaceID-Xn.c	\
-	./InterfaceID-F1.c	\
-	./InterfaceID-E1.c	\
-	./InterfaceID-S1.c	\
-	./InterfaceID-X2.c	\
-	./InterfaceID-W1.c	\
-	./Interface-MessageID.c	\
-	./InterfaceType.c	\
-	./GroupID.c	\
-	./QoSID.c	\
-	./RANfunction-Name.c	\
-	./RIC-Format-Type.c	\
-	./RIC-Style-Type.c	\
-	./RIC-Style-Name.c	\
-	./RRC-MessageID.c	\
-	./RRCclass-LTE.c	\
-	./RRCclass-NR.c	\
-	./ServingCell-ARFCN.c	\
-	./ServingCell-PCI.c	\
-	./UEID.c	\
-	./UEID-GNB.c	\
-	./UEID-GNB-CU-CP-E1AP-ID-List.c	\
-	./UEID-GNB-CU-CP-E1AP-ID-Item.c	\
-	./UEID-GNB-CU-F1AP-ID-List.c	\
-	./UEID-GNB-CU-CP-F1AP-ID-Item.c	\
-	./UEID-GNB-DU.c	\
-	./UEID-GNB-CU-UP.c	\
-	./UEID-NG-ENB.c	\
-	./UEID-NG-ENB-DU.c	\
-	./UEID-EN-GNB.c	\
-	./UEID-ENB.c	\
-	./ENB-ID.c	\
-	./GlobalENB-ID.c	\
-	./GUMMEI.c	\
-	./MME-Group-ID.c	\
-	./MME-Code.c	\
-	./MME-UE-S1AP-ID.c	\
-	./QCI.c	\
-	./SubscriberProfileIDforRFP.c	\
-	./EN-GNB-ID.c	\
-	./ENB-UE-X2AP-ID.c	\
-	./ENB-UE-X2AP-ID-Extension.c	\
-	./E-UTRA-ARFCN.c	\
-	./E-UTRA-PCI.c	\
-	./E-UTRA-TAC.c	\
-	./GlobalenGNB-ID.c	\
-	./NGENB-CU-UE-W1AP-ID.c	\
-	./NGENB-DU-ID.c	\
-	./AMFPointer.c	\
-	./AMFRegionID.c	\
-	./AMFSetID.c	\
-	./AMF-UE-NGAP-ID.c	\
-	./EUTRACellIdentity.c	\
-	./EUTRA-CGI.c	\
-	./FiveQI.c	\
-	./GlobalGNB-ID.c	\
-	./GlobalNgENB-ID.c	\
-	./GNB-ID.c	\
-	./GUAMI.c	\
-	./IndexToRFSP.c	\
-	./NgENB-ID.c	\
-	./NRCellIdentity.c	\
-	./NR-CGI.c	\
-	./PLMNIdentity.c	\
-	./QosFlowIdentifier.c	\
-	./SD.c	\
-	./S-NSSAI.c	\
-	./SST.c	\
-	./NG-RANnodeUEXnAPID.c	\
-	./GlobalNGRANNodeID.c	\
-	./GNB-CU-CP-UE-E1AP-ID.c	\
-	./GNB-CU-UP-ID.c	\
-	./FiveGS-TAC.c	\
-	./FreqBandNrItem.c	\
-	./GNB-CU-UE-F1AP-ID.c	\
-	./GNB-DU-ID.c	\
-	./NR-PCI.c	\
-	./NR-ARFCN.c	\
-	./NRFrequencyBand-List.c	\
-	./NRFrequencyBandItem.c	\
-	./NRFrequencyInfo.c	\
-	./NRFrequencyShift7p5khz.c	\
-	./RANUEID.c	\
-	./SupportedSULBandList.c	\
-	./SupportedSULFreqBandItem.c	\
-	./LogicalOR.c	\
-	./NeighborCell-List.c	\
-	./NeighborCell-Item.c	\
-	./NeighborCell-Item-Choice-NR.c	\
-	./NeighborCell-Item-Choice-E-UTRA.c	\
-	./NeighborRelation-Info.c	\
-	./RRC-State.c	\
-	./EventTrigger-Cell-Info.c	\
-	./EventTrigger-Cell-Info-Item.c	\
-	./EventTrigger-Cell-Info-Item-Choice-Individual.c	\
-	./EventTrigger-Cell-Info-Item-Choice-Group.c	\
-	./EventTrigger-UE-Info.c	\
-	./EventTrigger-UE-Info-Item.c	\
-	./EventTrigger-UE-Info-Item-Choice-Individual.c	\
-	./EventTrigger-UE-Info-Item-Choice-Group.c	\
-	./EventTrigger-UEevent-Info.c	\
-	./EventTrigger-UEevent-Info-Item.c	\
-	./RANParameter-ID.c	\
-	./RANParameter-Name.c	\
-	./RANParameter-Definition.c	\
-	./RANParameter-Definition-Choice.c	\
-	./RANParameter-Definition-Choice-LIST.c	\
-	./RANParameter-Definition-Choice-LIST-Item.c	\
-	./RANParameter-Definition-Choice-STRUCTURE.c	\
-	./RANParameter-Definition-Choice-STRUCTURE-Item.c	\
-	./RANParameter-Value.c	\
-	./RANParameter-ValueType.c	\
-	./RANParameter-ValueType-Choice-ElementTrue.c	\
-	./RANParameter-ValueType-Choice-ElementFalse.c	\
-	./RANParameter-ValueType-Choice-Structure.c	\
-	./RANParameter-ValueType-Choice-List.c	\
-	./RANParameter-STRUCTURE.c	\
-	./RANParameter-STRUCTURE-Item.c	\
-	./RANParameter-LIST.c	\
-	./RANParameter-Testing.c	\
-	./RANParameter-TestingCondition.c	\
-	./RANParameter-Testing-Item.c	\
-	./RANParameter-Testing-Item-Choice-List.c	\
-	./RANParameter-Testing-Item-Choice-Structure.c	\
-	./RANParameter-Testing-Item-Choice-ElementTrue.c	\
-	./RANParameter-Testing-Item-Choice-ElementFalse.c	\
-	./RANParameter-Testing-LIST.c	\
-	./RANParameter-Testing-STRUCTURE.c	\
-	./RAN-CallProcess-ID.c	\
-	./RIC-CallProcessType-ID.c	\
-	./RIC-CallProcessType-Name.c	\
-	./RIC-CallProcessBreakpoint-ID.c	\
-	./RIC-CallProcessBreakpoint-Name.c	\
-	./RIC-ControlAction-ID.c	\
-	./RIC-ControlAction-Name.c	\
-	./RIC-EventTriggerCondition-ID.c	\
-	./RIC-EventTrigger-UE-ID.c	\
-	./RIC-EventTrigger-UEevent-ID.c	\
-	./RIC-EventTrigger-Cell-ID.c	\
-	./RIC-InsertIndication-ID.c	\
-	./RIC-InsertIndication-Name.c	\
-	./RIC-PolicyAction.c	\
-	./RIC-PolicyAction-RANParameter-Item.c	\
-	./E2SM-RC-EventTrigger.c	\
-	./E2SM-RC-EventTrigger-Format1.c	\
-	./E2SM-RC-EventTrigger-Format1-Item.c	\
-	./MessageType-Choice.c	\
-	./MessageType-Choice-NI.c	\
-	./MessageType-Choice-RRC.c	\
-	./E2SM-RC-EventTrigger-Format2.c	\
-	./E2SM-RC-EventTrigger-Format3.c	\
-	./E2SM-RC-EventTrigger-Format3-Item.c	\
-	./E2SM-RC-EventTrigger-Format4.c	\
-	./E2SM-RC-EventTrigger-Format4-Item.c	\
-	./TriggerType-Choice.c	\
-	./TriggerType-Choice-RRCstate.c	\
-	./TriggerType-Choice-RRCstate-Item.c	\
-	./TriggerType-Choice-UEID.c	\
-	./TriggerType-Choice-L2state.c	\
-	./E2SM-RC-EventTrigger-Format5.c	\
-	./E2SM-RC-ActionDefinition.c	\
-	./E2SM-RC-ActionDefinition-Format1.c	\
-	./E2SM-RC-ActionDefinition-Format1-Item.c	\
-	./E2SM-RC-ActionDefinition-Format2.c	\
-	./E2SM-RC-ActionDefinition-Format2-Item.c	\
-	./E2SM-RC-ActionDefinition-Format3.c	\
-	./E2SM-RC-ActionDefinition-Format3-Item.c	\
-	./E2SM-RC-IndicationHeader.c	\
-	./E2SM-RC-IndicationHeader-Format1.c	\
-	./E2SM-RC-IndicationHeader-Format2.c	\
-	./E2SM-RC-IndicationMessage.c	\
-	./E2SM-RC-IndicationMessage-Format1.c	\
-	./E2SM-RC-IndicationMessage-Format1-Item.c	\
-	./E2SM-RC-IndicationMessage-Format2.c	\
-	./E2SM-RC-IndicationMessage-Format2-Item.c	\
-	./E2SM-RC-IndicationMessage-Format2-RANParameter-Item.c	\
-	./E2SM-RC-IndicationMessage-Format3.c	\
-	./E2SM-RC-IndicationMessage-Format3-Item.c	\
-	./E2SM-RC-IndicationMessage-Format4.c	\
-	./E2SM-RC-IndicationMessage-Format4-ItemUE.c	\
-	./E2SM-RC-IndicationMessage-Format4-ItemCell.c	\
-	./E2SM-RC-IndicationMessage-Format5.c	\
-	./E2SM-RC-IndicationMessage-Format5-Item.c	\
-	./E2SM-RC-CallProcessID.c	\
-	./E2SM-RC-CallProcessID-Format1.c	\
-	./E2SM-RC-ControlHeader.c	\
-	./E2SM-RC-ControlHeader-Format1.c	\
-	./E2SM-RC-ControlMessage.c	\
-	./E2SM-RC-ControlMessage-Format1.c	\
-	./E2SM-RC-ControlMessage-Format1-Item.c	\
-	./E2SM-RC-ControlOutcome.c	\
-	./E2SM-RC-ControlOutcome-Format1.c	\
-	./E2SM-RC-ControlOutcome-Format1-Item.c	\
-	./E2SM-RC-RANFunctionDefinition.c	\
-	./RANFunctionDefinition-EventTrigger.c	\
-	./RANFunctionDefinition-EventTrigger-Style-Item.c	\
-	./L2Parameters-RANParameter-Item.c	\
-	./UEIdentification-RANParameter-Item.c	\
-	./CellIdentification-RANParameter-Item.c	\
-	./RANFunctionDefinition-EventTrigger-CallProcess-Item.c	\
-	./RANFunctionDefinition-EventTrigger-Breakpoint-Item.c	\
-	./CallProcessBreakpoint-RANParameter-Item.c	\
-	./RANFunctionDefinition-Report.c	\
-	./RANFunctionDefinition-Report-Item.c	\
-	./Report-RANParameter-Item.c	\
-	./RANFunctionDefinition-Insert.c	\
-	./RANFunctionDefinition-Insert-Item.c	\
-	./RANFunctionDefinition-Insert-Indication-Item.c	\
-	./InsertIndication-RANParameter-Item.c	\
-	./RANFunctionDefinition-Control.c	\
-	./RANFunctionDefinition-Control-Item.c	\
-	./ControlOutcome-RANParameter-Item.c	\
-	./RANFunctionDefinition-Control-Action-Item.c	\
-	./ControlAction-RANParameter-Item.c	\
-	./RANFunctionDefinition-Policy.c	\
-	./RANFunctionDefinition-Policy-Item.c	\
-	./RANFunctionDefinition-Policy-Action-Item.c	\
-	./PolicyAction-RANParameter-Item.c	\
-	./PolicyCondition-RANParameter-Item.c
-
-ASN_MODULE_HDRS=	\
-	./CGI.h	\
-	./CoreCPID.h	\
-	./InterfaceIdentifier.h	\
-	./InterfaceID-NG.h	\
-	./InterfaceID-Xn.h	\
-	./InterfaceID-F1.h	\
-	./InterfaceID-E1.h	\
-	./InterfaceID-S1.h	\
-	./InterfaceID-X2.h	\
-	./InterfaceID-W1.h	\
-	./Interface-MessageID.h	\
-	./InterfaceType.h	\
-	./GroupID.h	\
-	./QoSID.h	\
-	./RANfunction-Name.h	\
-	./RIC-Format-Type.h	\
-	./RIC-Style-Type.h	\
-	./RIC-Style-Name.h	\
-	./RRC-MessageID.h	\
-	./RRCclass-LTE.h	\
-	./RRCclass-NR.h	\
-	./ServingCell-ARFCN.h	\
-	./ServingCell-PCI.h	\
-	./UEID.h	\
-	./UEID-GNB.h	\
-	./UEID-GNB-CU-CP-E1AP-ID-List.h	\
-	./UEID-GNB-CU-CP-E1AP-ID-Item.h	\
-	./UEID-GNB-CU-F1AP-ID-List.h	\
-	./UEID-GNB-CU-CP-F1AP-ID-Item.h	\
-	./UEID-GNB-DU.h	\
-	./UEID-GNB-CU-UP.h	\
-	./UEID-NG-ENB.h	\
-	./UEID-NG-ENB-DU.h	\
-	./UEID-EN-GNB.h	\
-	./UEID-ENB.h	\
-	./ENB-ID.h	\
-	./GlobalENB-ID.h	\
-	./GUMMEI.h	\
-	./MME-Group-ID.h	\
-	./MME-Code.h	\
-	./MME-UE-S1AP-ID.h	\
-	./QCI.h	\
-	./SubscriberProfileIDforRFP.h	\
-	./EN-GNB-ID.h	\
-	./ENB-UE-X2AP-ID.h	\
-	./ENB-UE-X2AP-ID-Extension.h	\
-	./E-UTRA-ARFCN.h	\
-	./E-UTRA-PCI.h	\
-	./E-UTRA-TAC.h	\
-	./GlobalenGNB-ID.h	\
-	./NGENB-CU-UE-W1AP-ID.h	\
-	./NGENB-DU-ID.h	\
-	./AMFPointer.h	\
-	./AMFRegionID.h	\
-	./AMFSetID.h	\
-	./AMF-UE-NGAP-ID.h	\
-	./EUTRACellIdentity.h	\
-	./EUTRA-CGI.h	\
-	./FiveQI.h	\
-	./GlobalGNB-ID.h	\
-	./GlobalNgENB-ID.h	\
-	./GNB-ID.h	\
-	./GUAMI.h	\
-	./IndexToRFSP.h	\
-	./NgENB-ID.h	\
-	./NRCellIdentity.h	\
-	./NR-CGI.h	\
-	./PLMNIdentity.h	\
-	./QosFlowIdentifier.h	\
-	./SD.h	\
-	./S-NSSAI.h	\
-	./SST.h	\
-	./NG-RANnodeUEXnAPID.h	\
-	./GlobalNGRANNodeID.h	\
-	./GNB-CU-CP-UE-E1AP-ID.h	\
-	./GNB-CU-UP-ID.h	\
-	./FiveGS-TAC.h	\
-	./FreqBandNrItem.h	\
-	./GNB-CU-UE-F1AP-ID.h	\
-	./GNB-DU-ID.h	\
-	./NR-PCI.h	\
-	./NR-ARFCN.h	\
-	./NRFrequencyBand-List.h	\
-	./NRFrequencyBandItem.h	\
-	./NRFrequencyInfo.h	\
-	./NRFrequencyShift7p5khz.h	\
-	./RANUEID.h	\
-	./SupportedSULBandList.h	\
-	./SupportedSULFreqBandItem.h	\
-	./LogicalOR.h	\
-	./NeighborCell-List.h	\
-	./NeighborCell-Item.h	\
-	./NeighborCell-Item-Choice-NR.h	\
-	./NeighborCell-Item-Choice-E-UTRA.h	\
-	./NeighborRelation-Info.h	\
-	./RRC-State.h	\
-	./EventTrigger-Cell-Info.h	\
-	./EventTrigger-Cell-Info-Item.h	\
-	./EventTrigger-Cell-Info-Item-Choice-Individual.h	\
-	./EventTrigger-Cell-Info-Item-Choice-Group.h	\
-	./EventTrigger-UE-Info.h	\
-	./EventTrigger-UE-Info-Item.h	\
-	./EventTrigger-UE-Info-Item-Choice-Individual.h	\
-	./EventTrigger-UE-Info-Item-Choice-Group.h	\
-	./EventTrigger-UEevent-Info.h	\
-	./EventTrigger-UEevent-Info-Item.h	\
-	./RANParameter-ID.h	\
-	./RANParameter-Name.h	\
-	./RANParameter-Definition.h	\
-	./RANParameter-Definition-Choice.h	\
-	./RANParameter-Definition-Choice-LIST.h	\
-	./RANParameter-Definition-Choice-LIST-Item.h	\
-	./RANParameter-Definition-Choice-STRUCTURE.h	\
-	./RANParameter-Definition-Choice-STRUCTURE-Item.h	\
-	./RANParameter-Value.h	\
-	./RANParameter-ValueType.h	\
-	./RANParameter-ValueType-Choice-ElementTrue.h	\
-	./RANParameter-ValueType-Choice-ElementFalse.h	\
-	./RANParameter-ValueType-Choice-Structure.h	\
-	./RANParameter-ValueType-Choice-List.h	\
-	./RANParameter-STRUCTURE.h	\
-	./RANParameter-STRUCTURE-Item.h	\
-	./RANParameter-LIST.h	\
-	./RANParameter-Testing.h	\
-	./RANParameter-TestingCondition.h	\
-	./RANParameter-Testing-Item.h	\
-	./RANParameter-Testing-Item-Choice-List.h	\
-	./RANParameter-Testing-Item-Choice-Structure.h	\
-	./RANParameter-Testing-Item-Choice-ElementTrue.h	\
-	./RANParameter-Testing-Item-Choice-ElementFalse.h	\
-	./RANParameter-Testing-LIST.h	\
-	./RANParameter-Testing-STRUCTURE.h	\
-	./RAN-CallProcess-ID.h	\
-	./RIC-CallProcessType-ID.h	\
-	./RIC-CallProcessType-Name.h	\
-	./RIC-CallProcessBreakpoint-ID.h	\
-	./RIC-CallProcessBreakpoint-Name.h	\
-	./RIC-ControlAction-ID.h	\
-	./RIC-ControlAction-Name.h	\
-	./RIC-EventTriggerCondition-ID.h	\
-	./RIC-EventTrigger-UE-ID.h	\
-	./RIC-EventTrigger-UEevent-ID.h	\
-	./RIC-EventTrigger-Cell-ID.h	\
-	./RIC-InsertIndication-ID.h	\
-	./RIC-InsertIndication-Name.h	\
-	./RIC-PolicyAction.h	\
-	./RIC-PolicyAction-RANParameter-Item.h	\
-	./E2SM-RC-EventTrigger.h	\
-	./E2SM-RC-EventTrigger-Format1.h	\
-	./E2SM-RC-EventTrigger-Format1-Item.h	\
-	./MessageType-Choice.h	\
-	./MessageType-Choice-NI.h	\
-	./MessageType-Choice-RRC.h	\
-	./E2SM-RC-EventTrigger-Format2.h	\
-	./E2SM-RC-EventTrigger-Format3.h	\
-	./E2SM-RC-EventTrigger-Format3-Item.h	\
-	./E2SM-RC-EventTrigger-Format4.h	\
-	./E2SM-RC-EventTrigger-Format4-Item.h	\
-	./TriggerType-Choice.h	\
-	./TriggerType-Choice-RRCstate.h	\
-	./TriggerType-Choice-RRCstate-Item.h	\
-	./TriggerType-Choice-UEID.h	\
-	./TriggerType-Choice-L2state.h	\
-	./E2SM-RC-EventTrigger-Format5.h	\
-	./E2SM-RC-ActionDefinition.h	\
-	./E2SM-RC-ActionDefinition-Format1.h	\
-	./E2SM-RC-ActionDefinition-Format1-Item.h	\
-	./E2SM-RC-ActionDefinition-Format2.h	\
-	./E2SM-RC-ActionDefinition-Format2-Item.h	\
-	./E2SM-RC-ActionDefinition-Format3.h	\
-	./E2SM-RC-ActionDefinition-Format3-Item.h	\
-	./E2SM-RC-IndicationHeader.h	\
-	./E2SM-RC-IndicationHeader-Format1.h	\
-	./E2SM-RC-IndicationHeader-Format2.h	\
-	./E2SM-RC-IndicationMessage.h	\
-	./E2SM-RC-IndicationMessage-Format1.h	\
-	./E2SM-RC-IndicationMessage-Format1-Item.h	\
-	./E2SM-RC-IndicationMessage-Format2.h	\
-	./E2SM-RC-IndicationMessage-Format2-Item.h	\
-	./E2SM-RC-IndicationMessage-Format2-RANParameter-Item.h	\
-	./E2SM-RC-IndicationMessage-Format3.h	\
-	./E2SM-RC-IndicationMessage-Format3-Item.h	\
-	./E2SM-RC-IndicationMessage-Format4.h	\
-	./E2SM-RC-IndicationMessage-Format4-ItemUE.h	\
-	./E2SM-RC-IndicationMessage-Format4-ItemCell.h	\
-	./E2SM-RC-IndicationMessage-Format5.h	\
-	./E2SM-RC-IndicationMessage-Format5-Item.h	\
-	./E2SM-RC-CallProcessID.h	\
-	./E2SM-RC-CallProcessID-Format1.h	\
-	./E2SM-RC-ControlHeader.h	\
-	./E2SM-RC-ControlHeader-Format1.h	\
-	./E2SM-RC-ControlMessage.h	\
-	./E2SM-RC-ControlMessage-Format1.h	\
-	./E2SM-RC-ControlMessage-Format1-Item.h	\
-	./E2SM-RC-ControlOutcome.h	\
-	./E2SM-RC-ControlOutcome-Format1.h	\
-	./E2SM-RC-ControlOutcome-Format1-Item.h	\
-	./E2SM-RC-RANFunctionDefinition.h	\
-	./RANFunctionDefinition-EventTrigger.h	\
-	./RANFunctionDefinition-EventTrigger-Style-Item.h	\
-	./L2Parameters-RANParameter-Item.h	\
-	./UEIdentification-RANParameter-Item.h	\
-	./CellIdentification-RANParameter-Item.h	\
-	./RANFunctionDefinition-EventTrigger-CallProcess-Item.h	\
-	./RANFunctionDefinition-EventTrigger-Breakpoint-Item.h	\
-	./CallProcessBreakpoint-RANParameter-Item.h	\
-	./RANFunctionDefinition-Report.h	\
-	./RANFunctionDefinition-Report-Item.h	\
-	./Report-RANParameter-Item.h	\
-	./RANFunctionDefinition-Insert.h	\
-	./RANFunctionDefinition-Insert-Item.h	\
-	./RANFunctionDefinition-Insert-Indication-Item.h	\
-	./InsertIndication-RANParameter-Item.h	\
-	./RANFunctionDefinition-Control.h	\
-	./RANFunctionDefinition-Control-Item.h	\
-	./ControlOutcome-RANParameter-Item.h	\
-	./RANFunctionDefinition-Control-Action-Item.h	\
-	./ControlAction-RANParameter-Item.h	\
-	./RANFunctionDefinition-Policy.h	\
-	./RANFunctionDefinition-Policy-Item.h	\
-	./RANFunctionDefinition-Policy-Action-Item.h	\
-	./PolicyAction-RANParameter-Item.h	\
-	./PolicyCondition-RANParameter-Item.h
-
-ASN_MODULE_HDRS+=./OPEN_TYPE.h
-ASN_MODULE_SRCS+=./OPEN_TYPE.c
-ASN_MODULE_HDRS+=./constr_CHOICE.h
-ASN_MODULE_HDRS+=./BOOLEAN.h
-ASN_MODULE_SRCS+=./BOOLEAN.c
-ASN_MODULE_HDRS+=./INTEGER.h
-ASN_MODULE_SRCS+=./INTEGER.c
-ASN_MODULE_HDRS+=./NativeEnumerated.h
-ASN_MODULE_SRCS+=./NativeEnumerated.c
-ASN_MODULE_HDRS+=./NativeInteger.h
-ASN_MODULE_SRCS+=./NativeInteger.c
-ASN_MODULE_HDRS+=./NativeReal.h
-ASN_MODULE_SRCS+=./NativeReal.c
-ASN_MODULE_HDRS+=./REAL.h
-ASN_MODULE_HDRS+=./PrintableString.h
-ASN_MODULE_SRCS+=./PrintableString.c
-ASN_MODULE_HDRS+=./OCTET_STRING.h
-ASN_MODULE_SRCS+=./REAL.c
-ASN_MODULE_HDRS+=./asn_SEQUENCE_OF.h
-ASN_MODULE_SRCS+=./asn_SEQUENCE_OF.c
-ASN_MODULE_HDRS+=./asn_SET_OF.h
-ASN_MODULE_SRCS+=./asn_SET_OF.c
-ASN_MODULE_SRCS+=./constr_CHOICE.c
-ASN_MODULE_HDRS+=./constr_SEQUENCE.h
-ASN_MODULE_SRCS+=./constr_SEQUENCE.c
-ASN_MODULE_HDRS+=./constr_SEQUENCE_OF.h
-ASN_MODULE_SRCS+=./constr_SEQUENCE_OF.c
-ASN_MODULE_HDRS+=./constr_SET_OF.h
-ASN_MODULE_SRCS+=./constr_SET_OF.c
-ASN_MODULE_HDRS+=./asn_application.h
-ASN_MODULE_SRCS+=./asn_application.c
-ASN_MODULE_HDRS+=./asn_ioc.h
-ASN_MODULE_HDRS+=./asn_system.h
-ASN_MODULE_HDRS+=./asn_codecs.h
-ASN_MODULE_HDRS+=./asn_internal.h
-ASN_MODULE_SRCS+=./asn_internal.c
-ASN_MODULE_HDRS+=./asn_random_fill.h
-ASN_MODULE_SRCS+=./asn_random_fill.c
-ASN_MODULE_HDRS+=./asn_bit_data.h
-ASN_MODULE_SRCS+=./asn_bit_data.c
-ASN_MODULE_SRCS+=./OCTET_STRING.c
-ASN_MODULE_HDRS+=./BIT_STRING.h
-ASN_MODULE_SRCS+=./BIT_STRING.c
-ASN_MODULE_SRCS+=./asn_codecs_prim.c
-ASN_MODULE_HDRS+=./asn_codecs_prim.h
-ASN_MODULE_HDRS+=./ber_tlv_length.h
-ASN_MODULE_SRCS+=./ber_tlv_length.c
-ASN_MODULE_HDRS+=./ber_tlv_tag.h
-ASN_MODULE_SRCS+=./ber_tlv_tag.c
-ASN_MODULE_HDRS+=./ber_decoder.h
-ASN_MODULE_SRCS+=./ber_decoder.c
-ASN_MODULE_HDRS+=./der_encoder.h
-ASN_MODULE_SRCS+=./der_encoder.c
-ASN_MODULE_HDRS+=./constr_TYPE.h
-ASN_MODULE_SRCS+=./constr_TYPE.c
-ASN_MODULE_HDRS+=./constraints.h
-ASN_MODULE_SRCS+=./constraints.c
-ASN_MODULE_HDRS+=./xer_support.h
-ASN_MODULE_SRCS+=./xer_support.c
-ASN_MODULE_HDRS+=./xer_decoder.h
-ASN_MODULE_SRCS+=./xer_decoder.c
-ASN_MODULE_HDRS+=./xer_encoder.h
-ASN_MODULE_SRCS+=./xer_encoder.c
-ASN_MODULE_HDRS+=./per_support.h
-ASN_MODULE_SRCS+=./per_support.c
-ASN_MODULE_HDRS+=./per_decoder.h
-ASN_MODULE_SRCS+=./per_decoder.c
-ASN_MODULE_HDRS+=./per_encoder.h
-ASN_MODULE_SRCS+=./per_encoder.c
-ASN_MODULE_HDRS+=./per_opentype.h
-ASN_MODULE_SRCS+=./per_opentype.c
-ASN_MODULE_HDRS+=./oer_decoder.h
-ASN_MODULE_HDRS+=./oer_encoder.h
-ASN_MODULE_HDRS+=./oer_support.h
-ASN_MODULE_SRCS+=./oer_decoder.c
-ASN_MODULE_SRCS+=./oer_encoder.c
-ASN_MODULE_SRCS+=./oer_support.c
-ASN_MODULE_SRCS+=./OPEN_TYPE_oer.c
-ASN_MODULE_SRCS+=./INTEGER_oer.c
-ASN_MODULE_SRCS+=./BIT_STRING_oer.c
-ASN_MODULE_SRCS+=./OCTET_STRING_oer.c
-ASN_MODULE_SRCS+=./NativeInteger_oer.c
-ASN_MODULE_SRCS+=./NativeEnumerated_oer.c
-ASN_MODULE_SRCS+=./constr_CHOICE_oer.c
-ASN_MODULE_SRCS+=./constr_SEQUENCE_oer.c
-ASN_MODULE_SRCS+=./constr_SET_OF_oer.c
-
-ASN_MODULE_CFLAGS=
-
-lib_LTLIBRARIES+=libasncodec.la
-libasncodec_la_SOURCES=$(ASN_MODULE_SRCS) $(ASN_MODULE_HDRS)
-libasncodec_la_CPPFLAGS=-I$(top_srcdir)/./
-libasncodec_la_CFLAGS=$(ASN_MODULE_CFLAGS)
-libasncodec_la_LDFLAGS=-lm
diff --git a/e2sm/lib/MessageType-Choice-NI.c b/e2sm/lib/MessageType-Choice-NI.c
index 7c6ded8..622d5ce 100644
--- a/e2sm/lib/MessageType-Choice-NI.c
+++ b/e2sm/lib/MessageType-Choice-NI.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "MessageType-Choice-NI.h"
diff --git a/e2sm/lib/MessageType-Choice-RRC.c b/e2sm/lib/MessageType-Choice-RRC.c
index 8de8dfc..235888a 100644
--- a/e2sm/lib/MessageType-Choice-RRC.c
+++ b/e2sm/lib/MessageType-Choice-RRC.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "MessageType-Choice-RRC.h"
diff --git a/e2sm/lib/MessageType-Choice.c b/e2sm/lib/MessageType-Choice.c
index 3be3635..a7854e7 100644
--- a/e2sm/lib/MessageType-Choice.c
+++ b/e2sm/lib/MessageType-Choice.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "MessageType-Choice.h"
diff --git a/e2sm/lib/NG-RANnodeUEXnAPID.c b/e2sm/lib/NG-RANnodeUEXnAPID.c
index 6a7a9b6..8e5b845 100644
--- a/e2sm/lib/NG-RANnodeUEXnAPID.c
+++ b/e2sm/lib/NG-RANnodeUEXnAPID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "NG-RANnodeUEXnAPID.h"
diff --git a/e2sm/lib/NGENB-CU-UE-W1AP-ID.c b/e2sm/lib/NGENB-CU-UE-W1AP-ID.c
index fa15e70..aefde86 100644
--- a/e2sm/lib/NGENB-CU-UE-W1AP-ID.c
+++ b/e2sm/lib/NGENB-CU-UE-W1AP-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "NGENB-CU-UE-W1AP-ID.h"
diff --git a/e2sm/lib/NGENB-DU-ID.c b/e2sm/lib/NGENB-DU-ID.c
index 2effacf..a8664e0 100644
--- a/e2sm/lib/NGENB-DU-ID.c
+++ b/e2sm/lib/NGENB-DU-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "NGENB-DU-ID.h"
diff --git a/e2sm/lib/NR-ARFCN.c b/e2sm/lib/NR-ARFCN.c
index eaaffa4..3df391a 100644
--- a/e2sm/lib/NR-ARFCN.c
+++ b/e2sm/lib/NR-ARFCN.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "NR-ARFCN.h"
diff --git a/e2sm/lib/NR-CGI.c b/e2sm/lib/NR-CGI.c
index e2a5d69..89f913f 100644
--- a/e2sm/lib/NR-CGI.c
+++ b/e2sm/lib/NR-CGI.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "NR-CGI.h"
diff --git a/e2sm/lib/NR-PCI.c b/e2sm/lib/NR-PCI.c
index ddd0e7c..69fa45b 100644
--- a/e2sm/lib/NR-PCI.c
+++ b/e2sm/lib/NR-PCI.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "NR-PCI.h"
diff --git a/e2sm/lib/NRCellIdentity.c b/e2sm/lib/NRCellIdentity.c
index 1b99861..ed9f6cd 100644
--- a/e2sm/lib/NRCellIdentity.c
+++ b/e2sm/lib/NRCellIdentity.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "NRCellIdentity.h"
diff --git a/e2sm/lib/NRFrequencyBand-List.c b/e2sm/lib/NRFrequencyBand-List.c
index 3b385c0..cc48d91 100644
--- a/e2sm/lib/NRFrequencyBand-List.c
+++ b/e2sm/lib/NRFrequencyBand-List.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "NRFrequencyBand-List.h"
diff --git a/e2sm/lib/NRFrequencyBandItem.c b/e2sm/lib/NRFrequencyBandItem.c
index 1179aa1..4c29e49 100644
--- a/e2sm/lib/NRFrequencyBandItem.c
+++ b/e2sm/lib/NRFrequencyBandItem.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "NRFrequencyBandItem.h"
diff --git a/e2sm/lib/NRFrequencyInfo.c b/e2sm/lib/NRFrequencyInfo.c
index d74281a..a660b34 100644
--- a/e2sm/lib/NRFrequencyInfo.c
+++ b/e2sm/lib/NRFrequencyInfo.c
@@ -1,13 +1,13 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "NRFrequencyInfo.h"
 
-static asn_TYPE_member_t asn_MBR_NRFrequencyInfo_1[] = {
+asn_TYPE_member_t asn_MBR_NRFrequencyInfo_1[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct NRFrequencyInfo, nrARFCN),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		-1,	/* IMPLICIT tag at current level */
@@ -45,7 +45,7 @@
     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* frequencyBand-List */
     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* frequencyShift7p5khz */
 };
-static asn_SEQUENCE_specifics_t asn_SPC_NRFrequencyInfo_specs_1 = {
+asn_SEQUENCE_specifics_t asn_SPC_NRFrequencyInfo_specs_1 = {
 	sizeof(struct NRFrequencyInfo),
 	offsetof(struct NRFrequencyInfo, _asn_ctx),
 	asn_MAP_NRFrequencyInfo_tag2el_1,
diff --git a/e2sm/lib/NRFrequencyShift7p5khz.c b/e2sm/lib/NRFrequencyShift7p5khz.c
index 2d66419..8383183 100644
--- a/e2sm/lib/NRFrequencyShift7p5khz.c
+++ b/e2sm/lib/NRFrequencyShift7p5khz.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "NRFrequencyShift7p5khz.h"
diff --git a/e2sm/lib/NeighborCell-Item-Choice-E-UTRA.c b/e2sm/lib/NeighborCell-Item-Choice-E-UTRA.c
index f0f2f1e..a794b93 100644
--- a/e2sm/lib/NeighborCell-Item-Choice-E-UTRA.c
+++ b/e2sm/lib/NeighborCell-Item-Choice-E-UTRA.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "NeighborCell-Item-Choice-E-UTRA.h"
diff --git a/e2sm/lib/NeighborCell-Item-Choice-NR.c b/e2sm/lib/NeighborCell-Item-Choice-NR.c
index 3ed4da7..db72fd7 100644
--- a/e2sm/lib/NeighborCell-Item-Choice-NR.c
+++ b/e2sm/lib/NeighborCell-Item-Choice-NR.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "NeighborCell-Item-Choice-NR.h"
@@ -230,14 +230,14 @@
 		0, 0, /* No default value */
 		"nR-mode-info"
 		},
-	{ ATF_NOFLAGS, 0, offsetof(struct NeighborCell_Item_Choice_NR, nR_ARFCN),
+	{ ATF_NOFLAGS, 0, offsetof(struct NeighborCell_Item_Choice_NR, nR_FreqInfo),
 		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
 		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_NR_ARFCN,
+		&asn_DEF_NRFrequencyInfo,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
-		"nR-ARFCN"
+		"nR-FreqInfo"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct NeighborCell_Item_Choice_NR, x2_Xn_established),
 		(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
@@ -275,7 +275,7 @@
     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nR-PCI */
     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* fiveGS-TAC */
     { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* nR-mode-info */
-    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* nR-ARFCN */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* nR-FreqInfo */
     { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* x2-Xn-established */
     { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* hO-validated */
     { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* version */
diff --git a/e2sm/lib/NeighborCell-Item.c b/e2sm/lib/NeighborCell-Item.c
index b68fcd5..cb43506 100644
--- a/e2sm/lib/NeighborCell-Item.c
+++ b/e2sm/lib/NeighborCell-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "NeighborCell-Item.h"
diff --git a/e2sm/lib/NeighborCell-List.c b/e2sm/lib/NeighborCell-List.c
index 5acf37c..569d511 100644
--- a/e2sm/lib/NeighborCell-List.c
+++ b/e2sm/lib/NeighborCell-List.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "NeighborCell-List.h"
diff --git a/e2sm/lib/NeighborRelation-Info.c b/e2sm/lib/NeighborRelation-Info.c
index 4de6ca1..3914b58 100644
--- a/e2sm/lib/NeighborRelation-Info.c
+++ b/e2sm/lib/NeighborRelation-Info.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "NeighborRelation-Info.h"
diff --git a/e2sm/lib/NgENB-ID.c b/e2sm/lib/NgENB-ID.c
index 31ee4ac..1797b60 100644
--- a/e2sm/lib/NgENB-ID.c
+++ b/e2sm/lib/NgENB-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "NgENB-ID.h"
diff --git a/e2sm/lib/OCTET_STRING.c b/e2sm/lib/OCTET_STRING.c
index ae34c96..628a5d6 100644
--- a/e2sm/lib/OCTET_STRING.c
+++ b/e2sm/lib/OCTET_STRING.c
@@ -1802,7 +1802,7 @@
 			(long)csiz->effective_bits, (long)raw_len,
 			repeat ? "repeat" : "once", td->name);
 
-		if (raw_len > 2) { /* X.691 #16 NOTE 1 */
+		if ((st->size > 2) || (csiz->lower_bound != csiz->upper_bound)) { /* X.691 #16.11 */
 			if (aper_get_align(pd) < 0)
 				RETURN(RC_FAIL);
 		}
diff --git a/e2sm/lib/PLMNIdentity.c b/e2sm/lib/PLMNIdentity.c
index d713421..25f381d 100644
--- a/e2sm/lib/PLMNIdentity.c
+++ b/e2sm/lib/PLMNIdentity.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "PLMNIdentity.h"
diff --git a/e2sm/lib/PolicyAction-RANParameter-Item.c b/e2sm/lib/PolicyAction-RANParameter-Item.c
index 85b1dfc..595a98a 100644
--- a/e2sm/lib/PolicyAction-RANParameter-Item.c
+++ b/e2sm/lib/PolicyAction-RANParameter-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "PolicyAction-RANParameter-Item.h"
diff --git a/e2sm/lib/PolicyCondition-RANParameter-Item.c b/e2sm/lib/PolicyCondition-RANParameter-Item.c
index 33f64df..36ff4a6 100644
--- a/e2sm/lib/PolicyCondition-RANParameter-Item.c
+++ b/e2sm/lib/PolicyCondition-RANParameter-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "PolicyCondition-RANParameter-Item.h"
diff --git a/e2sm/lib/QCI.c b/e2sm/lib/QCI.c
index 0261082..83c0f6a 100644
--- a/e2sm/lib/QCI.c
+++ b/e2sm/lib/QCI.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "QCI.h"
diff --git a/e2sm/lib/QoSID.c b/e2sm/lib/QoSID.c
index ea37ef5..1824502 100644
--- a/e2sm/lib/QoSID.c
+++ b/e2sm/lib/QoSID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "QoSID.h"
diff --git a/e2sm/lib/QosFlowIdentifier.c b/e2sm/lib/QosFlowIdentifier.c
index f2bf382..b857bde 100644
--- a/e2sm/lib/QosFlowIdentifier.c
+++ b/e2sm/lib/QosFlowIdentifier.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "QosFlowIdentifier.h"
diff --git a/e2sm/lib/RAN-CallProcess-ID.c b/e2sm/lib/RAN-CallProcess-ID.c
index 20284f3..da5de1a 100644
--- a/e2sm/lib/RAN-CallProcess-ID.c
+++ b/e2sm/lib/RAN-CallProcess-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RAN-CallProcess-ID.h"
@@ -10,7 +10,7 @@
 int
 RAN_CallProcess_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	long value;
+	unsigned long value;
 	
 	if(!sptr) {
 		ASN__CTFAIL(app_key, td, sptr,
@@ -19,9 +19,9 @@
 		return -1;
 	}
 	
-	value = *(const long *)sptr;
+	value = *(const unsigned long *)sptr;
 	
-	if((value >= 1 && value <= 232)) {
+	if((value >= 1 && value <= 4294967295)) {
 		/* Constraint check succeeded */
 		return 0;
 	} else {
@@ -40,10 +40,15 @@
 	{ 0, 0 },
 	-1};
 asn_per_constraints_t asn_PER_type_RAN_CallProcess_ID_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  8,  8,  1,  232 }	/* (1..232,...) */,
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  32, -1,  1,  4294967295 }	/* (1..4294967295,...) */,
 	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
 	0, 0	/* No PER value map */
 };
+const asn_INTEGER_specifics_t asn_SPC_RAN_CallProcess_ID_specs_1 = {
+	0,	0,	0,	0,	0,
+	0,	/* Native long size */
+	1	/* Unsigned representation */
+};
 static const ber_tlv_tag_t asn_DEF_RAN_CallProcess_ID_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
 };
@@ -59,6 +64,6 @@
 		/sizeof(asn_DEF_RAN_CallProcess_ID_tags_1[0]), /* 1 */
 	{ &asn_OER_type_RAN_CallProcess_ID_constr_1, &asn_PER_type_RAN_CallProcess_ID_constr_1, RAN_CallProcess_ID_constraint },
 	0, 0,	/* No members */
-	0	/* No specifics */
+	&asn_SPC_RAN_CallProcess_ID_specs_1	/* Additional specs */
 };
 
diff --git a/e2sm/lib/RANFunctionDefinition-Control-Action-Item.c b/e2sm/lib/RANFunctionDefinition-Control-Action-Item.c
index 8cfa771..9642010 100644
--- a/e2sm/lib/RANFunctionDefinition-Control-Action-Item.c
+++ b/e2sm/lib/RANFunctionDefinition-Control-Action-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANFunctionDefinition-Control-Action-Item.h"
diff --git a/e2sm/lib/RANFunctionDefinition-Control-Item.c b/e2sm/lib/RANFunctionDefinition-Control-Item.c
index 4497d29..cbd170b 100644
--- a/e2sm/lib/RANFunctionDefinition-Control-Item.c
+++ b/e2sm/lib/RANFunctionDefinition-Control-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANFunctionDefinition-Control-Item.h"
diff --git a/e2sm/lib/RANFunctionDefinition-Control.c b/e2sm/lib/RANFunctionDefinition-Control.c
index ca30d07..69eb461 100644
--- a/e2sm/lib/RANFunctionDefinition-Control.c
+++ b/e2sm/lib/RANFunctionDefinition-Control.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANFunctionDefinition-Control.h"
diff --git a/e2sm/lib/RANFunctionDefinition-EventTrigger-Breakpoint-Item.c b/e2sm/lib/RANFunctionDefinition-EventTrigger-Breakpoint-Item.c
index e70a4f4..245b8b7 100644
--- a/e2sm/lib/RANFunctionDefinition-EventTrigger-Breakpoint-Item.c
+++ b/e2sm/lib/RANFunctionDefinition-EventTrigger-Breakpoint-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANFunctionDefinition-EventTrigger-Breakpoint-Item.h"
diff --git a/e2sm/lib/RANFunctionDefinition-EventTrigger-CallProcess-Item.c b/e2sm/lib/RANFunctionDefinition-EventTrigger-CallProcess-Item.c
index 58e1815..c4490bb 100644
--- a/e2sm/lib/RANFunctionDefinition-EventTrigger-CallProcess-Item.c
+++ b/e2sm/lib/RANFunctionDefinition-EventTrigger-CallProcess-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANFunctionDefinition-EventTrigger-CallProcess-Item.h"
diff --git a/e2sm/lib/RANFunctionDefinition-EventTrigger-Style-Item.c b/e2sm/lib/RANFunctionDefinition-EventTrigger-Style-Item.c
index 2181f74..d1da3e6 100644
--- a/e2sm/lib/RANFunctionDefinition-EventTrigger-Style-Item.c
+++ b/e2sm/lib/RANFunctionDefinition-EventTrigger-Style-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANFunctionDefinition-EventTrigger-Style-Item.h"
diff --git a/e2sm/lib/RANFunctionDefinition-EventTrigger.c b/e2sm/lib/RANFunctionDefinition-EventTrigger.c
index fab4046..0b139f9 100644
--- a/e2sm/lib/RANFunctionDefinition-EventTrigger.c
+++ b/e2sm/lib/RANFunctionDefinition-EventTrigger.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANFunctionDefinition-EventTrigger.h"
diff --git a/e2sm/lib/RANFunctionDefinition-Insert-Indication-Item.c b/e2sm/lib/RANFunctionDefinition-Insert-Indication-Item.c
index b26f955..c72f9f5 100644
--- a/e2sm/lib/RANFunctionDefinition-Insert-Indication-Item.c
+++ b/e2sm/lib/RANFunctionDefinition-Insert-Indication-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANFunctionDefinition-Insert-Indication-Item.h"
diff --git a/e2sm/lib/RANFunctionDefinition-Insert-Item.c b/e2sm/lib/RANFunctionDefinition-Insert-Item.c
index 009195a..f267c3a 100644
--- a/e2sm/lib/RANFunctionDefinition-Insert-Item.c
+++ b/e2sm/lib/RANFunctionDefinition-Insert-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANFunctionDefinition-Insert-Item.h"
diff --git a/e2sm/lib/RANFunctionDefinition-Insert.c b/e2sm/lib/RANFunctionDefinition-Insert.c
index 462454f..1e3a2bb 100644
--- a/e2sm/lib/RANFunctionDefinition-Insert.c
+++ b/e2sm/lib/RANFunctionDefinition-Insert.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANFunctionDefinition-Insert.h"
diff --git a/e2sm/lib/RANFunctionDefinition-Policy-Action-Item.c b/e2sm/lib/RANFunctionDefinition-Policy-Action-Item.c
index 81fd3a8..f69d585 100644
--- a/e2sm/lib/RANFunctionDefinition-Policy-Action-Item.c
+++ b/e2sm/lib/RANFunctionDefinition-Policy-Action-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANFunctionDefinition-Policy-Action-Item.h"
diff --git a/e2sm/lib/RANFunctionDefinition-Policy-Item.c b/e2sm/lib/RANFunctionDefinition-Policy-Item.c
index 77b82ec..6ae1ac7 100644
--- a/e2sm/lib/RANFunctionDefinition-Policy-Item.c
+++ b/e2sm/lib/RANFunctionDefinition-Policy-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANFunctionDefinition-Policy-Item.h"
diff --git a/e2sm/lib/RANFunctionDefinition-Policy.c b/e2sm/lib/RANFunctionDefinition-Policy.c
index f809dec..c56a769 100644
--- a/e2sm/lib/RANFunctionDefinition-Policy.c
+++ b/e2sm/lib/RANFunctionDefinition-Policy.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANFunctionDefinition-Policy.h"
diff --git a/e2sm/lib/RANFunctionDefinition-Report-Item.c b/e2sm/lib/RANFunctionDefinition-Report-Item.c
index 131b739..72a5f23 100644
--- a/e2sm/lib/RANFunctionDefinition-Report-Item.c
+++ b/e2sm/lib/RANFunctionDefinition-Report-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANFunctionDefinition-Report-Item.h"
diff --git a/e2sm/lib/RANFunctionDefinition-Report.c b/e2sm/lib/RANFunctionDefinition-Report.c
index 15ec43d..044cdf0 100644
--- a/e2sm/lib/RANFunctionDefinition-Report.c
+++ b/e2sm/lib/RANFunctionDefinition-Report.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANFunctionDefinition-Report.h"
diff --git a/e2sm/lib/RANParameter-Definition-Choice-LIST-Item.c b/e2sm/lib/RANParameter-Definition-Choice-LIST-Item.c
index e009483..adf2b21 100644
--- a/e2sm/lib/RANParameter-Definition-Choice-LIST-Item.c
+++ b/e2sm/lib/RANParameter-Definition-Choice-LIST-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANParameter-Definition-Choice-LIST-Item.h"
diff --git a/e2sm/lib/RANParameter-Definition-Choice-LIST.c b/e2sm/lib/RANParameter-Definition-Choice-LIST.c
index 7852c16..1f42464 100644
--- a/e2sm/lib/RANParameter-Definition-Choice-LIST.c
+++ b/e2sm/lib/RANParameter-Definition-Choice-LIST.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANParameter-Definition-Choice-LIST.h"
diff --git a/e2sm/lib/RANParameter-Definition-Choice-STRUCTURE-Item.c b/e2sm/lib/RANParameter-Definition-Choice-STRUCTURE-Item.c
index 5af88e5..995003f 100644
--- a/e2sm/lib/RANParameter-Definition-Choice-STRUCTURE-Item.c
+++ b/e2sm/lib/RANParameter-Definition-Choice-STRUCTURE-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANParameter-Definition-Choice-STRUCTURE-Item.h"
diff --git a/e2sm/lib/RANParameter-Definition-Choice-STRUCTURE.c b/e2sm/lib/RANParameter-Definition-Choice-STRUCTURE.c
index c6c0679..2e56191 100644
--- a/e2sm/lib/RANParameter-Definition-Choice-STRUCTURE.c
+++ b/e2sm/lib/RANParameter-Definition-Choice-STRUCTURE.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANParameter-Definition-Choice-STRUCTURE.h"
diff --git a/e2sm/lib/RANParameter-Definition-Choice.c b/e2sm/lib/RANParameter-Definition-Choice.c
index 4dd0a8c..5c0850e 100644
--- a/e2sm/lib/RANParameter-Definition-Choice.c
+++ b/e2sm/lib/RANParameter-Definition-Choice.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANParameter-Definition-Choice.h"
diff --git a/e2sm/lib/RANParameter-Definition.c b/e2sm/lib/RANParameter-Definition.c
index 7298790..1876f99 100644
--- a/e2sm/lib/RANParameter-Definition.c
+++ b/e2sm/lib/RANParameter-Definition.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANParameter-Definition.h"
diff --git a/e2sm/lib/RANParameter-ID.c b/e2sm/lib/RANParameter-ID.c
index 684cc0e..580eecb 100644
--- a/e2sm/lib/RANParameter-ID.c
+++ b/e2sm/lib/RANParameter-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANParameter-ID.h"
@@ -10,6 +10,7 @@
 int
 RANParameter_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	unsigned long value;
 	
 	if(!sptr) {
 		ASN__CTFAIL(app_key, td, sptr,
@@ -18,12 +19,17 @@
 		return -1;
 	}
 	
+	value = *(const unsigned long *)sptr;
 	
-	if(1 /* No applicable constraints whatsoever */) {
-		/* Nothing is here. See below */
+	if((value >= 1 && value <= 4294967295)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
 	}
-	
-	return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
 }
 
 /*
@@ -34,10 +40,15 @@
 	{ 0, 0 },
 	-1};
 asn_per_constraints_t asn_PER_type_RANParameter_ID_constr_1 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  32, -1,  1,  4294967295 }	/* (1..4294967295,...) */,
 	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
 	0, 0	/* No PER value map */
 };
+const asn_INTEGER_specifics_t asn_SPC_RANParameter_ID_specs_1 = {
+	0,	0,	0,	0,	0,
+	0,	/* Native long size */
+	1	/* Unsigned representation */
+};
 static const ber_tlv_tag_t asn_DEF_RANParameter_ID_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
 };
@@ -53,6 +64,6 @@
 		/sizeof(asn_DEF_RANParameter_ID_tags_1[0]), /* 1 */
 	{ &asn_OER_type_RANParameter_ID_constr_1, &asn_PER_type_RANParameter_ID_constr_1, RANParameter_ID_constraint },
 	0, 0,	/* No members */
-	0	/* No specifics */
+	&asn_SPC_RANParameter_ID_specs_1	/* Additional specs */
 };
 
diff --git a/e2sm/lib/RANParameter-LIST.c b/e2sm/lib/RANParameter-LIST.c
index 22fa28f..10ab71d 100644
--- a/e2sm/lib/RANParameter-LIST.c
+++ b/e2sm/lib/RANParameter-LIST.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANParameter-LIST.h"
diff --git a/e2sm/lib/RANParameter-Name.c b/e2sm/lib/RANParameter-Name.c
index 30b6e4f..ace7722 100644
--- a/e2sm/lib/RANParameter-Name.c
+++ b/e2sm/lib/RANParameter-Name.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANParameter-Name.h"
diff --git a/e2sm/lib/RANParameter-STRUCTURE-Item.c b/e2sm/lib/RANParameter-STRUCTURE-Item.c
index e630ad4..c60915d 100644
--- a/e2sm/lib/RANParameter-STRUCTURE-Item.c
+++ b/e2sm/lib/RANParameter-STRUCTURE-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANParameter-STRUCTURE-Item.h"
diff --git a/e2sm/lib/RANParameter-STRUCTURE.c b/e2sm/lib/RANParameter-STRUCTURE.c
index 03a0695..3ed4492 100644
--- a/e2sm/lib/RANParameter-STRUCTURE.c
+++ b/e2sm/lib/RANParameter-STRUCTURE.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANParameter-STRUCTURE.h"
diff --git a/e2sm/lib/RANParameter-Testing-Item-Choice-ElementFalse.c b/e2sm/lib/RANParameter-Testing-Item-Choice-ElementFalse.c
index e50e5db..9d08191 100644
--- a/e2sm/lib/RANParameter-Testing-Item-Choice-ElementFalse.c
+++ b/e2sm/lib/RANParameter-Testing-Item-Choice-ElementFalse.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANParameter-Testing-Item-Choice-ElementFalse.h"
diff --git a/e2sm/lib/RANParameter-Testing-Item-Choice-ElementTrue.c b/e2sm/lib/RANParameter-Testing-Item-Choice-ElementTrue.c
index 03b10ff..00d7af6 100644
--- a/e2sm/lib/RANParameter-Testing-Item-Choice-ElementTrue.c
+++ b/e2sm/lib/RANParameter-Testing-Item-Choice-ElementTrue.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANParameter-Testing-Item-Choice-ElementTrue.h"
diff --git a/e2sm/lib/RANParameter-Testing-Item-Choice-List.c b/e2sm/lib/RANParameter-Testing-Item-Choice-List.c
index ea685da..e9980c8 100644
--- a/e2sm/lib/RANParameter-Testing-Item-Choice-List.c
+++ b/e2sm/lib/RANParameter-Testing-Item-Choice-List.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANParameter-Testing-Item-Choice-List.h"
diff --git a/e2sm/lib/RANParameter-Testing-Item-Choice-Structure.c b/e2sm/lib/RANParameter-Testing-Item-Choice-Structure.c
index ae75fd4..63ffe03 100644
--- a/e2sm/lib/RANParameter-Testing-Item-Choice-Structure.c
+++ b/e2sm/lib/RANParameter-Testing-Item-Choice-Structure.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANParameter-Testing-Item-Choice-Structure.h"
diff --git a/e2sm/lib/RANParameter-Testing-Item.c b/e2sm/lib/RANParameter-Testing-Item.c
index d81b410..809ca14 100644
--- a/e2sm/lib/RANParameter-Testing-Item.c
+++ b/e2sm/lib/RANParameter-Testing-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANParameter-Testing-Item.h"
diff --git a/e2sm/lib/RANParameter-Testing-LIST.c b/e2sm/lib/RANParameter-Testing-LIST.c
index c4e4abc..a3a0d98 100644
--- a/e2sm/lib/RANParameter-Testing-LIST.c
+++ b/e2sm/lib/RANParameter-Testing-LIST.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANParameter-Testing-LIST.h"
diff --git a/e2sm/lib/RANParameter-Testing-STRUCTURE.c b/e2sm/lib/RANParameter-Testing-STRUCTURE.c
index 2080910..b77ecbd 100644
--- a/e2sm/lib/RANParameter-Testing-STRUCTURE.c
+++ b/e2sm/lib/RANParameter-Testing-STRUCTURE.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANParameter-Testing-STRUCTURE.h"
diff --git a/e2sm/lib/RANParameter-Testing.c b/e2sm/lib/RANParameter-Testing.c
index 6aa8873..4ca5ac9 100644
--- a/e2sm/lib/RANParameter-Testing.c
+++ b/e2sm/lib/RANParameter-Testing.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANParameter-Testing.h"
diff --git a/e2sm/lib/RANParameter-TestingCondition.c b/e2sm/lib/RANParameter-TestingCondition.c
index 35db21f..0aecdeb 100644
--- a/e2sm/lib/RANParameter-TestingCondition.c
+++ b/e2sm/lib/RANParameter-TestingCondition.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANParameter-TestingCondition.h"
diff --git a/e2sm/lib/RANParameter-Value.c b/e2sm/lib/RANParameter-Value.c
index f3cc00c..f7f2954 100644
--- a/e2sm/lib/RANParameter-Value.c
+++ b/e2sm/lib/RANParameter-Value.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANParameter-Value.h"
diff --git a/e2sm/lib/RANParameter-ValueType-Choice-ElementFalse.c b/e2sm/lib/RANParameter-ValueType-Choice-ElementFalse.c
index 943ee92..3fea9fd 100644
--- a/e2sm/lib/RANParameter-ValueType-Choice-ElementFalse.c
+++ b/e2sm/lib/RANParameter-ValueType-Choice-ElementFalse.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANParameter-ValueType-Choice-ElementFalse.h"
diff --git a/e2sm/lib/RANParameter-ValueType-Choice-ElementTrue.c b/e2sm/lib/RANParameter-ValueType-Choice-ElementTrue.c
index 2cb2bcd..3a62139 100644
--- a/e2sm/lib/RANParameter-ValueType-Choice-ElementTrue.c
+++ b/e2sm/lib/RANParameter-ValueType-Choice-ElementTrue.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANParameter-ValueType-Choice-ElementTrue.h"
diff --git a/e2sm/lib/RANParameter-ValueType-Choice-List.c b/e2sm/lib/RANParameter-ValueType-Choice-List.c
index f4572e2..08552f1 100644
--- a/e2sm/lib/RANParameter-ValueType-Choice-List.c
+++ b/e2sm/lib/RANParameter-ValueType-Choice-List.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANParameter-ValueType-Choice-List.h"
diff --git a/e2sm/lib/RANParameter-ValueType-Choice-Structure.c b/e2sm/lib/RANParameter-ValueType-Choice-Structure.c
index bea8294..d31c52b 100644
--- a/e2sm/lib/RANParameter-ValueType-Choice-Structure.c
+++ b/e2sm/lib/RANParameter-ValueType-Choice-Structure.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANParameter-ValueType-Choice-Structure.h"
diff --git a/e2sm/lib/RANParameter-ValueType.c b/e2sm/lib/RANParameter-ValueType.c
index 8852e86..4e5c2cf 100644
--- a/e2sm/lib/RANParameter-ValueType.c
+++ b/e2sm/lib/RANParameter-ValueType.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANParameter-ValueType.h"
diff --git a/e2sm/lib/RANUEID.c b/e2sm/lib/RANUEID.c
index f1fe907..0c8e3f0 100644
--- a/e2sm/lib/RANUEID.c
+++ b/e2sm/lib/RANUEID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANUEID.h"
diff --git a/e2sm/lib/RANfunction-Name.c b/e2sm/lib/RANfunction-Name.c
index d467e01..0a6500b 100644
--- a/e2sm/lib/RANfunction-Name.c
+++ b/e2sm/lib/RANfunction-Name.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RANfunction-Name.h"
diff --git a/e2sm/lib/RIC-CallProcessBreakpoint-ID.c b/e2sm/lib/RIC-CallProcessBreakpoint-ID.c
index bd9f37b..8862f12 100644
--- a/e2sm/lib/RIC-CallProcessBreakpoint-ID.c
+++ b/e2sm/lib/RIC-CallProcessBreakpoint-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RIC-CallProcessBreakpoint-ID.h"
diff --git a/e2sm/lib/RIC-CallProcessBreakpoint-Name.c b/e2sm/lib/RIC-CallProcessBreakpoint-Name.c
index 85d59b2..31bd5af 100644
--- a/e2sm/lib/RIC-CallProcessBreakpoint-Name.c
+++ b/e2sm/lib/RIC-CallProcessBreakpoint-Name.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RIC-CallProcessBreakpoint-Name.h"
diff --git a/e2sm/lib/RIC-CallProcessType-ID.c b/e2sm/lib/RIC-CallProcessType-ID.c
index 8cdeed4..90cd336 100644
--- a/e2sm/lib/RIC-CallProcessType-ID.c
+++ b/e2sm/lib/RIC-CallProcessType-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RIC-CallProcessType-ID.h"
diff --git a/e2sm/lib/RIC-CallProcessType-Name.c b/e2sm/lib/RIC-CallProcessType-Name.c
index 419f264..b1e469c 100644
--- a/e2sm/lib/RIC-CallProcessType-Name.c
+++ b/e2sm/lib/RIC-CallProcessType-Name.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RIC-CallProcessType-Name.h"
diff --git a/e2sm/lib/RIC-ControlAction-ID.c b/e2sm/lib/RIC-ControlAction-ID.c
index 839a7b2..4f75ce6 100644
--- a/e2sm/lib/RIC-ControlAction-ID.c
+++ b/e2sm/lib/RIC-ControlAction-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RIC-ControlAction-ID.h"
diff --git a/e2sm/lib/RIC-ControlAction-Name.c b/e2sm/lib/RIC-ControlAction-Name.c
index 8a6bd62..f4ded20 100644
--- a/e2sm/lib/RIC-ControlAction-Name.c
+++ b/e2sm/lib/RIC-ControlAction-Name.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RIC-ControlAction-Name.h"
diff --git a/e2sm/lib/RIC-EventTrigger-Cell-ID.c b/e2sm/lib/RIC-EventTrigger-Cell-ID.c
index 1a3e811..606246b 100644
--- a/e2sm/lib/RIC-EventTrigger-Cell-ID.c
+++ b/e2sm/lib/RIC-EventTrigger-Cell-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RIC-EventTrigger-Cell-ID.h"
diff --git a/e2sm/lib/RIC-EventTrigger-UE-ID.c b/e2sm/lib/RIC-EventTrigger-UE-ID.c
index ff95b0f..c3f8c9e 100644
--- a/e2sm/lib/RIC-EventTrigger-UE-ID.c
+++ b/e2sm/lib/RIC-EventTrigger-UE-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RIC-EventTrigger-UE-ID.h"
diff --git a/e2sm/lib/RIC-EventTrigger-UEevent-ID.c b/e2sm/lib/RIC-EventTrigger-UEevent-ID.c
index 18a1dfc..f7f958f 100644
--- a/e2sm/lib/RIC-EventTrigger-UEevent-ID.c
+++ b/e2sm/lib/RIC-EventTrigger-UEevent-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RIC-EventTrigger-UEevent-ID.h"
diff --git a/e2sm/lib/RIC-EventTriggerCondition-ID.c b/e2sm/lib/RIC-EventTriggerCondition-ID.c
index de6d3e6..524c369 100644
--- a/e2sm/lib/RIC-EventTriggerCondition-ID.c
+++ b/e2sm/lib/RIC-EventTriggerCondition-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RIC-EventTriggerCondition-ID.h"
diff --git a/e2sm/lib/RIC-Format-Type.c b/e2sm/lib/RIC-Format-Type.c
index e2f2a7a..076cd46 100644
--- a/e2sm/lib/RIC-Format-Type.c
+++ b/e2sm/lib/RIC-Format-Type.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RIC-Format-Type.h"
diff --git a/e2sm/lib/RIC-InsertIndication-ID.c b/e2sm/lib/RIC-InsertIndication-ID.c
index 6cf61e3..6f0e628 100644
--- a/e2sm/lib/RIC-InsertIndication-ID.c
+++ b/e2sm/lib/RIC-InsertIndication-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RIC-InsertIndication-ID.h"
diff --git a/e2sm/lib/RIC-InsertIndication-Name.c b/e2sm/lib/RIC-InsertIndication-Name.c
index ddc9c47..c25d94c 100644
--- a/e2sm/lib/RIC-InsertIndication-Name.c
+++ b/e2sm/lib/RIC-InsertIndication-Name.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RIC-InsertIndication-Name.h"
diff --git a/e2sm/lib/RIC-PolicyAction-RANParameter-Item.c b/e2sm/lib/RIC-PolicyAction-RANParameter-Item.c
index d146925..24af0e3 100644
--- a/e2sm/lib/RIC-PolicyAction-RANParameter-Item.c
+++ b/e2sm/lib/RIC-PolicyAction-RANParameter-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RIC-PolicyAction-RANParameter-Item.h"
diff --git a/e2sm/lib/RIC-PolicyAction.c b/e2sm/lib/RIC-PolicyAction.c
index 8b93916..7ecde8c 100644
--- a/e2sm/lib/RIC-PolicyAction.c
+++ b/e2sm/lib/RIC-PolicyAction.c
@@ -1,13 +1,17 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RIC-PolicyAction.h"
 
 #include "RIC-PolicyAction-RANParameter-Item.h"
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
 static int
 memb_ranParameters_List_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
@@ -42,6 +46,14 @@
 	{ APC_CONSTRAINED,	 16,  16,  1,  65535 }	/* (SIZE(1..65535)) */,
 	0, 0	/* No PER value map */
 };
+static asn_oer_constraints_t asn_OER_type_ric_PolicyDecision_constr_6 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_type_ric_PolicyDecision_constr_6 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
 static asn_oer_constraints_t asn_OER_memb_ranParameters_List_constr_3 CC_NOTUSED = {
 	{ 0, 0 },
 	-1	/* (SIZE(1..65535)) */};
@@ -87,6 +99,45 @@
 	&asn_SPC_ranParameters_List_specs_3	/* Additional specs */
 };
 
+static const asn_INTEGER_enum_map_t asn_MAP_ric_PolicyDecision_value2enum_6[] = {
+	{ 0,	6,	"accept" },
+	{ 1,	6,	"reject" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_ric_PolicyDecision_enum2value_6[] = {
+	0,	/* accept(0) */
+	1	/* reject(1) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_ric_PolicyDecision_specs_6 = {
+	asn_MAP_ric_PolicyDecision_value2enum_6,	/* "tag" => N; sorted by tag */
+	asn_MAP_ric_PolicyDecision_enum2value_6,	/* N => "tag"; sorted by N */
+	2,	/* Number of elements in the maps */
+	3,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_ric_PolicyDecision_tags_6[] = {
+	(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ric_PolicyDecision_6 = {
+	"ric-PolicyDecision",
+	"ric-PolicyDecision",
+	&asn_OP_NativeEnumerated,
+	asn_DEF_ric_PolicyDecision_tags_6,
+	sizeof(asn_DEF_ric_PolicyDecision_tags_6)
+		/sizeof(asn_DEF_ric_PolicyDecision_tags_6[0]) - 1, /* 1 */
+	asn_DEF_ric_PolicyDecision_tags_6,	/* Same as above */
+	sizeof(asn_DEF_ric_PolicyDecision_tags_6)
+		/sizeof(asn_DEF_ric_PolicyDecision_tags_6[0]), /* 2 */
+	{ &asn_OER_type_ric_PolicyDecision_constr_6, &asn_PER_type_ric_PolicyDecision_constr_6, NativeEnumerated_constraint },
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_ric_PolicyDecision_specs_6	/* Additional specs */
+};
+
 asn_TYPE_member_t asn_MBR_RIC_PolicyAction_1[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct RIC_PolicyAction, ric_PolicyAction_ID),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
@@ -97,7 +148,7 @@
 		0, 0, /* No default value */
 		"ric-PolicyAction-ID"
 		},
-	{ ATF_POINTER, 1, offsetof(struct RIC_PolicyAction, ranParameters_List),
+	{ ATF_POINTER, 2, offsetof(struct RIC_PolicyAction, ranParameters_List),
 		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
 		0,
 		&asn_DEF_ranParameters_List_3,
@@ -106,22 +157,32 @@
 		0, 0, /* No default value */
 		"ranParameters-List"
 		},
+	{ ATF_POINTER, 1, offsetof(struct RIC_PolicyAction, ric_PolicyDecision),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_ric_PolicyDecision_6,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-PolicyDecision"
+		},
 };
-static const int asn_MAP_RIC_PolicyAction_oms_1[] = { 1 };
+static const int asn_MAP_RIC_PolicyAction_oms_1[] = { 1, 2 };
 static const ber_tlv_tag_t asn_DEF_RIC_PolicyAction_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
 static const asn_TYPE_tag2member_t asn_MAP_RIC_PolicyAction_tag2el_1[] = {
     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-PolicyAction-ID */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranParameters-List */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ranParameters-List */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ric-PolicyDecision */
 };
 asn_SEQUENCE_specifics_t asn_SPC_RIC_PolicyAction_specs_1 = {
 	sizeof(struct RIC_PolicyAction),
 	offsetof(struct RIC_PolicyAction, _asn_ctx),
 	asn_MAP_RIC_PolicyAction_tag2el_1,
-	2,	/* Count of tags in the map */
+	3,	/* Count of tags in the map */
 	asn_MAP_RIC_PolicyAction_oms_1,	/* Optional members */
-	1, 0,	/* Root/Additions */
+	1, 1,	/* Root/Additions */
 	2,	/* First extension addition */
 };
 asn_TYPE_descriptor_t asn_DEF_RIC_PolicyAction = {
@@ -136,7 +197,7 @@
 		/sizeof(asn_DEF_RIC_PolicyAction_tags_1[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
 	asn_MBR_RIC_PolicyAction_1,
-	2,	/* Elements count */
+	3,	/* Elements count */
 	&asn_SPC_RIC_PolicyAction_specs_1	/* Additional specs */
 };
 
diff --git a/e2sm/lib/RIC-Style-Name.c b/e2sm/lib/RIC-Style-Name.c
index f8c4660..68d3fcf 100644
--- a/e2sm/lib/RIC-Style-Name.c
+++ b/e2sm/lib/RIC-Style-Name.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RIC-Style-Name.h"
diff --git a/e2sm/lib/RIC-Style-Type.c b/e2sm/lib/RIC-Style-Type.c
index 467c568..a8795ed 100644
--- a/e2sm/lib/RIC-Style-Type.c
+++ b/e2sm/lib/RIC-Style-Type.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RIC-Style-Type.h"
diff --git a/e2sm/lib/RRC-MessageID.c b/e2sm/lib/RRC-MessageID.c
index 075db39..def80c0 100644
--- a/e2sm/lib/RRC-MessageID.c
+++ b/e2sm/lib/RRC-MessageID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RRC-MessageID.h"
diff --git a/e2sm/lib/RRC-State.c b/e2sm/lib/RRC-State.c
index 391c70d..8a0268f 100644
--- a/e2sm/lib/RRC-State.c
+++ b/e2sm/lib/RRC-State.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RRC-State.h"
diff --git a/e2sm/lib/RRCclass-LTE.c b/e2sm/lib/RRCclass-LTE.c
index 39c575f..308dc4d 100644
--- a/e2sm/lib/RRCclass-LTE.c
+++ b/e2sm/lib/RRCclass-LTE.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RRCclass-LTE.h"
diff --git a/e2sm/lib/RRCclass-NR.c b/e2sm/lib/RRCclass-NR.c
index b4bf12c..3abb82c 100644
--- a/e2sm/lib/RRCclass-NR.c
+++ b/e2sm/lib/RRCclass-NR.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "RRCclass-NR.h"
diff --git a/e2sm/lib/Report-RANParameter-Item.c b/e2sm/lib/Report-RANParameter-Item.c
index 772e65e..a23c352 100644
--- a/e2sm/lib/Report-RANParameter-Item.c
+++ b/e2sm/lib/Report-RANParameter-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "Report-RANParameter-Item.h"
diff --git a/e2sm/lib/S-NSSAI.c b/e2sm/lib/S-NSSAI.c
index 8f0588e..be6f24f 100644
--- a/e2sm/lib/S-NSSAI.c
+++ b/e2sm/lib/S-NSSAI.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "S-NSSAI.h"
diff --git a/e2sm/lib/SD.c b/e2sm/lib/SD.c
index aa3655d..16a511f 100644
--- a/e2sm/lib/SD.c
+++ b/e2sm/lib/SD.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "SD.h"
diff --git a/e2sm/lib/SST.c b/e2sm/lib/SST.c
index 2712cd1..793581f 100644
--- a/e2sm/lib/SST.c
+++ b/e2sm/lib/SST.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "SST.h"
diff --git a/e2sm/lib/ServingCell-ARFCN.c b/e2sm/lib/ServingCell-ARFCN.c
index 1e6bf06..9f6505e 100644
--- a/e2sm/lib/ServingCell-ARFCN.c
+++ b/e2sm/lib/ServingCell-ARFCN.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "ServingCell-ARFCN.h"
diff --git a/e2sm/lib/ServingCell-PCI.c b/e2sm/lib/ServingCell-PCI.c
index 191d27f..045bc14 100644
--- a/e2sm/lib/ServingCell-PCI.c
+++ b/e2sm/lib/ServingCell-PCI.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "ServingCell-PCI.h"
diff --git a/e2sm/lib/SubscriberProfileIDforRFP.c b/e2sm/lib/SubscriberProfileIDforRFP.c
index ab0182d..5674389 100644
--- a/e2sm/lib/SubscriberProfileIDforRFP.c
+++ b/e2sm/lib/SubscriberProfileIDforRFP.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "SubscriberProfileIDforRFP.h"
diff --git a/e2sm/lib/SupportedSULBandList.c b/e2sm/lib/SupportedSULBandList.c
index 7e74326..5055593 100644
--- a/e2sm/lib/SupportedSULBandList.c
+++ b/e2sm/lib/SupportedSULBandList.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "SupportedSULBandList.h"
diff --git a/e2sm/lib/SupportedSULFreqBandItem.c b/e2sm/lib/SupportedSULFreqBandItem.c
index ea7192f..fca9ef0 100644
--- a/e2sm/lib/SupportedSULFreqBandItem.c
+++ b/e2sm/lib/SupportedSULFreqBandItem.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "SupportedSULFreqBandItem.h"
diff --git a/e2sm/lib/TriggerType-Choice-L2state.c b/e2sm/lib/TriggerType-Choice-L2state.c
index bfb7433..133ce5b 100644
--- a/e2sm/lib/TriggerType-Choice-L2state.c
+++ b/e2sm/lib/TriggerType-Choice-L2state.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "TriggerType-Choice-L2state.h"
diff --git a/e2sm/lib/TriggerType-Choice-RRCstate-Item.c b/e2sm/lib/TriggerType-Choice-RRCstate-Item.c
index 5d95e41..9a5af31 100644
--- a/e2sm/lib/TriggerType-Choice-RRCstate-Item.c
+++ b/e2sm/lib/TriggerType-Choice-RRCstate-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "TriggerType-Choice-RRCstate-Item.h"
diff --git a/e2sm/lib/TriggerType-Choice-RRCstate.c b/e2sm/lib/TriggerType-Choice-RRCstate.c
index b62aef3..59ae271 100644
--- a/e2sm/lib/TriggerType-Choice-RRCstate.c
+++ b/e2sm/lib/TriggerType-Choice-RRCstate.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "TriggerType-Choice-RRCstate.h"
diff --git a/e2sm/lib/TriggerType-Choice-UEID.c b/e2sm/lib/TriggerType-Choice-UEID.c
index 26967e1..44d2d62 100644
--- a/e2sm/lib/TriggerType-Choice-UEID.c
+++ b/e2sm/lib/TriggerType-Choice-UEID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "TriggerType-Choice-UEID.h"
diff --git a/e2sm/lib/TriggerType-Choice.c b/e2sm/lib/TriggerType-Choice.c
index 230194b..5d901af 100644
--- a/e2sm/lib/TriggerType-Choice.c
+++ b/e2sm/lib/TriggerType-Choice.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "TriggerType-Choice.h"
diff --git a/e2sm/lib/UEID-EN-GNB.c b/e2sm/lib/UEID-EN-GNB.c
index e5da432..acf3ebe 100644
--- a/e2sm/lib/UEID-EN-GNB.c
+++ b/e2sm/lib/UEID-EN-GNB.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "UEID-EN-GNB.h"
diff --git a/e2sm/lib/UEID-ENB.c b/e2sm/lib/UEID-ENB.c
index bdf2af8..cd550c6 100644
--- a/e2sm/lib/UEID-ENB.c
+++ b/e2sm/lib/UEID-ENB.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "UEID-ENB.h"
diff --git a/e2sm/lib/UEID-GNB-CU-CP-E1AP-ID-Item.c b/e2sm/lib/UEID-GNB-CU-CP-E1AP-ID-Item.c
index 893be77..1888f24 100644
--- a/e2sm/lib/UEID-GNB-CU-CP-E1AP-ID-Item.c
+++ b/e2sm/lib/UEID-GNB-CU-CP-E1AP-ID-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "UEID-GNB-CU-CP-E1AP-ID-Item.h"
diff --git a/e2sm/lib/UEID-GNB-CU-CP-E1AP-ID-List.c b/e2sm/lib/UEID-GNB-CU-CP-E1AP-ID-List.c
index d6d6bc2..5fb400e 100644
--- a/e2sm/lib/UEID-GNB-CU-CP-E1AP-ID-List.c
+++ b/e2sm/lib/UEID-GNB-CU-CP-E1AP-ID-List.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "UEID-GNB-CU-CP-E1AP-ID-List.h"
diff --git a/e2sm/lib/UEID-GNB-CU-CP-F1AP-ID-Item.c b/e2sm/lib/UEID-GNB-CU-CP-F1AP-ID-Item.c
index 0a893b4..27671e8 100644
--- a/e2sm/lib/UEID-GNB-CU-CP-F1AP-ID-Item.c
+++ b/e2sm/lib/UEID-GNB-CU-CP-F1AP-ID-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "UEID-GNB-CU-CP-F1AP-ID-Item.h"
diff --git a/e2sm/lib/UEID-GNB-CU-F1AP-ID-List.c b/e2sm/lib/UEID-GNB-CU-F1AP-ID-List.c
index 98da296..afbbdc0 100644
--- a/e2sm/lib/UEID-GNB-CU-F1AP-ID-List.c
+++ b/e2sm/lib/UEID-GNB-CU-F1AP-ID-List.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "UEID-GNB-CU-F1AP-ID-List.h"
diff --git a/e2sm/lib/UEID-GNB-CU-UP.c b/e2sm/lib/UEID-GNB-CU-UP.c
index 169b1b5..3795964 100644
--- a/e2sm/lib/UEID-GNB-CU-UP.c
+++ b/e2sm/lib/UEID-GNB-CU-UP.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "UEID-GNB-CU-UP.h"
diff --git a/e2sm/lib/UEID-GNB-DU.c b/e2sm/lib/UEID-GNB-DU.c
index 4bc5c7f..bd18324 100644
--- a/e2sm/lib/UEID-GNB-DU.c
+++ b/e2sm/lib/UEID-GNB-DU.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "UEID-GNB-DU.h"
diff --git a/e2sm/lib/UEID-GNB.c b/e2sm/lib/UEID-GNB.c
index f529b8b..73ef992 100644
--- a/e2sm/lib/UEID-GNB.c
+++ b/e2sm/lib/UEID-GNB.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "UEID-GNB.h"
diff --git a/e2sm/lib/UEID-NG-ENB-DU.c b/e2sm/lib/UEID-NG-ENB-DU.c
index bba9b70..526e861 100644
--- a/e2sm/lib/UEID-NG-ENB-DU.c
+++ b/e2sm/lib/UEID-NG-ENB-DU.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "UEID-NG-ENB-DU.h"
diff --git a/e2sm/lib/UEID-NG-ENB.c b/e2sm/lib/UEID-NG-ENB.c
index 5681365..ed4f083 100644
--- a/e2sm/lib/UEID-NG-ENB.c
+++ b/e2sm/lib/UEID-NG-ENB.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "UEID-NG-ENB.h"
diff --git a/e2sm/lib/UEID.c b/e2sm/lib/UEID.c
index 42c27ab..cc12a2b 100644
--- a/e2sm/lib/UEID.c
+++ b/e2sm/lib/UEID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * From ASN.1 module "E2SM-COMMON-IEs"
+ * 	found in "e2sm.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "UEID.h"
diff --git a/e2sm/lib/UEIdentification-RANParameter-Item.c b/e2sm/lib/UEIdentification-RANParameter-Item.c
index 7349bbd..d7959fc 100644
--- a/e2sm/lib/UEIdentification-RANParameter-Item.c
+++ b/e2sm/lib/UEIdentification-RANParameter-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2SM-RC-IEs"
- * 	found in "e2sm-rc-nov2021.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ * 	found in "e2sm_rc.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "UEIdentification-RANParameter-Item.h"
diff --git a/e2sm/wrapper.c b/e2sm/wrapper.c
index 1847da2..b28e1b1 100755
--- a/e2sm/wrapper.c
+++ b/e2sm/wrapper.c
@@ -51,10 +51,14 @@
                 fprintf(stderr, "alloc aMFRegionID Value failed\n");
                 return -1;
         }
-	controlHeader_Fmt1->ueID.choice.gNB_UEID->guami.aMFRegionID.size = inUEID->aMFRegionID_size;
+	controlHeader_Fmt1->ueID.choice.gNB_UEID->guami.aMFRegionID.size = 1;//inUEID->aMFRegionID_size;
+	 int decimal_num= (int)strtol(inUEID->aMFRegionID, NULL, 2);
+	 memcpy(controlHeader_Fmt1->ueID.choice.gNB_UEID->guami.aMFRegionID.buf, (char*)&decimal_num,sizeof(unsigned int));
+        //AMFR->size=1;
+        controlHeader_Fmt1->ueID.choice.gNB_UEID->guami.aMFRegionID.bits_unused=0;
 	//controlHeader_Fmt1->ueID.choice.gNB_UEID->guami.aMFRegionID.buf[0] = inUEID->aMFRegionID && 0XFF;
 	//controlHeader_Fmt1->ueID.choice.gNB_UEID->guami.aMFRegionID.buf[0] = *(inUEID->aMFRegionID ) & 0XFF;
-	memcpy(controlHeader_Fmt1->ueID.choice.gNB_UEID->guami.aMFRegionID.buf,inUEID->aMFRegionID,inUEID->aMFRegionID_size);
+	//memcpy(controlHeader_Fmt1->ueID.choice.gNB_UEID->guami.aMFRegionID.buf,inUEID->aMFRegionID,inUEID->aMFRegionID_size);
 
 	controlHeader_Fmt1->ueID.choice.gNB_UEID->guami.aMFSetID.buf = (uint8_t*)calloc(1, inUEID->aMFSetID_size);
         if(!controlHeader_Fmt1->ueID.choice.gNB_UEID->guami.aMFSetID.buf)
@@ -78,9 +82,13 @@
                 return -1;
         }
 
-	controlHeader_Fmt1->ueID.choice.gNB_UEID->guami.aMFPointer.size = inUEID->aMFPointer_size;
+	controlHeader_Fmt1->ueID.choice.gNB_UEID->guami.aMFPointer.size = 1;//inUEID->aMFPointer_size;
 	//controlHeader_Fmt1->ueID.choice.gNB_UEID->guami.aMFPointer.buf[0] = inUEID->aMFPointer && 0XFF;
-	controlHeader_Fmt1->ueID.choice.gNB_UEID->guami.aMFPointer.buf[0] = (*(inUEID->aMFPointer) & 0xFC) >> 2;
+	//controlHeader_Fmt1->ueID.choice.gNB_UEID->guami.aMFPointer.buf[0] = (*(inUEID->aMFPointer) & 0xFC) >> 2;
+	 int decimal_num3= (int)strtol(inUEID->aMFPointer, NULL, 2);
+	 decimal_num3=decimal_num3<<2;
+         memcpy(controlHeader_Fmt1->ueID.choice.gNB_UEID->guami.aMFPointer.buf, (char*)&decimal_num3,sizeof(unsigned int));
+
 	controlHeader_Fmt1->ueID.choice.gNB_UEID->guami.aMFPointer.bits_unused = 2;
 
 
@@ -208,6 +216,146 @@
 }
 
 ssize_t e2sm_encode_ric_control_message(void *buffer, size_t buf_size, long targetPrimaryCell,
+                        long targetCell, long nrOrEUtraCell, long nrCGIOrECGI, void* ranParameterValue,size_t  ranParameterValue_size){
+
+                E2SM_RC_ControlMessage_t *e2smrcRcControlMsg = (E2SM_RC_ControlMessage_t*)calloc(1, sizeof(E2SM_RC_ControlMessage_t));
+        if(!e2smrcRcControlMsg) {
+            fprintf(stderr, "alloc E2SM_ControlMessage_t failed\n");
+        return -1;
+        }
+        e2smrcRcControlMsg->ric_controlMessage_formats.present = E2SM_RC_ControlMessage__ric_controlMessage_formats_PR_controlMessage_Format1;
+    E2SM_RC_ControlMessage_Format1_t *e2smrcRcControlFormat1 = (E2SM_RC_ControlMessage_Format1_t*)calloc(1, sizeof(E2SM_RC_ControlMessage_Format1_t));
+        if(!e2smrcRcControlFormat1) {
+                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smrcRcControlMsg);
+                fprintf(stderr, "alloc E2SM_ControlMessage_Format1_t failed\n");
+                return -1;
+        }
+        RANParameter_ValueType_Choice_Structure_t *ranParameter_choice_Structure4 = (struct RANParameter_ValueType_Choice_Structure*)calloc(2, sizeof(struct RANParameter_ValueType_Choice_Structure));
+                //RANParameter_STRUCTURE_t* RPS4=(RANParameter_STRUCTURE_t*)calloc(1,sizeof(RANParameter_STRUCTURE_t));
+            //ranParameter_choice_Structure4[0]=(RANParameter_ValueType_Choice_Structure_t*)calloc(1,sizeof(RANParameter_ValueType_Choice_Structure_t));
+        //ranParameter_choice_Structure4[1]=(RANParameter_ValueType_Choice_Structure_t*)calloc(1,sizeof(RANParameter_ValueType_Choice_Structure_t));
+                //PLMN ################################
+        //void *p={"001F01"};
+                //void *nR={"12345C0010"};
+//               void *z={"00"};
+/*
+    int newSize = strlen((char*)ranParameterValue1)  + strlen((char*)ranParameterValue2) + 2;
+
+   // Allocate new buffer
+   char * newBuffer = (char *)malloc(newSize);
+   //strcpy(newBuffer,z);
+   strcat(newBuffer,(char *)ranParameterValue1); // or strncat
+   strcat(newBuffer,(char *)ranParameterValue2);
+
+    //newBuffer=00001F0112345C0010;
+    printf("%s\n",newBuffer);
+    u_int64_t lol3 = (u_int64_t)strtoll(newBuffer, NULL, 16);
+
+    int c0=lol3 & 0X0000000000000000FF;
+    int c1=(lol3>>8) & 0X0000000000000000FF;
+    int c2=(lol3>>16) & 0X0000000000000000FF;
+    int c3=(lol3>>24) & 0X0000000000000000FF;
+    int c4=(lol3>>32) & 0X0000000000000000FF;
+    int c5=(lol3>>40) & 0X0000000000000000FF;
+    int c6=(lol3>>48) & 0X0000000000000000FF;
+    int c7=(lol3>>56) & 0X0000000000000000FF;
+    int c8=lol3 & 0X000000000000000000;
+*/
+                   RANParameter_STRUCTURE_Item_t *ranParameter_structure_Item_nrcgi = (RANParameter_STRUCTURE_Item_t *)calloc(1,sizeof(RANParameter_STRUCTURE_Item_t));
+        ranParameter_structure_Item_nrcgi->ranParameter_ID=4;
+        RANParameter_ValueType_t* RPV_t_nrcgi=(RANParameter_ValueType_t*)calloc(1,sizeof(RANParameter_ValueType_t));
+        RPV_t_nrcgi->present=RANParameter_ValueType_PR_ranP_Choice_ElementFalse;
+        RANParameter_ValueType_Choice_ElementFalse_t * RPVCEF_nrcgi=(RANParameter_ValueType_Choice_ElementFalse_t *)calloc(1, sizeof(RANParameter_ValueType_Choice_ElementFalse_t));
+        RANParameter_Value_t *RPV_nrcgi=(RANParameter_Value_t *)calloc(1, sizeof(RANParameter_Value_t));
+        RPV_nrcgi->present=      RANParameter_Value_PR_valueOctS;
+
+
+
+        OCTET_STRING_t *NRCGI=(OCTET_STRING_t *)calloc(1,sizeof(OCTET_STRING_t));
+	OCTET_STRING_fromBuf(NRCGI, ranParameterValue,ranParameterValue_size);
+        RPV_nrcgi->choice.valueOctS=*NRCGI;
+        RPVCEF_nrcgi->ranParameter_value=RPV_nrcgi;
+        RPV_t_nrcgi->choice.ranP_Choice_ElementFalse=RPVCEF_nrcgi;
+        ranParameter_structure_Item_nrcgi->ranParameter_valueType=RPV_t_nrcgi;
+        ranParameter_choice_Structure4->ranParameter_Structure = (RANParameter_STRUCTURE_t*)calloc(1,sizeof(RANParameter_STRUCTURE_t));
+                ranParameter_choice_Structure4->ranParameter_Structure->sequence_of_ranParameters = (struct RANParameter_STRUCTURE__sequence_of_ranParameters*)calloc(1,sizeof(struct RANParameter_STRUCTURE__sequence_of_ranParameters));
+           int result1 = ASN_SEQUENCE_ADD(&ranParameter_choice_Structure4->ranParameter_Structure->sequence_of_ranParameters->list, ranParameter_structure_Item_nrcgi);
+    if (result1==-1)
+    {
+        fprintf(stderr,"Unable to assign memory to add PLMN %s",strerror(errno));
+        return -1;
+    }
+
+
+        RANParameter_STRUCTURE_Item_t* ranParameter_structure_Item3= (RANParameter_STRUCTURE_Item_t *)calloc(1,sizeof(RANParameter_STRUCTURE_Item_t));
+        ranParameter_structure_Item3->ranParameter_ID=3;
+        RANParameter_ValueType_t* RPV_t3=(RANParameter_ValueType_t*)calloc(1,sizeof(RANParameter_ValueType_t));
+        RPV_t3->present=RANParameter_ValueType_PR_ranP_Choice_Structure;
+        RPV_t3->choice.ranP_Choice_Structure=ranParameter_choice_Structure4;
+        ranParameter_structure_Item3->ranParameter_valueType=RPV_t3;
+                RANParameter_ValueType_Choice_Structure_t *ranParameter_choice_Structure3 = (struct RANParameter_ValueType_Choice_Structure*)calloc(2, sizeof(struct RANParameter_ValueType_Choice_Structure));
+                ranParameter_choice_Structure3->ranParameter_Structure = (RANParameter_STRUCTURE_t*)calloc(1,sizeof(RANParameter_STRUCTURE_t));
+        ranParameter_choice_Structure3->ranParameter_Structure->sequence_of_ranParameters= (struct RANParameter_STRUCTURE__sequence_of_ranParameters*)calloc(1,sizeof(struct RANParameter_STRUCTURE__sequence_of_ranParameters));
+                int result3 = ASN_SEQUENCE_ADD(&ranParameter_choice_Structure3->ranParameter_Structure->sequence_of_ranParameters->list, ranParameter_structure_Item3);
+    if (result3==-1)
+    {
+        fprintf(stderr,"Unable to assign memory to add  ranParameter_structure_Item3 %s",strerror(errno));
+        return -1;
+    }
+        RANParameter_STRUCTURE_Item_t * ranParameter_structure_Item2= (RANParameter_STRUCTURE_Item_t *)calloc(1,sizeof(RANParameter_STRUCTURE_Item_t));
+        ranParameter_structure_Item2->ranParameter_ID=2;
+        RANParameter_ValueType_t* RPV_t2=(RANParameter_ValueType_t*)calloc(1,sizeof(RANParameter_ValueType_t));
+        RPV_t2->present=RANParameter_ValueType_PR_ranP_Choice_Structure;
+        RPV_t2->choice.ranP_Choice_Structure=ranParameter_choice_Structure3;
+        ranParameter_structure_Item2->ranParameter_valueType=RPV_t2;
+                RANParameter_ValueType_Choice_Structure_t *ranParameter_choice_Structure2 = (struct RANParameter_ValueType_Choice_Structure*)calloc(2, sizeof(struct RANParameter_ValueType_Choice_Structure));
+                 ranParameter_choice_Structure2->ranParameter_Structure = (RANParameter_STRUCTURE_t*)calloc(1,sizeof(RANParameter_STRUCTURE_t));
+        ranParameter_choice_Structure2->ranParameter_Structure->sequence_of_ranParameters= (struct RANParameter_STRUCTURE__sequence_of_ranParameters*)calloc(1,sizeof(struct RANParameter_STRUCTURE__sequence_of_ranParameters));
+        int result4 = ASN_SEQUENCE_ADD(&ranParameter_choice_Structure2->ranParameter_Structure->sequence_of_ranParameters->list, ranParameter_structure_Item2);
+    if (result4==-1)
+    {
+        fprintf(stderr,"Unable to assign memory to add  ranParameter_structure_Item2 %s",strerror(errno));
+        return -1;
+    }
+        RANParameter_ValueType_t* RPV_t1=(RANParameter_ValueType_t*)calloc(1,sizeof(RANParameter_ValueType_t));
+        RPV_t1->present=RANParameter_ValueType_PR_ranP_Choice_Structure;
+        RPV_t1->choice.ranP_Choice_Structure=ranParameter_choice_Structure2;
+                  E2SM_RC_ControlMessage_Format1_Item_t *format1item = (E2SM_RC_ControlMessage_Format1_Item_t *) calloc(1,sizeof(
+                                                                             E2SM_RC_ControlMessage_Format1_Item_t));
+     if(!format1item) {
+             fprintf(stderr, "alloc format1item failed\n");
+             ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smrcRcControlMsg);
+             return -1;
+     }
+        format1item->ranParameter_ID=1;
+        format1item->ranParameter_valueType.present = RANParameter_ValueType_PR_ranP_Choice_Structure;
+        format1item->ranParameter_valueType=*RPV_t1;
+        int result5 = ASN_SEQUENCE_ADD(&e2smrcRcControlFormat1->ranP_List.list, format1item);
+    if (result5==-1)
+    {
+        fprintf(stderr,"Unable to assign memory to add  format1item %s",strerror(errno));
+        return -1;
+    }
+        e2smrcRcControlMsg->ric_controlMessage_formats.choice.controlMessage_Format1=e2smrcRcControlFormat1;
+        asn_enc_rval_t encode_result;
+    encode_result = aper_encode_to_buffer(&asn_DEF_E2SM_RC_ControlMessage, NULL, e2smrcRcControlMsg, buffer,buf_size );
+        fprintf(stderr, "encoded length = %ld \n", encode_result.encoded);
+    if(encode_result.encoded == -1)
+    {
+        fprintf(stderr, "Cannot encode %s: %s\n", encode_result.failed_type->name, strerror(errno));
+        return -1;
+    }
+    else
+     {
+        xer_fprint(stderr, &asn_DEF_E2SM_RC_ControlMessage,e2smrcRcControlMsg);
+                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smrcRcControlMsg);
+        return encode_result.encoded;
+     }
+
+
+}
+/*
+ssize_t e2sm_encode_ric_control_message(void *buffer, size_t buf_size, long targetPrimaryCell,
                         long targetCell, long nrOrEUtraCell, long nrCGIOrECGI, void* ranParameterValue, size_t  ranParameterValue_size)
 {
 	fprintf(stderr, "e2sm_encode_ric_control_message \n") ;
@@ -333,7 +481,7 @@
         ranParameterItem4->ranParameter_valueType->choice.ranP_Choice_ElementFalse->ranParameter_value->present = RANParameter_Value_PR_valueOctS;
 	OCTET_STRING_fromBuf(&ranParameterItem4->ranParameter_valueType->choice.ranP_Choice_ElementFalse->ranParameter_value->choice.valueOctS,ranParameterValue, ranParameterValue_size);
 
-	/*
+
 	fprintf(stderr, "Target Plmn Id = %s ranParameterValue and lNRCellId = %lu \n", ranParameterValue,lNRCellId);
 	nrcgiLen = e2sm_encode_nrcgi(nr_cgi, ranParameterValue, ranParameterValue_size, lNRCellId,nrcgiBuf,nrcgiBuf_size);
 	if(nrcgiLen == -1 )
@@ -342,7 +490,7 @@
 		return nrcgiLen;
 	}
 	OCTET_STRING_fromBuf(&ranParameterItem4->ranParameter_valueType->choice.ranP_Choice_ElementFalse->ranParameter_value->choice.valueOctS,nrcgiBuf,nrcgiLen);
-	*/
+	
 	fprintf(stderr, " NR CGI encoded \n");
 
 	ranParameterStructure3->ranParameter_Structure = (RANParameter_STRUCTURE_t*)calloc(1,sizeof(RANParameter_STRUCTURE_t));
@@ -446,7 +594,7 @@
                 return encode_result.encoded;
         }
 }
-
+*/
 
 E2SM_RC_ControlOutcome_t* e2sm_decode_ric_call_process_outcome(void *buffer, size_t buf_size)
 {
diff --git a/e2sm/wrapper.h b/e2sm/wrapper.h
index 2c36983..64cf78d 100755
--- a/e2sm/wrapper.h
+++ b/e2sm/wrapper.h
@@ -60,7 +60,7 @@
 
 extern ssize_t e2sm_encode_ric_control_header(void *buffer, size_t buf_size,struct uEID *in,long f1AP[],size_t f1AP_len,long e1AP[],size_t e1Ap_len,long ricControlStyleType, long ricControlActionID, void *ranParameterValue, size_t ranParameterValue_size);
 
-extern ssize_t e2sm_encode_ric_control_message(void *buffer, size_t buf_size, long targetPrimaryCell, long targetCell, long nrOrEUtraCell, long nrCGIOrECGI, void *ranParameterValue, size_t  ranParameterValue_size);
+extern ssize_t e2sm_encode_ric_control_message(void *buffer, size_t buf_size, long targetPrimaryCell, long targetCell, long nrOrEUtraCell, long nrCGIOrECGI, void *ranParameterValue,  size_t  ranParameterValue_size);
 
 extern E2SM_RC_ControlOutcome_t* e2sm_decode_ric_call_process_outcome(void *buffer, size_t buf_size);
 extern void e2sm_free_ric_call_process_outcome(E2SM_RC_ControlOutcome_t* controlOutcome) ;
