E2AP and E2SM-RC version upgrade to E2aP v.2.0 and E2SM-RC to v1.0.1

Signed-off-by: rajalakshmisv <rajalakshmisv@gmail.com>
Change-Id: I241726da02e3aea69f3cc3e127a47455b778c1e6
diff --git a/Dockerfile b/Dockerfile
index 742e3bd..0fd0890 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -8,7 +8,7 @@
 ENV GOBIN /go/bin
 ENV CFG_FILE /opt/ric/config/config-file.json
 
-ARG RMRVERSION=4.7.4
+ARG RMRVERSION=4.8.3
 ARG RMRLIBURL=https://packagecloud.io/o-ran-sc/release/packages/debian/stretch/rmr_${RMRVERSION}_amd64.deb/download.deb
 ARG RMRDEVURL=https://packagecloud.io/o-ran-sc/release/packages/debian/stretch/rmr-dev_${RMRVERSION}_amd64.deb/download.deb
 RUN wget --content-disposition ${RMRLIBURL} && dpkg -i rmr_${RMRVERSION}_amd64.deb
diff --git a/control/rcControl.go b/control/rcControl.go
index 41cfc92..5bf5994 100644
--- a/control/rcControl.go
+++ b/control/rcControl.go
@@ -3,13 +3,14 @@
 import (

 	"errors"

 	"fmt"

-	"gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp"

-	"gerrit.o-ran-sc.org/r/ric-app/rc/protocol/grpc/ricmsgcommrpc/rc"

 	"log"

 	"os"

 	"strconv"

 	"sync"

 	"time"

+

+	"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"

 )

 

 var (

@@ -33,6 +34,12 @@
 	xapp.Logger.Debug("GRPC Server Port = %v ", xapp.Config.GetString("controls.ricHOControlgRpcServerPort"))

 	xapp.Logger.Debug("Log Level = %d ", xapp.Config.GetInt("controls.logLevel"))

 

+	go StartgRPCRCControlCommServerRoutine()

+	xapp.Logger.Debug("StartgRPCRCControlCommServerRoutine done")

+

+	//To Handle RIC Control Message

+	go StartHandleControlReqRoutine()

+

 	return Control{5,

 		make(chan *xapp.RMRParams, 1000), //Make it configurable

 		make(map[int]bool),

@@ -42,17 +49,7 @@
 

 func ReadyCB(i interface{}) {

 	gControlData = i.(*Control)

-

 	go controlLoop()

-

-	//Start gRPC Server for Receiving messages

-

-	go StartgRPCRCControlCommServerRoutine()

-	xapp.Logger.Info("StartgRPCRCControlCommServerRoutine done")

-

-	//To Handle RIC Control Message

-	go StartHandleControlReqRoutine()

-

 }

 

 func (aControlData *Control) Run() {

@@ -68,7 +65,7 @@
 func (aControlData *Control) rmrSend(params *xapp.RMRParams) (err error) {

 	if !xapp.Rmr.Send(params, false) {

 		err = errors.New("rmr.Send() failed")

-		xapp.Logger.Error("Failed to rmrSend to %v", err)

+		xapp.Logger.Info("Failed to rmrSend to %v", err)

 		log.Printf("Failed to rmrSend to %v", err)

 	}

 	return

@@ -113,21 +110,28 @@
 

 func HandlegRPCRICControlMsgReq(aPtrRicControlGrpcReq *rc.RicControlGrpcReq) {

 

+	xapp.Logger.Debug("HandlegRPCRICControlMsgReq :%v", *aPtrRicControlGrpcReq)

 	lRicHoControlMsg := RicHoControlMsg{}

 	lRicHoControlMsg.RicControlGrpcReqPtr = aPtrRicControlGrpcReq

 

 	lUEID := lRicHoControlMsg.RicControlGrpcReqPtr.RICControlHeaderData.UEID

-	xapp.Logger.Debug("HandlegRPCRICControlMsgReq UEID = %s ", lUEID)

-        //Mandatory parameters validation

-        if lRicHoControlMsg.RicControlGrpcReqPtr.E2NodeID == "" ||

-                lRicHoControlMsg.RicControlGrpcReqPtr.RICControlMessageData.TargetCellID == "" ||

-                lRicHoControlMsg.RicControlGrpcReqPtr.RICControlHeaderData.UEID == "" ||

-                lRicHoControlMsg.RicControlGrpcReqPtr.PlmnID == "" ||

-                lRicHoControlMsg.RicControlGrpcReqPtr.RICControlHeaderData.ControlActionId < 0 ||

-                lRicHoControlMsg.RicControlGrpcReqPtr.RICControlHeaderData.ControlStyle < 0 ||

-                lRicHoControlMsg.RicControlGrpcReqPtr.RICControlMessageData.RICControlCellTypeVal < 0 ||

-                lRicHoControlMsg.RicControlGrpcReqPtr.RICE2APHeaderData.RICRequestorID < 0 ||

-                lRicHoControlMsg.RicControlGrpcReqPtr.RICE2APHeaderData.RanFuncId < 0 {

+	xapp.Logger.Debug("HandlegRPCRICControlMsgReq UEID = %v ", lUEID)

+	//Mandatory parameters validation

+	if lRicHoControlMsg.RicControlGrpcReqPtr.E2NodeID == "" ||

+		lRicHoControlMsg.RicControlGrpcReqPtr.RICControlMessageData.TargetCellID == "" ||

+		lRicHoControlMsg.RicControlGrpcReqPtr.RICControlHeaderData.UEID.GnbUEID.AmfUENGAPID < 0 ||

+		lRicHoControlMsg.RicControlGrpcReqPtr.RICControlHeaderData.UEID.GnbUEID.Guami.PLMNIdentity == "" ||

+		lRicHoControlMsg.RicControlGrpcReqPtr.RICControlHeaderData.UEID.GnbUEID.Guami.AMFRegionID == "" ||

+		lRicHoControlMsg.RicControlGrpcReqPtr.RICControlHeaderData.UEID.GnbUEID.Guami.AMFSetID == "" ||

+		lRicHoControlMsg.RicControlGrpcReqPtr.RICControlHeaderData.UEID.GnbUEID.Guami.AMFPointer == "" ||

+		len(lRicHoControlMsg.RicControlGrpcReqPtr.RICControlHeaderData.UEID.GnbUEID.GNBCUUEF1APID) == 0 ||

+		len(lRicHoControlMsg.RicControlGrpcReqPtr.RICControlHeaderData.UEID.GnbUEID.GNBCUCPUEE1APID) == 0 ||

+		lRicHoControlMsg.RicControlGrpcReqPtr.PlmnID == "" ||

+		lRicHoControlMsg.RicControlGrpcReqPtr.RICControlHeaderData.ControlActionId < 0 ||

+		lRicHoControlMsg.RicControlGrpcReqPtr.RICControlHeaderData.ControlStyle < 0 ||

+		lRicHoControlMsg.RicControlGrpcReqPtr.RICControlMessageData.RICControlCellTypeVal < 0 ||

+		lRicHoControlMsg.RicControlGrpcReqPtr.RICE2APHeaderData.RICRequestorID < 0 ||

+		lRicHoControlMsg.RicControlGrpcReqPtr.RICE2APHeaderData.RanFuncId < 0 {

 		xapp.Logger.Error("Mandaroty parameters missing, dont send control request ")

 		return

 	}

@@ -154,8 +158,10 @@
 	gControlData.eventRicControlReqExpiredMu.Lock()

 	gControlData.eventRicControlReqExpiredMap[aSeqNum] = false

 	gControlData.eventRicControlReqExpiredMu.Unlock()

+	controlAckTimer := xapp.Config.GetInt("controls.controlAckTimer")

+	xapp.Logger.Debug("configured controlAckTimer = %d and controlAckTimer = %d ", xapp.Config.GetInt("controls.controlAckTimer"),controlAckTimer)

 

-	timer := time.NewTimer(time.Duration(gControlData.eventRicControlReqTimePeriod) * time.Second)

+	timer := time.NewTimer(time.Duration(controlAckTimer) * time.Second)

 	go func(t *time.Timer) {

 		defer t.Stop()

 		xapp.Logger.Debug("RIC_CONTROL_REQ[%s]: Waiting for RIC_CONTROL_RESP...", aSeqNum)

@@ -204,15 +210,23 @@
 	var lRicControlActionID int64 = aRicHoControlMsg.RicControlGrpcReqPtr.RICControlHeaderData.ControlActionId

 	lUEID := aRicHoControlMsg.RicControlGrpcReqPtr.RICControlHeaderData.UEID

 

-	lUeIdBuf := []byte(aRicHoControlMsg.RicControlGrpcReqPtr.RICControlHeaderData.UEID)

+	var ueId_data UEid

 

-	xapp.Logger.Debug("UEID:%s, lUeIdBuf: %v", aRicHoControlMsg.RicControlGrpcReqPtr.RICControlHeaderData.UEID, lUeIdBuf)

+	xapp.Logger.Debug("UEID:%v, ueId_data strct :%v", aRicHoControlMsg.RicControlGrpcReqPtr.RICControlHeaderData.UEID,

+		ueId_data)

+	ueId_data.amf_UE_NGAP_Id = lUEID.GnbUEID.AmfUENGAPID

+	ueId_data.pLMNIdentitybuf = lUEID.GnbUEID.Guami.PLMNIdentity

+        ueId_data.aMFRegionIDbuf = lUEID.GnbUEID.Guami.AMFRegionID

+        ueId_data.aMFSetIDbuf = lUEID.GnbUEID.Guami.AMFSetID

+        ueId_data.aMFPointerbuf = lUEID.GnbUEID.Guami.AMFPointer

+        ueId_data.F1AP_id = lUEID.GnbUEID.GNBCUUEF1APID

+        ueId_data.E1AP_id = lUEID.GnbUEID.GNBCUCPUEE1APID

 

-	var lRicControlHeader []byte = make([]byte, 256) //Check the Size

-	lRicControlHeaderEncoded, err := e2sm.SetRicControlHeader(lRicControlHeader, lUeIdBuf, lRicControlStyleType, lRicControlActionID)

+	var lRicControlHeader []byte = make([]byte, 1024) //Check the Size

+	lRicControlHeaderEncoded, err := e2sm.SetRicControlHeader(lRicControlHeader, &ueId_data, lRicControlStyleType, lRicControlActionID)

 	if err != nil {

-		xapp.Logger.Error("SetRicControlHeader Failed: %v, UEID:%s", err, aRicHoControlMsg.RicControlGrpcReqPtr.RICControlHeaderData.UEID)

-		log.Printf("SetRicControlHeader Failed: %v, UEID:%s", err, aRicHoControlMsg.RicControlGrpcReqPtr.RICControlHeaderData.UEID)

+		xapp.Logger.Error("SetRicControlHeader Failed: %v, UEID:%v", err, aRicHoControlMsg.RicControlGrpcReqPtr.RICControlHeaderData.UEID)

+		log.Printf("SetRicControlHeader Failed: %v, UEID:%v", err, aRicHoControlMsg.RicControlGrpcReqPtr.RICControlHeaderData.UEID)

 		return err

 	} else {

 		xapp.Logger.Info("SetRicControlHeader is success: %x", lRicControlHeaderEncoded)

@@ -222,7 +236,6 @@
 		}

 		fmt.Fprintf(os.Stderr, "\n")

 	}

-

 	var lTargetPrimaryCell int64 = RIC_CONTROL_TARGET_PRIMARY_CELL

 	var lTargetCell int64 = RIC_CONTROL_TARGET_CELL

 	var lNrCGIOrECGI int64 = RIC_CONTROL_CGI_TYPE

@@ -230,12 +243,15 @@
 	lNrOrEUtraCellType := aRicHoControlMsg.RicControlGrpcReqPtr.RICControlMessageData.RICControlCellTypeVal

 	lTargetCellVal := aRicHoControlMsg.RicControlGrpcReqPtr.RICControlMessageData.TargetCellID

 	lTargetCellValBuf := []byte(lTargetCellVal)

+	//lNRPlmnId := []byte(aRicHoControlMsg.RicControlGrpcReqPtr.RICControlMessageData.TargetCellID.PlmnID)

+        //lNRCellId := aRicHoControlMsg.RicControlGrpcReqPtr.RICControlMessageData.TargetCellID.NRCellID

 

-	var lRicControlMessage []byte = make([]byte, 1024) 

+

+	var lRicControlMessage []byte = make([]byte, 1024)

 	lRicControlMessageEncoded, err := e2sm.SetRicControlMessage(lRicControlMessage, lTargetPrimaryCell, lTargetCell, lNrCGIOrECGI, int64(lNrOrEUtraCellType), lTargetCellValBuf)

 	if err != nil {

-		xapp.Logger.Error("SetRicControlMessage Failed: %v, UEID:%s", err, aRicHoControlMsg.RicControlGrpcReqPtr.RICControlHeaderData.UEID)

-		log.Printf("SetRicControlMessage Failed: %v, UEID:%s", err, aRicHoControlMsg.RicControlGrpcReqPtr.RICControlHeaderData.UEID)

+		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)

 		return err

 	} else {

 		xapp.Logger.Debug("SetRicControlMessage is success: %x", lRicControlMessageEncoded)

@@ -257,45 +273,85 @@
 	lParams.Payload, err = e2ap.SetRicControlRequestPayload(lParams.Payload, lRequestorId, uint16(aRequestSN), lFuncId,

 		lRicControlHeaderEncoded, lRicControlMessageEncoded)

 	if err != nil {

-		xapp.Logger.Error("SetRicControlRequestPayload Failed: %v, UEID:%s", err, aRicHoControlMsg.RicControlGrpcReqPtr.RICControlHeaderData.UEID)

-		log.Printf("SetRicControlRequestPayload Failed: %v, UEID:%s", err, aRicHoControlMsg.RicControlGrpcReqPtr.RICControlHeaderData.UEID)

+		xapp.Logger.Error("SetRicControlRequestPayload Failed: %v, UEID:%v", err, aRicHoControlMsg.RicControlGrpcReqPtr.RICControlHeaderData.UEID)

+		log.Printf("SetRicControlRequestPayload Failed: %v, UEID:%v", err, aRicHoControlMsg.RicControlGrpcReqPtr.RICControlHeaderData.UEID)

 		return err

 	} else {

-		xapp.Logger.Debug("Encoding RicControlRequestPayload is success. UEID: %s, Payload: %x", lUEID, lParams.Payload)

+

+		xapp.Logger.Debug("Encoding RicControlRequestPayload is success. UEID: %v, Payload: %x", lUEID, lParams.Payload)

 		fmt.Fprintf(os.Stderr, "Encoded RIC Control Req PDU:\n")

 		for i := 0; i < len(lParams.Payload); i++ {

 			fmt.Fprintf(os.Stderr, " %02x", lParams.Payload[i])

 		}

 		fmt.Fprintf(os.Stderr, "\n")

 	}

-

+	lParams.PayloadLen = len(lParams.Payload)

 	valEnbId := aRicHoControlMsg.RicControlGrpcReqPtr.E2NodeID

 	valRanName := aRicHoControlMsg.RicControlGrpcReqPtr.RanName

 	valPlmnId := aRicHoControlMsg.RicControlGrpcReqPtr.PlmnID

 	lParams.Meid = &xapp.RMRMeid{PlmnID: valPlmnId, EnbID: valEnbId, RanName: valRanName}

 

-	xapp.Logger.Debug("The RIC Control RMR message to be sent is with MsgType:%d  SubId=%d, lParams.Meid: %v, UEID: %s", lParams.Mtype, lParams.SubId, lParams.Meid, lUEID)

+	xapp.Logger.Debug("The RIC Control RMR message to be sent is with MsgType:%d  SubId=%d, lParams.Meid: %v, UEID: %v", lParams.Mtype, lParams.SubId, lParams.Meid, lUEID)

 

-	xapp.Logger.Debug("Sending RIC Control message to RanName: %s, UEID: %s  ", aRicHoControlMsg.RicControlGrpcReqPtr.RanName, lUEID)

-

+	xapp.Logger.Debug("Sending RIC Control message to RanName: %s, UEID: %v  ", aRicHoControlMsg.RicControlGrpcReqPtr.RanName, lUEID)

+	

+	xapp.Logger.Info("lParams %v ",lParams)

 	err = gControlData.rmrSend(lParams)

 	if err != nil {

 		xapp.Logger.Error("Failed to send RIC_CONTROL_REQ: %v", err)

 		log.Printf("Failed to send RIC_CONTROL_REQ: %v", err)

+		xapp.Logger.Info("Failed to send RIC_CONTROL_REQ: %v", err)

 		return err

 	}

 

-	xapp.Logger.Info("Sending RIC Control message to RanName: %s, UEID: %s  Success", aRicHoControlMsg.RicControlGrpcReqPtr.RanName, lUEID)

-

+	xapp.Logger.Info("Sending RIC Control message to RanName: %s, UEID: %v  Success", aRicHoControlMsg.RicControlGrpcReqPtr.RanName, lUEID)

+	//Start Timer Operation.

 	aRicHoControlMsg.setEventRicControlCreateExpiredTimer(aRequestSN) //TODO check if this is required as we are not expecting Control ACK

 

 	return nil

 }

 

 func HandleControlResponse(params *xapp.RMRParams) (err error) {

+

+	var e2ap *E2ap

+        var e2sm *E2sm

 	xapp.Logger.Debug("The SubId in RIC_CONTROL_RESP is %d", params.SubId)

 	log.Printf("The SubId in RIC_CONTROL_RESP is %d", params.SubId)

 

+

+

+	//Decode the RIC Control Ack message

+	controlAck, err := e2ap.GetControlAckMsg(params.Payload)

+	if err != nil {

+		xapp.Logger.Error("Failed to decode RIC Control Ack: %v", err)

+                log.Println("Failed to decode RIC Control Ack: %v", err)

+                return

+	}

+	log.Println("E2ap RIC RIC Control Ack message decoded \n")

+	xapp.Logger.Info("E2ap RIC RIC Control Ack message decoded \n")

+	gControlData.eventRicControlReqExpiredMu.Lock()

+        _,ok := gControlData.eventRicControlReqExpiredMap[int(controlAck.InstanceId)]

+        if !ok {

+                gControlData.eventRicControlReqExpiredMu.Unlock()

+                xapp.Logger.Debug("RIC_CONTROL_REQ has been deleted!")

+                log.Printf("RIC_CONTROL_REQ has been deleted!")

+                return nil

+        } else {

+                gControlData.eventRicControlReqExpiredMap[int(controlAck.InstanceId)] = true

+		gControlData.eventRicControlReqExpiredMu.Unlock()

+        }

+

+	controlOutcome, err := e2sm.GetControlOutcome(controlAck.ControlOutcome)

+        if err != nil {

+		xapp.Logger.Error("Failed to decode RIC Control Outcome: %v", err)

+                log.Println("Failed to decode RIC Control Outcome: %v", err)

+                return

+        }

+        log.Println("E2SM-RC RIC Control Outcome  decoded \n",controlOutcome)

+        xapp.Logger.Info("E2SM-RC RIC Control Outcome  decoded \n",controlOutcome)

+

+

+

 	return nil

 }

 

diff --git a/control/rcControlUtils.go b/control/rcControlUtils.go
new file mode 100644
index 0000000..c0efda1
--- /dev/null
+++ b/control/rcControlUtils.go
@@ -0,0 +1,58 @@
+package control
+
+import (
+	_ "strconv"
+	_ "time"
+)
+
+func get_bytepack_plmnId(lInPlmnId []byte) []byte {
+
+var tmpPlmnId []byte
+var bytePackedPlmnId []byte
+
+tmpPlmnId = make([]byte, 6)
+bytePackedPlmnId = make([]byte, 3)
+
+num_mnc_digits := len(lInPlmnId)
+
+tmpPlmnId[0] = lInPlmnId[0]
+tmpPlmnId[1] = lInPlmnId[1]
+tmpPlmnId[2] = lInPlmnId[2]
+
+if num_mnc_digits == 5 {
+tmpPlmnId[3] = 0x0f
+tmpPlmnId[4] = lInPlmnId[3]
+tmpPlmnId[5] = lInPlmnId[4]
+} else {
+tmpPlmnId[3] = lInPlmnId[3]
+tmpPlmnId[4] = lInPlmnId[4]
+tmpPlmnId[5] = lInPlmnId[5]
+}
+bytePackedPlmnId[0] = ((tmpPlmnId[1] & 0x0F) << 4) | (tmpPlmnId[0] & 0x0F)
+bytePackedPlmnId[1] = ((tmpPlmnId[3] & 0x0F) << 4) | (tmpPlmnId[2] & 0x0F)
+bytePackedPlmnId[2] = ((tmpPlmnId[5] & 0x0F) << 4) | (tmpPlmnId[4] & 0x0F)
+
+return bytePackedPlmnId
+}
+
+func ConverIntegerToByte(lIntVar int) []byte {
+var rightMost, tempIntVar int
+var byteArray []byte
+tempIntVar = lIntVar
+for {
+rightMost = tempIntVar % 10
+byteArray = append(byteArray, byte(rightMost)) // convert single digit to byte
+tempIntVar /= 10
+if tempIntVar == 0 {
+break
+}
+}
+// need to reverse the order
+fixByteArray := []byte{}
+for i := range byteArray {
+n := byteArray[len(byteArray)-1-i]
+fixByteArray = append(fixByteArray, n)
+}
+
+return fixByteArray
+}
diff --git a/control/rcE2AP.go b/control/rcE2AP.go
index ee3db21..e305125 100644
--- a/control/rcE2AP.go
+++ b/control/rcE2AP.go
@@ -40,3 +40,24 @@
 	return
 }
 
+
+func (c *E2ap) GetControlAckMsg(payload []byte) (decodedMsg *ControlAckMsg, err error) {
+        cptr := unsafe.Pointer(&payload[0])
+        decodedMsg = &ControlAckMsg{}
+        decodedCMsg := C.e2ap_decode_ric_control_acknowledge_message(cptr, C.size_t(len(payload)))
+        if decodedCMsg == nil {
+                return decodedMsg, errors.New("e2ap wrapper is unable to decode indication message due to wrong or invalid payload")
+        }
+        defer C.e2ap_free_decoded_ric_control_ack(decodedCMsg)
+
+        decodedMsg.RequestID = int32(decodedCMsg.requestorID)
+        decodedMsg.InstanceId = int32(decodedCMsg.instanceID)
+        decodedMsg.FuncID = int32(decodedCMsg.ranfunctionID)
+        callproc := unsafe.Pointer(decodedCMsg.callProcessID)
+        decodedMsg.CallProcessID = C.GoBytes(callproc, C.int(decodedCMsg.callProcessIDSize))
+        decodedMsg.CallProcessIDLength = int32(decodedCMsg.callProcessIDSize)
+        controlOutcome := unsafe.Pointer(decodedCMsg.ricControlOutCome)
+        decodedMsg.ControlOutcome = C.GoBytes(controlOutcome, C.int(decodedCMsg.ricControlOutComeSize))
+        decodedMsg.ControlOutcomeLength = int32(decodedCMsg.ricControlOutComeSize)
+        return
+}
diff --git a/control/rcE2SmRc.go b/control/rcE2SmRc.go
index 502f017..e2a8498 100644
--- a/control/rcE2SmRc.go
+++ b/control/rcE2SmRc.go
@@ -11,17 +11,67 @@
 	"errors"
 	"gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp"
 	"unsafe"
+	_ "log"
+	_"encoding/binary"
+	"encoding/hex"
+	"strings"
+	"strconv"
 )
 
 type E2sm struct {
 }
 
-func (c *E2sm) SetRicControlHeader(buffer []byte, ueIDbuf []byte, ricControlStyleType int64, ricControlActionID int64) (newBuffer []byte, err error) {
-	cptr := unsafe.Pointer(&buffer[0])
-	cptr_ueIDbuf := unsafe.Pointer(&ueIDbuf[0])
-	size := C.e2sm_encode_ric_control_header(cptr, C.size_t(len(buffer)), cptr_ueIDbuf, C.size_t(len(ueIDbuf)),
-		C.long(ricControlStyleType), C.long(ricControlActionID))
+func (c *E2sm) SetRicControlHeader(buffer []byte, ueIdData *UEid, ricControlStyleType int64, ricControlActionID int64) (newBuffer []byte, err error) {
 
+	xapp.Logger.Info("SetRicControlHeader Enter \n")
+	cptr := unsafe.Pointer(&buffer[0])
+	//cptr_ueIDbuf := unsafe.Pointer(&ueIDbuf[0])
+
+	lplmnIdBuf := strings.Join(strings.Fields(ueIdData.pLMNIdentitybuf), "")
+	lIntvar, _ := strconv.Atoi(lplmnIdBuf)
+	xapp.Logger.Info("lIntvar = %d\n", lIntvar)
+
+	lIntegerByte := ConverIntegerToByte(lIntvar)
+	//ml.MavLog(ml.INFO, lTransId, " lIntegerByte = %v\n", lIntegerByte)
+	xapp.Logger.Info(" lIntegerByte = %v\n", lIntegerByte)
+        lOutByte := get_bytepack_plmnId(lIntegerByte)
+        xapp.Logger.Info("lOutByte Len:%d\n", len(lOutByte))
+        xapp.Logger.Info("lOutByte = %02X\n", lOutByte)
+	cptrRanParameterValue := unsafe.Pointer(&lOutByte[0])
+	
+
+		pLMNIdentity := C.CString(ueIdData.pLMNIdentitybuf)
+	defer C.free(unsafe.Pointer(pLMNIdentity))
+        	pLMNIdentity_size := C.size_t(len(ueIdData.pLMNIdentitybuf))
+        	aMFRegionID := C.CString(ueIdData.aMFRegionIDbuf)
+	defer C.free(unsafe.Pointer(aMFRegionID))
+        	aMFSetID := C.CString(ueIdData.aMFSetIDbuf)
+	defer C.free(unsafe.Pointer(aMFSetID))
+        	aMFPointer := C.CString(ueIdData.aMFPointerbuf)
+	defer C.free(unsafe.Pointer(aMFPointer))
+
+	uEID_C := C.struct_uEID{
+                amf_UE_NGAP_Id: C.long(ueIdData.amf_UE_NGAP_Id),
+                pLMNIdentity : pLMNIdentity,
+                pLMNIdentity_size : pLMNIdentity_size,
+                aMFRegionID : aMFRegionID,
+                aMFRegionID_size : 1, //AMFRegionID ::= BIT STRING (SIZE(8))
+                aMFSetID : aMFSetID,
+                aMFSetID_size: 2, //BIT STRING (SIZE(10))
+                aMFPointer : aMFPointer,
+                aMFPointer_size : 1,  //BIT STRING (SIZE(6))
+        }
+
+	xapp.Logger.Debug("uEID_C amf_UE_NGAP_Id  = %l",uEID_C.amf_UE_NGAP_Id)
+	xapp.Logger.Debug("uEID_C pLMNIdentity = %s",uEID_C.pLMNIdentity)
+	xapp.Logger.Debug("uEID_C aMFRegionID %s = ",uEID_C.aMFRegionID)
+	xapp.Logger.Debug("uEID_C aMFSetID  %s = ",uEID_C.aMFSetID)
+	xapp.Logger.Debug("uEID_C aMFPointer %s = ",uEID_C.aMFPointer)
+
+	size := C.e2sm_encode_ric_control_header(cptr, C.size_t(len(buffer)),&uEID_C ,(*C.long)(&ueIdData.F1AP_id[0]),C.size_t(len(ueIdData.F1AP_id)),(*C.long)(&ueIdData.E1AP_id[0]),C.size_t(len(ueIdData.E1AP_id)),(C.long)(ricControlStyleType), (C.long)(ricControlActionID), cptrRanParameterValue,C.size_t(len(lOutByte)))
+
+	//size := C.e2sm_encode_ric_control_header(cptr, C.size_t(len(buffer)),&uEID_C ,(*C.long)(&ueIdData.F1AP_id[0]),(*C.long)(&ueIdData.E1AP_id[0]),(C.long)(ricControlStyleType), (C.long)(ricControlActionID))
+	
 	if size < 0 {
 		return make([]byte, 0), errors.New("e2sm wrapper is unable to set EventTriggerDefinition due to wrong or invalid input")
 	}
@@ -31,11 +81,27 @@
 }
 
 func (c *E2sm) SetRicControlMessage(buffer []byte, targetPrimaryCell int64, targetCell int64, nrCGIOrECGI int64, nrOrEUtraCell int64, ranParameterValue []byte) (newBuffer []byte, err error) {
+	
+	xapp.Logger.Info("SetRicControlMessagei Enter  ")
+
 	cptr := unsafe.Pointer(&buffer[0])
 	cptrRanParameterValue := unsafe.Pointer(&ranParameterValue[0])
 
+	/*
+	lIntvar, _ := strconv.Atoi(string(ranParameterValue))
+	xapp.Logger.Info("lIntvar %d\n", lIntvar)
+	lIntegerByte := ConverIntegerToByte(lIntvar)
+	xapp.Logger.Info("lIntegerByte %v\n", lIntegerByte)
+	lOutByte := get_bytepack_plmnId(lIntegerByte)
+	xapp.Logger.Info("lOutByte Len:%d\n", len(lOutByte))
+	xapp.Logger.Info("lOutByte %02X\n", lOutByte)
+	cptrRanParameterValue := unsafe.Pointer(&lOutByte[0])
+	xapp.Logger.Info("cptrRanParameterValue = %v\n ", cptrRanParameterValue)
+	*/
+
 	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)))
+
 	if size < 0 {
 		return make([]byte, 0), errors.New("e2sm wrapper is unable to set RicControlMessage due to wrong or invalid input")
 	}
@@ -43,3 +109,82 @@
 	xapp.Logger.Info("E2sm SetRicControlMessage is success")
 	return
 }
+
+func (c *E2sm) GetControlOutcome(buffer []byte) (controlOutcome *ControlOutcomeMsg, err error) {
+        cptr := unsafe.Pointer(&buffer[0])
+        controlOutcome = &ControlOutcomeMsg{}
+	//lTransId := gTransIdDefVal
+        //ml.MavLog(ml.INFO, lTransId, "Decode Control Outcome: ")
+	xapp.Logger.Info("Decode Control Outcome: ")
+        decodedMsg := C.e2sm_decode_ric_call_process_outcome(cptr, C.size_t(len(buffer)))
+        if decodedMsg == nil {
+                return controlOutcome, errors.New("e2sm wrapper is unable to get ControlOutcome due to wrong or invalid input")
+        }
+        defer C.e2sm_free_ric_call_process_outcome(decodedMsg)
+        //ml.MavLog(ml.INFO, lTransId, "Decoded Control Outcome: ")
+	controlOutcome.ControlOutcomeType = int32(decodedMsg.ric_controlOutcome_formats.present)
+	if controlOutcome.ControlOutcomeType == 1 {
+                controlOutcome := &ControlOutcomeFormat1{}
+                controlOutcomeFormat1_C := *(**C.E2SM_RC_ControlOutcome_Format1_t)(unsafe.Pointer(&decodedMsg.ric_controlOutcome_formats.choice[0]))
+		controlOutcome.ControlOutcomeFormat1ItemCount = int(controlOutcomeFormat1_C.ranP_List.list.count)
+		controlOutcome.ControlOutcomeFormat1Item = make([]ControlOutcomeFormat1ItemType, controlOutcome.ControlOutcomeFormat1ItemCount +1)
+                //ml.MavLog(ml.INFO, lTransId, "RIC Control Outcome  Format1 Item Count = %d ", controlOutcome.ControlOutcomeFormat1ItemCount)
+                for i := 0; i < controlOutcome.ControlOutcomeFormat1ItemCount; i++ {
+			ControlOutcomeFormat1Item :=  &controlOutcome.ControlOutcomeFormat1Item[i]
+			var sizeof_E2SM_RC_ControlOutcome_Format1_Item_t *C.E2SM_RC_ControlOutcome_Format1_Item_t
+			ControlOutcomeFormat1Item_C :=  *(*(**C.E2SM_RC_ControlOutcome_Format1_Item_t)(unsafe.Pointer(uintptr(unsafe.Pointer(controlOutcomeFormat1_C.ranP_List.list.array)) + (uintptr)(i)*unsafe.Sizeof(sizeof_E2SM_RC_ControlOutcome_Format1_Item_t))))
+			ControlOutcomeFormat1Item.RanParameterID = int64(ControlOutcomeFormat1Item_C.ranParameter_ID)
+			ControlOutcomeFormat1Item.RANParameterValueType = int(ControlOutcomeFormat1Item_C.ranParameter_value.present)
+		        ranParameterValue_C := (C.RANParameter_Value_t)(ControlOutcomeFormat1Item_C.ranParameter_value)
+			if ControlOutcomeFormat1Item.RANParameterValueType == 5 {
+				//ml.MavLog(ml.INFO, lTransId, "RANParameterValueType  is RANParameter_Value_PR_valueOctS")
+				ranParameterValue := &OctetString{}
+				ranParameter_C := (*C.OCTET_STRING_t)(unsafe.Pointer(&ranParameterValue_C.choice[0]))
+                                ranParameterValue.Size = int(ranParameter_C.size)
+                                ranParameterValue.Buf = C.GoBytes(unsafe.Pointer(ranParameter_C.buf), C.int(ranParameter_C.size))
+                                ControlOutcomeFormat1Item.RANParameterValue = ranParameterValue
+				//ml.MavLog(ml.INFO, lTransId, "RANParameterValue = ", ControlOutcomeFormat1Item.RANParameterValue)
+			}
+		}
+	} else {
+		return controlOutcome, errors.New("Unknown RIC Control Outcome type")
+	}
+	return controlOutcome , err
+}
+
+func (c *E2sm) get_plmn_from_mcc_mnc(plmnIdBuf []byte)(bytePackedPlmnId []uint8) {
+	//lTransId := gTransIdDefVal
+	hexResp, _ := hex.DecodeString(string(plmnIdBuf))
+	//ml.MavLog(ml.INFO, lTransId, "get_plmn_from_mcc_mnc plmnIdBuf and hexResp = ", plmnIdBuf,hexResp)
+	var mcc []uint8 = make([]uint8, 3)
+        var mnc []uint8 = make([]uint8, 3)
+
+        mcc[0] = hexResp[0] >> 4
+        mcc[1] = hexResp[0] & 0xf
+        mcc[2] = hexResp[1] >> 4
+        mnc[0] = hexResp[1] & 0xf
+        mnc[1] = hexResp[2] >> 4
+        mnc[2] = hexResp[2] & 0xf
+
+        var tmpPlmnId []uint8 = make([]uint8, 6)
+        tmpPlmnId[0] = mcc[0]
+        tmpPlmnId[1] =  mcc[1]
+        tmpPlmnId[2] =  mcc[2]
+      if len(mcc) == 2 {
+                tmpPlmnId[3] = 0x0f
+                tmpPlmnId[4] = mnc[0]
+                tmpPlmnId[5] = mnc[1]
+        } else {
+                tmpPlmnId[3] = mnc[0]
+                tmpPlmnId[4] = mnc[1]
+                tmpPlmnId[5] = mnc[2]
+        }
+        //ml.MavLog(ml.INFO, lTransId, "\n tmpPlmnId " , tmpPlmnId)
+        bytePackedPlmnId = make([]uint8,3)
+        bytePackedPlmnId[0] = ((tmpPlmnId[1] & 0x0F) << 4) | (tmpPlmnId[0] & 0x0F)
+        bytePackedPlmnId[1] = ((tmpPlmnId[3] & 0x0F) << 4) | (tmpPlmnId[2] & 0x0F)
+        bytePackedPlmnId[2] = ((tmpPlmnId[5] & 0x0F) << 4) | (tmpPlmnId[4] & 0x0F)
+        //ml.MavLog(ml.INFO, lTransId, "\n bytePackedPlmnId " , bytePackedPlmnId)
+        return
+}
+
diff --git a/control/rcService.go b/control/rcService.go
index 005b742..0523562 100644
--- a/control/rcService.go
+++ b/control/rcService.go
@@ -6,8 +6,8 @@
 	_ "strings"
 	"time"
 
-	"gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp"
 	"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"
 	"golang.org/x/net/context"
 )
 
@@ -26,12 +26,13 @@
 	}()
 
 	var lRicControlGrpcRsp rc.RicControlGrpcRsp
-	lRicControlGrpcRsp.RspCode = GRPC_ERROR 
+	lRicControlGrpcRsp.RspCode = GRPC_ERROR
 	lRicControlGrpcRsp.Description = "The client specified an invalid argument. or some parameters are missing "
 	if aPtrRicControlGrpcReq == nil {
 		xapp.Logger.Error("Received nil data from Send error rsp")
 	} else {
-		if len(aPtrRicControlGrpcReq.E2NodeID) == 0 || len(aPtrRicControlGrpcReq.RICControlMessageData.TargetCellID) == 0 || len(aPtrRicControlGrpcReq.RICControlHeaderData.UEID) == 0  || len(aPtrRicControlGrpcReq.RanName) == 0  || len(aPtrRicControlGrpcReq.PlmnID) == 0{
+		//if len(aPtrRicControlGrpcReq.E2NodeID) == 0 || len(aPtrRicControlGrpcReq.RICControlMessageData.TargetCellID) == 0 || len(aPtrRicControlGrpcReq.RICControlHeaderData.UEID.GnbUEID.Guami.PLMNIdentity) == 0 || len(aPtrRicControlGrpcReq.RICControlHeaderData.UEID.GnbUEID.Guami.AMFRegionID) == 0 || len(aPtrRicControlGrpcReq.RICControlHeaderData.UEID.GnbUEID.Guami.AMFSetID) == 0 || len(aPtrRicControlGrpcReq.RICControlHeaderData.UEID.GnbUEID.Guami.AMFPointer) == 0 || len(aPtrRicControlGrpcReq.RanName) == 0 || len(aPtrRicControlGrpcReq.PlmnID) == 0 {
+		if len(aPtrRicControlGrpcReq.E2NodeID) == 0 || len(aPtrRicControlGrpcReq.RICControlMessageData.TargetCellID) == 0 || len(aPtrRicControlGrpcReq.RICControlHeaderData.UEID.GnbUEID.Guami.PLMNIdentity) == 0 || len(aPtrRicControlGrpcReq.RICControlHeaderData.UEID.GnbUEID.Guami.AMFRegionID) == 0 || len(aPtrRicControlGrpcReq.RICControlHeaderData.UEID.GnbUEID.Guami.AMFSetID) == 0 || len(aPtrRicControlGrpcReq.RICControlHeaderData.UEID.GnbUEID.Guami.AMFPointer) == 0 || len(aPtrRicControlGrpcReq.RanName) == 0 || len(aPtrRicControlGrpcReq.PlmnID) == 0 {
 			xapp.Logger.Error("Mandatory parameters are not received send Error rsp to client,no control Request will be initiated ")
 		} else {
 			xapp.Logger.Info("GRPC Control request validated, initiate Control Request to RAN")
diff --git a/control/rcTypes.go b/control/rcTypes.go
index 0204451..e558d02 100644
--- a/control/rcTypes.go
+++ b/control/rcTypes.go
@@ -1,9 +1,10 @@
 package control

 

 import (

-	"gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp"

-	rc "gerrit.o-ran-sc.org/r/ric-app/rc/protocol/grpc/ricmsgcommrpc/rc"

 	"sync"

+

+	rc "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"

 )

 

 const MAX_CONTROL_REQ_ATTEMPTS = 2

@@ -22,10 +23,10 @@
 const GRPC_ERROR = -1

 

 type Control struct {

-	eventRicControlReqTimePeriod int32                //maximum time for the RIC Subscription Request event creation procedure in the E2 Node

+	eventRicControlReqTimePeriod int32                //maximum time for the RIC Control Request creation procedure in the E2 Node

 	rcChan                       chan *xapp.RMRParams //channel for receiving rmr message

-	eventRicControlReqExpiredMap map[int]bool //map for recording the RIC Subscription Request event creation procedure is expired or not

-	eventRicControlReqExpiredMu  *sync.Mutex  //mutex for eventCreateExpiredMap

+	eventRicControlReqExpiredMap map[int]bool         //map for recording the RIC Control Request event creation procedure is expired or not

+	eventRicControlReqExpiredMu  *sync.Mutex          //mutex for eventCreateExpiredMap

 	ricRequestInstanceID         int

 }

 

@@ -33,3 +34,58 @@
 	RicControlGrpcReqPtr *rc.RicControlGrpcReq

 }

 

+

+type UEid struct {

+        amf_UE_NGAP_Id   int64

+        pLMNIdentitybuf  string

+        aMFRegionIDbuf   string

+        aMFSetIDbuf      string

+        aMFPointerbuf    string

+        F1AP_id         []int64

+        E1AP_id         []int64

+}

+

+type ValueInt int64

+

+type valueReal float64

+

+type Null int32

+

+type PrintableString OctetString

+

+type OctetString struct {

+        Buf  []byte

+        Size int

+}

+

+type BitString struct {

+        Buf        []byte

+        Size       int

+        BitsUnused int

+}

+

+type ControlAckMsg struct {

+        RequestID             int32

+        InstanceId            int32

+        FuncID                int32

+        CallProcessID         []byte

+        CallProcessIDLength   int32

+        ControlOutcome        []byte

+        ControlOutcomeLength  int32

+}

+

+type ControlOutcomeFormat1ItemType struct {

+	RanParameterID     int64

+	RANParameterValueType int

+	RANParameterValue interface{}

+}

+

+type ControlOutcomeFormat1 struct {

+	ControlOutcomeFormat1Item      []ControlOutcomeFormat1ItemType

+        ControlOutcomeFormat1ItemCount int

+}

+

+type ControlOutcomeMsg struct {

+        ControlOutcomeType  int32

+        ControlOutcome      interface{}

+}

diff --git a/e2ap/e2ap.asn b/e2ap/e2ap.asn
new file mode 100644
index 0000000..45f0e7b
--- /dev/null
+++ b/e2ap/e2ap.asn
@@ -0,0 +1,1593 @@
+-- ASN1START
+-- **************************************************************
+-- 
+-- Common definitions
+-- Derived from 3GPP 38.413 (NGAP)
+--
+-- **************************************************************
+
+E2AP-CommonDataTypes {
+iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version2 (2) e2ap(1) e2ap-CommonDataTypes (3) }
+
+DEFINITIONS AUTOMATIC TAGS ::= 
+
+BEGIN
+
+Criticality		::= ENUMERATED { reject, ignore, notify }
+
+Presence		::= ENUMERATED { optional, conditional, mandatory }
+
+ProcedureCode		::= INTEGER (0..255)
+
+ProtocolIE-ID		::= INTEGER (0..65535)
+
+TriggeringMessage	::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome }
+
+-- **************************************************************
+--
+-- Elementary Procedures
+-- 
+-- **************************************************************
+id-E2setup									ProcedureCode ::= 1
+id-ErrorIndication							ProcedureCode ::= 2
+id-Reset									ProcedureCode ::= 3
+id-RICcontrol								ProcedureCode ::= 4
+id-RICindication							ProcedureCode ::= 5
+id-RICserviceQuery							ProcedureCode ::= 6
+id-RICserviceUpdate							ProcedureCode ::= 7
+id-RICsubscription							ProcedureCode ::= 8
+id-RICsubscriptionDelete					ProcedureCode ::= 9
+id-E2nodeConfigurationUpdate				ProcedureCode ::= 10
+id-E2connectionUpdate						ProcedureCode ::= 11
+id-RICsubscriptionDeleteRequired			ProcedureCode ::= 12
+id-E2removal								ProcedureCode ::= 13
+
+-- **************************************************************
+--
+-- Extension constants
+--
+-- **************************************************************
+
+maxProtocolIEs								INTEGER ::= 65535
+
+
+-- **************************************************************
+--
+-- Lists
+-- 
+-- **************************************************************
+maxnoofErrors								INTEGER ::= 256
+maxofE2nodeComponents						INTEGER ::= 1024
+maxofRANfunctionID							INTEGER ::= 256
+maxofRICactionID							INTEGER ::= 16
+maxofTNLA									INTEGER ::= 32
+maxofRICrequestID							INTEGER ::= 4294967295
+
+
+-- **************************************************************
+--
+-- IEs
+-- 
+-- **************************************************************
+id-Cause									ProtocolIE-ID ::= 1
+id-CriticalityDiagnostics					ProtocolIE-ID ::= 2
+id-GlobalE2node-ID							ProtocolIE-ID ::= 3
+id-GlobalRIC-ID								ProtocolIE-ID ::= 4
+id-RANfunctionID   							ProtocolIE-ID ::= 5
+id-RANfunctionID-Item   					ProtocolIE-ID ::= 6
+id-RANfunctionIEcause-Item					ProtocolIE-ID ::= 7
+id-RANfunction-Item							ProtocolIE-ID ::= 8
+id-RANfunctionsAccepted						ProtocolIE-ID ::= 9
+id-RANfunctionsAdded						ProtocolIE-ID ::= 10
+id-RANfunctionsDeleted						ProtocolIE-ID ::= 11
+id-RANfunctionsModified						ProtocolIE-ID ::= 12
+id-RANfunctionsRejected						ProtocolIE-ID ::= 13
+id-RICaction-Admitted-Item					ProtocolIE-ID ::= 14
+id-RICactionID								ProtocolIE-ID ::= 15
+id-RICaction-NotAdmitted-Item				ProtocolIE-ID ::= 16
+id-RICactions-Admitted						ProtocolIE-ID ::= 17
+id-RICactions-NotAdmitted					ProtocolIE-ID ::= 18
+id-RICaction-ToBeSetup-Item					ProtocolIE-ID ::= 19
+id-RICcallProcessID							ProtocolIE-ID ::= 20
+id-RICcontrolAckRequest						ProtocolIE-ID ::= 21
+id-RICcontrolHeader							ProtocolIE-ID ::= 22
+id-RICcontrolMessage						ProtocolIE-ID ::= 23
+id-RICcontrolStatus							ProtocolIE-ID ::= 24
+id-RICindicationHeader						ProtocolIE-ID ::= 25
+id-RICindicationMessage						ProtocolIE-ID ::= 26
+id-RICindicationSN							ProtocolIE-ID ::= 27
+id-RICindicationType						ProtocolIE-ID ::= 28
+id-RICrequestID								ProtocolIE-ID ::= 29
+id-RICsubscriptionDetails					ProtocolIE-ID ::= 30
+id-TimeToWait								ProtocolIE-ID ::= 31
+id-RICcontrolOutcome						ProtocolIE-ID ::= 32
+id-E2nodeComponentConfigUpdate				ProtocolIE-ID ::= 33
+id-E2nodeComponentConfigUpdate-Item			ProtocolIE-ID ::= 34
+id-E2nodeComponentConfigUpdateAck			ProtocolIE-ID ::= 35
+id-E2nodeComponentConfigUpdateAck-Item		ProtocolIE-ID ::= 36
+id-E2connectionSetup						ProtocolIE-ID ::= 39
+id-E2connectionSetupFailed					ProtocolIE-ID ::= 40
+id-E2connectionSetupFailed-Item				ProtocolIE-ID ::= 41
+id-E2connectionFailed-Item					ProtocolIE-ID ::= 42
+id-E2connectionUpdate-Item					ProtocolIE-ID ::= 43
+id-E2connectionUpdateAdd					ProtocolIE-ID ::= 44
+id-E2connectionUpdateModify					ProtocolIE-ID ::= 45
+id-E2connectionUpdateRemove					ProtocolIE-ID ::= 46
+id-E2connectionUpdateRemove-Item			ProtocolIE-ID ::= 47
+id-TNLinformation							ProtocolIE-ID ::= 48
+id-TransactionID							ProtocolIE-ID ::= 49
+id-E2nodeComponentConfigAddition			ProtocolIE-ID ::= 50
+id-E2nodeComponentConfigAddition-Item		ProtocolIE-ID ::= 51
+id-E2nodeComponentConfigAdditionAck			ProtocolIE-ID ::= 52
+id-E2nodeComponentConfigAdditionAck-Item	ProtocolIE-ID ::= 53
+id-E2nodeComponentConfigRemoval				ProtocolIE-ID ::= 54
+id-E2nodeComponentConfigRemoval-Item		ProtocolIE-ID ::= 55
+id-E2nodeComponentConfigRemovalAck			ProtocolIE-ID ::= 56
+id-E2nodeComponentConfigRemovalAck-Item		ProtocolIE-ID ::= 57
+id-E2nodeTNLassociationRemoval				ProtocolIE-ID ::= 58
+id-E2nodeTNLassociationRemoval-Item			ProtocolIE-ID ::= 59
+id-RICsubscriptionToBeRemoved				ProtocolIE-ID ::= 60
+id-RICsubscription-withCause-Item			ProtocolIE-ID ::= 61
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+E2AP-PROTOCOL-IES ::= CLASS {
+	&id				ProtocolIE-ID					UNIQUE,
+	&criticality	Criticality,
+	&Value,
+	&presence		Presence
+}
+WITH SYNTAX {
+	ID				&id
+	CRITICALITY		&criticality
+	TYPE			&Value
+	PRESENCE		&presence
+}
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+E2AP-PROTOCOL-IES-PAIR ::= CLASS {
+	&id					ProtocolIE-ID				UNIQUE,
+	&firstCriticality	Criticality,
+	&FirstValue,
+	&secondCriticality	Criticality,
+	&SecondValue,
+	&presence			Presence
+}
+WITH SYNTAX {
+	ID						&id
+	FIRST CRITICALITY		&firstCriticality
+	FIRST TYPE				&FirstValue
+	SECOND CRITICALITY		&secondCriticality
+	SECOND TYPE				&SecondValue
+	PRESENCE				&presence
+}
+
+
+
+
+-- **************************************************************
+--
+-- Container for Protocol IEs
+--
+-- **************************************************************
+
+ProtocolIE-Container {E2AP-PROTOCOL-IES : IEsSetParam} ::= 
+	SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+	ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-SingleContainer {E2AP-PROTOCOL-IES : IEsSetParam} ::= 
+	ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Field {E2AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
+	id				E2AP-PROTOCOL-IES.&id				({IEsSetParam}),
+	criticality		E2AP-PROTOCOL-IES.&criticality		({IEsSetParam}{@id}),
+	value			E2AP-PROTOCOL-IES.&Value			({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Protocol IE Pairs
+--
+-- **************************************************************
+
+ProtocolIE-ContainerPair {E2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= 
+	SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+	ProtocolIE-FieldPair {{IEsSetParam}}
+
+ProtocolIE-FieldPair {E2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE {
+	id					E2AP-PROTOCOL-IES-PAIR.&id					({IEsSetParam}),
+	firstCriticality	E2AP-PROTOCOL-IES-PAIR.&firstCriticality	({IEsSetParam}{@id}),
+	firstValue			E2AP-PROTOCOL-IES-PAIR.&FirstValue			({IEsSetParam}{@id}),
+	secondCriticality	E2AP-PROTOCOL-IES-PAIR.&secondCriticality	({IEsSetParam}{@id}),
+	secondValue			E2AP-PROTOCOL-IES-PAIR.&SecondValue			({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container Lists for Protocol IE Containers
+--
+-- **************************************************************
+
+ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, E2AP-PROTOCOL-IES : IEsSetParam} ::=
+	SEQUENCE (SIZE (lowerBound..upperBound)) OF
+	ProtocolIE-SingleContainer {{IEsSetParam}}
+
+ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, E2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+	SEQUENCE (SIZE (lowerBound..upperBound)) OF
+	ProtocolIE-ContainerPair {{IEsSetParam}}
+
+-- A
+
+-- **************************************************************
+-- [New for E2AP v02.00] copied from 3GPP 38.413 (NGAP) IEs 
+-- **************************************************************
+AMFName ::= PrintableString (SIZE(1..150, ...))
+
+-- B
+-- C
+Cause ::= CHOICE {
+	ricRequest			CauseRICrequest,
+	ricService			CauseRICservice,
+	e2Node				CauseE2node,
+	transport			CauseTransport,
+	protocol			CauseProtocol,
+	misc				CauseMisc,
+	...
+}
+
+CauseE2node ::= ENUMERATED {
+	e2node-component-unknown,
+	...
+}
+
+CauseMisc ::= ENUMERATED {
+	control-processing-overload,
+	hardware-failure,
+	om-intervention,
+	unspecified,
+	...
+}
+
+CauseProtocol ::= ENUMERATED {
+	transfer-syntax-error,
+	abstract-syntax-error-reject,
+	abstract-syntax-error-ignore-and-notify,
+	message-not-compatible-with-receiver-state,
+	semantic-error,
+	abstract-syntax-error-falsely-constructed-message,
+	unspecified,
+	...
+}
+
+CauseRICrequest ::= ENUMERATED {
+	ran-function-id-invalid, 
+	action-not-supported, 
+	excessive-actions,
+	duplicate-action, 
+	duplicate-event-trigger,
+	function-resource-limit, 
+	request-id-unknown, 
+	inconsistent-action-subsequent-action-sequence, 
+	control-message-invalid, 
+	ric-call-process-id-invalid,
+	control-timer-expired,
+	control-failed-to-execute,
+	system-not-ready,
+	unspecified,
+	...
+}
+
+CauseRICservice ::= ENUMERATED{
+	ran-function-not-supported, 
+	excessive-functions, 
+	ric-resource-limit,
+	...
+}
+CauseTransport ::= ENUMERATED {
+	unspecified,
+	transport-resource-unavailable,
+	...
+}
+
+-- **************************************************************
+-- copied from 3GPP 38.413 (NGAP) IEs 
+-- note: ie-Extensions removed
+-- **************************************************************
+CriticalityDiagnostics ::= SEQUENCE {
+	procedureCode					ProcedureCode							OPTIONAL,
+	triggeringMessage				TriggeringMessage						OPTIONAL,
+	procedureCriticality			Criticality								OPTIONAL,
+	ricRequestorID					RICrequestID							OPTIONAL,
+	iEsCriticalityDiagnostics		CriticalityDiagnostics-IE-List			OPTIONAL,
+	...
+}
+
+CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE(1..maxnoofErrors)) OF CriticalityDiagnostics-IE-Item
+
+CriticalityDiagnostics-IE-Item ::= SEQUENCE {
+	iECriticality		Criticality,
+	iE-ID				ProtocolIE-ID,
+	typeOfError			TypeOfError,
+	...
+}
+
+-- D
+-- E
+
+-- Following IE used to carry 3GPP defined SETUP and RAN Configuration messages defined in F1AP, E1AP, XnAP, etc.
+E2nodeComponentConfiguration ::= SEQUENCE{
+	e2nodeComponentRequestPart		OCTET STRING,
+	e2nodeComponentResponsePart		OCTET STRING,
+	...
+}
+
+E2nodeComponentConfigurationAck ::= SEQUENCE{
+	updateOutcome		ENUMERATED {success, failure, ...},
+	failureCause		Cause			OPTIONAL,
+	...
+}
+
+E2nodeComponentInterfaceType ::= ENUMERATED {ng, xn, e1, f1, w1, s1, x2,...}
+
+E2nodeComponentID ::= CHOICE{
+	e2nodeComponentInterfaceTypeNG	E2nodeComponentInterfaceNG,
+	e2nodeComponentInterfaceTypeXn	E2nodeComponentInterfaceXn,
+	e2nodeComponentInterfaceTypeE1	E2nodeComponentInterfaceE1,
+	e2nodeComponentInterfaceTypeF1	E2nodeComponentInterfaceF1,
+	e2nodeComponentInterfaceTypeW1	E2nodeComponentInterfaceW1,
+	e2nodeComponentInterfaceTypeS1	E2nodeComponentInterfaceS1,
+	e2nodeComponentInterfaceTypeX2	E2nodeComponentInterfaceX2,
+	...
+}
+
+E2nodeComponentInterfaceE1 ::= SEQUENCE{
+	gNB-CU-CP-ID		GNB-CU-UP-ID,
+	...
+}
+
+E2nodeComponentInterfaceF1 ::= SEQUENCE{
+	gNB-DU-ID			GNB-DU-ID,
+	...
+}
+
+E2nodeComponentInterfaceNG ::= SEQUENCE{
+	amf-name			AMFName,
+	...
+}
+
+E2nodeComponentInterfaceS1 ::= SEQUENCE{
+	mme-name			MMEname,
+	...
+}
+
+E2nodeComponentInterfaceX2 ::= SEQUENCE{
+	global-eNB-ID		GlobalENB-ID	OPTIONAL,
+	global-en-gNB-ID	GlobalenGNB-ID	OPTIONAL,
+	...
+}
+
+E2nodeComponentInterfaceXn ::= SEQUENCE{
+	global-NG-RAN-Node-ID		GlobalNG-RANNode-ID,
+	...
+}
+
+E2nodeComponentInterfaceW1 ::= SEQUENCE{
+	ng-eNB-DU-ID		NGENB-DU-ID,
+	...
+}
+
+-- **************************************************************
+-- copied from 3GPP 36.423 (X2AP) IEs
+-- note: ie-Extensions removed
+-- **************************************************************
+ENB-ID ::= CHOICE {
+	macro-eNB-ID			BIT STRING (SIZE (20)),
+	home-eNB-ID				BIT STRING (SIZE (28)),
+	... ,
+	short-Macro-eNB-ID		BIT STRING (SIZE(18)),
+	long-Macro-eNB-ID		BIT STRING (SIZE(21))
+}
+-- **************************************************************
+-- copied from 3GPP 38.423 (XnAP) IEs 
+-- **************************************************************
+ENB-ID-Choice ::= CHOICE {
+	enb-ID-macro			BIT STRING (SIZE(20)),
+	enb-ID-shortmacro		BIT STRING (SIZE(18)),
+	enb-ID-longmacro		BIT STRING (SIZE(21)),
+	...
+}
+
+-- **************************************************************
+-- copied from 3GPP 36.423 (X2AP) IEs
+-- note: ie-Extensions removed
+-- Note: to avoid duplicate names with XnAP, GNB-ID renamed ENGNB-ID, GlobalGNB-ID renamed GlobalenGNB-ID
+-- **************************************************************
+ENGNB-ID ::= CHOICE {
+	gNB-ID	BIT STRING (SIZE (22..32)),
+	...
+}
+
+-- F
+-- G
+GlobalE2node-ID ::= CHOICE{
+	gNB					GlobalE2node-gNB-ID,
+	en-gNB				GlobalE2node-en-gNB-ID,
+	ng-eNB				GlobalE2node-ng-eNB-ID,
+	eNB					GlobalE2node-eNB-ID,
+	...
+}
+
+GlobalE2node-en-gNB-ID ::= SEQUENCE{
+	global-en-gNB-ID	GlobalenGNB-ID,
+	en-gNB-CU-UP-ID		GNB-CU-UP-ID	OPTIONAL,
+	en-gNB-DU-ID		GNB-DU-ID		OPTIONAL,
+	...
+}
+GlobalE2node-eNB-ID ::= SEQUENCE{
+	global-eNB-ID		GlobalENB-ID,
+	...
+}
+GlobalE2node-gNB-ID ::= SEQUENCE{
+	global-gNB-ID		GlobalgNB-ID,
+	global-en-gNB-ID	GlobalenGNB-ID	OPTIONAL,
+	gNB-CU-UP-ID		GNB-CU-UP-ID	OPTIONAL,
+	gNB-DU-ID			GNB-DU-ID		OPTIONAL,
+	...
+}
+GlobalE2node-ng-eNB-ID ::= SEQUENCE{
+	global-ng-eNB-ID	GlobalngeNB-ID,
+	global-eNB-ID		GlobalENB-ID	OPTIONAL,
+	ngENB-DU-ID			NGENB-DU-ID		OPTIONAL,
+	...
+}
+-- **************************************************************
+-- copied from 3GPP 36.423 (X2AP) IEs
+-- note: ie-Extensions removed
+-- **************************************************************
+
+GlobalENB-ID ::= SEQUENCE {
+	pLMN-Identity		PLMN-Identity,
+	eNB-ID				ENB-ID,
+	...
+}
+-- **************************************************************
+-- copied from 3GPP 36.423 (X2AP) IEs
+-- Note: to avoid duplicate names with XnAP, GNB-ID renamed ENGNB-ID, GlobalGNB-ID renamed GlobalenGNB-ID
+-- **************************************************************
+GlobalenGNB-ID ::= SEQUENCE {
+	pLMN-Identity		PLMN-Identity,
+	gNB-ID				ENGNB-ID,
+	...
+}
+-- **************************************************************
+-- copied from 3GPP 38.423 (XnAP) IEs 
+-- **************************************************************
+GlobalgNB-ID	::= SEQUENCE {
+	plmn-id				PLMN-Identity,
+	gnb-id				GNB-ID-Choice,
+	...
+}
+
+
+-- **************************************************************
+-- copied from 3GPP 38.423 (XnAP) IEs 
+-- **************************************************************
+GlobalngeNB-ID	::= SEQUENCE {
+	plmn-id			PLMN-Identity,
+	enb-id			ENB-ID-Choice,
+	...
+}
+
+-- **************************************************************
+-- [NEW for E2AP v02.00] copied from 3GPP 38.423 (XnAP) IEs 
+-- Note: extension field removed
+-- **************************************************************
+
+GlobalNG-RANNode-ID ::= CHOICE {
+	gNB						GlobalgNB-ID,
+	ng-eNB					GlobalngeNB-ID,
+	...
+}
+
+GlobalRIC-ID ::= SEQUENCE{
+	pLMN-Identity			PLMN-Identity,
+	ric-ID					BIT STRING (SIZE (20)),
+	...
+}
+
+-- **************************************************************
+-- copied from 3GPP 38.463 (E1AP) IEs 
+-- **************************************************************
+GNB-CU-UP-ID::= 	INTEGER (0..68719476735)
+GNB-DU-ID::= 		INTEGER (0..68719476735)
+
+-- **************************************************************
+-- copied from 3GPP 38.423 (XnAP) IEs 
+-- **************************************************************
+GNB-ID-Choice ::= CHOICE {
+	gnb-ID					BIT STRING (SIZE(22..32)),
+	...
+}
+-- H
+-- I
+-- J
+-- K
+-- L
+-- M
+
+-- **************************************************************
+-- [New for E2AP v02.00] copied from 3GPP 36.413 (S1AP) IEs
+-- **************************************************************
+MMEname ::= PrintableString (SIZE (1..150,...))
+
+-- N
+
+-- **************************************************************
+-- copied from 3GPP 37.473 (W1AP) IEs
+-- **************************************************************
+NGENB-DU-ID	::= INTEGER (0..68719476735)
+
+
+-- O
+-- P
+-- **************************************************************
+-- copied from 3GPP 36.423 (X2AP) IEs
+-- **************************************************************
+PLMN-Identity ::= OCTET STRING (SIZE(3))
+
+-- Q
+-- R
+-- **************************************************************
+-- Following IE defined in E2SM
+-- **************************************************************
+RANfunctionDefinition ::= OCTET STRING
+
+RANfunctionID ::= INTEGER (0..4095)
+
+RANfunctionOID ::= PrintableString(SIZE(1..1000,...))
+
+RANfunctionRevision ::= INTEGER (0..4095)
+
+-- **************************************************************
+-- Following IE defined in E2SM
+-- **************************************************************
+RICactionDefinition ::= OCTET STRING
+
+RICactionID ::= INTEGER (0..255)
+
+RICactionType ::= ENUMERATED{
+	report,
+	insert,
+	policy,
+	...
+}
+
+-- **************************************************************
+-- Following IE defined in E2SM
+-- **************************************************************
+RICcallProcessID ::= OCTET STRING
+
+RICcontrolAckRequest ::= ENUMERATED{
+	noAck,
+	ack,
+	...
+}
+
+-- **************************************************************
+-- Following IE defined in E2SM
+-- **************************************************************
+RICcontrolHeader ::= OCTET STRING
+
+-- **************************************************************
+-- Following IE defined in E2SM
+-- **************************************************************
+RICcontrolMessage ::= OCTET STRING
+
+-- **************************************************************
+-- Following IE defined in E2SM
+-- **************************************************************
+RICcontrolOutcome ::= OCTET STRING
+
+-- **************************************************************
+-- Following IE defined in E2SM
+-- **************************************************************
+RICeventTriggerDefinition ::= OCTET STRING
+
+-- **************************************************************
+-- Following IE defined in E2SM
+-- **************************************************************
+RICindicationHeader ::= OCTET STRING
+
+-- **************************************************************
+-- Following IE defined in E2SM
+-- **************************************************************
+RICindicationMessage ::= OCTET STRING
+
+RICindicationSN ::= INTEGER (0..65535)
+
+RICindicationType ::= ENUMERATED{
+	report,
+	insert,
+	...
+}
+
+RICrequestID ::= SEQUENCE {
+	ricRequestorID				INTEGER (0..65535),
+	ricInstanceID	INTEGER (0..65535),
+	...
+}
+
+RICsubsequentAction ::=SEQUENCE{
+	ricSubsequentActionType		RICsubsequentActionType,
+	ricTimeToWait				RICtimeToWait,
+	...
+}
+
+RICsubsequentActionType ::= ENUMERATED{
+	continue,
+	wait,
+	...
+}
+
+RICtimeToWait ::= ENUMERATED{
+	w1ms,
+	w2ms,
+	w5ms,
+	w10ms,
+	w20ms,
+	w30ms,
+	w40ms,
+	w50ms,
+	w100ms,
+	w200ms,
+	w500ms,
+	w1s,
+	w2s,
+	w5s,
+	w10s,
+	w20s,
+	w60s,
+	...
+}
+-- S
+-- T
+-- **************************************************************
+-- copied from 3GPP 38.413 (NGAP) IEs
+-- **************************************************************
+TimeToWait ::= ENUMERATED {v1s, v2s, v5s, v10s, v20s, v60s, ...}
+
+
+TNLinformation ::= SEQUENCE{
+	tnlAddress			BIT STRING (SIZE(1..160,...)),
+	tnlPort				BIT STRING (SIZE(16))	OPTIONAL,
+	...
+}
+
+TNLusage ::= ENUMERATED{ric-service, support-function, both, ...}
+
+TransactionID ::= INTEGER (0..255,...)
+
+-- **************************************************************
+-- copied from 3GPP 38.413 (NGAP) IEs
+-- **************************************************************
+TypeOfError ::= ENUMERATED {
+	not-understood,
+	missing,
+	...
+}
+
+-- U
+-- V
+-- W
+-- X
+-- Y
+-- Z
+
+-- **************************************************************
+--
+-- MESSAGES FOR NEAR-RT RIC FUNCTIONAL PROCEDURES
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- RIC Subscription Elementary Procedure
+--
+-- **************************************************************
+-- **************************************************************
+--
+-- RIC SUBSCRIPTION REQUEST
+--
+-- **************************************************************
+RICsubscriptionRequest ::= SEQUENCE {
+	protocolIEs					ProtocolIE-Container	{{RICsubscriptionRequest-IEs}},
+	...
+}
+
+RICsubscriptionRequest-IEs E2AP-PROTOCOL-IES ::= {
+	{ ID id-RICrequestID				CRITICALITY reject	TYPE RICrequestID					PRESENCE mandatory}|
+	{ ID id-RANfunctionID				CRITICALITY reject	TYPE RANfunctionID					PRESENCE mandatory}|
+	{ ID id-RICsubscriptionDetails		CRITICALITY reject	TYPE RICsubscriptionDetails			PRESENCE mandatory},
+	...
+}
+
+
+RICsubscriptionDetails ::= SEQUENCE {
+	ricEventTriggerDefinition	RICeventTriggerDefinition,
+	ricAction-ToBeSetup-List	RICactions-ToBeSetup-List,
+	...
+}
+
+RICactions-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxofRICactionID)) OF ProtocolIE-SingleContainer { {RICaction-ToBeSetup-ItemIEs} }
+
+RICaction-ToBeSetup-ItemIEs 	E2AP-PROTOCOL-IES ::= {
+	{ ID id-RICaction-ToBeSetup-Item	CRITICALITY ignore 	TYPE RICaction-ToBeSetup-Item 	PRESENCE mandatory },
+	...
+}
+
+RICaction-ToBeSetup-Item ::= SEQUENCE {
+	ricActionID					RICactionID,
+	ricActionType				RICactionType,
+	ricActionDefinition			RICactionDefinition 	OPTIONAL,
+	ricSubsequentAction			RICsubsequentAction 	OPTIONAL,
+	...
+}
+
+-- **************************************************************
+--
+-- RIC SUBSCRIPTION RESPONSE
+--
+-- **************************************************************
+RICsubscriptionResponse ::= SEQUENCE {
+	protocolIEs					ProtocolIE-Container{{RICsubscriptionResponse-IEs}},
+	...
+}
+
+RICsubscriptionResponse-IEs E2AP-PROTOCOL-IES ::= {
+	{ ID id-RICrequestID				CRITICALITY reject		TYPE RICrequestID				PRESENCE mandatory } |
+	{ ID id-RANfunctionID				CRITICALITY reject		TYPE RANfunctionID				PRESENCE mandatory } |
+	{ ID id-RICactions-Admitted			CRITICALITY reject		TYPE RICaction-Admitted-List	PRESENCE mandatory } |
+	{ ID id-RICactions-NotAdmitted		CRITICALITY reject		TYPE RICaction-NotAdmitted-List	PRESENCE optional },
+	...	
+}
+
+
+
+RICaction-Admitted-List ::= SEQUENCE (SIZE(1..maxofRICactionID)) OF ProtocolIE-SingleContainer{{RICaction-Admitted-ItemIEs}}
+
+RICaction-Admitted-ItemIEs E2AP-PROTOCOL-IES ::= {
+	{ ID id-RICaction-Admitted-Item		CRITICALITY ignore		TYPE RICaction-Admitted-Item	PRESENCE mandatory },
+	...
+}
+
+RICaction-Admitted-Item ::= SEQUENCE {
+	ricActionID					RICactionID,
+	...
+}
+
+RICaction-NotAdmitted-List ::= SEQUENCE (SIZE(0..maxofRICactionID)) OF ProtocolIE-SingleContainer { {RICaction-NotAdmitted-ItemIEs} }
+
+RICaction-NotAdmitted-ItemIEs E2AP-PROTOCOL-IES ::= {
+	{ ID id-RICaction-NotAdmitted-Item	CRITICALITY ignore	TYPE RICaction-NotAdmitted-Item		PRESENCE mandatory },
+	...
+}
+
+RICaction-NotAdmitted-Item ::= SEQUENCE {
+	ricActionID					RICactionID,
+	cause						Cause,
+	...
+}
+
+-- **************************************************************
+--
+-- RIC SUBSCRIPTION FAILURE
+--
+-- **************************************************************
+RICsubscriptionFailure ::= SEQUENCE {
+	protocolIEs					ProtocolIE-Container	{{RICsubscriptionFailure-IEs}},
+	...
+}
+
+RICsubscriptionFailure-IEs E2AP-PROTOCOL-IES ::= {
+	{ ID id-RICrequestID				CRITICALITY reject	TYPE RICrequestID					PRESENCE mandatory	}|
+	{ ID id-RANfunctionID				CRITICALITY reject	TYPE RANfunctionID					PRESENCE mandatory	}|
+	{ ID id-Cause		CRITICALITY reject	TYPE Cause		PRESENCE mandatory	}|
+	{ ID id-CriticalityDiagnostics		CRITICALITY ignore	TYPE CriticalityDiagnostics			PRESENCE optional	},	
+	...
+}
+
+-- **************************************************************
+--
+-- RIC Subscription Delete Elementary Procedure
+--
+-- **************************************************************
+-- **************************************************************
+--
+-- RIC SUBSCRIPTION DELETE REQUEST
+--
+-- **************************************************************
+RICsubscriptionDeleteRequest ::= SEQUENCE {
+	protocolIEs					ProtocolIE-Container	{{RICsubscriptionDeleteRequest-IEs}},
+	...
+}
+
+RICsubscriptionDeleteRequest-IEs E2AP-PROTOCOL-IES ::= {
+	{ ID id-RICrequestID				CRITICALITY reject	TYPE RICrequestID					PRESENCE mandatory	}|
+	{ ID id-RANfunctionID				CRITICALITY reject	TYPE RANfunctionID					PRESENCE mandatory	},	
+	...
+}
+
+-- **************************************************************
+--
+-- RIC SUBSCRIPTION DELETE RESPONSE
+--
+-- **************************************************************
+RICsubscriptionDeleteResponse ::= SEQUENCE {
+	protocolIEs					ProtocolIE-Container	{{RICsubscriptionDeleteResponse-IEs}},
+	...
+}
+
+RICsubscriptionDeleteResponse-IEs E2AP-PROTOCOL-IES ::= {
+	{ ID id-RICrequestID				CRITICALITY reject	TYPE RICrequestID					PRESENCE mandatory	}|
+	{ ID id-RANfunctionID				CRITICALITY reject	TYPE RANfunctionID					PRESENCE mandatory	},	
+	...
+}
+-- **************************************************************
+--
+-- RIC SUBSCRIPTION DELETE FAILURE
+--
+-- **************************************************************
+RICsubscriptionDeleteFailure ::= SEQUENCE {
+	protocolIEs					ProtocolIE-Container	{{RICsubscriptionDeleteFailure-IEs}},
+	...
+}
+
+RICsubscriptionDeleteFailure-IEs E2AP-PROTOCOL-IES ::= {
+	{ ID id-RICrequestID				CRITICALITY reject	TYPE RICrequestID					PRESENCE mandatory	}|
+	{ ID id-RANfunctionID				CRITICALITY reject	TYPE RANfunctionID					PRESENCE mandatory	}|
+	{ ID id-Cause						CRITICALITY ignore	TYPE Cause							PRESENCE mandatory	}|
+	{ ID id-CriticalityDiagnostics		CRITICALITY ignore	TYPE CriticalityDiagnostics			PRESENCE optional	},	
+	...
+}
+
+-- **************************************************************
+--
+-- RIC Subscription Delete Required Elementary Procedure
+--
+-- **************************************************************
+-- **************************************************************
+--
+-- RIC SUBSCRIPTION DELETE REQUIRED
+--
+-- **************************************************************
+
+RICsubscriptionDeleteRequired ::= SEQUENCE {
+	protocolIEs					ProtocolIE-Container	{{RICsubscriptionDeleteRequired-IEs}},
+	...
+}
+
+RICsubscriptionDeleteRequired-IEs E2AP-PROTOCOL-IES ::= {
+	{ ID id-RICsubscriptionToBeRemoved		CRITICALITY ignore	TYPE RICsubscription-List-withCause	PRESENCE mandatory	},	
+	...
+}
+
+RICsubscription-List-withCause ::= SEQUENCE (SIZE(1..maxofRICrequestID)) OF ProtocolIE-SingleContainer { {RICsubscription-withCause-ItemIEs} }
+
+RICsubscription-withCause-ItemIEs	E2AP-PROTOCOL-IES ::= {
+	{ ID id-RICsubscription-withCause-Item	CRITICALITY ignore 	TYPE RICsubscription-withCause-Item 	PRESENCE mandatory	},
+	...
+}
+
+RICsubscription-withCause-Item ::= SEQUENCE {
+	ricRequestID				RICrequestID,
+	ranFunctionID  				RANfunctionID,
+	cause						Cause,
+	...
+}
+
+-- **************************************************************
+--
+-- RIC Indication Elementary Procedure
+--
+-- **************************************************************
+-- **************************************************************
+--
+-- RIC INDICATION
+--
+-- **************************************************************
+RICindication ::= SEQUENCE {
+	protocolIEs					ProtocolIE-Container	{{RICindication-IEs}},
+	...
+}
+
+RICindication-IEs E2AP-PROTOCOL-IES ::= {
+	{ ID id-RICrequestID				CRITICALITY reject	TYPE RICrequestID					PRESENCE mandatory	}|
+	{ ID id-RANfunctionID				CRITICALITY reject	TYPE RANfunctionID					PRESENCE mandatory	}|
+	{ ID id-RICactionID					CRITICALITY reject	TYPE RICactionID					PRESENCE mandatory	}|
+	{ ID id-RICindicationSN				CRITICALITY reject	TYPE RICindicationSN				PRESENCE optional	}|
+	{ ID id-RICindicationType			CRITICALITY reject	TYPE RICindicationType  			PRESENCE mandatory	}|
+	{ ID id-RICindicationHeader			CRITICALITY reject	TYPE RICindicationHeader			PRESENCE mandatory	}|
+	{ ID id-RICindicationMessage		CRITICALITY reject	TYPE RICindicationMessage			PRESENCE mandatory	}|
+	{ ID id-RICcallProcessID			CRITICALITY reject	TYPE RICcallProcessID				PRESENCE optional	},
+	...
+}
+
+-- **************************************************************
+--
+-- RIC Control Elementary Procedure
+--
+-- **************************************************************
+-- **************************************************************
+--
+-- RIC CONTROL REQUEST
+--
+-- **************************************************************
+RICcontrolRequest ::= SEQUENCE {
+	protocolIEs					ProtocolIE-Container	{{RICcontrolRequest-IEs}},
+	...
+}
+
+RICcontrolRequest-IEs E2AP-PROTOCOL-IES ::= {
+	{ ID id-RICrequestID				CRITICALITY reject	TYPE RICrequestID					PRESENCE mandatory	}|
+	{ ID id-RANfunctionID				CRITICALITY reject	TYPE RANfunctionID					PRESENCE mandatory	}|
+	{ ID id-RICcallProcessID			CRITICALITY reject	TYPE RICcallProcessID				PRESENCE optional	}|
+	{ ID id-RICcontrolHeader			CRITICALITY reject	TYPE RICcontrolHeader				PRESENCE mandatory	}|
+	{ ID id-RICcontrolMessage			CRITICALITY reject	TYPE RICcontrolMessage				PRESENCE mandatory	}|
+	{ ID id-RICcontrolAckRequest		CRITICALITY reject	TYPE RICcontrolAckRequest			PRESENCE optional	},
+	...
+}
+-- **************************************************************
+--
+-- RIC CONTROL ACKNOWLEDGE
+--
+-- **************************************************************
+RICcontrolAcknowledge ::= SEQUENCE {
+	protocolIEs					ProtocolIE-Container	{{RICcontrolAcknowledge-IEs}},
+	...
+}
+
+RICcontrolAcknowledge-IEs E2AP-PROTOCOL-IES ::= {
+	{ ID id-RICrequestID				CRITICALITY reject	TYPE RICrequestID					PRESENCE mandatory	}|
+	{ ID id-RANfunctionID				CRITICALITY reject	TYPE RANfunctionID					PRESENCE mandatory	}|
+	{ ID id-RICcallProcessID			CRITICALITY reject	TYPE RICcallProcessID				PRESENCE optional	}|
+	{ ID id-RICcontrolOutcome			CRITICALITY reject	TYPE RICcontrolOutcome				PRESENCE optional	},
+	...
+}
+-- **************************************************************
+--
+-- RIC CONTROL FAILURE
+--
+-- **************************************************************
+RICcontrolFailure ::= SEQUENCE {
+	protocolIEs					ProtocolIE-Container	{{RICcontrolFailure-IEs}},
+	...
+}
+
+RICcontrolFailure-IEs E2AP-PROTOCOL-IES ::= {
+	{ ID id-RICrequestID				CRITICALITY reject	TYPE RICrequestID					PRESENCE mandatory	}|
+	{ ID id-RANfunctionID				CRITICALITY reject	TYPE RANfunctionID					PRESENCE mandatory	}|
+	{ ID id-RICcallProcessID			CRITICALITY reject	TYPE RICcallProcessID				PRESENCE optional	}|
+	{ ID id-Cause						CRITICALITY ignore	TYPE Cause							PRESENCE mandatory	}|
+	{ ID id-RICcontrolOutcome			CRITICALITY reject	TYPE RICcontrolOutcome				PRESENCE optional	},
+	...
+}
+
+-- **************************************************************
+--
+-- MESSAGES FOR GLOBAL PROCEDURES
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Error Indication Elementary Procedure
+--
+-- **************************************************************
+-- **************************************************************
+--
+-- ERROR INDICATION
+--
+-- **************************************************************
+ErrorIndication ::= SEQUENCE {
+	protocolIEs					ProtocolIE-Container	{{ErrorIndication-IEs}},
+	...
+}
+
+ErrorIndication-IEs E2AP-PROTOCOL-IES ::= {
+	{ ID id-TransactionID				CRITICALITY reject	TYPE TransactionID				PRESENCE optional	}|
+	{ ID id-RICrequestID				CRITICALITY reject	TYPE RICrequestID				PRESENCE optional	}|
+	{ ID id-RANfunctionID				CRITICALITY reject	TYPE RANfunctionID				PRESENCE optional	}|
+	{ ID id-Cause						CRITICALITY ignore	TYPE Cause						PRESENCE optional	}|
+	{ ID id-CriticalityDiagnostics		CRITICALITY ignore	TYPE CriticalityDiagnostics		PRESENCE optional	},	
+	...
+}
+
+-- **************************************************************
+--
+-- E2 Setup Elementary Procedure
+--
+-- **************************************************************
+-- **************************************************************
+--
+-- E2 SETUP REQUEST
+--
+-- **************************************************************
+
+-- E2 Setup Elementary Procedure
+--
+-- **************************************************************
+-- **************************************************************
+--
+-- E2 SETUP REQUEST
+--
+-- **************************************************************
+
+E2setupRequest ::= SEQUENCE {
+	protocolIEs		ProtocolIE-Container		{ {E2setupRequestIEs} },
+	...
+}
+
+E2setupRequestIEs E2AP-PROTOCOL-IES ::= {
+	{ ID id-TransactionID					CRITICALITY reject	TYPE TransactionID						PRESENCE mandatory	}|
+	{ ID id-GlobalE2node-ID					CRITICALITY reject	TYPE GlobalE2node-ID				PRESENCE mandatory	}|
+	{ ID id-RANfunctionsAdded				CRITICALITY reject	TYPE RANfunctions-List				PRESENCE mandatory	}|
+	{ ID id-E2nodeComponentConfigAddition	CRITICALITY reject	TYPE E2nodeComponentConfigAddition-List	PRESENCE mandatory	},
+	...
+}
+
+-- **************************************************************
+--
+-- E2 SETUP RESPONSE
+--
+-- **************************************************************
+
+E2setupResponse ::= SEQUENCE {
+	protocolIEs		ProtocolIE-Container		{ {E2setupResponseIEs} },
+	...
+}
+
+E2setupResponseIEs E2AP-PROTOCOL-IES ::= {
+	{ ID id-TransactionID						CRITICALITY reject	TYPE TransactionID							PRESENCE mandatory	}|
+	{ ID id-GlobalRIC-ID						CRITICALITY reject	TYPE GlobalRIC-ID							PRESENCE mandatory	}|
+	{ ID id-RANfunctionsAccepted				CRITICALITY reject	TYPE RANfunctionsID-List					PRESENCE optional	}|
+	{ ID id-RANfunctionsRejected				CRITICALITY reject	TYPE RANfunctionsIDcause-List				PRESENCE optional	}|
+	{ ID id-E2nodeComponentConfigAdditionAck	CRITICALITY reject	TYPE E2nodeComponentConfigAdditionAck-List	PRESENCE mandatory	},
+	...
+}
+
+-- **************************************************************
+--
+-- E2 SETUP FAILURE
+--
+-- **************************************************************
+
+E2setupFailure ::= SEQUENCE {
+	protocolIEs		ProtocolIE-Container		{ {E2setupFailureIEs} },
+	...
+}
+
+E2setupFailureIEs E2AP-PROTOCOL-IES ::= {
+	{ ID id-TransactionID				CRITICALITY reject	TYPE TransactionID				PRESENCE mandatory	}|
+	{ ID id-Cause						CRITICALITY ignore	TYPE Cause						PRESENCE mandatory	}|
+	{ ID id-TimeToWait					CRITICALITY ignore	TYPE TimeToWait					PRESENCE optional	}|
+	{ ID id-CriticalityDiagnostics		CRITICALITY ignore	TYPE CriticalityDiagnostics		PRESENCE optional	}|
+	{ ID id-TNLinformation				CRITICALITY ignore	TYPE TNLinformation				PRESENCE optional	},
+	...
+}
+
+
+-- **************************************************************
+--
+-- E2 Node Configuration Update Elementary Procedure
+--
+-- **************************************************************
+-- **************************************************************
+--
+-- E2 NODE CONFIGURATION UPDATE
+--
+-- **************************************************************
+E2nodeConfigurationUpdate ::= SEQUENCE {
+	protocolIEs					ProtocolIE-Container	{{E2nodeConfigurationUpdate-IEs}},
+	...
+}
+
+E2nodeConfigurationUpdate-IEs E2AP-PROTOCOL-IES ::= {
+	{ ID id-TransactionID					CRITICALITY reject	TYPE TransactionID								PRESENCE mandatory	}|
+	{ ID id-GlobalE2node-ID					CRITICALITY reject	TYPE GlobalE2node-ID							PRESENCE optional	}|
+	{ ID id-E2nodeComponentConfigAddition	CRITICALITY reject	TYPE E2nodeComponentConfigAddition-List			PRESENCE optional	}|
+	{ ID id-E2nodeComponentConfigUpdate		CRITICALITY reject	TYPE E2nodeComponentConfigUpdate-List			PRESENCE optional	}|
+	{ ID id-E2nodeComponentConfigRemoval	CRITICALITY reject	TYPE E2nodeComponentConfigRemoval-List			PRESENCE optional	}|
+	{ ID id-E2nodeTNLassociationRemoval		CRITICALITY reject	TYPE E2nodeTNLassociationRemoval-List			PRESENCE optional	},
+	...
+}
+
+E2nodeComponentConfigAddition-List ::= SEQUENCE (SIZE(1..maxofE2nodeComponents)) OF ProtocolIE-SingleContainer { {E2nodeComponentConfigAddition-ItemIEs} }
+
+E2nodeComponentConfigAddition-ItemIEs 	E2AP-PROTOCOL-IES ::= {
+	{ ID id-E2nodeComponentConfigAddition-Item	CRITICALITY reject 	TYPE E2nodeComponentConfigAddition-Item 		PRESENCE mandatory	},
+	...
+}
+
+E2nodeComponentConfigAddition-Item ::= SEQUENCE {
+	e2nodeComponentInterfaceType		E2nodeComponentInterfaceType,
+	e2nodeComponentID					E2nodeComponentID,
+	e2nodeComponentConfiguration		E2nodeComponentConfiguration,
+	...
+}
+
+E2nodeComponentConfigUpdate-List ::= SEQUENCE (SIZE(1..maxofE2nodeComponents)) OF ProtocolIE-SingleContainer { {E2nodeComponentConfigUpdate-ItemIEs} }
+
+E2nodeComponentConfigUpdate-ItemIEs 	E2AP-PROTOCOL-IES ::= {
+	{ ID id-E2nodeComponentConfigUpdate-Item	CRITICALITY reject 	TYPE E2nodeComponentConfigUpdate-Item 		PRESENCE mandatory	},
+	...
+}
+
+E2nodeComponentConfigUpdate-Item ::= SEQUENCE {
+	e2nodeComponentInterfaceType		E2nodeComponentInterfaceType,
+	e2nodeComponentID					E2nodeComponentID,
+	e2nodeComponentConfiguration		E2nodeComponentConfiguration,
+	...
+}
+
+E2nodeComponentConfigRemoval-List ::= SEQUENCE (SIZE(1..maxofE2nodeComponents)) OF ProtocolIE-SingleContainer { {E2nodeComponentConfigRemoval-ItemIEs} }
+
+E2nodeComponentConfigRemoval-ItemIEs 	E2AP-PROTOCOL-IES ::= {
+	{ ID id-E2nodeComponentConfigRemoval-Item	CRITICALITY reject 	TYPE E2nodeComponentConfigRemoval-Item 		PRESENCE mandatory	},
+	...
+}
+
+E2nodeComponentConfigRemoval-Item ::= SEQUENCE {
+	e2nodeComponentInterfaceType		E2nodeComponentInterfaceType,
+	e2nodeComponentID					E2nodeComponentID,
+	...
+}
+
+E2nodeTNLassociationRemoval-List ::= SEQUENCE (SIZE(1..maxofTNLA)) OF ProtocolIE-SingleContainer { {E2nodeTNLassociationRemoval-ItemIEs} }
+
+E2nodeTNLassociationRemoval-ItemIEs 	E2AP-PROTOCOL-IES ::= {
+	{ ID id-E2nodeTNLassociationRemoval-Item	CRITICALITY reject 	TYPE E2nodeTNLassociationRemoval-Item 		PRESENCE mandatory	},
+	...
+}
+
+E2nodeTNLassociationRemoval-Item ::= SEQUENCE {
+	tnlInformation						TNLinformation,
+	tnlInformationRIC					TNLinformation,
+	...
+}
+
+-- **************************************************************
+--
+-- E2 NODE CONFIGURATION UPDATE ACKNOWLEDGE
+--
+-- **************************************************************
+E2nodeConfigurationUpdateAcknowledge ::= SEQUENCE {
+	protocolIEs					ProtocolIE-Container	{{E2nodeConfigurationUpdateAcknowledge-IEs}},
+	...
+}
+
+E2nodeConfigurationUpdateAcknowledge-IEs E2AP-PROTOCOL-IES ::= {
+	{ ID id-TransactionID							CRITICALITY reject	TYPE TransactionID								PRESENCE mandatory	}|
+	{ ID id-E2nodeComponentConfigAdditionAck		CRITICALITY reject	TYPE E2nodeComponentConfigAdditionAck-List		PRESENCE optional	}|
+	{ ID id-E2nodeComponentConfigUpdateAck			CRITICALITY reject	TYPE E2nodeComponentConfigUpdateAck-List		PRESENCE optional	}|
+	{ ID id-E2nodeComponentConfigRemovalAck			CRITICALITY reject	TYPE E2nodeComponentConfigRemovalAck-List		PRESENCE optional	},
+	...
+}
+
+E2nodeComponentConfigAdditionAck-List ::= SEQUENCE (SIZE(1..maxofE2nodeComponents)) OF ProtocolIE-SingleContainer { {E2nodeComponentConfigAdditionAck-ItemIEs} }
+
+E2nodeComponentConfigAdditionAck-ItemIEs 	E2AP-PROTOCOL-IES ::= {
+	{ ID id-E2nodeComponentConfigAdditionAck-Item			CRITICALITY reject 	TYPE E2nodeComponentConfigAdditionAck-Item 	PRESENCE mandatory	},
+	...
+}
+
+E2nodeComponentConfigAdditionAck-Item ::= SEQUENCE {
+	e2nodeComponentInterfaceType		E2nodeComponentInterfaceType,
+	e2nodeComponentID					E2nodeComponentID,
+	e2nodeComponentConfigurationAck		E2nodeComponentConfigurationAck,
+	...
+}
+
+E2nodeComponentConfigUpdateAck-List ::= SEQUENCE (SIZE(1..maxofE2nodeComponents)) OF ProtocolIE-SingleContainer { {E2nodeComponentConfigUpdateAck-ItemIEs} }
+
+E2nodeComponentConfigUpdateAck-ItemIEs 	E2AP-PROTOCOL-IES ::= {
+	{ ID id-E2nodeComponentConfigUpdateAck-Item			CRITICALITY reject 	TYPE E2nodeComponentConfigUpdateAck-Item 	PRESENCE mandatory	},
+	...
+}
+
+E2nodeComponentConfigUpdateAck-Item ::= SEQUENCE {
+	e2nodeComponentInterfaceType		E2nodeComponentInterfaceType,
+	e2nodeComponentID					E2nodeComponentID,
+	e2nodeComponentConfigurationAck		E2nodeComponentConfigurationAck,
+	...
+}
+
+E2nodeComponentConfigRemovalAck-List ::= SEQUENCE (SIZE(1..maxofE2nodeComponents)) OF ProtocolIE-SingleContainer { {E2nodeComponentConfigRemovalAck-ItemIEs} }
+
+E2nodeComponentConfigRemovalAck-ItemIEs 	E2AP-PROTOCOL-IES ::= {
+	{ ID id-E2nodeComponentConfigRemovalAck-Item			CRITICALITY reject 	TYPE E2nodeComponentConfigRemovalAck-Item 	PRESENCE mandatory	},
+	...
+}
+
+E2nodeComponentConfigRemovalAck-Item ::= SEQUENCE {
+	e2nodeComponentInterfaceType		E2nodeComponentInterfaceType,
+	e2nodeComponentID					E2nodeComponentID,
+	e2nodeComponentConfigurationAck		E2nodeComponentConfigurationAck,
+	...
+}
+
+-- **************************************************************
+--
+-- E2 NODE CONFIGURATION UPDATE FAILURE
+--
+-- **************************************************************
+E2nodeConfigurationUpdateFailure ::= SEQUENCE {
+	protocolIEs			ProtocolIE-Container	{{E2nodeConfigurationUpdateFailure-IEs}},
+	...
+}
+
+E2nodeConfigurationUpdateFailure-IEs E2AP-PROTOCOL-IES ::= {
+	{ ID id-TransactionID						CRITICALITY reject	TYPE TransactionID								PRESENCE mandatory	}|
+	{ ID id-Cause								CRITICALITY ignore	TYPE Cause										PRESENCE mandatory	}|
+	{ ID id-TimeToWait							CRITICALITY ignore	TYPE TimeToWait									PRESENCE optional	}|
+	{ ID id-CriticalityDiagnostics				CRITICALITY ignore	TYPE CriticalityDiagnostics						PRESENCE optional	},
+	...
+}
+
+-- **************************************************************
+--
+-- Reset Elementary Procedure
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- RESET REQUEST
+--
+-- **************************************************************
+
+ResetRequest ::= SEQUENCE {
+	protocolIEs		ProtocolIE-Container		{ {ResetRequestIEs} },
+	...
+}
+
+ResetRequestIEs E2AP-PROTOCOL-IES ::= {
+	{ ID id-TransactionID				CRITICALITY reject	TYPE TransactionID				PRESENCE mandatory	}|
+	{ ID id-Cause						CRITICALITY ignore	TYPE Cause						PRESENCE mandatory	},
+	...
+}
+
+-- **************************************************************
+--
+-- RESET RESPONSE
+--
+-- **************************************************************
+
+ResetResponse ::= SEQUENCE {
+	protocolIEs		ProtocolIE-Container		{ {ResetResponseIEs} },
+	...
+}
+
+ResetResponseIEs E2AP-PROTOCOL-IES ::= {
+	{ ID id-TransactionID				CRITICALITY reject	TYPE TransactionID				PRESENCE mandatory	}|
+	{ ID id-CriticalityDiagnostics		CRITICALITY ignore	TYPE CriticalityDiagnostics		PRESENCE optional	},
+	...
+}
+
+RANfunctions-List ::= SEQUENCE (SIZE(1..maxofRANfunctionID)) OF ProtocolIE-SingleContainer { {RANfunction-ItemIEs} }
+
+RANfunction-ItemIEs 	E2AP-PROTOCOL-IES ::= {
+	{ ID id-RANfunction-Item			CRITICALITY ignore 	TYPE RANfunction-Item 				PRESENCE mandatory	},
+	...
+}
+
+
+RANfunction-Item ::= SEQUENCE {
+	ranFunctionID				RANfunctionID,
+	ranFunctionDefinition  		RANfunctionDefinition,
+	ranFunctionRevision			RANfunctionRevision,
+	ranFunctionOID				RANfunctionOID,
+	...
+}
+
+RANfunctionsID-List ::= SEQUENCE (SIZE(1..maxofRANfunctionID)) OF ProtocolIE-SingleContainer{{RANfunctionID-ItemIEs}}
+
+RANfunctionID-ItemIEs E2AP-PROTOCOL-IES ::= {
+	{ ID id-RANfunctionID-Item			CRITICALITY ignore		TYPE RANfunctionID-Item			PRESENCE mandatory	},
+	...
+}
+
+RANfunctionID-Item ::= SEQUENCE {
+	ranFunctionID				RANfunctionID,
+	ranFunctionRevision			RANfunctionRevision,
+	...
+}
+
+-- **************************************************************
+--
+-- RIC SERVICE UPDATE ACKNOWLEDGE
+--
+-- **************************************************************
+
+RANfunctionsIDcause-List ::= SEQUENCE (SIZE(1..maxofRANfunctionID)) OF ProtocolIE-SingleContainer { {RANfunctionIDcause-ItemIEs} }
+
+RANfunctionIDcause-ItemIEs 	E2AP-PROTOCOL-IES ::= {
+	{ ID id-RANfunctionIEcause-Item		CRITICALITY ignore 	TYPE RANfunctionIDcause-Item 		PRESENCE mandatory	},
+	...
+}
+
+
+RANfunctionIDcause-Item ::= SEQUENCE {
+	ranFunctionID				RANfunctionID,
+	cause						Cause,
+	...
+}
+
+
+-- **************************************************************
+--
+-- RIC SERVICE UPDATE FAILURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- RIC Service Query Elementary Procedure
+--
+-- **************************************************************
+-- **************************************************************
+--
+-- RIC SERVICE QUERY
+--
+-- **************************************************************
+RICserviceQuery ::= SEQUENCE {
+	protocolIEs					ProtocolIE-Container	{{RICserviceQuery-IEs}},
+	...
+}
+
+RICserviceQuery-IEs E2AP-PROTOCOL-IES ::= {
+	{ ID id-TransactionID				CRITICALITY reject	TYPE TransactionID					PRESENCE mandatory	}|
+	{ ID id-RANfunctionsAccepted		CRITICALITY reject	TYPE RANfunctionsID-List			PRESENCE optional	},
+	...
+}
+
+-- **************************************************************
+--
+-- E2 Removal Elementary Procedure
+-- 
+-- **************************************************************
+-- **************************************************************
+--
+-- E2 REMOVAL REQUEST
+--
+-- **************************************************************
+
+E2RemovalRequest ::= SEQUENCE {
+	protocolIEs					ProtocolIE-Container	{ {E2RemovalRequestIEs} },
+	...
+}
+
+E2RemovalRequestIEs E2AP-PROTOCOL-IES ::= {
+	{ ID id-TransactionID				CRITICALITY reject	TYPE TransactionID						PRESENCE mandatory	},
+	...
+}
+
+-- **************************************************************
+--
+-- E2 REMOVAL RESPONSE
+--
+-- **************************************************************
+
+E2RemovalResponse ::= SEQUENCE {
+	protocolIEs					ProtocolIE-Container	{ {E2RemovalResponseIEs} },
+	...
+}
+
+E2RemovalResponseIEs  E2AP-PROTOCOL-IES ::= {
+	{ ID id-TransactionID				CRITICALITY reject	TYPE TransactionID							PRESENCE mandatory	}|
+	{ ID id-CriticalityDiagnostics		CRITICALITY ignore	TYPE CriticalityDiagnostics		PRESENCE optional	},
+	...
+}
+
+-- **************************************************************
+--
+-- E2 REMOVAL FAILURE
+--
+-- **************************************************************
+
+E2RemovalFailure ::= SEQUENCE {
+	protocolIEs					ProtocolIE-Container	{ {E2RemovalFailureIEs} },
+	...
+}
+
+E2RemovalFailureIEs E2AP-PROTOCOL-IES ::= {
+	{ ID id-TransactionID				CRITICALITY reject	TYPE TransactionID				PRESENCE mandatory	}|
+	{ ID id-Cause						CRITICALITY ignore	TYPE Cause						PRESENCE mandatory	}|
+	{ ID id-CriticalityDiagnostics		CRITICALITY ignore	TYPE CriticalityDiagnostics		PRESENCE optional	},
+	...
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure Class
+--
+-- **************************************************************
+
+E2AP-ELEMENTARY-PROCEDURE ::= CLASS {
+	&InitiatingMessage										,
+	&SuccessfulOutcome							OPTIONAL	,
+	&UnsuccessfulOutcome						OPTIONAL	,
+	&procedureCode				ProcedureCode	UNIQUE	,
+	&criticality				Criticality		DEFAULT ignore
+}
+
+WITH SYNTAX {
+	INITIATING MESSAGE			&InitiatingMessage
+	[SUCCESSFUL OUTCOME			&SuccessfulOutcome]
+	[UNSUCCESSFUL OUTCOME		&UnsuccessfulOutcome]
+	PROCEDURE CODE				&procedureCode
+	[CRITICALITY				&criticality]
+}
+
+-- **************************************************************
+--
+-- Interface PDU Definition
+--
+-- **************************************************************
+
+E2AP-PDU ::= CHOICE {
+	initiatingMessage			InitiatingMessage,
+	successfulOutcome			SuccessfulOutcome,
+	unsuccessfulOutcome			UnsuccessfulOutcome,
+	...
+}
+
+InitiatingMessage ::= SEQUENCE {
+	procedureCode	E2AP-ELEMENTARY-PROCEDURE.&procedureCode		({E2AP-ELEMENTARY-PROCEDURES}),
+	criticality		E2AP-ELEMENTARY-PROCEDURE.&criticality			({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+	value			E2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage	({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+SuccessfulOutcome ::= SEQUENCE {
+	procedureCode	E2AP-ELEMENTARY-PROCEDURE.&procedureCode		({E2AP-ELEMENTARY-PROCEDURES}),
+	criticality		E2AP-ELEMENTARY-PROCEDURE.&criticality			({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+	value			E2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome	({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+UnsuccessfulOutcome ::= SEQUENCE {
+	procedureCode	E2AP-ELEMENTARY-PROCEDURE.&procedureCode		({E2AP-ELEMENTARY-PROCEDURES}),
+	criticality		E2AP-ELEMENTARY-PROCEDURE.&criticality			({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+	value			E2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome	({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure List
+--
+-- **************************************************************
+
+E2AP-ELEMENTARY-PROCEDURES E2AP-ELEMENTARY-PROCEDURE ::= {
+	E2AP-ELEMENTARY-PROCEDURES-CLASS-1					|
+	E2AP-ELEMENTARY-PROCEDURES-CLASS-2,	
+	...
+}
+
+E2AP-ELEMENTARY-PROCEDURES-CLASS-1 E2AP-ELEMENTARY-PROCEDURE ::= {
+	ricSubscription										|
+	ricSubscriptionDelete								|
+	ricControl											|
+	e2setup												|
+	e2nodeConfigurationUpdate							|
+	reset												|
+	e2removal,
+	...
+}
+
+E2AP-ELEMENTARY-PROCEDURES-CLASS-2 E2AP-ELEMENTARY-PROCEDURE ::= {
+	ricIndication										|
+	ricServiceQuery										|
+	errorIndication										|
+	ricSubscriptionDeleteRequired,	
+	...
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedures
+--
+-- **************************************************************
+
+-- New for v01.01
+
+e2nodeConfigurationUpdate	E2AP-ELEMENTARY-PROCEDURE ::= {
+	INITIATING MESSAGE		E2nodeConfigurationUpdate
+	SUCCESSFUL OUTCOME		E2nodeConfigurationUpdateAcknowledge
+	UNSUCCESSFUL OUTCOME	E2nodeConfigurationUpdateFailure
+	PROCEDURE CODE			id-E2nodeConfigurationUpdate
+	CRITICALITY				reject
+}
+
+-- New for v02.01
+e2removal	E2AP-ELEMENTARY-PROCEDURE ::= {
+	INITIATING MESSAGE		E2RemovalRequest
+	SUCCESSFUL OUTCOME		E2RemovalResponse
+	UNSUCCESSFUL OUTCOME	E2RemovalFailure
+	PROCEDURE CODE			id-E2removal
+	CRITICALITY				reject
+}
+
+e2setup	E2AP-ELEMENTARY-PROCEDURE ::= {
+	INITIATING MESSAGE		E2setupRequest
+	SUCCESSFUL OUTCOME		E2setupResponse
+	UNSUCCESSFUL OUTCOME	E2setupFailure
+	PROCEDURE CODE			id-E2setup
+	CRITICALITY				reject
+}
+
+errorIndication E2AP-ELEMENTARY-PROCEDURE ::= {
+	INITIATING MESSAGE		ErrorIndication
+	PROCEDURE CODE			id-ErrorIndication
+	CRITICALITY				ignore
+}
+
+reset	E2AP-ELEMENTARY-PROCEDURE ::= {
+	INITIATING MESSAGE		ResetRequest
+	SUCCESSFUL OUTCOME		ResetResponse
+	PROCEDURE CODE			id-Reset
+	CRITICALITY				reject
+}
+
+ricControl E2AP-ELEMENTARY-PROCEDURE ::= {
+	INITIATING MESSAGE		RICcontrolRequest
+	SUCCESSFUL OUTCOME		RICcontrolAcknowledge
+	UNSUCCESSFUL OUTCOME	RICcontrolFailure
+	PROCEDURE CODE			id-RICcontrol
+	CRITICALITY				reject
+}
+
+ricIndication E2AP-ELEMENTARY-PROCEDURE ::= {
+	INITIATING MESSAGE		RICindication
+	PROCEDURE CODE			id-RICindication
+	CRITICALITY				ignore
+}
+
+ricServiceQuery E2AP-ELEMENTARY-PROCEDURE ::= {
+	INITIATING MESSAGE		RICserviceQuery
+	PROCEDURE CODE			id-RICserviceQuery
+	CRITICALITY				ignore
+}
+
+ricSubscription E2AP-ELEMENTARY-PROCEDURE ::= {
+	INITIATING MESSAGE		RICsubscriptionRequest
+	SUCCESSFUL OUTCOME		RICsubscriptionResponse
+	UNSUCCESSFUL OUTCOME	RICsubscriptionFailure
+	PROCEDURE CODE			id-RICsubscription
+	CRITICALITY				reject
+}
+
+ricSubscriptionDelete E2AP-ELEMENTARY-PROCEDURE ::= {
+	INITIATING MESSAGE		RICsubscriptionDeleteRequest
+	SUCCESSFUL OUTCOME		RICsubscriptionDeleteResponse
+	UNSUCCESSFUL OUTCOME	RICsubscriptionDeleteFailure
+	PROCEDURE CODE			id-RICsubscriptionDelete
+	CRITICALITY				reject
+}
+
+ricSubscriptionDeleteRequired E2AP-ELEMENTARY-PROCEDURE ::= {
+	INITIATING MESSAGE		RICsubscriptionDeleteRequired
+	PROCEDURE CODE			id-RICsubscriptionDeleteRequired
+	CRITICALITY				ignore
+}
+
+END
+-- ASN1STOP
+
+
diff --git a/e2ap/headers/AMFName.h b/e2ap/headers/AMFName.h
new file mode 100644
index 0000000..03c8127
--- /dev/null
+++ b/e2ap/headers/AMFName.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_AMFName_H_
+#define	_AMFName_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <PrintableString.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* AMFName */
+typedef PrintableString_t	 AMFName_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_AMFName_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_AMFName;
+asn_struct_free_f AMFName_free;
+asn_struct_print_f AMFName_print;
+asn_constr_check_f AMFName_constraint;
+ber_type_decoder_f AMFName_decode_ber;
+der_type_encoder_f AMFName_encode_der;
+xer_type_decoder_f AMFName_decode_xer;
+xer_type_encoder_f AMFName_encode_xer;
+oer_type_decoder_f AMFName_decode_oer;
+oer_type_encoder_f AMFName_encode_oer;
+per_type_decoder_f AMFName_decode_uper;
+per_type_encoder_f AMFName_encode_uper;
+per_type_decoder_f AMFName_decode_aper;
+per_type_encoder_f AMFName_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _AMFName_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/Cause.h b/e2ap/headers/Cause.h
index 7bd7e80..4b56d3b 100644
--- a/e2ap/headers/Cause.h
+++ b/e2ap/headers/Cause.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_Cause_H_
@@ -12,8 +12,9 @@
 #include <asn_application.h>
 
 /* Including external dependencies */
-#include "CauseRIC.h"
+#include "CauseRICrequest.h"
 #include "CauseRICservice.h"
+#include "CauseE2node.h"
 #include "CauseTransport.h"
 #include "CauseProtocol.h"
 #include "CauseMisc.h"
@@ -28,6 +29,7 @@
 	Cause_PR_NOTHING,	/* No components present */
 	Cause_PR_ricRequest,
 	Cause_PR_ricService,
+	Cause_PR_e2Node,
 	Cause_PR_transport,
 	Cause_PR_protocol,
 	Cause_PR_misc
@@ -39,8 +41,9 @@
 typedef struct Cause {
 	Cause_PR present;
 	union Cause_u {
-		CauseRIC_t	 ricRequest;
+		CauseRICrequest_t	 ricRequest;
 		CauseRICservice_t	 ricService;
+		CauseE2node_t	 e2Node;
 		CauseTransport_t	 transport;
 		CauseProtocol_t	 protocol;
 		CauseMisc_t	 misc;
@@ -57,7 +60,7 @@
 /* Implementation */
 extern asn_TYPE_descriptor_t asn_DEF_Cause;
 extern asn_CHOICE_specifics_t asn_SPC_Cause_specs_1;
-extern asn_TYPE_member_t asn_MBR_Cause_1[5];
+extern asn_TYPE_member_t asn_MBR_Cause_1[6];
 extern asn_per_constraints_t asn_PER_type_Cause_constr_1;
 
 #ifdef __cplusplus
diff --git a/e2ap/headers/CauseE2node.h b/e2ap/headers/CauseE2node.h
new file mode 100644
index 0000000..2efa9a5
--- /dev/null
+++ b/e2ap/headers/CauseE2node.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_CauseE2node_H_
+#define	_CauseE2node_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum CauseE2node {
+	CauseE2node_e2node_component_unknown	= 0
+	/*
+	 * Enumeration is extensible
+	 */
+} e_CauseE2node;
+
+/* CauseE2node */
+typedef long	 CauseE2node_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_CauseE2node_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_CauseE2node;
+extern const asn_INTEGER_specifics_t asn_SPC_CauseE2node_specs_1;
+asn_struct_free_f CauseE2node_free;
+asn_struct_print_f CauseE2node_print;
+asn_constr_check_f CauseE2node_constraint;
+ber_type_decoder_f CauseE2node_decode_ber;
+der_type_encoder_f CauseE2node_encode_der;
+xer_type_decoder_f CauseE2node_decode_xer;
+xer_type_encoder_f CauseE2node_encode_xer;
+oer_type_decoder_f CauseE2node_decode_oer;
+oer_type_encoder_f CauseE2node_encode_oer;
+per_type_decoder_f CauseE2node_decode_uper;
+per_type_encoder_f CauseE2node_encode_uper;
+per_type_decoder_f CauseE2node_decode_aper;
+per_type_encoder_f CauseE2node_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _CauseE2node_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CauseMisc.h b/e2ap/headers/CauseMisc.h
index 1b1efcf..fee55a1 100644
--- a/e2ap/headers/CauseMisc.h
+++ b/e2ap/headers/CauseMisc.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_CauseMisc_H_
diff --git a/e2ap/headers/CauseProtocol.h b/e2ap/headers/CauseProtocol.h
index 8b49178..fc3ac19 100644
--- a/e2ap/headers/CauseProtocol.h
+++ b/e2ap/headers/CauseProtocol.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_CauseProtocol_H_
diff --git a/e2ap/headers/CauseRIC.h b/e2ap/headers/CauseRIC.h
deleted file mode 100644
index 92cbb95..0000000
--- a/e2ap/headers/CauseRIC.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
- */
-
-#ifndef	_CauseRIC_H_
-#define	_CauseRIC_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <NativeEnumerated.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Dependencies */
-typedef enum CauseRIC {
-	CauseRIC_ran_function_id_Invalid	= 0,
-	CauseRIC_action_not_supported	= 1,
-	CauseRIC_excessive_actions	= 2,
-	CauseRIC_duplicate_action	= 3,
-	CauseRIC_duplicate_event	= 4,
-	CauseRIC_function_resource_limit	= 5,
-	CauseRIC_request_id_unknown	= 6,
-	CauseRIC_inconsistent_action_subsequent_action_sequence	= 7,
-	CauseRIC_control_message_invalid	= 8,
-	CauseRIC_call_process_id_invalid	= 9,
-	CauseRIC_unspecified	= 10
-	/*
-	 * Enumeration is extensible
-	 */
-} e_CauseRIC;
-
-/* CauseRIC */
-typedef long	 CauseRIC_t;
-
-/* Implementation */
-extern asn_per_constraints_t asn_PER_type_CauseRIC_constr_1;
-extern asn_TYPE_descriptor_t asn_DEF_CauseRIC;
-extern const asn_INTEGER_specifics_t asn_SPC_CauseRIC_specs_1;
-asn_struct_free_f CauseRIC_free;
-asn_struct_print_f CauseRIC_print;
-asn_constr_check_f CauseRIC_constraint;
-ber_type_decoder_f CauseRIC_decode_ber;
-der_type_encoder_f CauseRIC_encode_der;
-xer_type_decoder_f CauseRIC_decode_xer;
-xer_type_encoder_f CauseRIC_encode_xer;
-oer_type_decoder_f CauseRIC_decode_oer;
-oer_type_encoder_f CauseRIC_encode_oer;
-per_type_decoder_f CauseRIC_decode_uper;
-per_type_encoder_f CauseRIC_encode_uper;
-per_type_decoder_f CauseRIC_decode_aper;
-per_type_encoder_f CauseRIC_encode_aper;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _CauseRIC_H_ */
-#include <asn_internal.h>
diff --git a/e2ap/headers/CauseRICrequest.h b/e2ap/headers/CauseRICrequest.h
new file mode 100644
index 0000000..830b1a0
--- /dev/null
+++ b/e2ap/headers/CauseRICrequest.h
@@ -0,0 +1,68 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_CauseRICrequest_H_
+#define	_CauseRICrequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum CauseRICrequest {
+	CauseRICrequest_ran_function_id_invalid	= 0,
+	CauseRICrequest_action_not_supported	= 1,
+	CauseRICrequest_excessive_actions	= 2,
+	CauseRICrequest_duplicate_action	= 3,
+	CauseRICrequest_duplicate_event_trigger	= 4,
+	CauseRICrequest_function_resource_limit	= 5,
+	CauseRICrequest_request_id_unknown	= 6,
+	CauseRICrequest_inconsistent_action_subsequent_action_sequence	= 7,
+	CauseRICrequest_control_message_invalid	= 8,
+	CauseRICrequest_ric_call_process_id_invalid	= 9,
+	CauseRICrequest_control_timer_expired	= 10,
+	CauseRICrequest_control_failed_to_execute	= 11,
+	CauseRICrequest_system_not_ready	= 12,
+	CauseRICrequest_unspecified	= 13
+	/*
+	 * Enumeration is extensible
+	 */
+} e_CauseRICrequest;
+
+/* CauseRICrequest */
+typedef long	 CauseRICrequest_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_CauseRICrequest_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_CauseRICrequest;
+extern const asn_INTEGER_specifics_t asn_SPC_CauseRICrequest_specs_1;
+asn_struct_free_f CauseRICrequest_free;
+asn_struct_print_f CauseRICrequest_print;
+asn_constr_check_f CauseRICrequest_constraint;
+ber_type_decoder_f CauseRICrequest_decode_ber;
+der_type_encoder_f CauseRICrequest_encode_der;
+xer_type_decoder_f CauseRICrequest_decode_xer;
+xer_type_encoder_f CauseRICrequest_encode_xer;
+oer_type_decoder_f CauseRICrequest_decode_oer;
+oer_type_encoder_f CauseRICrequest_encode_oer;
+per_type_decoder_f CauseRICrequest_decode_uper;
+per_type_encoder_f CauseRICrequest_encode_uper;
+per_type_decoder_f CauseRICrequest_decode_aper;
+per_type_encoder_f CauseRICrequest_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _CauseRICrequest_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/CauseRICservice.h b/e2ap/headers/CauseRICservice.h
index 99ec743..af6e2c4 100644
--- a/e2ap/headers/CauseRICservice.h
+++ b/e2ap/headers/CauseRICservice.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_CauseRICservice_H_
@@ -20,7 +20,7 @@
 
 /* Dependencies */
 typedef enum CauseRICservice {
-	CauseRICservice_function_not_required	= 0,
+	CauseRICservice_ran_function_not_supported	= 0,
 	CauseRICservice_excessive_functions	= 1,
 	CauseRICservice_ric_resource_limit	= 2
 	/*
diff --git a/e2ap/headers/CauseTransport.h b/e2ap/headers/CauseTransport.h
index 5204d28..4faf1b4 100644
--- a/e2ap/headers/CauseTransport.h
+++ b/e2ap/headers/CauseTransport.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_CauseTransport_H_
diff --git a/e2ap/headers/Criticality.h b/e2ap/headers/Criticality.h
index 3d32aff..31d6dd9 100644
--- a/e2ap/headers/Criticality.h
+++ b/e2ap/headers/Criticality.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2AP-CommonDataTypes"
- * 	found in "E2AP-CommonDataTypes-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_Criticality_H_
diff --git a/e2ap/headers/CriticalityDiagnostics-IE-Item.h b/e2ap/headers/CriticalityDiagnostics-IE-Item.h
index 5992ce7..fd3499d 100644
--- a/e2ap/headers/CriticalityDiagnostics-IE-Item.h
+++ b/e2ap/headers/CriticalityDiagnostics-IE-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_CriticalityDiagnostics_IE_Item_H_
diff --git a/e2ap/headers/CriticalityDiagnostics-IE-List.h b/e2ap/headers/CriticalityDiagnostics-IE-List.h
index b823da4..53f664c 100644
--- a/e2ap/headers/CriticalityDiagnostics-IE-List.h
+++ b/e2ap/headers/CriticalityDiagnostics-IE-List.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_CriticalityDiagnostics_IE_List_H_
diff --git a/e2ap/headers/CriticalityDiagnostics.h b/e2ap/headers/CriticalityDiagnostics.h
index ae04eef..aed28c9 100644
--- a/e2ap/headers/CriticalityDiagnostics.h
+++ b/e2ap/headers/CriticalityDiagnostics.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_CriticalityDiagnostics_H_
diff --git a/e2ap/headers/E2AP-PDU.h b/e2ap/headers/E2AP-PDU.h
index 1cf3fc7..c41b6b1 100644
--- a/e2ap/headers/E2AP-PDU.h
+++ b/e2ap/headers/E2AP-PDU.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Descriptions"
- * 	found in "E2AP-PDU-Descriptions-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_E2AP_PDU_H_
diff --git a/e2ap/headers/E2RemovalFailure.h b/e2ap/headers/E2RemovalFailure.h
new file mode 100644
index 0000000..827b07f
--- /dev/null
+++ b/e2ap/headers/E2RemovalFailure.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2RemovalFailure_H_
+#define	_E2RemovalFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2RemovalFailure */
+typedef struct E2RemovalFailure {
+	ProtocolIE_Container_185P23_t	 protocolIEs;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2RemovalFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2RemovalFailure;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2RemovalFailure_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2RemovalRequest.h b/e2ap/headers/E2RemovalRequest.h
new file mode 100644
index 0000000..166f7e9
--- /dev/null
+++ b/e2ap/headers/E2RemovalRequest.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2RemovalRequest_H_
+#define	_E2RemovalRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2RemovalRequest */
+typedef struct E2RemovalRequest {
+	ProtocolIE_Container_185P21_t	 protocolIEs;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2RemovalRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2RemovalRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2RemovalRequest_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2RemovalResponse.h b/e2ap/headers/E2RemovalResponse.h
new file mode 100644
index 0000000..a4bffb7
--- /dev/null
+++ b/e2ap/headers/E2RemovalResponse.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2RemovalResponse_H_
+#define	_E2RemovalResponse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2RemovalResponse */
+typedef struct E2RemovalResponse {
+	ProtocolIE_Container_185P22_t	 protocolIEs;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2RemovalResponse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2RemovalResponse;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2RemovalResponse_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2nodeComponentConfigAddition-Item.h b/e2ap/headers/E2nodeComponentConfigAddition-Item.h
new file mode 100644
index 0000000..bc9156d
--- /dev/null
+++ b/e2ap/headers/E2nodeComponentConfigAddition-Item.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2nodeComponentConfigAddition_Item_H_
+#define	_E2nodeComponentConfigAddition_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E2nodeComponentInterfaceType.h"
+#include "E2nodeComponentID.h"
+#include "E2nodeComponentConfiguration.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2nodeComponentConfigAddition-Item */
+typedef struct E2nodeComponentConfigAddition_Item {
+	E2nodeComponentInterfaceType_t	 e2nodeComponentInterfaceType;
+	E2nodeComponentID_t	 e2nodeComponentID;
+	E2nodeComponentConfiguration_t	 e2nodeComponentConfiguration;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeComponentConfigAddition_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAddition_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAddition_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAddition_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2nodeComponentConfigAddition_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2nodeComponentConfigAddition-List.h b/e2ap/headers/E2nodeComponentConfigAddition-List.h
new file mode 100644
index 0000000..808ff13
--- /dev/null
+++ b/e2ap/headers/E2nodeComponentConfigAddition-List.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2nodeComponentConfigAddition_List_H_
+#define	_E2nodeComponentConfigAddition_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_SingleContainer;
+
+/* E2nodeComponentConfigAddition-List */
+typedef struct E2nodeComponentConfigAddition_List {
+	A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeComponentConfigAddition_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAddition_List;
+extern asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigAddition_List_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAddition_List_1[1];
+extern asn_per_constraints_t asn_PER_type_E2nodeComponentConfigAddition_List_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2nodeComponentConfigAddition_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2nodeComponentConfigAdditionAck-Item.h b/e2ap/headers/E2nodeComponentConfigAdditionAck-Item.h
new file mode 100644
index 0000000..fde9b45
--- /dev/null
+++ b/e2ap/headers/E2nodeComponentConfigAdditionAck-Item.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2nodeComponentConfigAdditionAck_Item_H_
+#define	_E2nodeComponentConfigAdditionAck_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E2nodeComponentInterfaceType.h"
+#include "E2nodeComponentID.h"
+#include "E2nodeComponentConfigurationAck.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2nodeComponentConfigAdditionAck-Item */
+typedef struct E2nodeComponentConfigAdditionAck_Item {
+	E2nodeComponentInterfaceType_t	 e2nodeComponentInterfaceType;
+	E2nodeComponentID_t	 e2nodeComponentID;
+	E2nodeComponentConfigurationAck_t	 e2nodeComponentConfigurationAck;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeComponentConfigAdditionAck_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAdditionAck_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAdditionAck_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAdditionAck_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2nodeComponentConfigAdditionAck_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2nodeComponentConfigAdditionAck-List.h b/e2ap/headers/E2nodeComponentConfigAdditionAck-List.h
new file mode 100644
index 0000000..faab9bf
--- /dev/null
+++ b/e2ap/headers/E2nodeComponentConfigAdditionAck-List.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2nodeComponentConfigAdditionAck_List_H_
+#define	_E2nodeComponentConfigAdditionAck_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_SingleContainer;
+
+/* E2nodeComponentConfigAdditionAck-List */
+typedef struct E2nodeComponentConfigAdditionAck_List {
+	A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeComponentConfigAdditionAck_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAdditionAck_List;
+extern asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigAdditionAck_List_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAdditionAck_List_1[1];
+extern asn_per_constraints_t asn_PER_type_E2nodeComponentConfigAdditionAck_List_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2nodeComponentConfigAdditionAck_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2nodeComponentConfigRemoval-Item.h b/e2ap/headers/E2nodeComponentConfigRemoval-Item.h
new file mode 100644
index 0000000..f295e0c
--- /dev/null
+++ b/e2ap/headers/E2nodeComponentConfigRemoval-Item.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2nodeComponentConfigRemoval_Item_H_
+#define	_E2nodeComponentConfigRemoval_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E2nodeComponentInterfaceType.h"
+#include "E2nodeComponentID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2nodeComponentConfigRemoval-Item */
+typedef struct E2nodeComponentConfigRemoval_Item {
+	E2nodeComponentInterfaceType_t	 e2nodeComponentInterfaceType;
+	E2nodeComponentID_t	 e2nodeComponentID;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeComponentConfigRemoval_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemoval_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemoval_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemoval_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2nodeComponentConfigRemoval_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2nodeComponentConfigRemoval-List.h b/e2ap/headers/E2nodeComponentConfigRemoval-List.h
new file mode 100644
index 0000000..dbc0e74
--- /dev/null
+++ b/e2ap/headers/E2nodeComponentConfigRemoval-List.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2nodeComponentConfigRemoval_List_H_
+#define	_E2nodeComponentConfigRemoval_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_SingleContainer;
+
+/* E2nodeComponentConfigRemoval-List */
+typedef struct E2nodeComponentConfigRemoval_List {
+	A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeComponentConfigRemoval_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemoval_List;
+extern asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigRemoval_List_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemoval_List_1[1];
+extern asn_per_constraints_t asn_PER_type_E2nodeComponentConfigRemoval_List_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2nodeComponentConfigRemoval_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2nodeComponentConfigRemovalAck-Item.h b/e2ap/headers/E2nodeComponentConfigRemovalAck-Item.h
new file mode 100644
index 0000000..ae2794b
--- /dev/null
+++ b/e2ap/headers/E2nodeComponentConfigRemovalAck-Item.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2nodeComponentConfigRemovalAck_Item_H_
+#define	_E2nodeComponentConfigRemovalAck_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E2nodeComponentInterfaceType.h"
+#include "E2nodeComponentID.h"
+#include "E2nodeComponentConfigurationAck.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2nodeComponentConfigRemovalAck-Item */
+typedef struct E2nodeComponentConfigRemovalAck_Item {
+	E2nodeComponentInterfaceType_t	 e2nodeComponentInterfaceType;
+	E2nodeComponentID_t	 e2nodeComponentID;
+	E2nodeComponentConfigurationAck_t	 e2nodeComponentConfigurationAck;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeComponentConfigRemovalAck_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemovalAck_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemovalAck_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemovalAck_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2nodeComponentConfigRemovalAck_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2nodeComponentConfigRemovalAck-List.h b/e2ap/headers/E2nodeComponentConfigRemovalAck-List.h
new file mode 100644
index 0000000..d9a76e2
--- /dev/null
+++ b/e2ap/headers/E2nodeComponentConfigRemovalAck-List.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2nodeComponentConfigRemovalAck_List_H_
+#define	_E2nodeComponentConfigRemovalAck_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_SingleContainer;
+
+/* E2nodeComponentConfigRemovalAck-List */
+typedef struct E2nodeComponentConfigRemovalAck_List {
+	A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeComponentConfigRemovalAck_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemovalAck_List;
+extern asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigRemovalAck_List_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemovalAck_List_1[1];
+extern asn_per_constraints_t asn_PER_type_E2nodeComponentConfigRemovalAck_List_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2nodeComponentConfigRemovalAck_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2nodeComponentConfigUpdate-Item.h b/e2ap/headers/E2nodeComponentConfigUpdate-Item.h
new file mode 100644
index 0000000..9aa4288
--- /dev/null
+++ b/e2ap/headers/E2nodeComponentConfigUpdate-Item.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2nodeComponentConfigUpdate_Item_H_
+#define	_E2nodeComponentConfigUpdate_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E2nodeComponentInterfaceType.h"
+#include "E2nodeComponentID.h"
+#include "E2nodeComponentConfiguration.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2nodeComponentConfigUpdate-Item */
+typedef struct E2nodeComponentConfigUpdate_Item {
+	E2nodeComponentInterfaceType_t	 e2nodeComponentInterfaceType;
+	E2nodeComponentID_t	 e2nodeComponentID;
+	E2nodeComponentConfiguration_t	 e2nodeComponentConfiguration;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeComponentConfigUpdate_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdate_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdate_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2nodeComponentConfigUpdate_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2nodeComponentConfigUpdate-List.h b/e2ap/headers/E2nodeComponentConfigUpdate-List.h
new file mode 100644
index 0000000..bd47c4f
--- /dev/null
+++ b/e2ap/headers/E2nodeComponentConfigUpdate-List.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2nodeComponentConfigUpdate_List_H_
+#define	_E2nodeComponentConfigUpdate_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_SingleContainer;
+
+/* E2nodeComponentConfigUpdate-List */
+typedef struct E2nodeComponentConfigUpdate_List {
+	A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeComponentConfigUpdate_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdate_List;
+extern asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigUpdate_List_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_List_1[1];
+extern asn_per_constraints_t asn_PER_type_E2nodeComponentConfigUpdate_List_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2nodeComponentConfigUpdate_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2nodeComponentConfigUpdateAck-Item.h b/e2ap/headers/E2nodeComponentConfigUpdateAck-Item.h
new file mode 100644
index 0000000..b16e7a6
--- /dev/null
+++ b/e2ap/headers/E2nodeComponentConfigUpdateAck-Item.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2nodeComponentConfigUpdateAck_Item_H_
+#define	_E2nodeComponentConfigUpdateAck_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E2nodeComponentInterfaceType.h"
+#include "E2nodeComponentID.h"
+#include "E2nodeComponentConfigurationAck.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2nodeComponentConfigUpdateAck-Item */
+typedef struct E2nodeComponentConfigUpdateAck_Item {
+	E2nodeComponentInterfaceType_t	 e2nodeComponentInterfaceType;
+	E2nodeComponentID_t	 e2nodeComponentID;
+	E2nodeComponentConfigurationAck_t	 e2nodeComponentConfigurationAck;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeComponentConfigUpdateAck_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateAck_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2nodeComponentConfigUpdateAck_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2nodeComponentConfigUpdateAck-List.h b/e2ap/headers/E2nodeComponentConfigUpdateAck-List.h
new file mode 100644
index 0000000..0d4000d
--- /dev/null
+++ b/e2ap/headers/E2nodeComponentConfigUpdateAck-List.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2nodeComponentConfigUpdateAck_List_H_
+#define	_E2nodeComponentConfigUpdateAck_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_SingleContainer;
+
+/* E2nodeComponentConfigUpdateAck-List */
+typedef struct E2nodeComponentConfigUpdateAck_List {
+	A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeComponentConfigUpdateAck_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateAck_List;
+extern asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_List_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_List_1[1];
+extern asn_per_constraints_t asn_PER_type_E2nodeComponentConfigUpdateAck_List_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2nodeComponentConfigUpdateAck_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2nodeComponentConfiguration.h b/e2ap/headers/E2nodeComponentConfiguration.h
new file mode 100644
index 0000000..4152b24
--- /dev/null
+++ b/e2ap/headers/E2nodeComponentConfiguration.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2nodeComponentConfiguration_H_
+#define	_E2nodeComponentConfiguration_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2nodeComponentConfiguration */
+typedef struct E2nodeComponentConfiguration {
+	OCTET_STRING_t	 e2nodeComponentRequestPart;
+	OCTET_STRING_t	 e2nodeComponentResponsePart;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeComponentConfiguration_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfiguration;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfiguration_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfiguration_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2nodeComponentConfiguration_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2nodeComponentConfigurationAck.h b/e2ap/headers/E2nodeComponentConfigurationAck.h
new file mode 100644
index 0000000..2020998
--- /dev/null
+++ b/e2ap/headers/E2nodeComponentConfigurationAck.h
@@ -0,0 +1,58 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2nodeComponentConfigurationAck_H_
+#define	_E2nodeComponentConfigurationAck_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E2nodeComponentConfigurationAck__updateOutcome {
+	E2nodeComponentConfigurationAck__updateOutcome_success	= 0,
+	E2nodeComponentConfigurationAck__updateOutcome_failure	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_E2nodeComponentConfigurationAck__updateOutcome;
+
+/* Forward declarations */
+struct Cause;
+
+/* E2nodeComponentConfigurationAck */
+typedef struct E2nodeComponentConfigurationAck {
+	long	 updateOutcome;
+	struct Cause	*failureCause;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeComponentConfigurationAck_t;
+
+/* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_updateOutcome_2;	// (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigurationAck;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigurationAck_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigurationAck_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2nodeComponentConfigurationAck_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2nodeComponentID.h b/e2ap/headers/E2nodeComponentID.h
new file mode 100644
index 0000000..23f3529
--- /dev/null
+++ b/e2ap/headers/E2nodeComponentID.h
@@ -0,0 +1,76 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2nodeComponentID_H_
+#define	_E2nodeComponentID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E2nodeComponentID_PR {
+	E2nodeComponentID_PR_NOTHING,	/* No components present */
+	E2nodeComponentID_PR_e2nodeComponentInterfaceTypeNG,
+	E2nodeComponentID_PR_e2nodeComponentInterfaceTypeXn,
+	E2nodeComponentID_PR_e2nodeComponentInterfaceTypeE1,
+	E2nodeComponentID_PR_e2nodeComponentInterfaceTypeF1,
+	E2nodeComponentID_PR_e2nodeComponentInterfaceTypeW1,
+	E2nodeComponentID_PR_e2nodeComponentInterfaceTypeS1,
+	E2nodeComponentID_PR_e2nodeComponentInterfaceTypeX2
+	/* Extensions may appear below */
+	
+} E2nodeComponentID_PR;
+
+/* Forward declarations */
+struct E2nodeComponentInterfaceNG;
+struct E2nodeComponentInterfaceXn;
+struct E2nodeComponentInterfaceE1;
+struct E2nodeComponentInterfaceF1;
+struct E2nodeComponentInterfaceW1;
+struct E2nodeComponentInterfaceS1;
+struct E2nodeComponentInterfaceX2;
+
+/* E2nodeComponentID */
+typedef struct E2nodeComponentID {
+	E2nodeComponentID_PR present;
+	union E2nodeComponentID_u {
+		struct E2nodeComponentInterfaceNG	*e2nodeComponentInterfaceTypeNG;
+		struct E2nodeComponentInterfaceXn	*e2nodeComponentInterfaceTypeXn;
+		struct E2nodeComponentInterfaceE1	*e2nodeComponentInterfaceTypeE1;
+		struct E2nodeComponentInterfaceF1	*e2nodeComponentInterfaceTypeF1;
+		struct E2nodeComponentInterfaceW1	*e2nodeComponentInterfaceTypeW1;
+		struct E2nodeComponentInterfaceS1	*e2nodeComponentInterfaceTypeS1;
+		struct E2nodeComponentInterfaceX2	*e2nodeComponentInterfaceTypeX2;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeComponentID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentID;
+extern asn_CHOICE_specifics_t asn_SPC_E2nodeComponentID_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2nodeComponentID_1[7];
+extern asn_per_constraints_t asn_PER_type_E2nodeComponentID_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2nodeComponentID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2nodeComponentInterfaceE1.h b/e2ap/headers/E2nodeComponentInterfaceE1.h
new file mode 100644
index 0000000..a8a0a61
--- /dev/null
+++ b/e2ap/headers/E2nodeComponentInterfaceE1.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2nodeComponentInterfaceE1_H_
+#define	_E2nodeComponentInterfaceE1_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "GNB-CU-UP-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2nodeComponentInterfaceE1 */
+typedef struct E2nodeComponentInterfaceE1 {
+	GNB_CU_UP_ID_t	 gNB_CU_CP_ID;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeComponentInterfaceE1_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceE1;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceE1_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceE1_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2nodeComponentInterfaceE1_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2nodeComponentInterfaceF1.h b/e2ap/headers/E2nodeComponentInterfaceF1.h
new file mode 100644
index 0000000..f2afb8a
--- /dev/null
+++ b/e2ap/headers/E2nodeComponentInterfaceF1.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2nodeComponentInterfaceF1_H_
+#define	_E2nodeComponentInterfaceF1_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "GNB-DU-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2nodeComponentInterfaceF1 */
+typedef struct E2nodeComponentInterfaceF1 {
+	GNB_DU_ID_t	 gNB_DU_ID;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeComponentInterfaceF1_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceF1;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceF1_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceF1_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2nodeComponentInterfaceF1_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2nodeComponentInterfaceNG.h b/e2ap/headers/E2nodeComponentInterfaceNG.h
new file mode 100644
index 0000000..3bbfdcb
--- /dev/null
+++ b/e2ap/headers/E2nodeComponentInterfaceNG.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2nodeComponentInterfaceNG_H_
+#define	_E2nodeComponentInterfaceNG_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "AMFName.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2nodeComponentInterfaceNG */
+typedef struct E2nodeComponentInterfaceNG {
+	AMFName_t	 amf_name;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeComponentInterfaceNG_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceNG;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceNG_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceNG_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2nodeComponentInterfaceNG_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2nodeComponentInterfaceS1.h b/e2ap/headers/E2nodeComponentInterfaceS1.h
new file mode 100644
index 0000000..f3b8c03
--- /dev/null
+++ b/e2ap/headers/E2nodeComponentInterfaceS1.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2nodeComponentInterfaceS1_H_
+#define	_E2nodeComponentInterfaceS1_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "MMEname.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2nodeComponentInterfaceS1 */
+typedef struct E2nodeComponentInterfaceS1 {
+	MMEname_t	 mme_name;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeComponentInterfaceS1_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceS1;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceS1_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceS1_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2nodeComponentInterfaceS1_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2nodeComponentInterfaceType.h b/e2ap/headers/E2nodeComponentInterfaceType.h
new file mode 100644
index 0000000..da54127
--- /dev/null
+++ b/e2ap/headers/E2nodeComponentInterfaceType.h
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2nodeComponentInterfaceType_H_
+#define	_E2nodeComponentInterfaceType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E2nodeComponentInterfaceType {
+	E2nodeComponentInterfaceType_ng	= 0,
+	E2nodeComponentInterfaceType_xn	= 1,
+	E2nodeComponentInterfaceType_e1	= 2,
+	E2nodeComponentInterfaceType_f1	= 3,
+	E2nodeComponentInterfaceType_w1	= 4,
+	E2nodeComponentInterfaceType_s1	= 5,
+	E2nodeComponentInterfaceType_x2	= 6
+	/*
+	 * Enumeration is extensible
+	 */
+} e_E2nodeComponentInterfaceType;
+
+/* E2nodeComponentInterfaceType */
+typedef long	 E2nodeComponentInterfaceType_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_E2nodeComponentInterfaceType_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceType;
+extern const asn_INTEGER_specifics_t asn_SPC_E2nodeComponentInterfaceType_specs_1;
+asn_struct_free_f E2nodeComponentInterfaceType_free;
+asn_struct_print_f E2nodeComponentInterfaceType_print;
+asn_constr_check_f E2nodeComponentInterfaceType_constraint;
+ber_type_decoder_f E2nodeComponentInterfaceType_decode_ber;
+der_type_encoder_f E2nodeComponentInterfaceType_encode_der;
+xer_type_decoder_f E2nodeComponentInterfaceType_decode_xer;
+xer_type_encoder_f E2nodeComponentInterfaceType_encode_xer;
+oer_type_decoder_f E2nodeComponentInterfaceType_decode_oer;
+oer_type_encoder_f E2nodeComponentInterfaceType_encode_oer;
+per_type_decoder_f E2nodeComponentInterfaceType_decode_uper;
+per_type_encoder_f E2nodeComponentInterfaceType_encode_uper;
+per_type_decoder_f E2nodeComponentInterfaceType_decode_aper;
+per_type_encoder_f E2nodeComponentInterfaceType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2nodeComponentInterfaceType_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2nodeComponentInterfaceW1.h b/e2ap/headers/E2nodeComponentInterfaceW1.h
new file mode 100644
index 0000000..696f18a
--- /dev/null
+++ b/e2ap/headers/E2nodeComponentInterfaceW1.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2nodeComponentInterfaceW1_H_
+#define	_E2nodeComponentInterfaceW1_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "NGENB-DU-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2nodeComponentInterfaceW1 */
+typedef struct E2nodeComponentInterfaceW1 {
+	NGENB_DU_ID_t	 ng_eNB_DU_ID;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeComponentInterfaceW1_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceW1;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceW1_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceW1_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2nodeComponentInterfaceW1_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2nodeComponentInterfaceX2.h b/e2ap/headers/E2nodeComponentInterfaceX2.h
new file mode 100644
index 0000000..43daa1e
--- /dev/null
+++ b/e2ap/headers/E2nodeComponentInterfaceX2.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2nodeComponentInterfaceX2_H_
+#define	_E2nodeComponentInterfaceX2_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GlobalENB_ID;
+struct GlobalenGNB_ID;
+
+/* E2nodeComponentInterfaceX2 */
+typedef struct E2nodeComponentInterfaceX2 {
+	struct GlobalENB_ID	*global_eNB_ID;	/* OPTIONAL */
+	struct GlobalenGNB_ID	*global_en_gNB_ID;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeComponentInterfaceX2_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceX2;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceX2_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceX2_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2nodeComponentInterfaceX2_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2nodeComponentInterfaceXn.h b/e2ap/headers/E2nodeComponentInterfaceXn.h
new file mode 100644
index 0000000..665004a
--- /dev/null
+++ b/e2ap/headers/E2nodeComponentInterfaceXn.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2nodeComponentInterfaceXn_H_
+#define	_E2nodeComponentInterfaceXn_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "GlobalNG-RANNode-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2nodeComponentInterfaceXn */
+typedef struct E2nodeComponentInterfaceXn {
+	GlobalNG_RANNode_ID_t	 global_NG_RAN_Node_ID;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeComponentInterfaceXn_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceXn;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceXn_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceXn_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2nodeComponentInterfaceXn_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2nodeConfigurationUpdate.h b/e2ap/headers/E2nodeConfigurationUpdate.h
new file mode 100644
index 0000000..2f67d54
--- /dev/null
+++ b/e2ap/headers/E2nodeConfigurationUpdate.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2nodeConfigurationUpdate_H_
+#define	_E2nodeConfigurationUpdate_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2nodeConfigurationUpdate */
+typedef struct E2nodeConfigurationUpdate {
+	ProtocolIE_Container_185P15_t	 protocolIEs;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeConfigurationUpdate_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdate;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2nodeConfigurationUpdate_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2nodeConfigurationUpdateAcknowledge.h b/e2ap/headers/E2nodeConfigurationUpdateAcknowledge.h
new file mode 100644
index 0000000..6a7dbc3
--- /dev/null
+++ b/e2ap/headers/E2nodeConfigurationUpdateAcknowledge.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2nodeConfigurationUpdateAcknowledge_H_
+#define	_E2nodeConfigurationUpdateAcknowledge_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2nodeConfigurationUpdateAcknowledge */
+typedef struct E2nodeConfigurationUpdateAcknowledge {
+	ProtocolIE_Container_185P16_t	 protocolIEs;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeConfigurationUpdateAcknowledge_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdateAcknowledge;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2nodeConfigurationUpdateAcknowledge_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2nodeConfigurationUpdateFailure.h b/e2ap/headers/E2nodeConfigurationUpdateFailure.h
new file mode 100644
index 0000000..b44b39a
--- /dev/null
+++ b/e2ap/headers/E2nodeConfigurationUpdateFailure.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2nodeConfigurationUpdateFailure_H_
+#define	_E2nodeConfigurationUpdateFailure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2nodeConfigurationUpdateFailure */
+typedef struct E2nodeConfigurationUpdateFailure {
+	ProtocolIE_Container_185P17_t	 protocolIEs;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeConfigurationUpdateFailure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdateFailure;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2nodeConfigurationUpdateFailure_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2nodeTNLassociationRemoval-Item.h b/e2ap/headers/E2nodeTNLassociationRemoval-Item.h
new file mode 100644
index 0000000..348d6fd
--- /dev/null
+++ b/e2ap/headers/E2nodeTNLassociationRemoval-Item.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2nodeTNLassociationRemoval_Item_H_
+#define	_E2nodeTNLassociationRemoval_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TNLinformation.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2nodeTNLassociationRemoval-Item */
+typedef struct E2nodeTNLassociationRemoval_Item {
+	TNLinformation_t	 tnlInformation;
+	TNLinformation_t	 tnlInformationRIC;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeTNLassociationRemoval_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeTNLassociationRemoval_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeTNLassociationRemoval_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2nodeTNLassociationRemoval_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2nodeTNLassociationRemoval_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2nodeTNLassociationRemoval-List.h b/e2ap/headers/E2nodeTNLassociationRemoval-List.h
new file mode 100644
index 0000000..896045f
--- /dev/null
+++ b/e2ap/headers/E2nodeTNLassociationRemoval-List.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2nodeTNLassociationRemoval_List_H_
+#define	_E2nodeTNLassociationRemoval_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_SingleContainer;
+
+/* E2nodeTNLassociationRemoval-List */
+typedef struct E2nodeTNLassociationRemoval_List {
+	A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeTNLassociationRemoval_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeTNLassociationRemoval_List;
+extern asn_SET_OF_specifics_t asn_SPC_E2nodeTNLassociationRemoval_List_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2nodeTNLassociationRemoval_List_1[1];
+extern asn_per_constraints_t asn_PER_type_E2nodeTNLassociationRemoval_List_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2nodeTNLassociationRemoval_List_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/E2setupFailure.h b/e2ap/headers/E2setupFailure.h
index 9bfcf0b..697d4b3 100644
--- a/e2ap/headers/E2setupFailure.h
+++ b/e2ap/headers/E2setupFailure.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_E2setupFailure_H_
@@ -21,7 +21,7 @@
 
 /* E2setupFailure */
 typedef struct E2setupFailure {
-	ProtocolIE_Container_87P13_t	 protocolIEs;
+	ProtocolIE_Container_185P14_t	 protocolIEs;
 	/*
 	 * This type is extensible,
 	 * possible extensions are below.
diff --git a/e2ap/headers/E2setupRequest.h b/e2ap/headers/E2setupRequest.h
index c70a6a5..e13ab70 100644
--- a/e2ap/headers/E2setupRequest.h
+++ b/e2ap/headers/E2setupRequest.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_E2setupRequest_H_
@@ -21,7 +21,7 @@
 
 /* E2setupRequest */
 typedef struct E2setupRequest {
-	ProtocolIE_Container_87P11_t	 protocolIEs;
+	ProtocolIE_Container_185P12_t	 protocolIEs;
 	/*
 	 * This type is extensible,
 	 * possible extensions are below.
diff --git a/e2ap/headers/E2setupResponse.h b/e2ap/headers/E2setupResponse.h
index f8920af..317fa08 100644
--- a/e2ap/headers/E2setupResponse.h
+++ b/e2ap/headers/E2setupResponse.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_E2setupResponse_H_
@@ -21,7 +21,7 @@
 
 /* E2setupResponse */
 typedef struct E2setupResponse {
-	ProtocolIE_Container_87P12_t	 protocolIEs;
+	ProtocolIE_Container_185P13_t	 protocolIEs;
 	/*
 	 * This type is extensible,
 	 * possible extensions are below.
diff --git a/e2ap/headers/ENB-ID-Choice.h b/e2ap/headers/ENB-ID-Choice.h
index 0ccc3ee..bc0f56e 100644
--- a/e2ap/headers/ENB-ID-Choice.h
+++ b/e2ap/headers/ENB-ID-Choice.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_ENB_ID_Choice_H_
diff --git a/e2ap/headers/ENB-ID.h b/e2ap/headers/ENB-ID.h
index 500a7d2..08bec67 100644
--- a/e2ap/headers/ENB-ID.h
+++ b/e2ap/headers/ENB-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_ENB_ID_H_
diff --git a/e2ap/headers/ENGNB-ID.h b/e2ap/headers/ENGNB-ID.h
index 58a8c7c..18a7520 100644
--- a/e2ap/headers/ENGNB-ID.h
+++ b/e2ap/headers/ENGNB-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_ENGNB_ID_H_
diff --git a/e2ap/headers/ErrorIndication.h b/e2ap/headers/ErrorIndication.h
index 88e402e..ccd6025 100644
--- a/e2ap/headers/ErrorIndication.h
+++ b/e2ap/headers/ErrorIndication.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_ErrorIndication_H_
@@ -21,7 +21,7 @@
 
 /* ErrorIndication */
 typedef struct ErrorIndication {
-	ProtocolIE_Container_87P10_t	 protocolIEs;
+	ProtocolIE_Container_185P11_t	 protocolIEs;
 	/*
 	 * This type is extensible,
 	 * possible extensions are below.
diff --git a/e2ap/headers/GNB-CU-UP-ID.h b/e2ap/headers/GNB-CU-UP-ID.h
index d7df7d8..1611190 100644
--- a/e2ap/headers/GNB-CU-UP-ID.h
+++ b/e2ap/headers/GNB-CU-UP-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_GNB_CU_UP_ID_H_
diff --git a/e2ap/headers/GNB-DU-ID.h b/e2ap/headers/GNB-DU-ID.h
index b0889fe..d04f249 100644
--- a/e2ap/headers/GNB-DU-ID.h
+++ b/e2ap/headers/GNB-DU-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_GNB_DU_ID_H_
diff --git a/e2ap/headers/GNB-ID-Choice.h b/e2ap/headers/GNB-ID-Choice.h
index ec65f85..920cb80 100644
--- a/e2ap/headers/GNB-ID-Choice.h
+++ b/e2ap/headers/GNB-ID-Choice.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_GNB_ID_Choice_H_
diff --git a/e2ap/headers/GlobalE2node-ID.h b/e2ap/headers/GlobalE2node-ID.h
index 843e1c2..d1f714d 100644
--- a/e2ap/headers/GlobalE2node-ID.h
+++ b/e2ap/headers/GlobalE2node-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_GlobalE2node_ID_H_
diff --git a/e2ap/headers/GlobalE2node-eNB-ID.h b/e2ap/headers/GlobalE2node-eNB-ID.h
index c92e774..3522247 100644
--- a/e2ap/headers/GlobalE2node-eNB-ID.h
+++ b/e2ap/headers/GlobalE2node-eNB-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_GlobalE2node_eNB_ID_H_
diff --git a/e2ap/headers/GlobalE2node-en-gNB-ID.h b/e2ap/headers/GlobalE2node-en-gNB-ID.h
index b13588a..081d3dc 100644
--- a/e2ap/headers/GlobalE2node-en-gNB-ID.h
+++ b/e2ap/headers/GlobalE2node-en-gNB-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_GlobalE2node_en_gNB_ID_H_
@@ -13,6 +13,8 @@
 
 /* Including external dependencies */
 #include "GlobalenGNB-ID.h"
+#include "GNB-CU-UP-ID.h"
+#include "GNB-DU-ID.h"
 #include <constr_SEQUENCE.h>
 
 #ifdef __cplusplus
@@ -21,7 +23,9 @@
 
 /* GlobalE2node-en-gNB-ID */
 typedef struct GlobalE2node_en_gNB_ID {
-	GlobalenGNB_ID_t	 global_gNB_ID;
+	GlobalenGNB_ID_t	 global_en_gNB_ID;
+	GNB_CU_UP_ID_t	*en_gNB_CU_UP_ID;	/* OPTIONAL */
+	GNB_DU_ID_t	*en_gNB_DU_ID;	/* OPTIONAL */
 	/*
 	 * This type is extensible,
 	 * possible extensions are below.
@@ -34,7 +38,7 @@
 /* Implementation */
 extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_en_gNB_ID;
 extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_en_gNB_ID_specs_1;
-extern asn_TYPE_member_t asn_MBR_GlobalE2node_en_gNB_ID_1[1];
+extern asn_TYPE_member_t asn_MBR_GlobalE2node_en_gNB_ID_1[3];
 
 #ifdef __cplusplus
 }
diff --git a/e2ap/headers/GlobalE2node-gNB-ID.h b/e2ap/headers/GlobalE2node-gNB-ID.h
index a2121b9..12db502 100644
--- a/e2ap/headers/GlobalE2node-gNB-ID.h
+++ b/e2ap/headers/GlobalE2node-gNB-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_GlobalE2node_gNB_ID_H_
@@ -21,9 +21,13 @@
 extern "C" {
 #endif
 
+/* Forward declarations */
+struct GlobalenGNB_ID;
+
 /* GlobalE2node-gNB-ID */
 typedef struct GlobalE2node_gNB_ID {
 	GlobalgNB_ID_t	 global_gNB_ID;
+	struct GlobalenGNB_ID	*global_en_gNB_ID;	/* OPTIONAL */
 	GNB_CU_UP_ID_t	*gNB_CU_UP_ID;	/* OPTIONAL */
 	GNB_DU_ID_t	*gNB_DU_ID;	/* OPTIONAL */
 	/*
@@ -38,7 +42,7 @@
 /* Implementation */
 extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_gNB_ID;
 extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_gNB_ID_specs_1;
-extern asn_TYPE_member_t asn_MBR_GlobalE2node_gNB_ID_1[3];
+extern asn_TYPE_member_t asn_MBR_GlobalE2node_gNB_ID_1[4];
 
 #ifdef __cplusplus
 }
diff --git a/e2ap/headers/GlobalE2node-ng-eNB-ID.h b/e2ap/headers/GlobalE2node-ng-eNB-ID.h
index 7a3e0f5..daba99d 100644
--- a/e2ap/headers/GlobalE2node-ng-eNB-ID.h
+++ b/e2ap/headers/GlobalE2node-ng-eNB-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_GlobalE2node_ng_eNB_ID_H_
@@ -13,15 +13,21 @@
 
 /* Including external dependencies */
 #include "GlobalngeNB-ID.h"
+#include "NGENB-DU-ID.h"
 #include <constr_SEQUENCE.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+/* Forward declarations */
+struct GlobalENB_ID;
+
 /* GlobalE2node-ng-eNB-ID */
 typedef struct GlobalE2node_ng_eNB_ID {
 	GlobalngeNB_ID_t	 global_ng_eNB_ID;
+	struct GlobalENB_ID	*global_eNB_ID;	/* OPTIONAL */
+	NGENB_DU_ID_t	*ngENB_DU_ID;	/* OPTIONAL */
 	/*
 	 * This type is extensible,
 	 * possible extensions are below.
@@ -34,7 +40,7 @@
 /* Implementation */
 extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ng_eNB_ID;
 extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_ng_eNB_ID_specs_1;
-extern asn_TYPE_member_t asn_MBR_GlobalE2node_ng_eNB_ID_1[1];
+extern asn_TYPE_member_t asn_MBR_GlobalE2node_ng_eNB_ID_1[3];
 
 #ifdef __cplusplus
 }
diff --git a/e2ap/headers/GlobalENB-ID.h b/e2ap/headers/GlobalENB-ID.h
index 2b6cf1c..82526d2 100644
--- a/e2ap/headers/GlobalENB-ID.h
+++ b/e2ap/headers/GlobalENB-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_GlobalENB_ID_H_
diff --git a/e2ap/headers/GlobalNG-RANNode-ID.h b/e2ap/headers/GlobalNG-RANNode-ID.h
new file mode 100644
index 0000000..933958f
--- /dev/null
+++ b/e2ap/headers/GlobalNG-RANNode-ID.h
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_GlobalNG_RANNode_ID_H_
+#define	_GlobalNG_RANNode_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum GlobalNG_RANNode_ID_PR {
+	GlobalNG_RANNode_ID_PR_NOTHING,	/* No components present */
+	GlobalNG_RANNode_ID_PR_gNB,
+	GlobalNG_RANNode_ID_PR_ng_eNB
+	/* Extensions may appear below */
+	
+} GlobalNG_RANNode_ID_PR;
+
+/* Forward declarations */
+struct GlobalgNB_ID;
+struct GlobalngeNB_ID;
+
+/* GlobalNG-RANNode-ID */
+typedef struct GlobalNG_RANNode_ID {
+	GlobalNG_RANNode_ID_PR present;
+	union GlobalNG_RANNode_ID_u {
+		struct GlobalgNB_ID	*gNB;
+		struct GlobalngeNB_ID	*ng_eNB;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} GlobalNG_RANNode_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GlobalNG_RANNode_ID;
+extern asn_CHOICE_specifics_t asn_SPC_GlobalNG_RANNode_ID_specs_1;
+extern asn_TYPE_member_t asn_MBR_GlobalNG_RANNode_ID_1[2];
+extern asn_per_constraints_t asn_PER_type_GlobalNG_RANNode_ID_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _GlobalNG_RANNode_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/GlobalRIC-ID.h b/e2ap/headers/GlobalRIC-ID.h
index ad389c3..a00d235 100644
--- a/e2ap/headers/GlobalRIC-ID.h
+++ b/e2ap/headers/GlobalRIC-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_GlobalRIC_ID_H_
diff --git a/e2ap/headers/GlobalenGNB-ID.h b/e2ap/headers/GlobalenGNB-ID.h
index 7df68b1..c15e591 100644
--- a/e2ap/headers/GlobalenGNB-ID.h
+++ b/e2ap/headers/GlobalenGNB-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_GlobalenGNB_ID_H_
diff --git a/e2ap/headers/GlobalgNB-ID.h b/e2ap/headers/GlobalgNB-ID.h
index 242edf2..311a1ee 100644
--- a/e2ap/headers/GlobalgNB-ID.h
+++ b/e2ap/headers/GlobalgNB-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_GlobalgNB_ID_H_
diff --git a/e2ap/headers/GlobalngeNB-ID.h b/e2ap/headers/GlobalngeNB-ID.h
index 8aba4cc..b5ac25e 100644
--- a/e2ap/headers/GlobalngeNB-ID.h
+++ b/e2ap/headers/GlobalngeNB-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_GlobalngeNB_ID_H_
diff --git a/e2ap/headers/InitiatingMessage.h b/e2ap/headers/InitiatingMessage.h
index fd10bc7..7204a1c 100644
--- a/e2ap/headers/InitiatingMessage.h
+++ b/e2ap/headers/InitiatingMessage.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Descriptions"
- * 	found in "E2AP-PDU-Descriptions-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_InitiatingMessage_H_
@@ -22,20 +22,24 @@
 #include "RICsubscriptionDeleteRequest.h"
 #include "RICsubscriptionDeleteResponse.h"
 #include "RICsubscriptionDeleteFailure.h"
-#include "RICserviceUpdate.h"
-#include "RICserviceUpdateAcknowledge.h"
-#include "RICserviceUpdateFailure.h"
 #include "RICcontrolRequest.h"
 #include "RICcontrolAcknowledge.h"
 #include "RICcontrolFailure.h"
 #include "E2setupRequest.h"
 #include "E2setupResponse.h"
 #include "E2setupFailure.h"
+#include "E2nodeConfigurationUpdate.h"
+#include "E2nodeConfigurationUpdateAcknowledge.h"
+#include "E2nodeConfigurationUpdateFailure.h"
 #include "ResetRequest.h"
 #include "ResetResponse.h"
+#include "E2RemovalRequest.h"
+#include "E2RemovalResponse.h"
+#include "E2RemovalFailure.h"
 #include "RICindication.h"
 #include "RICserviceQuery.h"
 #include "ErrorIndication.h"
+#include "RICsubscriptionDeleteRequired.h"
 #include <OPEN_TYPE.h>
 #include <constr_CHOICE.h>
 #include <constr_SEQUENCE.h>
@@ -49,13 +53,15 @@
 	InitiatingMessage__value_PR_NOTHING,	/* No components present */
 	InitiatingMessage__value_PR_RICsubscriptionRequest,
 	InitiatingMessage__value_PR_RICsubscriptionDeleteRequest,
-	InitiatingMessage__value_PR_RICserviceUpdate,
 	InitiatingMessage__value_PR_RICcontrolRequest,
 	InitiatingMessage__value_PR_E2setupRequest,
+	InitiatingMessage__value_PR_E2nodeConfigurationUpdate,
 	InitiatingMessage__value_PR_ResetRequest,
+	InitiatingMessage__value_PR_E2RemovalRequest,
 	InitiatingMessage__value_PR_RICindication,
 	InitiatingMessage__value_PR_RICserviceQuery,
-	InitiatingMessage__value_PR_ErrorIndication
+	InitiatingMessage__value_PR_ErrorIndication,
+	InitiatingMessage__value_PR_RICsubscriptionDeleteRequired
 } InitiatingMessage__value_PR;
 
 /* InitiatingMessage */
@@ -67,13 +73,15 @@
 		union InitiatingMessage__value_u {
 			RICsubscriptionRequest_t	 RICsubscriptionRequest;
 			RICsubscriptionDeleteRequest_t	 RICsubscriptionDeleteRequest;
-			RICserviceUpdate_t	 RICserviceUpdate;
 			RICcontrolRequest_t	 RICcontrolRequest;
 			E2setupRequest_t	 E2setupRequest;
+			E2nodeConfigurationUpdate_t	 E2nodeConfigurationUpdate;
 			ResetRequest_t	 ResetRequest;
+			E2RemovalRequest_t	 E2RemovalRequest;
 			RICindication_t	 RICindication;
 			RICserviceQuery_t	 RICserviceQuery;
 			ErrorIndication_t	 ErrorIndication;
+			RICsubscriptionDeleteRequired_t	 RICsubscriptionDeleteRequired;
 		} choice;
 		
 		/* Context for parsing across buffer boundaries */
diff --git a/e2ap/headers/MMEname.h b/e2ap/headers/MMEname.h
new file mode 100644
index 0000000..7b7bfd4
--- /dev/null
+++ b/e2ap/headers/MMEname.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_MMEname_H_
+#define	_MMEname_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <PrintableString.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MMEname */
+typedef PrintableString_t	 MMEname_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_MMEname_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_MMEname;
+asn_struct_free_f MMEname_free;
+asn_struct_print_f MMEname_print;
+asn_constr_check_f MMEname_constraint;
+ber_type_decoder_f MMEname_decode_ber;
+der_type_encoder_f MMEname_encode_der;
+xer_type_decoder_f MMEname_decode_xer;
+xer_type_encoder_f MMEname_encode_xer;
+oer_type_decoder_f MMEname_decode_oer;
+oer_type_encoder_f MMEname_encode_oer;
+per_type_decoder_f MMEname_decode_uper;
+per_type_encoder_f MMEname_encode_uper;
+per_type_decoder_f MMEname_decode_aper;
+per_type_encoder_f MMEname_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _MMEname_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/NGENB-DU-ID.h b/e2ap/headers/NGENB-DU-ID.h
new file mode 100644
index 0000000..9617b7b
--- /dev/null
+++ b/e2ap/headers/NGENB-DU-ID.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_NGENB_DU_ID_H_
+#define	_NGENB_DU_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <INTEGER.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* NGENB-DU-ID */
+typedef INTEGER_t	 NGENB_DU_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_NGENB_DU_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_NGENB_DU_ID;
+asn_struct_free_f NGENB_DU_ID_free;
+asn_struct_print_f NGENB_DU_ID_print;
+asn_constr_check_f NGENB_DU_ID_constraint;
+ber_type_decoder_f NGENB_DU_ID_decode_ber;
+der_type_encoder_f NGENB_DU_ID_encode_der;
+xer_type_decoder_f NGENB_DU_ID_decode_xer;
+xer_type_encoder_f NGENB_DU_ID_encode_xer;
+oer_type_decoder_f NGENB_DU_ID_decode_oer;
+oer_type_encoder_f NGENB_DU_ID_encode_oer;
+per_type_decoder_f NGENB_DU_ID_decode_uper;
+per_type_encoder_f NGENB_DU_ID_encode_uper;
+per_type_decoder_f NGENB_DU_ID_decode_aper;
+per_type_encoder_f NGENB_DU_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _NGENB_DU_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/PLMN-Identity.h b/e2ap/headers/PLMN-Identity.h
index 2fb1a85..49aea15 100644
--- a/e2ap/headers/PLMN-Identity.h
+++ b/e2ap/headers/PLMN-Identity.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_PLMN_Identity_H_
diff --git a/e2ap/headers/Presence.h b/e2ap/headers/Presence.h
index 06713ac..714b803 100644
--- a/e2ap/headers/Presence.h
+++ b/e2ap/headers/Presence.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2AP-CommonDataTypes"
- * 	found in "E2AP-CommonDataTypes-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_Presence_H_
diff --git a/e2ap/headers/PrintableString.h b/e2ap/headers/PrintableString.h
new file mode 100644
index 0000000..8c2b61a
--- /dev/null
+++ b/e2ap/headers/PrintableString.h
@@ -0,0 +1,37 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef	_PrintableString_H_
+#define	_PrintableString_H_
+
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef OCTET_STRING_t PrintableString_t;  /* Implemented via OCTET STRING */
+
+extern asn_TYPE_descriptor_t asn_DEF_PrintableString;
+extern asn_TYPE_operation_t asn_OP_PrintableString;
+
+asn_constr_check_f PrintableString_constraint;
+
+#define PrintableString_free            OCTET_STRING_free
+#define PrintableString_print           OCTET_STRING_print_utf8
+#define PrintableString_compare         OCTET_STRING_compare
+#define PrintableString_decode_ber      OCTET_STRING_decode_ber
+#define PrintableString_encode_der      OCTET_STRING_encode_der
+#define PrintableString_decode_xer      OCTET_STRING_decode_xer_utf8
+#define PrintableString_encode_xer      OCTET_STRING_encode_xer_utf8
+#define PrintableString_decode_uper     OCTET_STRING_decode_uper
+#define PrintableString_encode_uper     OCTET_STRING_encode_uper
+#define PrintableString_decode_aper     OCTET_STRING_decode_aper
+#define PrintableString_encode_aper     OCTET_STRING_encode_aper
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _PrintableString_H_ */
diff --git a/e2ap/headers/ProcedureCode.h b/e2ap/headers/ProcedureCode.h
index 2b76e8b..0d97a3a 100644
--- a/e2ap/headers/ProcedureCode.h
+++ b/e2ap/headers/ProcedureCode.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2AP-CommonDataTypes"
- * 	found in "E2AP-CommonDataTypes-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_ProcedureCode_H_
@@ -46,6 +46,10 @@
 #define ProcedureCode_id_RICserviceUpdate	((ProcedureCode_t)7)
 #define ProcedureCode_id_RICsubscription	((ProcedureCode_t)8)
 #define ProcedureCode_id_RICsubscriptionDelete	((ProcedureCode_t)9)
+#define ProcedureCode_id_E2nodeConfigurationUpdate	((ProcedureCode_t)10)
+#define ProcedureCode_id_E2connectionUpdate	((ProcedureCode_t)11)
+#define ProcedureCode_id_RICsubscriptionDeleteRequired	((ProcedureCode_t)12)
+#define ProcedureCode_id_E2removal	((ProcedureCode_t)13)
 
 #ifdef __cplusplus
 }
diff --git a/e2ap/headers/ProtocolIE-Container.h b/e2ap/headers/ProtocolIE-Container.h
index 361db9c..02009e2 100644
--- a/e2ap/headers/ProtocolIE-Container.h
+++ b/e2ap/headers/ProtocolIE-Container.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-Containers"
- * 	found in "E2AP-Containers-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_ProtocolIE_Container_H_
@@ -26,6 +26,7 @@
 struct RICsubscriptionDeleteRequest_IEs;
 struct RICsubscriptionDeleteResponse_IEs;
 struct RICsubscriptionDeleteFailure_IEs;
+struct RICsubscriptionDeleteRequired_IEs;
 struct RICindication_IEs;
 struct RICcontrolRequest_IEs;
 struct RICcontrolAcknowledge_IEs;
@@ -34,216 +35,259 @@
 struct E2setupRequestIEs;
 struct E2setupResponseIEs;
 struct E2setupFailureIEs;
+struct E2nodeConfigurationUpdate_IEs;
+struct E2nodeConfigurationUpdateAcknowledge_IEs;
+struct E2nodeConfigurationUpdateFailure_IEs;
 struct ResetRequestIEs;
 struct ResetResponseIEs;
-struct RICserviceUpdate_IEs;
-struct RICserviceUpdateAcknowledge_IEs;
-struct RICserviceUpdateFailure_IEs;
 struct RICserviceQuery_IEs;
+struct E2RemovalRequestIEs;
+struct E2RemovalResponseIEs;
+struct E2RemovalFailureIEs;
 
 /* ProtocolIE-Container */
-typedef struct ProtocolIE_Container_87P0 {
+typedef struct ProtocolIE_Container_185P0 {
 	A_SEQUENCE_OF(struct RICsubscriptionRequest_IEs) list;
 	
 	/* Context for parsing across buffer boundaries */
 	asn_struct_ctx_t _asn_ctx;
-} ProtocolIE_Container_87P0_t;
-typedef struct ProtocolIE_Container_87P1 {
+} ProtocolIE_Container_185P0_t;
+typedef struct ProtocolIE_Container_185P1 {
 	A_SEQUENCE_OF(struct RICsubscriptionResponse_IEs) list;
 	
 	/* Context for parsing across buffer boundaries */
 	asn_struct_ctx_t _asn_ctx;
-} ProtocolIE_Container_87P1_t;
-typedef struct ProtocolIE_Container_87P2 {
+} ProtocolIE_Container_185P1_t;
+typedef struct ProtocolIE_Container_185P2 {
 	A_SEQUENCE_OF(struct RICsubscriptionFailure_IEs) list;
 	
 	/* Context for parsing across buffer boundaries */
 	asn_struct_ctx_t _asn_ctx;
-} ProtocolIE_Container_87P2_t;
-typedef struct ProtocolIE_Container_87P3 {
+} ProtocolIE_Container_185P2_t;
+typedef struct ProtocolIE_Container_185P3 {
 	A_SEQUENCE_OF(struct RICsubscriptionDeleteRequest_IEs) list;
 	
 	/* Context for parsing across buffer boundaries */
 	asn_struct_ctx_t _asn_ctx;
-} ProtocolIE_Container_87P3_t;
-typedef struct ProtocolIE_Container_87P4 {
+} ProtocolIE_Container_185P3_t;
+typedef struct ProtocolIE_Container_185P4 {
 	A_SEQUENCE_OF(struct RICsubscriptionDeleteResponse_IEs) list;
 	
 	/* Context for parsing across buffer boundaries */
 	asn_struct_ctx_t _asn_ctx;
-} ProtocolIE_Container_87P4_t;
-typedef struct ProtocolIE_Container_87P5 {
+} ProtocolIE_Container_185P4_t;
+typedef struct ProtocolIE_Container_185P5 {
 	A_SEQUENCE_OF(struct RICsubscriptionDeleteFailure_IEs) list;
 	
 	/* Context for parsing across buffer boundaries */
 	asn_struct_ctx_t _asn_ctx;
-} ProtocolIE_Container_87P5_t;
-typedef struct ProtocolIE_Container_87P6 {
+} ProtocolIE_Container_185P5_t;
+typedef struct ProtocolIE_Container_185P6 {
+	A_SEQUENCE_OF(struct RICsubscriptionDeleteRequired_IEs) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_185P6_t;
+typedef struct ProtocolIE_Container_185P7 {
 	A_SEQUENCE_OF(struct RICindication_IEs) list;
 	
 	/* Context for parsing across buffer boundaries */
 	asn_struct_ctx_t _asn_ctx;
-} ProtocolIE_Container_87P6_t;
-typedef struct ProtocolIE_Container_87P7 {
+} ProtocolIE_Container_185P7_t;
+typedef struct ProtocolIE_Container_185P8 {
 	A_SEQUENCE_OF(struct RICcontrolRequest_IEs) list;
 	
 	/* Context for parsing across buffer boundaries */
 	asn_struct_ctx_t _asn_ctx;
-} ProtocolIE_Container_87P7_t;
-typedef struct ProtocolIE_Container_87P8 {
+} ProtocolIE_Container_185P8_t;
+typedef struct ProtocolIE_Container_185P9 {
 	A_SEQUENCE_OF(struct RICcontrolAcknowledge_IEs) list;
 	
 	/* Context for parsing across buffer boundaries */
 	asn_struct_ctx_t _asn_ctx;
-} ProtocolIE_Container_87P8_t;
-typedef struct ProtocolIE_Container_87P9 {
+} ProtocolIE_Container_185P9_t;
+typedef struct ProtocolIE_Container_185P10 {
 	A_SEQUENCE_OF(struct RICcontrolFailure_IEs) list;
 	
 	/* Context for parsing across buffer boundaries */
 	asn_struct_ctx_t _asn_ctx;
-} ProtocolIE_Container_87P9_t;
-typedef struct ProtocolIE_Container_87P10 {
+} ProtocolIE_Container_185P10_t;
+typedef struct ProtocolIE_Container_185P11 {
 	A_SEQUENCE_OF(struct ErrorIndication_IEs) list;
 	
 	/* Context for parsing across buffer boundaries */
 	asn_struct_ctx_t _asn_ctx;
-} ProtocolIE_Container_87P10_t;
-typedef struct ProtocolIE_Container_87P11 {
+} ProtocolIE_Container_185P11_t;
+typedef struct ProtocolIE_Container_185P12 {
 	A_SEQUENCE_OF(struct E2setupRequestIEs) list;
 	
 	/* Context for parsing across buffer boundaries */
 	asn_struct_ctx_t _asn_ctx;
-} ProtocolIE_Container_87P11_t;
-typedef struct ProtocolIE_Container_87P12 {
+} ProtocolIE_Container_185P12_t;
+typedef struct ProtocolIE_Container_185P13 {
 	A_SEQUENCE_OF(struct E2setupResponseIEs) list;
 	
 	/* Context for parsing across buffer boundaries */
 	asn_struct_ctx_t _asn_ctx;
-} ProtocolIE_Container_87P12_t;
-typedef struct ProtocolIE_Container_87P13 {
+} ProtocolIE_Container_185P13_t;
+typedef struct ProtocolIE_Container_185P14 {
 	A_SEQUENCE_OF(struct E2setupFailureIEs) list;
 	
 	/* Context for parsing across buffer boundaries */
 	asn_struct_ctx_t _asn_ctx;
-} ProtocolIE_Container_87P13_t;
-typedef struct ProtocolIE_Container_87P14 {
+} ProtocolIE_Container_185P14_t;
+typedef struct ProtocolIE_Container_185P15 {
+	A_SEQUENCE_OF(struct E2nodeConfigurationUpdate_IEs) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_185P15_t;
+typedef struct ProtocolIE_Container_185P16 {
+	A_SEQUENCE_OF(struct E2nodeConfigurationUpdateAcknowledge_IEs) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_185P16_t;
+typedef struct ProtocolIE_Container_185P17 {
+	A_SEQUENCE_OF(struct E2nodeConfigurationUpdateFailure_IEs) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_185P17_t;
+typedef struct ProtocolIE_Container_185P18 {
 	A_SEQUENCE_OF(struct ResetRequestIEs) list;
 	
 	/* Context for parsing across buffer boundaries */
 	asn_struct_ctx_t _asn_ctx;
-} ProtocolIE_Container_87P14_t;
-typedef struct ProtocolIE_Container_87P15 {
+} ProtocolIE_Container_185P18_t;
+typedef struct ProtocolIE_Container_185P19 {
 	A_SEQUENCE_OF(struct ResetResponseIEs) list;
 	
 	/* Context for parsing across buffer boundaries */
 	asn_struct_ctx_t _asn_ctx;
-} ProtocolIE_Container_87P15_t;
-typedef struct ProtocolIE_Container_87P16 {
-	A_SEQUENCE_OF(struct RICserviceUpdate_IEs) list;
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} ProtocolIE_Container_87P16_t;
-typedef struct ProtocolIE_Container_87P17 {
-	A_SEQUENCE_OF(struct RICserviceUpdateAcknowledge_IEs) list;
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} ProtocolIE_Container_87P17_t;
-typedef struct ProtocolIE_Container_87P18 {
-	A_SEQUENCE_OF(struct RICserviceUpdateFailure_IEs) list;
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} ProtocolIE_Container_87P18_t;
-typedef struct ProtocolIE_Container_87P19 {
+} ProtocolIE_Container_185P19_t;
+typedef struct ProtocolIE_Container_185P20 {
 	A_SEQUENCE_OF(struct RICserviceQuery_IEs) list;
 	
 	/* Context for parsing across buffer boundaries */
 	asn_struct_ctx_t _asn_ctx;
-} ProtocolIE_Container_87P19_t;
+} ProtocolIE_Container_185P20_t;
+typedef struct ProtocolIE_Container_185P21 {
+	A_SEQUENCE_OF(struct E2RemovalRequestIEs) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_185P21_t;
+typedef struct ProtocolIE_Container_185P22 {
+	A_SEQUENCE_OF(struct E2RemovalResponseIEs) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_185P22_t;
+typedef struct ProtocolIE_Container_185P23 {
+	A_SEQUENCE_OF(struct E2RemovalFailureIEs) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} ProtocolIE_Container_185P23_t;
 
 /* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P0;
-extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P0_specs_1;
-extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P0_1[1];
-extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P0_constr_1;
-extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P1;
-extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P1_specs_3;
-extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P1_3[1];
-extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P1_constr_3;
-extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P2;
-extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P2_specs_5;
-extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P2_5[1];
-extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P2_constr_5;
-extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P3;
-extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P3_specs_7;
-extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P3_7[1];
-extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P3_constr_7;
-extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P4;
-extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P4_specs_9;
-extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P4_9[1];
-extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P4_constr_9;
-extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P5;
-extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P5_specs_11;
-extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P5_11[1];
-extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P5_constr_11;
-extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P6;
-extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P6_specs_13;
-extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P6_13[1];
-extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P6_constr_13;
-extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P7;
-extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P7_specs_15;
-extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P7_15[1];
-extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P7_constr_15;
-extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P8;
-extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P8_specs_17;
-extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P8_17[1];
-extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P8_constr_17;
-extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P9;
-extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P9_specs_19;
-extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P9_19[1];
-extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P9_constr_19;
-extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P10;
-extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P10_specs_21;
-extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P10_21[1];
-extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P10_constr_21;
-extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P11;
-extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P11_specs_23;
-extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P11_23[1];
-extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P11_constr_23;
-extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P12;
-extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P12_specs_25;
-extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P12_25[1];
-extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P12_constr_25;
-extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P13;
-extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P13_specs_27;
-extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P13_27[1];
-extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P13_constr_27;
-extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P14;
-extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P14_specs_29;
-extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P14_29[1];
-extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P14_constr_29;
-extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P15;
-extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P15_specs_31;
-extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P15_31[1];
-extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P15_constr_31;
-extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P16;
-extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P16_specs_33;
-extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P16_33[1];
-extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P16_constr_33;
-extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P17;
-extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P17_specs_35;
-extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P17_35[1];
-extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P17_constr_35;
-extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P18;
-extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P18_specs_37;
-extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P18_37[1];
-extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P18_constr_37;
-extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P19;
-extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P19_specs_39;
-extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P19_39[1];
-extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P19_constr_39;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P0;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P0_specs_1;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P0_1[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P0_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P1;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P1_specs_3;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P1_3[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P1_constr_3;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P2;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P2_specs_5;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P2_5[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P2_constr_5;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P3;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P3_specs_7;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P3_7[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P3_constr_7;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P4;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P4_specs_9;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P4_9[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P4_constr_9;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P5;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P5_specs_11;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P5_11[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P5_constr_11;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P6;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P6_specs_13;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P6_13[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P6_constr_13;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P7;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P7_specs_15;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P7_15[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P7_constr_15;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P8;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P8_specs_17;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P8_17[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P8_constr_17;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P9;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P9_specs_19;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P9_19[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P9_constr_19;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P10;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P10_specs_21;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P10_21[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P10_constr_21;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P11;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P11_specs_23;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P11_23[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P11_constr_23;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P12;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P12_specs_25;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P12_25[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P12_constr_25;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P13;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P13_specs_27;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P13_27[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P13_constr_27;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P14;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P14_specs_29;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P14_29[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P14_constr_29;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P15;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P15_specs_31;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P15_31[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P15_constr_31;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P16;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P16_specs_33;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P16_33[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P16_constr_33;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P17;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P17_specs_35;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P17_35[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P17_constr_35;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P18;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P18_specs_37;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P18_37[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P18_constr_37;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P19;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P19_specs_39;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P19_39[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P19_constr_39;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P20;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P20_specs_41;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P20_41[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P20_constr_41;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P21;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P21_specs_43;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P21_43[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P21_constr_43;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P22;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P22_specs_45;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P22_45[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P22_constr_45;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P23;
+extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P23_specs_47;
+extern asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P23_47[1];
+extern asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P23_constr_47;
 
 #ifdef __cplusplus
 }
diff --git a/e2ap/headers/ProtocolIE-ContainerList.h b/e2ap/headers/ProtocolIE-ContainerList.h
index 44b1d2a..3dd26ed 100644
--- a/e2ap/headers/ProtocolIE-ContainerList.h
+++ b/e2ap/headers/ProtocolIE-ContainerList.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-Containers"
- * 	found in "E2AP-Containers-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_ProtocolIE_ContainerList_H_
diff --git a/e2ap/headers/ProtocolIE-ContainerPair.h b/e2ap/headers/ProtocolIE-ContainerPair.h
index cac7e26..e0afa48 100644
--- a/e2ap/headers/ProtocolIE-ContainerPair.h
+++ b/e2ap/headers/ProtocolIE-ContainerPair.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-Containers"
- * 	found in "E2AP-Containers-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_ProtocolIE_ContainerPair_H_
diff --git a/e2ap/headers/ProtocolIE-ContainerPairList.h b/e2ap/headers/ProtocolIE-ContainerPairList.h
index 9d6a2d3..80d1ea7 100644
--- a/e2ap/headers/ProtocolIE-ContainerPairList.h
+++ b/e2ap/headers/ProtocolIE-ContainerPairList.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-Containers"
- * 	found in "E2AP-Containers-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_ProtocolIE_ContainerPairList_H_
diff --git a/e2ap/headers/ProtocolIE-Field.h b/e2ap/headers/ProtocolIE-Field.h
index 8bbef66..46d68ec 100644
--- a/e2ap/headers/ProtocolIE-Field.h
+++ b/e2ap/headers/ProtocolIE-Field.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-Containers"
- * 	found in "E2AP-Containers-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_ProtocolIE_Field_H_
@@ -23,6 +23,14 @@
 #include <constr_SEQUENCE.h>
 #include "RICaction-Admitted-Item.h"
 #include "RICaction-NotAdmitted-Item.h"
+#include "RICsubscription-withCause-Item.h"
+#include "E2nodeComponentConfigAddition-Item.h"
+#include "E2nodeComponentConfigUpdate-Item.h"
+#include "E2nodeComponentConfigRemoval-Item.h"
+#include "E2nodeTNLassociationRemoval-Item.h"
+#include "E2nodeComponentConfigAdditionAck-Item.h"
+#include "E2nodeComponentConfigUpdateAck-Item.h"
+#include "E2nodeComponentConfigRemovalAck-Item.h"
 #include "RANfunction-Item.h"
 #include "RANfunctionID-Item.h"
 #include "RANfunctionIDcause-Item.h"
@@ -31,8 +39,9 @@
 #include "RICsubscriptionDetails.h"
 #include "RICaction-Admitted-List.h"
 #include "RICaction-NotAdmitted-List.h"
-#include "CriticalityDiagnostics.h"
 #include "Cause.h"
+#include "CriticalityDiagnostics.h"
+#include "RICsubscription-List-withCause.h"
 #include "RICactionID.h"
 #include "RICindicationSN.h"
 #include "RICindicationType.h"
@@ -42,14 +51,22 @@
 #include "RICcontrolHeader.h"
 #include "RICcontrolMessage.h"
 #include "RICcontrolAckRequest.h"
-#include "RICcontrolStatus.h"
 #include "RICcontrolOutcome.h"
+#include "TransactionID.h"
 #include "GlobalE2node-ID.h"
 #include "RANfunctions-List.h"
+#include "E2nodeComponentConfigAddition-List.h"
 #include "GlobalRIC-ID.h"
 #include "RANfunctionsID-List.h"
 #include "RANfunctionsIDcause-List.h"
+#include "E2nodeComponentConfigAdditionAck-List.h"
 #include "TimeToWait.h"
+#include "TNLinformation.h"
+#include "E2nodeComponentConfigUpdate-List.h"
+#include "E2nodeComponentConfigRemoval-List.h"
+#include "E2nodeTNLassociationRemoval-List.h"
+#include "E2nodeComponentConfigUpdateAck-List.h"
+#include "E2nodeComponentConfigRemovalAck-List.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -68,6 +85,38 @@
 	RICaction_NotAdmitted_ItemIEs__value_PR_NOTHING,	/* No components present */
 	RICaction_NotAdmitted_ItemIEs__value_PR_RICaction_NotAdmitted_Item
 } RICaction_NotAdmitted_ItemIEs__value_PR;
+typedef enum RICsubscription_withCause_ItemIEs__value_PR {
+	RICsubscription_withCause_ItemIEs__value_PR_NOTHING,	/* No components present */
+	RICsubscription_withCause_ItemIEs__value_PR_RICsubscription_withCause_Item
+} RICsubscription_withCause_ItemIEs__value_PR;
+typedef enum E2nodeComponentConfigAddition_ItemIEs__value_PR {
+	E2nodeComponentConfigAddition_ItemIEs__value_PR_NOTHING,	/* No components present */
+	E2nodeComponentConfigAddition_ItemIEs__value_PR_E2nodeComponentConfigAddition_Item
+} E2nodeComponentConfigAddition_ItemIEs__value_PR;
+typedef enum E2nodeComponentConfigUpdate_ItemIEs__value_PR {
+	E2nodeComponentConfigUpdate_ItemIEs__value_PR_NOTHING,	/* No components present */
+	E2nodeComponentConfigUpdate_ItemIEs__value_PR_E2nodeComponentConfigUpdate_Item
+} E2nodeComponentConfigUpdate_ItemIEs__value_PR;
+typedef enum E2nodeComponentConfigRemoval_ItemIEs__value_PR {
+	E2nodeComponentConfigRemoval_ItemIEs__value_PR_NOTHING,	/* No components present */
+	E2nodeComponentConfigRemoval_ItemIEs__value_PR_E2nodeComponentConfigRemoval_Item
+} E2nodeComponentConfigRemoval_ItemIEs__value_PR;
+typedef enum E2nodeTNLassociationRemoval_ItemIEs__value_PR {
+	E2nodeTNLassociationRemoval_ItemIEs__value_PR_NOTHING,	/* No components present */
+	E2nodeTNLassociationRemoval_ItemIEs__value_PR_E2nodeTNLassociationRemoval_Item
+} E2nodeTNLassociationRemoval_ItemIEs__value_PR;
+typedef enum E2nodeComponentConfigAdditionAck_ItemIEs__value_PR {
+	E2nodeComponentConfigAdditionAck_ItemIEs__value_PR_NOTHING,	/* No components present */
+	E2nodeComponentConfigAdditionAck_ItemIEs__value_PR_E2nodeComponentConfigAdditionAck_Item
+} E2nodeComponentConfigAdditionAck_ItemIEs__value_PR;
+typedef enum E2nodeComponentConfigUpdateAck_ItemIEs__value_PR {
+	E2nodeComponentConfigUpdateAck_ItemIEs__value_PR_NOTHING,	/* No components present */
+	E2nodeComponentConfigUpdateAck_ItemIEs__value_PR_E2nodeComponentConfigUpdateAck_Item
+} E2nodeComponentConfigUpdateAck_ItemIEs__value_PR;
+typedef enum E2nodeComponentConfigRemovalAck_ItemIEs__value_PR {
+	E2nodeComponentConfigRemovalAck_ItemIEs__value_PR_NOTHING,	/* No components present */
+	E2nodeComponentConfigRemovalAck_ItemIEs__value_PR_E2nodeComponentConfigRemovalAck_Item
+} E2nodeComponentConfigRemovalAck_ItemIEs__value_PR;
 typedef enum RANfunction_ItemIEs__value_PR {
 	RANfunction_ItemIEs__value_PR_NOTHING,	/* No components present */
 	RANfunction_ItemIEs__value_PR_RANfunction_Item
@@ -97,7 +146,7 @@
 	RICsubscriptionFailure_IEs__value_PR_NOTHING,	/* No components present */
 	RICsubscriptionFailure_IEs__value_PR_RICrequestID,
 	RICsubscriptionFailure_IEs__value_PR_RANfunctionID,
-	RICsubscriptionFailure_IEs__value_PR_RICaction_NotAdmitted_List,
+	RICsubscriptionFailure_IEs__value_PR_Cause,
 	RICsubscriptionFailure_IEs__value_PR_CriticalityDiagnostics
 } RICsubscriptionFailure_IEs__value_PR;
 typedef enum RICsubscriptionDeleteRequest_IEs__value_PR {
@@ -117,6 +166,10 @@
 	RICsubscriptionDeleteFailure_IEs__value_PR_Cause,
 	RICsubscriptionDeleteFailure_IEs__value_PR_CriticalityDiagnostics
 } RICsubscriptionDeleteFailure_IEs__value_PR;
+typedef enum RICsubscriptionDeleteRequired_IEs__value_PR {
+	RICsubscriptionDeleteRequired_IEs__value_PR_NOTHING,	/* No components present */
+	RICsubscriptionDeleteRequired_IEs__value_PR_RICsubscription_List_withCause
+} RICsubscriptionDeleteRequired_IEs__value_PR;
 typedef enum RICindication_IEs__value_PR {
 	RICindication_IEs__value_PR_NOTHING,	/* No components present */
 	RICindication_IEs__value_PR_RICrequestID,
@@ -142,7 +195,6 @@
 	RICcontrolAcknowledge_IEs__value_PR_RICrequestID,
 	RICcontrolAcknowledge_IEs__value_PR_RANfunctionID,
 	RICcontrolAcknowledge_IEs__value_PR_RICcallProcessID,
-	RICcontrolAcknowledge_IEs__value_PR_RICcontrolStatus,
 	RICcontrolAcknowledge_IEs__value_PR_RICcontrolOutcome
 } RICcontrolAcknowledge_IEs__value_PR;
 typedef enum RICcontrolFailure_IEs__value_PR {
@@ -155,6 +207,7 @@
 } RICcontrolFailure_IEs__value_PR;
 typedef enum ErrorIndication_IEs__value_PR {
 	ErrorIndication_IEs__value_PR_NOTHING,	/* No components present */
+	ErrorIndication_IEs__value_PR_TransactionID,
 	ErrorIndication_IEs__value_PR_RICrequestID,
 	ErrorIndication_IEs__value_PR_RANfunctionID,
 	ErrorIndication_IEs__value_PR_Cause,
@@ -162,49 +215,80 @@
 } ErrorIndication_IEs__value_PR;
 typedef enum E2setupRequestIEs__value_PR {
 	E2setupRequestIEs__value_PR_NOTHING,	/* No components present */
+	E2setupRequestIEs__value_PR_TransactionID,
 	E2setupRequestIEs__value_PR_GlobalE2node_ID,
-	E2setupRequestIEs__value_PR_RANfunctions_List
+	E2setupRequestIEs__value_PR_RANfunctions_List,
+	E2setupRequestIEs__value_PR_E2nodeComponentConfigAddition_List
 } E2setupRequestIEs__value_PR;
 typedef enum E2setupResponseIEs__value_PR {
 	E2setupResponseIEs__value_PR_NOTHING,	/* No components present */
+	E2setupResponseIEs__value_PR_TransactionID,
 	E2setupResponseIEs__value_PR_GlobalRIC_ID,
 	E2setupResponseIEs__value_PR_RANfunctionsID_List,
-	E2setupResponseIEs__value_PR_RANfunctionsIDcause_List
+	E2setupResponseIEs__value_PR_RANfunctionsIDcause_List,
+	E2setupResponseIEs__value_PR_E2nodeComponentConfigAdditionAck_List
 } E2setupResponseIEs__value_PR;
 typedef enum E2setupFailureIEs__value_PR {
 	E2setupFailureIEs__value_PR_NOTHING,	/* No components present */
+	E2setupFailureIEs__value_PR_TransactionID,
 	E2setupFailureIEs__value_PR_Cause,
 	E2setupFailureIEs__value_PR_TimeToWait,
-	E2setupFailureIEs__value_PR_CriticalityDiagnostics
+	E2setupFailureIEs__value_PR_CriticalityDiagnostics,
+	E2setupFailureIEs__value_PR_TNLinformation
 } E2setupFailureIEs__value_PR;
+typedef enum E2nodeConfigurationUpdate_IEs__value_PR {
+	E2nodeConfigurationUpdate_IEs__value_PR_NOTHING,	/* No components present */
+	E2nodeConfigurationUpdate_IEs__value_PR_TransactionID,
+	E2nodeConfigurationUpdate_IEs__value_PR_GlobalE2node_ID,
+	E2nodeConfigurationUpdate_IEs__value_PR_E2nodeComponentConfigAddition_List,
+	E2nodeConfigurationUpdate_IEs__value_PR_E2nodeComponentConfigUpdate_List,
+	E2nodeConfigurationUpdate_IEs__value_PR_E2nodeComponentConfigRemoval_List,
+	E2nodeConfigurationUpdate_IEs__value_PR_E2nodeTNLassociationRemoval_List
+} E2nodeConfigurationUpdate_IEs__value_PR;
+typedef enum E2nodeConfigurationUpdateAcknowledge_IEs__value_PR {
+	E2nodeConfigurationUpdateAcknowledge_IEs__value_PR_NOTHING,	/* No components present */
+	E2nodeConfigurationUpdateAcknowledge_IEs__value_PR_TransactionID,
+	E2nodeConfigurationUpdateAcknowledge_IEs__value_PR_E2nodeComponentConfigAdditionAck_List,
+	E2nodeConfigurationUpdateAcknowledge_IEs__value_PR_E2nodeComponentConfigUpdateAck_List,
+	E2nodeConfigurationUpdateAcknowledge_IEs__value_PR_E2nodeComponentConfigRemovalAck_List
+} E2nodeConfigurationUpdateAcknowledge_IEs__value_PR;
+typedef enum E2nodeConfigurationUpdateFailure_IEs__value_PR {
+	E2nodeConfigurationUpdateFailure_IEs__value_PR_NOTHING,	/* No components present */
+	E2nodeConfigurationUpdateFailure_IEs__value_PR_TransactionID,
+	E2nodeConfigurationUpdateFailure_IEs__value_PR_Cause,
+	E2nodeConfigurationUpdateFailure_IEs__value_PR_TimeToWait,
+	E2nodeConfigurationUpdateFailure_IEs__value_PR_CriticalityDiagnostics
+} E2nodeConfigurationUpdateFailure_IEs__value_PR;
 typedef enum ResetRequestIEs__value_PR {
 	ResetRequestIEs__value_PR_NOTHING,	/* No components present */
+	ResetRequestIEs__value_PR_TransactionID,
 	ResetRequestIEs__value_PR_Cause
 } ResetRequestIEs__value_PR;
 typedef enum ResetResponseIEs__value_PR {
 	ResetResponseIEs__value_PR_NOTHING,	/* No components present */
+	ResetResponseIEs__value_PR_TransactionID,
 	ResetResponseIEs__value_PR_CriticalityDiagnostics
 } ResetResponseIEs__value_PR;
-typedef enum RICserviceUpdate_IEs__value_PR {
-	RICserviceUpdate_IEs__value_PR_NOTHING,	/* No components present */
-	RICserviceUpdate_IEs__value_PR_RANfunctions_List,
-	RICserviceUpdate_IEs__value_PR_RANfunctionsID_List
-} RICserviceUpdate_IEs__value_PR;
-typedef enum RICserviceUpdateAcknowledge_IEs__value_PR {
-	RICserviceUpdateAcknowledge_IEs__value_PR_NOTHING,	/* No components present */
-	RICserviceUpdateAcknowledge_IEs__value_PR_RANfunctionsID_List,
-	RICserviceUpdateAcknowledge_IEs__value_PR_RANfunctionsIDcause_List
-} RICserviceUpdateAcknowledge_IEs__value_PR;
-typedef enum RICserviceUpdateFailure_IEs__value_PR {
-	RICserviceUpdateFailure_IEs__value_PR_NOTHING,	/* No components present */
-	RICserviceUpdateFailure_IEs__value_PR_RANfunctionsIDcause_List,
-	RICserviceUpdateFailure_IEs__value_PR_TimeToWait,
-	RICserviceUpdateFailure_IEs__value_PR_CriticalityDiagnostics
-} RICserviceUpdateFailure_IEs__value_PR;
 typedef enum RICserviceQuery_IEs__value_PR {
 	RICserviceQuery_IEs__value_PR_NOTHING,	/* No components present */
+	RICserviceQuery_IEs__value_PR_TransactionID,
 	RICserviceQuery_IEs__value_PR_RANfunctionsID_List
 } RICserviceQuery_IEs__value_PR;
+typedef enum E2RemovalRequestIEs__value_PR {
+	E2RemovalRequestIEs__value_PR_NOTHING,	/* No components present */
+	E2RemovalRequestIEs__value_PR_TransactionID
+} E2RemovalRequestIEs__value_PR;
+typedef enum E2RemovalResponseIEs__value_PR {
+	E2RemovalResponseIEs__value_PR_NOTHING,	/* No components present */
+	E2RemovalResponseIEs__value_PR_TransactionID,
+	E2RemovalResponseIEs__value_PR_CriticalityDiagnostics
+} E2RemovalResponseIEs__value_PR;
+typedef enum E2RemovalFailureIEs__value_PR {
+	E2RemovalFailureIEs__value_PR_NOTHING,	/* No components present */
+	E2RemovalFailureIEs__value_PR_TransactionID,
+	E2RemovalFailureIEs__value_PR_Cause,
+	E2RemovalFailureIEs__value_PR_CriticalityDiagnostics
+} E2RemovalFailureIEs__value_PR;
 
 /* ProtocolIE-Field */
 typedef struct RICaction_ToBeSetup_ItemIEs {
@@ -255,6 +339,134 @@
 	/* Context for parsing across buffer boundaries */
 	asn_struct_ctx_t _asn_ctx;
 } RICaction_NotAdmitted_ItemIEs_t;
+typedef struct RICsubscription_withCause_ItemIEs {
+	ProtocolIE_ID_t	 id;
+	Criticality_t	 criticality;
+	struct RICsubscription_withCause_ItemIEs__value {
+		RICsubscription_withCause_ItemIEs__value_PR present;
+		union RICsubscription_withCause_ItemIEs__value_u {
+			RICsubscription_withCause_Item_t	 RICsubscription_withCause_Item;
+		} choice;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} value;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RICsubscription_withCause_ItemIEs_t;
+typedef struct E2nodeComponentConfigAddition_ItemIEs {
+	ProtocolIE_ID_t	 id;
+	Criticality_t	 criticality;
+	struct E2nodeComponentConfigAddition_ItemIEs__value {
+		E2nodeComponentConfigAddition_ItemIEs__value_PR present;
+		union E2nodeComponentConfigAddition_ItemIEs__value_u {
+			E2nodeComponentConfigAddition_Item_t	 E2nodeComponentConfigAddition_Item;
+		} choice;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} value;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeComponentConfigAddition_ItemIEs_t;
+typedef struct E2nodeComponentConfigUpdate_ItemIEs {
+	ProtocolIE_ID_t	 id;
+	Criticality_t	 criticality;
+	struct E2nodeComponentConfigUpdate_ItemIEs__value {
+		E2nodeComponentConfigUpdate_ItemIEs__value_PR present;
+		union E2nodeComponentConfigUpdate_ItemIEs__value_u {
+			E2nodeComponentConfigUpdate_Item_t	 E2nodeComponentConfigUpdate_Item;
+		} choice;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} value;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeComponentConfigUpdate_ItemIEs_t;
+typedef struct E2nodeComponentConfigRemoval_ItemIEs {
+	ProtocolIE_ID_t	 id;
+	Criticality_t	 criticality;
+	struct E2nodeComponentConfigRemoval_ItemIEs__value {
+		E2nodeComponentConfigRemoval_ItemIEs__value_PR present;
+		union E2nodeComponentConfigRemoval_ItemIEs__value_u {
+			E2nodeComponentConfigRemoval_Item_t	 E2nodeComponentConfigRemoval_Item;
+		} choice;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} value;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeComponentConfigRemoval_ItemIEs_t;
+typedef struct E2nodeTNLassociationRemoval_ItemIEs {
+	ProtocolIE_ID_t	 id;
+	Criticality_t	 criticality;
+	struct E2nodeTNLassociationRemoval_ItemIEs__value {
+		E2nodeTNLassociationRemoval_ItemIEs__value_PR present;
+		union E2nodeTNLassociationRemoval_ItemIEs__value_u {
+			E2nodeTNLassociationRemoval_Item_t	 E2nodeTNLassociationRemoval_Item;
+		} choice;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} value;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeTNLassociationRemoval_ItemIEs_t;
+typedef struct E2nodeComponentConfigAdditionAck_ItemIEs {
+	ProtocolIE_ID_t	 id;
+	Criticality_t	 criticality;
+	struct E2nodeComponentConfigAdditionAck_ItemIEs__value {
+		E2nodeComponentConfigAdditionAck_ItemIEs__value_PR present;
+		union E2nodeComponentConfigAdditionAck_ItemIEs__value_u {
+			E2nodeComponentConfigAdditionAck_Item_t	 E2nodeComponentConfigAdditionAck_Item;
+		} choice;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} value;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeComponentConfigAdditionAck_ItemIEs_t;
+typedef struct E2nodeComponentConfigUpdateAck_ItemIEs {
+	ProtocolIE_ID_t	 id;
+	Criticality_t	 criticality;
+	struct E2nodeComponentConfigUpdateAck_ItemIEs__value {
+		E2nodeComponentConfigUpdateAck_ItemIEs__value_PR present;
+		union E2nodeComponentConfigUpdateAck_ItemIEs__value_u {
+			E2nodeComponentConfigUpdateAck_Item_t	 E2nodeComponentConfigUpdateAck_Item;
+		} choice;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} value;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeComponentConfigUpdateAck_ItemIEs_t;
+typedef struct E2nodeComponentConfigRemovalAck_ItemIEs {
+	ProtocolIE_ID_t	 id;
+	Criticality_t	 criticality;
+	struct E2nodeComponentConfigRemovalAck_ItemIEs__value {
+		E2nodeComponentConfigRemovalAck_ItemIEs__value_PR present;
+		union E2nodeComponentConfigRemovalAck_ItemIEs__value_u {
+			E2nodeComponentConfigRemovalAck_Item_t	 E2nodeComponentConfigRemovalAck_Item;
+		} choice;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} value;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeComponentConfigRemovalAck_ItemIEs_t;
 typedef struct RANfunction_ItemIEs {
 	ProtocolIE_ID_t	 id;
 	Criticality_t	 criticality;
@@ -348,7 +560,7 @@
 		union RICsubscriptionFailure_IEs__value_u {
 			RICrequestID_t	 RICrequestID;
 			RANfunctionID_t	 RANfunctionID;
-			RICaction_NotAdmitted_List_t	 RICaction_NotAdmitted_List;
+			Cause_t	 Cause;
 			CriticalityDiagnostics_t	 CriticalityDiagnostics;
 		} choice;
 		
@@ -412,6 +624,22 @@
 	/* Context for parsing across buffer boundaries */
 	asn_struct_ctx_t _asn_ctx;
 } RICsubscriptionDeleteFailure_IEs_t;
+typedef struct RICsubscriptionDeleteRequired_IEs {
+	ProtocolIE_ID_t	 id;
+	Criticality_t	 criticality;
+	struct RICsubscriptionDeleteRequired_IEs__value {
+		RICsubscriptionDeleteRequired_IEs__value_PR present;
+		union RICsubscriptionDeleteRequired_IEs__value_u {
+			RICsubscription_List_withCause_t	 RICsubscription_List_withCause;
+		} choice;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} value;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RICsubscriptionDeleteRequired_IEs_t;
 typedef struct RICindication_IEs {
 	ProtocolIE_ID_t	 id;
 	Criticality_t	 criticality;
@@ -465,7 +693,6 @@
 			RICrequestID_t	 RICrequestID;
 			RANfunctionID_t	 RANfunctionID;
 			RICcallProcessID_t	 RICcallProcessID;
-			RICcontrolStatus_t	 RICcontrolStatus;
 			RICcontrolOutcome_t	 RICcontrolOutcome;
 		} choice;
 		
@@ -502,6 +729,7 @@
 	struct ErrorIndication_IEs__value {
 		ErrorIndication_IEs__value_PR present;
 		union ErrorIndication_IEs__value_u {
+			TransactionID_t	 TransactionID;
 			RICrequestID_t	 RICrequestID;
 			RANfunctionID_t	 RANfunctionID;
 			Cause_t	 Cause;
@@ -521,8 +749,10 @@
 	struct E2setupRequestIEs__value {
 		E2setupRequestIEs__value_PR present;
 		union E2setupRequestIEs__value_u {
+			TransactionID_t	 TransactionID;
 			GlobalE2node_ID_t	 GlobalE2node_ID;
 			RANfunctions_List_t	 RANfunctions_List;
+			E2nodeComponentConfigAddition_List_t	 E2nodeComponentConfigAddition_List;
 		} choice;
 		
 		/* Context for parsing across buffer boundaries */
@@ -538,9 +768,11 @@
 	struct E2setupResponseIEs__value {
 		E2setupResponseIEs__value_PR present;
 		union E2setupResponseIEs__value_u {
+			TransactionID_t	 TransactionID;
 			GlobalRIC_ID_t	 GlobalRIC_ID;
 			RANfunctionsID_List_t	 RANfunctionsID_List;
 			RANfunctionsIDcause_List_t	 RANfunctionsIDcause_List;
+			E2nodeComponentConfigAdditionAck_List_t	 E2nodeComponentConfigAdditionAck_List;
 		} choice;
 		
 		/* Context for parsing across buffer boundaries */
@@ -556,6 +788,67 @@
 	struct E2setupFailureIEs__value {
 		E2setupFailureIEs__value_PR present;
 		union E2setupFailureIEs__value_u {
+			TransactionID_t	 TransactionID;
+			Cause_t	 Cause;
+			TimeToWait_t	 TimeToWait;
+			CriticalityDiagnostics_t	 CriticalityDiagnostics;
+			TNLinformation_t	 TNLinformation;
+		} choice;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} value;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2setupFailureIEs_t;
+typedef struct E2nodeConfigurationUpdate_IEs {
+	ProtocolIE_ID_t	 id;
+	Criticality_t	 criticality;
+	struct E2nodeConfigurationUpdate_IEs__value {
+		E2nodeConfigurationUpdate_IEs__value_PR present;
+		union E2nodeConfigurationUpdate_IEs__value_u {
+			TransactionID_t	 TransactionID;
+			GlobalE2node_ID_t	 GlobalE2node_ID;
+			E2nodeComponentConfigAddition_List_t	 E2nodeComponentConfigAddition_List;
+			E2nodeComponentConfigUpdate_List_t	 E2nodeComponentConfigUpdate_List;
+			E2nodeComponentConfigRemoval_List_t	 E2nodeComponentConfigRemoval_List;
+			E2nodeTNLassociationRemoval_List_t	 E2nodeTNLassociationRemoval_List;
+		} choice;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} value;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeConfigurationUpdate_IEs_t;
+typedef struct E2nodeConfigurationUpdateAcknowledge_IEs {
+	ProtocolIE_ID_t	 id;
+	Criticality_t	 criticality;
+	struct E2nodeConfigurationUpdateAcknowledge_IEs__value {
+		E2nodeConfigurationUpdateAcknowledge_IEs__value_PR present;
+		union E2nodeConfigurationUpdateAcknowledge_IEs__value_u {
+			TransactionID_t	 TransactionID;
+			E2nodeComponentConfigAdditionAck_List_t	 E2nodeComponentConfigAdditionAck_List;
+			E2nodeComponentConfigUpdateAck_List_t	 E2nodeComponentConfigUpdateAck_List;
+			E2nodeComponentConfigRemovalAck_List_t	 E2nodeComponentConfigRemovalAck_List;
+		} choice;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} value;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2nodeConfigurationUpdateAcknowledge_IEs_t;
+typedef struct E2nodeConfigurationUpdateFailure_IEs {
+	ProtocolIE_ID_t	 id;
+	Criticality_t	 criticality;
+	struct E2nodeConfigurationUpdateFailure_IEs__value {
+		E2nodeConfigurationUpdateFailure_IEs__value_PR present;
+		union E2nodeConfigurationUpdateFailure_IEs__value_u {
+			TransactionID_t	 TransactionID;
 			Cause_t	 Cause;
 			TimeToWait_t	 TimeToWait;
 			CriticalityDiagnostics_t	 CriticalityDiagnostics;
@@ -567,13 +860,14 @@
 	
 	/* Context for parsing across buffer boundaries */
 	asn_struct_ctx_t _asn_ctx;
-} E2setupFailureIEs_t;
+} E2nodeConfigurationUpdateFailure_IEs_t;
 typedef struct ResetRequestIEs {
 	ProtocolIE_ID_t	 id;
 	Criticality_t	 criticality;
 	struct ResetRequestIEs__value {
 		ResetRequestIEs__value_PR present;
 		union ResetRequestIEs__value_u {
+			TransactionID_t	 TransactionID;
 			Cause_t	 Cause;
 		} choice;
 		
@@ -590,6 +884,7 @@
 	struct ResetResponseIEs__value {
 		ResetResponseIEs__value_PR present;
 		union ResetResponseIEs__value_u {
+			TransactionID_t	 TransactionID;
 			CriticalityDiagnostics_t	 CriticalityDiagnostics;
 		} choice;
 		
@@ -600,64 +895,13 @@
 	/* Context for parsing across buffer boundaries */
 	asn_struct_ctx_t _asn_ctx;
 } ResetResponseIEs_t;
-typedef struct RICserviceUpdate_IEs {
-	ProtocolIE_ID_t	 id;
-	Criticality_t	 criticality;
-	struct RICserviceUpdate_IEs__value {
-		RICserviceUpdate_IEs__value_PR present;
-		union RICserviceUpdate_IEs__value_u {
-			RANfunctions_List_t	 RANfunctions_List;
-			RANfunctionsID_List_t	 RANfunctionsID_List;
-		} choice;
-		
-		/* Context for parsing across buffer boundaries */
-		asn_struct_ctx_t _asn_ctx;
-	} value;
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} RICserviceUpdate_IEs_t;
-typedef struct RICserviceUpdateAcknowledge_IEs {
-	ProtocolIE_ID_t	 id;
-	Criticality_t	 criticality;
-	struct RICserviceUpdateAcknowledge_IEs__value {
-		RICserviceUpdateAcknowledge_IEs__value_PR present;
-		union RICserviceUpdateAcknowledge_IEs__value_u {
-			RANfunctionsID_List_t	 RANfunctionsID_List;
-			RANfunctionsIDcause_List_t	 RANfunctionsIDcause_List;
-		} choice;
-		
-		/* Context for parsing across buffer boundaries */
-		asn_struct_ctx_t _asn_ctx;
-	} value;
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} RICserviceUpdateAcknowledge_IEs_t;
-typedef struct RICserviceUpdateFailure_IEs {
-	ProtocolIE_ID_t	 id;
-	Criticality_t	 criticality;
-	struct RICserviceUpdateFailure_IEs__value {
-		RICserviceUpdateFailure_IEs__value_PR present;
-		union RICserviceUpdateFailure_IEs__value_u {
-			RANfunctionsIDcause_List_t	 RANfunctionsIDcause_List;
-			TimeToWait_t	 TimeToWait;
-			CriticalityDiagnostics_t	 CriticalityDiagnostics;
-		} choice;
-		
-		/* Context for parsing across buffer boundaries */
-		asn_struct_ctx_t _asn_ctx;
-	} value;
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} RICserviceUpdateFailure_IEs_t;
 typedef struct RICserviceQuery_IEs {
 	ProtocolIE_ID_t	 id;
 	Criticality_t	 criticality;
 	struct RICserviceQuery_IEs__value {
 		RICserviceQuery_IEs__value_PR present;
 		union RICserviceQuery_IEs__value_u {
+			TransactionID_t	 TransactionID;
 			RANfunctionsID_List_t	 RANfunctionsID_List;
 		} choice;
 		
@@ -668,6 +912,57 @@
 	/* Context for parsing across buffer boundaries */
 	asn_struct_ctx_t _asn_ctx;
 } RICserviceQuery_IEs_t;
+typedef struct E2RemovalRequestIEs {
+	ProtocolIE_ID_t	 id;
+	Criticality_t	 criticality;
+	struct E2RemovalRequestIEs__value {
+		E2RemovalRequestIEs__value_PR present;
+		union E2RemovalRequestIEs__value_u {
+			TransactionID_t	 TransactionID;
+		} choice;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} value;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2RemovalRequestIEs_t;
+typedef struct E2RemovalResponseIEs {
+	ProtocolIE_ID_t	 id;
+	Criticality_t	 criticality;
+	struct E2RemovalResponseIEs__value {
+		E2RemovalResponseIEs__value_PR present;
+		union E2RemovalResponseIEs__value_u {
+			TransactionID_t	 TransactionID;
+			CriticalityDiagnostics_t	 CriticalityDiagnostics;
+		} choice;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} value;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2RemovalResponseIEs_t;
+typedef struct E2RemovalFailureIEs {
+	ProtocolIE_ID_t	 id;
+	Criticality_t	 criticality;
+	struct E2RemovalFailureIEs__value {
+		E2RemovalFailureIEs__value_PR present;
+		union E2RemovalFailureIEs__value_u {
+			TransactionID_t	 TransactionID;
+			Cause_t	 Cause;
+			CriticalityDiagnostics_t	 CriticalityDiagnostics;
+		} choice;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} value;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2RemovalFailureIEs_t;
 
 /* Implementation */
 extern asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_ItemIEs;
@@ -679,75 +974,111 @@
 extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_ItemIEs;
 extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9;
 extern asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_ItemIEs_9[3];
+extern asn_TYPE_descriptor_t asn_DEF_RICsubscription_withCause_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscription_withCause_ItemIEs_specs_13;
+extern asn_TYPE_member_t asn_MBR_RICsubscription_withCause_ItemIEs_13[3];
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAddition_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAddition_ItemIEs_specs_17;
+extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAddition_ItemIEs_17[3];
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdate_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdate_ItemIEs_specs_21;
+extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_ItemIEs_21[3];
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemoval_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemoval_ItemIEs_specs_25;
+extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemoval_ItemIEs_25[3];
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeTNLassociationRemoval_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeTNLassociationRemoval_ItemIEs_specs_29;
+extern asn_TYPE_member_t asn_MBR_E2nodeTNLassociationRemoval_ItemIEs_29[3];
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAdditionAck_ItemIEs_specs_33;
+extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAdditionAck_ItemIEs_33[3];
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_ItemIEs_specs_37;
+extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_ItemIEs_37[3];
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemovalAck_ItemIEs_specs_41;
+extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemovalAck_ItemIEs_41[3];
 extern asn_TYPE_descriptor_t asn_DEF_RANfunction_ItemIEs;
-extern asn_SEQUENCE_specifics_t asn_SPC_RANfunction_ItemIEs_specs_13;
-extern asn_TYPE_member_t asn_MBR_RANfunction_ItemIEs_13[3];
+extern asn_SEQUENCE_specifics_t asn_SPC_RANfunction_ItemIEs_specs_45;
+extern asn_TYPE_member_t asn_MBR_RANfunction_ItemIEs_45[3];
 extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID_ItemIEs;
-extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_ItemIEs_specs_17;
-extern asn_TYPE_member_t asn_MBR_RANfunctionID_ItemIEs_17[3];
+extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_ItemIEs_specs_49;
+extern asn_TYPE_member_t asn_MBR_RANfunctionID_ItemIEs_49[3];
 extern asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_ItemIEs;
-extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_ItemIEs_specs_21;
-extern asn_TYPE_member_t asn_MBR_RANfunctionIDcause_ItemIEs_21[3];
+extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_ItemIEs_specs_53;
+extern asn_TYPE_member_t asn_MBR_RANfunctionIDcause_ItemIEs_53[3];
 extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest_IEs;
-extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_IEs_specs_25;
-extern asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_IEs_25[3];
+extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_IEs_specs_57;
+extern asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_IEs_57[3];
 extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse_IEs;
-extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_IEs_specs_29;
-extern asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_IEs_29[3];
+extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_IEs_specs_61;
+extern asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_IEs_61[3];
 extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure_IEs;
-extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_IEs_specs_33;
-extern asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_IEs_33[3];
+extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_IEs_specs_65;
+extern asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_IEs_65[3];
 extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest_IEs;
-extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_37;
-extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_IEs_37[3];
+extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_69;
+extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_IEs_69[3];
 extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse_IEs;
-extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_41;
-extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_IEs_41[3];
+extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_73;
+extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_IEs_73[3];
 extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure_IEs;
-extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_45;
-extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_IEs_45[3];
+extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_77;
+extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_IEs_77[3];
+extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequired_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequired_IEs_specs_81;
+extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequired_IEs_81[3];
 extern asn_TYPE_descriptor_t asn_DEF_RICindication_IEs;
-extern asn_SEQUENCE_specifics_t asn_SPC_RICindication_IEs_specs_49;
-extern asn_TYPE_member_t asn_MBR_RICindication_IEs_49[3];
+extern asn_SEQUENCE_specifics_t asn_SPC_RICindication_IEs_specs_85;
+extern asn_TYPE_member_t asn_MBR_RICindication_IEs_85[3];
 extern asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest_IEs;
-extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_IEs_specs_53;
-extern asn_TYPE_member_t asn_MBR_RICcontrolRequest_IEs_53[3];
+extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_IEs_specs_89;
+extern asn_TYPE_member_t asn_MBR_RICcontrolRequest_IEs_89[3];
 extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge_IEs;
-extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_IEs_specs_57;
-extern asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_IEs_57[3];
+extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_IEs_specs_93;
+extern asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_IEs_93[3];
 extern asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure_IEs;
-extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_IEs_specs_61;
-extern asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_61[3];
+extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_IEs_specs_97;
+extern asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_97[3];
 extern asn_TYPE_descriptor_t asn_DEF_ErrorIndication_IEs;
-extern asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_IEs_specs_65;
-extern asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_65[3];
+extern asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_IEs_specs_101;
+extern asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_101[3];
 extern asn_TYPE_descriptor_t asn_DEF_E2setupRequestIEs;
-extern asn_SEQUENCE_specifics_t asn_SPC_E2setupRequestIEs_specs_69;
-extern asn_TYPE_member_t asn_MBR_E2setupRequestIEs_69[3];
+extern asn_SEQUENCE_specifics_t asn_SPC_E2setupRequestIEs_specs_105;
+extern asn_TYPE_member_t asn_MBR_E2setupRequestIEs_105[3];
 extern asn_TYPE_descriptor_t asn_DEF_E2setupResponseIEs;
-extern asn_SEQUENCE_specifics_t asn_SPC_E2setupResponseIEs_specs_73;
-extern asn_TYPE_member_t asn_MBR_E2setupResponseIEs_73[3];
+extern asn_SEQUENCE_specifics_t asn_SPC_E2setupResponseIEs_specs_109;
+extern asn_TYPE_member_t asn_MBR_E2setupResponseIEs_109[3];
 extern asn_TYPE_descriptor_t asn_DEF_E2setupFailureIEs;
-extern asn_SEQUENCE_specifics_t asn_SPC_E2setupFailureIEs_specs_77;
-extern asn_TYPE_member_t asn_MBR_E2setupFailureIEs_77[3];
+extern asn_SEQUENCE_specifics_t asn_SPC_E2setupFailureIEs_specs_113;
+extern asn_TYPE_member_t asn_MBR_E2setupFailureIEs_113[3];
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdate_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdate_IEs_specs_117;
+extern asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdate_IEs_117[3];
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateAcknowledge_IEs_specs_121;
+extern asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateAcknowledge_IEs_121[3];
+extern asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdateFailure_IEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateFailure_IEs_specs_125;
+extern asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateFailure_IEs_125[3];
 extern asn_TYPE_descriptor_t asn_DEF_ResetRequestIEs;
-extern asn_SEQUENCE_specifics_t asn_SPC_ResetRequestIEs_specs_81;
-extern asn_TYPE_member_t asn_MBR_ResetRequestIEs_81[3];
+extern asn_SEQUENCE_specifics_t asn_SPC_ResetRequestIEs_specs_129;
+extern asn_TYPE_member_t asn_MBR_ResetRequestIEs_129[3];
 extern asn_TYPE_descriptor_t asn_DEF_ResetResponseIEs;
-extern asn_SEQUENCE_specifics_t asn_SPC_ResetResponseIEs_specs_85;
-extern asn_TYPE_member_t asn_MBR_ResetResponseIEs_85[3];
-extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate_IEs;
-extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_IEs_specs_89;
-extern asn_TYPE_member_t asn_MBR_RICserviceUpdate_IEs_89[3];
-extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge_IEs;
-extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_93;
-extern asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_IEs_93[3];
-extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure_IEs;
-extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_IEs_specs_97;
-extern asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_IEs_97[3];
+extern asn_SEQUENCE_specifics_t asn_SPC_ResetResponseIEs_specs_133;
+extern asn_TYPE_member_t asn_MBR_ResetResponseIEs_133[3];
 extern asn_TYPE_descriptor_t asn_DEF_RICserviceQuery_IEs;
-extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_IEs_specs_101;
-extern asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_101[3];
+extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_IEs_specs_137;
+extern asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_137[3];
+extern asn_TYPE_descriptor_t asn_DEF_E2RemovalRequestIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2RemovalRequestIEs_specs_141;
+extern asn_TYPE_member_t asn_MBR_E2RemovalRequestIEs_141[3];
+extern asn_TYPE_descriptor_t asn_DEF_E2RemovalResponseIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2RemovalResponseIEs_specs_145;
+extern asn_TYPE_member_t asn_MBR_E2RemovalResponseIEs_145[3];
+extern asn_TYPE_descriptor_t asn_DEF_E2RemovalFailureIEs;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2RemovalFailureIEs_specs_149;
+extern asn_TYPE_member_t asn_MBR_E2RemovalFailureIEs_149[3];
 
 #ifdef __cplusplus
 }
diff --git a/e2ap/headers/ProtocolIE-FieldPair.h b/e2ap/headers/ProtocolIE-FieldPair.h
index 17a19c7..1770c43 100644
--- a/e2ap/headers/ProtocolIE-FieldPair.h
+++ b/e2ap/headers/ProtocolIE-FieldPair.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-Containers"
- * 	found in "E2AP-Containers-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_ProtocolIE_FieldPair_H_
diff --git a/e2ap/headers/ProtocolIE-ID.h b/e2ap/headers/ProtocolIE-ID.h
index dc75633..aeb1ffa 100644
--- a/e2ap/headers/ProtocolIE-ID.h
+++ b/e2ap/headers/ProtocolIE-ID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2AP-CommonDataTypes"
- * 	found in "E2AP-CommonDataTypes-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_ProtocolIE_ID_H_
@@ -69,6 +69,33 @@
 #define ProtocolIE_ID_id_RICsubscriptionDetails	((ProtocolIE_ID_t)30)
 #define ProtocolIE_ID_id_TimeToWait	((ProtocolIE_ID_t)31)
 #define ProtocolIE_ID_id_RICcontrolOutcome	((ProtocolIE_ID_t)32)
+#define ProtocolIE_ID_id_E2nodeComponentConfigUpdate	((ProtocolIE_ID_t)33)
+#define ProtocolIE_ID_id_E2nodeComponentConfigUpdate_Item	((ProtocolIE_ID_t)34)
+#define ProtocolIE_ID_id_E2nodeComponentConfigUpdateAck	((ProtocolIE_ID_t)35)
+#define ProtocolIE_ID_id_E2nodeComponentConfigUpdateAck_Item	((ProtocolIE_ID_t)36)
+#define ProtocolIE_ID_id_E2connectionSetup	((ProtocolIE_ID_t)39)
+#define ProtocolIE_ID_id_E2connectionSetupFailed	((ProtocolIE_ID_t)40)
+#define ProtocolIE_ID_id_E2connectionSetupFailed_Item	((ProtocolIE_ID_t)41)
+#define ProtocolIE_ID_id_E2connectionFailed_Item	((ProtocolIE_ID_t)42)
+#define ProtocolIE_ID_id_E2connectionUpdate_Item	((ProtocolIE_ID_t)43)
+#define ProtocolIE_ID_id_E2connectionUpdateAdd	((ProtocolIE_ID_t)44)
+#define ProtocolIE_ID_id_E2connectionUpdateModify	((ProtocolIE_ID_t)45)
+#define ProtocolIE_ID_id_E2connectionUpdateRemove	((ProtocolIE_ID_t)46)
+#define ProtocolIE_ID_id_E2connectionUpdateRemove_Item	((ProtocolIE_ID_t)47)
+#define ProtocolIE_ID_id_TNLinformation	((ProtocolIE_ID_t)48)
+#define ProtocolIE_ID_id_TransactionID	((ProtocolIE_ID_t)49)
+#define ProtocolIE_ID_id_E2nodeComponentConfigAddition	((ProtocolIE_ID_t)50)
+#define ProtocolIE_ID_id_E2nodeComponentConfigAddition_Item	((ProtocolIE_ID_t)51)
+#define ProtocolIE_ID_id_E2nodeComponentConfigAdditionAck	((ProtocolIE_ID_t)52)
+#define ProtocolIE_ID_id_E2nodeComponentConfigAdditionAck_Item	((ProtocolIE_ID_t)53)
+#define ProtocolIE_ID_id_E2nodeComponentConfigRemoval	((ProtocolIE_ID_t)54)
+#define ProtocolIE_ID_id_E2nodeComponentConfigRemoval_Item	((ProtocolIE_ID_t)55)
+#define ProtocolIE_ID_id_E2nodeComponentConfigRemovalAck	((ProtocolIE_ID_t)56)
+#define ProtocolIE_ID_id_E2nodeComponentConfigRemovalAck_Item	((ProtocolIE_ID_t)57)
+#define ProtocolIE_ID_id_E2nodeTNLassociationRemoval	((ProtocolIE_ID_t)58)
+#define ProtocolIE_ID_id_E2nodeTNLassociationRemoval_Item	((ProtocolIE_ID_t)59)
+#define ProtocolIE_ID_id_RICsubscriptionToBeRemoved	((ProtocolIE_ID_t)60)
+#define ProtocolIE_ID_id_RICsubscription_withCause_Item	((ProtocolIE_ID_t)61)
 
 #ifdef __cplusplus
 }
diff --git a/e2ap/headers/ProtocolIE-SingleContainer.h b/e2ap/headers/ProtocolIE-SingleContainer.h
index eadd741..49edd27 100644
--- a/e2ap/headers/ProtocolIE-SingleContainer.h
+++ b/e2ap/headers/ProtocolIE-SingleContainer.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-Containers"
- * 	found in "E2AP-Containers-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_ProtocolIE_SingleContainer_H_
@@ -19,98 +19,218 @@
 #endif
 
 /* ProtocolIE-SingleContainer */
-typedef RICaction_ToBeSetup_ItemIEs_t	 ProtocolIE_SingleContainer_90P0_t;
-typedef RICaction_Admitted_ItemIEs_t	 ProtocolIE_SingleContainer_90P1_t;
-typedef RICaction_NotAdmitted_ItemIEs_t	 ProtocolIE_SingleContainer_90P2_t;
-typedef RANfunction_ItemIEs_t	 ProtocolIE_SingleContainer_90P3_t;
-typedef RANfunctionID_ItemIEs_t	 ProtocolIE_SingleContainer_90P4_t;
-typedef RANfunctionIDcause_ItemIEs_t	 ProtocolIE_SingleContainer_90P5_t;
+typedef RICaction_ToBeSetup_ItemIEs_t	 ProtocolIE_SingleContainer_188P0_t;
+typedef RICaction_Admitted_ItemIEs_t	 ProtocolIE_SingleContainer_188P1_t;
+typedef RICaction_NotAdmitted_ItemIEs_t	 ProtocolIE_SingleContainer_188P2_t;
+typedef RICsubscription_withCause_ItemIEs_t	 ProtocolIE_SingleContainer_188P3_t;
+typedef E2nodeComponentConfigAddition_ItemIEs_t	 ProtocolIE_SingleContainer_188P4_t;
+typedef E2nodeComponentConfigUpdate_ItemIEs_t	 ProtocolIE_SingleContainer_188P5_t;
+typedef E2nodeComponentConfigRemoval_ItemIEs_t	 ProtocolIE_SingleContainer_188P6_t;
+typedef E2nodeTNLassociationRemoval_ItemIEs_t	 ProtocolIE_SingleContainer_188P7_t;
+typedef E2nodeComponentConfigAdditionAck_ItemIEs_t	 ProtocolIE_SingleContainer_188P8_t;
+typedef E2nodeComponentConfigUpdateAck_ItemIEs_t	 ProtocolIE_SingleContainer_188P9_t;
+typedef E2nodeComponentConfigRemovalAck_ItemIEs_t	 ProtocolIE_SingleContainer_188P10_t;
+typedef RANfunction_ItemIEs_t	 ProtocolIE_SingleContainer_188P11_t;
+typedef RANfunctionID_ItemIEs_t	 ProtocolIE_SingleContainer_188P12_t;
+typedef RANfunctionIDcause_ItemIEs_t	 ProtocolIE_SingleContainer_188P13_t;
 
 /* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_90P0;
-asn_struct_free_f ProtocolIE_SingleContainer_90P0_free;
-asn_struct_print_f ProtocolIE_SingleContainer_90P0_print;
-asn_constr_check_f ProtocolIE_SingleContainer_90P0_constraint;
-ber_type_decoder_f ProtocolIE_SingleContainer_90P0_decode_ber;
-der_type_encoder_f ProtocolIE_SingleContainer_90P0_encode_der;
-xer_type_decoder_f ProtocolIE_SingleContainer_90P0_decode_xer;
-xer_type_encoder_f ProtocolIE_SingleContainer_90P0_encode_xer;
-oer_type_decoder_f ProtocolIE_SingleContainer_90P0_decode_oer;
-oer_type_encoder_f ProtocolIE_SingleContainer_90P0_encode_oer;
-per_type_decoder_f ProtocolIE_SingleContainer_90P0_decode_uper;
-per_type_encoder_f ProtocolIE_SingleContainer_90P0_encode_uper;
-per_type_decoder_f ProtocolIE_SingleContainer_90P0_decode_aper;
-per_type_encoder_f ProtocolIE_SingleContainer_90P0_encode_aper;
-extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_90P1;
-asn_struct_free_f ProtocolIE_SingleContainer_90P1_free;
-asn_struct_print_f ProtocolIE_SingleContainer_90P1_print;
-asn_constr_check_f ProtocolIE_SingleContainer_90P1_constraint;
-ber_type_decoder_f ProtocolIE_SingleContainer_90P1_decode_ber;
-der_type_encoder_f ProtocolIE_SingleContainer_90P1_encode_der;
-xer_type_decoder_f ProtocolIE_SingleContainer_90P1_decode_xer;
-xer_type_encoder_f ProtocolIE_SingleContainer_90P1_encode_xer;
-oer_type_decoder_f ProtocolIE_SingleContainer_90P1_decode_oer;
-oer_type_encoder_f ProtocolIE_SingleContainer_90P1_encode_oer;
-per_type_decoder_f ProtocolIE_SingleContainer_90P1_decode_uper;
-per_type_encoder_f ProtocolIE_SingleContainer_90P1_encode_uper;
-per_type_decoder_f ProtocolIE_SingleContainer_90P1_decode_aper;
-per_type_encoder_f ProtocolIE_SingleContainer_90P1_encode_aper;
-extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_90P2;
-asn_struct_free_f ProtocolIE_SingleContainer_90P2_free;
-asn_struct_print_f ProtocolIE_SingleContainer_90P2_print;
-asn_constr_check_f ProtocolIE_SingleContainer_90P2_constraint;
-ber_type_decoder_f ProtocolIE_SingleContainer_90P2_decode_ber;
-der_type_encoder_f ProtocolIE_SingleContainer_90P2_encode_der;
-xer_type_decoder_f ProtocolIE_SingleContainer_90P2_decode_xer;
-xer_type_encoder_f ProtocolIE_SingleContainer_90P2_encode_xer;
-oer_type_decoder_f ProtocolIE_SingleContainer_90P2_decode_oer;
-oer_type_encoder_f ProtocolIE_SingleContainer_90P2_encode_oer;
-per_type_decoder_f ProtocolIE_SingleContainer_90P2_decode_uper;
-per_type_encoder_f ProtocolIE_SingleContainer_90P2_encode_uper;
-per_type_decoder_f ProtocolIE_SingleContainer_90P2_decode_aper;
-per_type_encoder_f ProtocolIE_SingleContainer_90P2_encode_aper;
-extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_90P3;
-asn_struct_free_f ProtocolIE_SingleContainer_90P3_free;
-asn_struct_print_f ProtocolIE_SingleContainer_90P3_print;
-asn_constr_check_f ProtocolIE_SingleContainer_90P3_constraint;
-ber_type_decoder_f ProtocolIE_SingleContainer_90P3_decode_ber;
-der_type_encoder_f ProtocolIE_SingleContainer_90P3_encode_der;
-xer_type_decoder_f ProtocolIE_SingleContainer_90P3_decode_xer;
-xer_type_encoder_f ProtocolIE_SingleContainer_90P3_encode_xer;
-oer_type_decoder_f ProtocolIE_SingleContainer_90P3_decode_oer;
-oer_type_encoder_f ProtocolIE_SingleContainer_90P3_encode_oer;
-per_type_decoder_f ProtocolIE_SingleContainer_90P3_decode_uper;
-per_type_encoder_f ProtocolIE_SingleContainer_90P3_encode_uper;
-per_type_decoder_f ProtocolIE_SingleContainer_90P3_decode_aper;
-per_type_encoder_f ProtocolIE_SingleContainer_90P3_encode_aper;
-extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_90P4;
-asn_struct_free_f ProtocolIE_SingleContainer_90P4_free;
-asn_struct_print_f ProtocolIE_SingleContainer_90P4_print;
-asn_constr_check_f ProtocolIE_SingleContainer_90P4_constraint;
-ber_type_decoder_f ProtocolIE_SingleContainer_90P4_decode_ber;
-der_type_encoder_f ProtocolIE_SingleContainer_90P4_encode_der;
-xer_type_decoder_f ProtocolIE_SingleContainer_90P4_decode_xer;
-xer_type_encoder_f ProtocolIE_SingleContainer_90P4_encode_xer;
-oer_type_decoder_f ProtocolIE_SingleContainer_90P4_decode_oer;
-oer_type_encoder_f ProtocolIE_SingleContainer_90P4_encode_oer;
-per_type_decoder_f ProtocolIE_SingleContainer_90P4_decode_uper;
-per_type_encoder_f ProtocolIE_SingleContainer_90P4_encode_uper;
-per_type_decoder_f ProtocolIE_SingleContainer_90P4_decode_aper;
-per_type_encoder_f ProtocolIE_SingleContainer_90P4_encode_aper;
-extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_90P5;
-asn_struct_free_f ProtocolIE_SingleContainer_90P5_free;
-asn_struct_print_f ProtocolIE_SingleContainer_90P5_print;
-asn_constr_check_f ProtocolIE_SingleContainer_90P5_constraint;
-ber_type_decoder_f ProtocolIE_SingleContainer_90P5_decode_ber;
-der_type_encoder_f ProtocolIE_SingleContainer_90P5_encode_der;
-xer_type_decoder_f ProtocolIE_SingleContainer_90P5_decode_xer;
-xer_type_encoder_f ProtocolIE_SingleContainer_90P5_encode_xer;
-oer_type_decoder_f ProtocolIE_SingleContainer_90P5_decode_oer;
-oer_type_encoder_f ProtocolIE_SingleContainer_90P5_encode_oer;
-per_type_decoder_f ProtocolIE_SingleContainer_90P5_decode_uper;
-per_type_encoder_f ProtocolIE_SingleContainer_90P5_encode_uper;
-per_type_decoder_f ProtocolIE_SingleContainer_90P5_decode_aper;
-per_type_encoder_f ProtocolIE_SingleContainer_90P5_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_188P0;
+asn_struct_free_f ProtocolIE_SingleContainer_188P0_free;
+asn_struct_print_f ProtocolIE_SingleContainer_188P0_print;
+asn_constr_check_f ProtocolIE_SingleContainer_188P0_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_188P0_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_188P0_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_188P0_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_188P0_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_188P0_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_188P0_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_188P0_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_188P0_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_188P0_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_188P0_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_188P1;
+asn_struct_free_f ProtocolIE_SingleContainer_188P1_free;
+asn_struct_print_f ProtocolIE_SingleContainer_188P1_print;
+asn_constr_check_f ProtocolIE_SingleContainer_188P1_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_188P1_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_188P1_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_188P1_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_188P1_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_188P1_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_188P1_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_188P1_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_188P1_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_188P1_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_188P1_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_188P2;
+asn_struct_free_f ProtocolIE_SingleContainer_188P2_free;
+asn_struct_print_f ProtocolIE_SingleContainer_188P2_print;
+asn_constr_check_f ProtocolIE_SingleContainer_188P2_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_188P2_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_188P2_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_188P2_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_188P2_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_188P2_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_188P2_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_188P2_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_188P2_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_188P2_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_188P2_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_188P3;
+asn_struct_free_f ProtocolIE_SingleContainer_188P3_free;
+asn_struct_print_f ProtocolIE_SingleContainer_188P3_print;
+asn_constr_check_f ProtocolIE_SingleContainer_188P3_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_188P3_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_188P3_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_188P3_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_188P3_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_188P3_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_188P3_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_188P3_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_188P3_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_188P3_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_188P3_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_188P4;
+asn_struct_free_f ProtocolIE_SingleContainer_188P4_free;
+asn_struct_print_f ProtocolIE_SingleContainer_188P4_print;
+asn_constr_check_f ProtocolIE_SingleContainer_188P4_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_188P4_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_188P4_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_188P4_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_188P4_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_188P4_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_188P4_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_188P4_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_188P4_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_188P4_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_188P4_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_188P5;
+asn_struct_free_f ProtocolIE_SingleContainer_188P5_free;
+asn_struct_print_f ProtocolIE_SingleContainer_188P5_print;
+asn_constr_check_f ProtocolIE_SingleContainer_188P5_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_188P5_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_188P5_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_188P5_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_188P5_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_188P5_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_188P5_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_188P5_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_188P5_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_188P5_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_188P5_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_188P6;
+asn_struct_free_f ProtocolIE_SingleContainer_188P6_free;
+asn_struct_print_f ProtocolIE_SingleContainer_188P6_print;
+asn_constr_check_f ProtocolIE_SingleContainer_188P6_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_188P6_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_188P6_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_188P6_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_188P6_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_188P6_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_188P6_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_188P6_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_188P6_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_188P6_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_188P6_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_188P7;
+asn_struct_free_f ProtocolIE_SingleContainer_188P7_free;
+asn_struct_print_f ProtocolIE_SingleContainer_188P7_print;
+asn_constr_check_f ProtocolIE_SingleContainer_188P7_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_188P7_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_188P7_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_188P7_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_188P7_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_188P7_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_188P7_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_188P7_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_188P7_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_188P7_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_188P7_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_188P8;
+asn_struct_free_f ProtocolIE_SingleContainer_188P8_free;
+asn_struct_print_f ProtocolIE_SingleContainer_188P8_print;
+asn_constr_check_f ProtocolIE_SingleContainer_188P8_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_188P8_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_188P8_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_188P8_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_188P8_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_188P8_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_188P8_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_188P8_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_188P8_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_188P8_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_188P8_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_188P9;
+asn_struct_free_f ProtocolIE_SingleContainer_188P9_free;
+asn_struct_print_f ProtocolIE_SingleContainer_188P9_print;
+asn_constr_check_f ProtocolIE_SingleContainer_188P9_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_188P9_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_188P9_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_188P9_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_188P9_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_188P9_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_188P9_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_188P9_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_188P9_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_188P9_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_188P9_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_188P10;
+asn_struct_free_f ProtocolIE_SingleContainer_188P10_free;
+asn_struct_print_f ProtocolIE_SingleContainer_188P10_print;
+asn_constr_check_f ProtocolIE_SingleContainer_188P10_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_188P10_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_188P10_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_188P10_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_188P10_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_188P10_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_188P10_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_188P10_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_188P10_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_188P10_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_188P10_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_188P11;
+asn_struct_free_f ProtocolIE_SingleContainer_188P11_free;
+asn_struct_print_f ProtocolIE_SingleContainer_188P11_print;
+asn_constr_check_f ProtocolIE_SingleContainer_188P11_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_188P11_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_188P11_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_188P11_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_188P11_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_188P11_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_188P11_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_188P11_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_188P11_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_188P11_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_188P11_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_188P12;
+asn_struct_free_f ProtocolIE_SingleContainer_188P12_free;
+asn_struct_print_f ProtocolIE_SingleContainer_188P12_print;
+asn_constr_check_f ProtocolIE_SingleContainer_188P12_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_188P12_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_188P12_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_188P12_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_188P12_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_188P12_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_188P12_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_188P12_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_188P12_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_188P12_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_188P12_encode_aper;
+extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_188P13;
+asn_struct_free_f ProtocolIE_SingleContainer_188P13_free;
+asn_struct_print_f ProtocolIE_SingleContainer_188P13_print;
+asn_constr_check_f ProtocolIE_SingleContainer_188P13_constraint;
+ber_type_decoder_f ProtocolIE_SingleContainer_188P13_decode_ber;
+der_type_encoder_f ProtocolIE_SingleContainer_188P13_encode_der;
+xer_type_decoder_f ProtocolIE_SingleContainer_188P13_decode_xer;
+xer_type_encoder_f ProtocolIE_SingleContainer_188P13_encode_xer;
+oer_type_decoder_f ProtocolIE_SingleContainer_188P13_decode_oer;
+oer_type_encoder_f ProtocolIE_SingleContainer_188P13_encode_oer;
+per_type_decoder_f ProtocolIE_SingleContainer_188P13_decode_uper;
+per_type_encoder_f ProtocolIE_SingleContainer_188P13_encode_uper;
+per_type_decoder_f ProtocolIE_SingleContainer_188P13_decode_aper;
+per_type_encoder_f ProtocolIE_SingleContainer_188P13_encode_aper;
 
 #ifdef __cplusplus
 }
diff --git a/e2ap/headers/RANfunction-Item.h b/e2ap/headers/RANfunction-Item.h
index 38b5e97..20154c8 100644
--- a/e2ap/headers/RANfunction-Item.h
+++ b/e2ap/headers/RANfunction-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RANfunction_Item_H_
@@ -15,6 +15,7 @@
 #include "RANfunctionID.h"
 #include "RANfunctionDefinition.h"
 #include "RANfunctionRevision.h"
+#include "RANfunctionOID.h"
 #include <constr_SEQUENCE.h>
 
 #ifdef __cplusplus
@@ -26,6 +27,7 @@
 	RANfunctionID_t	 ranFunctionID;
 	RANfunctionDefinition_t	 ranFunctionDefinition;
 	RANfunctionRevision_t	 ranFunctionRevision;
+	RANfunctionOID_t	 ranFunctionOID;
 	/*
 	 * This type is extensible,
 	 * possible extensions are below.
@@ -38,7 +40,7 @@
 /* Implementation */
 extern asn_TYPE_descriptor_t asn_DEF_RANfunction_Item;
 extern asn_SEQUENCE_specifics_t asn_SPC_RANfunction_Item_specs_1;
-extern asn_TYPE_member_t asn_MBR_RANfunction_Item_1[3];
+extern asn_TYPE_member_t asn_MBR_RANfunction_Item_1[4];
 
 #ifdef __cplusplus
 }
diff --git a/e2ap/headers/RANfunctionDefinition.h b/e2ap/headers/RANfunctionDefinition.h
index 3676c45..13aed72 100644
--- a/e2ap/headers/RANfunctionDefinition.h
+++ b/e2ap/headers/RANfunctionDefinition.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RANfunctionDefinition_H_
diff --git a/e2ap/headers/RANfunctionID-Item.h b/e2ap/headers/RANfunctionID-Item.h
index f4a643d..29c19a7 100644
--- a/e2ap/headers/RANfunctionID-Item.h
+++ b/e2ap/headers/RANfunctionID-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RANfunctionID_Item_H_
diff --git a/e2ap/headers/RANfunctionID.h b/e2ap/headers/RANfunctionID.h
index 00c4765..6a519ff 100644
--- a/e2ap/headers/RANfunctionID.h
+++ b/e2ap/headers/RANfunctionID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RANfunctionID_H_
diff --git a/e2ap/headers/RANfunctionIDcause-Item.h b/e2ap/headers/RANfunctionIDcause-Item.h
index 65d1d16..8bc5f30 100644
--- a/e2ap/headers/RANfunctionIDcause-Item.h
+++ b/e2ap/headers/RANfunctionIDcause-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RANfunctionIDcause_Item_H_
diff --git a/e2ap/headers/RANfunctionOID.h b/e2ap/headers/RANfunctionOID.h
new file mode 100644
index 0000000..b513722
--- /dev/null
+++ b/e2ap/headers/RANfunctionOID.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANfunctionOID_H_
+#define	_RANfunctionOID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <PrintableString.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANfunctionOID */
+typedef PrintableString_t	 RANfunctionOID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RANfunctionOID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RANfunctionOID;
+asn_struct_free_f RANfunctionOID_free;
+asn_struct_print_f RANfunctionOID_print;
+asn_constr_check_f RANfunctionOID_constraint;
+ber_type_decoder_f RANfunctionOID_decode_ber;
+der_type_encoder_f RANfunctionOID_encode_der;
+xer_type_decoder_f RANfunctionOID_decode_xer;
+xer_type_encoder_f RANfunctionOID_encode_xer;
+oer_type_decoder_f RANfunctionOID_decode_oer;
+oer_type_encoder_f RANfunctionOID_encode_oer;
+per_type_decoder_f RANfunctionOID_decode_uper;
+per_type_encoder_f RANfunctionOID_encode_uper;
+per_type_decoder_f RANfunctionOID_decode_aper;
+per_type_encoder_f RANfunctionOID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANfunctionOID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RANfunctionRevision.h b/e2ap/headers/RANfunctionRevision.h
index 76f500a..7515423 100644
--- a/e2ap/headers/RANfunctionRevision.h
+++ b/e2ap/headers/RANfunctionRevision.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RANfunctionRevision_H_
diff --git a/e2ap/headers/RANfunctions-List.h b/e2ap/headers/RANfunctions-List.h
index c3fd3e3..14430bf 100644
--- a/e2ap/headers/RANfunctions-List.h
+++ b/e2ap/headers/RANfunctions-List.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RANfunctions_List_H_
diff --git a/e2ap/headers/RANfunctionsID-List.h b/e2ap/headers/RANfunctionsID-List.h
index 1a77d70..73d1e46 100644
--- a/e2ap/headers/RANfunctionsID-List.h
+++ b/e2ap/headers/RANfunctionsID-List.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RANfunctionsID_List_H_
diff --git a/e2ap/headers/RANfunctionsIDcause-List.h b/e2ap/headers/RANfunctionsIDcause-List.h
index 3fd51d1..99cd189 100644
--- a/e2ap/headers/RANfunctionsIDcause-List.h
+++ b/e2ap/headers/RANfunctionsIDcause-List.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RANfunctionsIDcause_List_H_
diff --git a/e2ap/headers/RICaction-Admitted-Item.h b/e2ap/headers/RICaction-Admitted-Item.h
index 5031b7d..7939290 100644
--- a/e2ap/headers/RICaction-Admitted-Item.h
+++ b/e2ap/headers/RICaction-Admitted-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICaction_Admitted_Item_H_
diff --git a/e2ap/headers/RICaction-Admitted-List.h b/e2ap/headers/RICaction-Admitted-List.h
index 9464982..9ede04f 100644
--- a/e2ap/headers/RICaction-Admitted-List.h
+++ b/e2ap/headers/RICaction-Admitted-List.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICaction_Admitted_List_H_
diff --git a/e2ap/headers/RICaction-NotAdmitted-Item.h b/e2ap/headers/RICaction-NotAdmitted-Item.h
index b94f69c..df416f9 100644
--- a/e2ap/headers/RICaction-NotAdmitted-Item.h
+++ b/e2ap/headers/RICaction-NotAdmitted-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICaction_NotAdmitted_Item_H_
diff --git a/e2ap/headers/RICaction-NotAdmitted-List.h b/e2ap/headers/RICaction-NotAdmitted-List.h
index 642683d..2a7c50c 100644
--- a/e2ap/headers/RICaction-NotAdmitted-List.h
+++ b/e2ap/headers/RICaction-NotAdmitted-List.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICaction_NotAdmitted_List_H_
diff --git a/e2ap/headers/RICaction-ToBeSetup-Item.h b/e2ap/headers/RICaction-ToBeSetup-Item.h
index a616014..8f8498a 100644
--- a/e2ap/headers/RICaction-ToBeSetup-Item.h
+++ b/e2ap/headers/RICaction-ToBeSetup-Item.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICaction_ToBeSetup_Item_H_
diff --git a/e2ap/headers/RICactionDefinition.h b/e2ap/headers/RICactionDefinition.h
index 349e2a8..8317299 100644
--- a/e2ap/headers/RICactionDefinition.h
+++ b/e2ap/headers/RICactionDefinition.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICactionDefinition_H_
diff --git a/e2ap/headers/RICactionID.h b/e2ap/headers/RICactionID.h
index b8f6447..f270c8f 100644
--- a/e2ap/headers/RICactionID.h
+++ b/e2ap/headers/RICactionID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICactionID_H_
diff --git a/e2ap/headers/RICactionType.h b/e2ap/headers/RICactionType.h
index e4349fd..2a6742f 100644
--- a/e2ap/headers/RICactionType.h
+++ b/e2ap/headers/RICactionType.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICactionType_H_
diff --git a/e2ap/headers/RICactions-ToBeSetup-List.h b/e2ap/headers/RICactions-ToBeSetup-List.h
index 632b420..e5f5e97 100644
--- a/e2ap/headers/RICactions-ToBeSetup-List.h
+++ b/e2ap/headers/RICactions-ToBeSetup-List.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICactions_ToBeSetup_List_H_
diff --git a/e2ap/headers/RICcallProcessID.h b/e2ap/headers/RICcallProcessID.h
index a1a4983..6818b2c 100644
--- a/e2ap/headers/RICcallProcessID.h
+++ b/e2ap/headers/RICcallProcessID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICcallProcessID_H_
diff --git a/e2ap/headers/RICcontrolAckRequest.h b/e2ap/headers/RICcontrolAckRequest.h
index abb9553..14f8dcd 100644
--- a/e2ap/headers/RICcontrolAckRequest.h
+++ b/e2ap/headers/RICcontrolAckRequest.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICcontrolAckRequest_H_
@@ -21,8 +21,7 @@
 /* Dependencies */
 typedef enum RICcontrolAckRequest {
 	RICcontrolAckRequest_noAck	= 0,
-	RICcontrolAckRequest_ack	= 1,
-	RICcontrolAckRequest_nAck	= 2
+	RICcontrolAckRequest_ack	= 1
 	/*
 	 * Enumeration is extensible
 	 */
diff --git a/e2ap/headers/RICcontrolAcknowledge.h b/e2ap/headers/RICcontrolAcknowledge.h
index 361f3d6..377e17e 100644
--- a/e2ap/headers/RICcontrolAcknowledge.h
+++ b/e2ap/headers/RICcontrolAcknowledge.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICcontrolAcknowledge_H_
@@ -21,7 +21,7 @@
 
 /* RICcontrolAcknowledge */
 typedef struct RICcontrolAcknowledge {
-	ProtocolIE_Container_87P8_t	 protocolIEs;
+	ProtocolIE_Container_185P9_t	 protocolIEs;
 	/*
 	 * This type is extensible,
 	 * possible extensions are below.
diff --git a/e2ap/headers/RICcontrolFailure.h b/e2ap/headers/RICcontrolFailure.h
index 6eb6a04..42da749 100644
--- a/e2ap/headers/RICcontrolFailure.h
+++ b/e2ap/headers/RICcontrolFailure.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICcontrolFailure_H_
@@ -21,7 +21,7 @@
 
 /* RICcontrolFailure */
 typedef struct RICcontrolFailure {
-	ProtocolIE_Container_87P9_t	 protocolIEs;
+	ProtocolIE_Container_185P10_t	 protocolIEs;
 	/*
 	 * This type is extensible,
 	 * possible extensions are below.
diff --git a/e2ap/headers/RICcontrolHeader.h b/e2ap/headers/RICcontrolHeader.h
index d7cad7d..d7257ef 100644
--- a/e2ap/headers/RICcontrolHeader.h
+++ b/e2ap/headers/RICcontrolHeader.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICcontrolHeader_H_
diff --git a/e2ap/headers/RICcontrolMessage.h b/e2ap/headers/RICcontrolMessage.h
index 08fdf4a..3e75dc0 100644
--- a/e2ap/headers/RICcontrolMessage.h
+++ b/e2ap/headers/RICcontrolMessage.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICcontrolMessage_H_
diff --git a/e2ap/headers/RICcontrolOutcome.h b/e2ap/headers/RICcontrolOutcome.h
index d70b5a5..c5ec501 100644
--- a/e2ap/headers/RICcontrolOutcome.h
+++ b/e2ap/headers/RICcontrolOutcome.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICcontrolOutcome_H_
diff --git a/e2ap/headers/RICcontrolRequest.h b/e2ap/headers/RICcontrolRequest.h
index db5ba24..9696f5d 100644
--- a/e2ap/headers/RICcontrolRequest.h
+++ b/e2ap/headers/RICcontrolRequest.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICcontrolRequest_H_
@@ -21,7 +21,7 @@
 
 /* RICcontrolRequest */
 typedef struct RICcontrolRequest {
-	ProtocolIE_Container_87P7_t	 protocolIEs;
+	ProtocolIE_Container_185P8_t	 protocolIEs;
 	/*
 	 * This type is extensible,
 	 * possible extensions are below.
diff --git a/e2ap/headers/RICcontrolStatus.h b/e2ap/headers/RICcontrolStatus.h
deleted file mode 100644
index 033f5a9..0000000
--- a/e2ap/headers/RICcontrolStatus.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
- */
-
-#ifndef	_RICcontrolStatus_H_
-#define	_RICcontrolStatus_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <NativeEnumerated.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Dependencies */
-typedef enum RICcontrolStatus {
-	RICcontrolStatus_success	= 0,
-	RICcontrolStatus_rejected	= 1,
-	RICcontrolStatus_failed	= 2
-	/*
-	 * Enumeration is extensible
-	 */
-} e_RICcontrolStatus;
-
-/* RICcontrolStatus */
-typedef long	 RICcontrolStatus_t;
-
-/* Implementation */
-extern asn_per_constraints_t asn_PER_type_RICcontrolStatus_constr_1;
-extern asn_TYPE_descriptor_t asn_DEF_RICcontrolStatus;
-extern const asn_INTEGER_specifics_t asn_SPC_RICcontrolStatus_specs_1;
-asn_struct_free_f RICcontrolStatus_free;
-asn_struct_print_f RICcontrolStatus_print;
-asn_constr_check_f RICcontrolStatus_constraint;
-ber_type_decoder_f RICcontrolStatus_decode_ber;
-der_type_encoder_f RICcontrolStatus_encode_der;
-xer_type_decoder_f RICcontrolStatus_decode_xer;
-xer_type_encoder_f RICcontrolStatus_encode_xer;
-oer_type_decoder_f RICcontrolStatus_decode_oer;
-oer_type_encoder_f RICcontrolStatus_encode_oer;
-per_type_decoder_f RICcontrolStatus_decode_uper;
-per_type_encoder_f RICcontrolStatus_encode_uper;
-per_type_decoder_f RICcontrolStatus_decode_aper;
-per_type_encoder_f RICcontrolStatus_encode_aper;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _RICcontrolStatus_H_ */
-#include <asn_internal.h>
diff --git a/e2ap/headers/RICeventTriggerDefinition.h b/e2ap/headers/RICeventTriggerDefinition.h
index 58ec4d2..d680d08 100644
--- a/e2ap/headers/RICeventTriggerDefinition.h
+++ b/e2ap/headers/RICeventTriggerDefinition.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICeventTriggerDefinition_H_
diff --git a/e2ap/headers/RICindication.h b/e2ap/headers/RICindication.h
index c984ab6..713ee5b 100644
--- a/e2ap/headers/RICindication.h
+++ b/e2ap/headers/RICindication.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICindication_H_
@@ -21,7 +21,7 @@
 
 /* RICindication */
 typedef struct RICindication {
-	ProtocolIE_Container_87P6_t	 protocolIEs;
+	ProtocolIE_Container_185P7_t	 protocolIEs;
 	/*
 	 * This type is extensible,
 	 * possible extensions are below.
diff --git a/e2ap/headers/RICindicationHeader.h b/e2ap/headers/RICindicationHeader.h
index 3220602..6bc08a4 100644
--- a/e2ap/headers/RICindicationHeader.h
+++ b/e2ap/headers/RICindicationHeader.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICindicationHeader_H_
diff --git a/e2ap/headers/RICindicationMessage.h b/e2ap/headers/RICindicationMessage.h
index f00ebe7..8f18de7 100644
--- a/e2ap/headers/RICindicationMessage.h
+++ b/e2ap/headers/RICindicationMessage.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICindicationMessage_H_
diff --git a/e2ap/headers/RICindicationSN.h b/e2ap/headers/RICindicationSN.h
index 498aaef..ad5af57 100644
--- a/e2ap/headers/RICindicationSN.h
+++ b/e2ap/headers/RICindicationSN.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICindicationSN_H_
diff --git a/e2ap/headers/RICindicationType.h b/e2ap/headers/RICindicationType.h
index ffc0335..1551fe5 100644
--- a/e2ap/headers/RICindicationType.h
+++ b/e2ap/headers/RICindicationType.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICindicationType_H_
diff --git a/e2ap/headers/RICrequestID.h b/e2ap/headers/RICrequestID.h
index b76c37c..4fc3746 100644
--- a/e2ap/headers/RICrequestID.h
+++ b/e2ap/headers/RICrequestID.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICrequestID_H_
diff --git a/e2ap/headers/RICserviceQuery.h b/e2ap/headers/RICserviceQuery.h
index 3b2c4ee..ac3bef4 100644
--- a/e2ap/headers/RICserviceQuery.h
+++ b/e2ap/headers/RICserviceQuery.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICserviceQuery_H_
@@ -21,7 +21,7 @@
 
 /* RICserviceQuery */
 typedef struct RICserviceQuery {
-	ProtocolIE_Container_87P19_t	 protocolIEs;
+	ProtocolIE_Container_185P20_t	 protocolIEs;
 	/*
 	 * This type is extensible,
 	 * possible extensions are below.
diff --git a/e2ap/headers/RICserviceUpdate.h b/e2ap/headers/RICserviceUpdate.h
deleted file mode 100644
index 9ade74f..0000000
--- a/e2ap/headers/RICserviceUpdate.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
- */
-
-#ifndef	_RICserviceUpdate_H_
-#define	_RICserviceUpdate_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "ProtocolIE-Container.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* RICserviceUpdate */
-typedef struct RICserviceUpdate {
-	ProtocolIE_Container_87P16_t	 protocolIEs;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} RICserviceUpdate_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _RICserviceUpdate_H_ */
-#include <asn_internal.h>
diff --git a/e2ap/headers/RICserviceUpdateAcknowledge.h b/e2ap/headers/RICserviceUpdateAcknowledge.h
deleted file mode 100644
index 4b08d1a..0000000
--- a/e2ap/headers/RICserviceUpdateAcknowledge.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
- */
-
-#ifndef	_RICserviceUpdateAcknowledge_H_
-#define	_RICserviceUpdateAcknowledge_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "ProtocolIE-Container.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* RICserviceUpdateAcknowledge */
-typedef struct RICserviceUpdateAcknowledge {
-	ProtocolIE_Container_87P17_t	 protocolIEs;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} RICserviceUpdateAcknowledge_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _RICserviceUpdateAcknowledge_H_ */
-#include <asn_internal.h>
diff --git a/e2ap/headers/RICserviceUpdateFailure.h b/e2ap/headers/RICserviceUpdateFailure.h
deleted file mode 100644
index c00559e..0000000
--- a/e2ap/headers/RICserviceUpdateFailure.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
- */
-
-#ifndef	_RICserviceUpdateFailure_H_
-#define	_RICserviceUpdateFailure_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "ProtocolIE-Container.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* RICserviceUpdateFailure */
-typedef struct RICserviceUpdateFailure {
-	ProtocolIE_Container_87P18_t	 protocolIEs;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} RICserviceUpdateFailure_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _RICserviceUpdateFailure_H_ */
-#include <asn_internal.h>
diff --git a/e2ap/headers/RICsubscription-List-withCause.h b/e2ap/headers/RICsubscription-List-withCause.h
new file mode 100644
index 0000000..324020f
--- /dev/null
+++ b/e2ap/headers/RICsubscription-List-withCause.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RICsubscription_List_withCause_H_
+#define	_RICsubscription_List_withCause_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ProtocolIE_SingleContainer;
+
+/* RICsubscription-List-withCause */
+typedef struct RICsubscription_List_withCause {
+	A_SEQUENCE_OF(struct ProtocolIE_SingleContainer) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RICsubscription_List_withCause_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICsubscription_List_withCause;
+extern asn_SET_OF_specifics_t asn_SPC_RICsubscription_List_withCause_specs_1;
+extern asn_TYPE_member_t asn_MBR_RICsubscription_List_withCause_1[1];
+extern asn_per_constraints_t asn_PER_type_RICsubscription_List_withCause_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RICsubscription_List_withCause_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICsubscription-withCause-Item.h b/e2ap/headers/RICsubscription-withCause-Item.h
new file mode 100644
index 0000000..5037c89
--- /dev/null
+++ b/e2ap/headers/RICsubscription-withCause-Item.h
@@ -0,0 +1,48 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RICsubscription_withCause_Item_H_
+#define	_RICsubscription_withCause_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RICrequestID.h"
+#include "RANfunctionID.h"
+#include "Cause.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RICsubscription-withCause-Item */
+typedef struct RICsubscription_withCause_Item {
+	RICrequestID_t	 ricRequestID;
+	RANfunctionID_t	 ranFunctionID;
+	Cause_t	 cause;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RICsubscription_withCause_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICsubscription_withCause_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscription_withCause_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_RICsubscription_withCause_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RICsubscription_withCause_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICsubscriptionDeleteFailure.h b/e2ap/headers/RICsubscriptionDeleteFailure.h
index 59bb7d4..f21f842 100644
--- a/e2ap/headers/RICsubscriptionDeleteFailure.h
+++ b/e2ap/headers/RICsubscriptionDeleteFailure.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICsubscriptionDeleteFailure_H_
@@ -21,7 +21,7 @@
 
 /* RICsubscriptionDeleteFailure */
 typedef struct RICsubscriptionDeleteFailure {
-	ProtocolIE_Container_87P5_t	 protocolIEs;
+	ProtocolIE_Container_185P5_t	 protocolIEs;
 	/*
 	 * This type is extensible,
 	 * possible extensions are below.
diff --git a/e2ap/headers/RICsubscriptionDeleteRequest.h b/e2ap/headers/RICsubscriptionDeleteRequest.h
index 5019dab..6b7047d 100644
--- a/e2ap/headers/RICsubscriptionDeleteRequest.h
+++ b/e2ap/headers/RICsubscriptionDeleteRequest.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICsubscriptionDeleteRequest_H_
@@ -21,7 +21,7 @@
 
 /* RICsubscriptionDeleteRequest */
 typedef struct RICsubscriptionDeleteRequest {
-	ProtocolIE_Container_87P3_t	 protocolIEs;
+	ProtocolIE_Container_185P3_t	 protocolIEs;
 	/*
 	 * This type is extensible,
 	 * possible extensions are below.
diff --git a/e2ap/headers/RICsubscriptionDeleteRequired.h b/e2ap/headers/RICsubscriptionDeleteRequired.h
new file mode 100644
index 0000000..62d3e8f
--- /dev/null
+++ b/e2ap/headers/RICsubscriptionDeleteRequired.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RICsubscriptionDeleteRequired_H_
+#define	_RICsubscriptionDeleteRequired_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ProtocolIE-Container.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RICsubscriptionDeleteRequired */
+typedef struct RICsubscriptionDeleteRequired {
+	ProtocolIE_Container_185P6_t	 protocolIEs;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RICsubscriptionDeleteRequired_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequired;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RICsubscriptionDeleteRequired_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/RICsubscriptionDeleteResponse.h b/e2ap/headers/RICsubscriptionDeleteResponse.h
index b1aeba6..be52d46 100644
--- a/e2ap/headers/RICsubscriptionDeleteResponse.h
+++ b/e2ap/headers/RICsubscriptionDeleteResponse.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICsubscriptionDeleteResponse_H_
@@ -21,7 +21,7 @@
 
 /* RICsubscriptionDeleteResponse */
 typedef struct RICsubscriptionDeleteResponse {
-	ProtocolIE_Container_87P4_t	 protocolIEs;
+	ProtocolIE_Container_185P4_t	 protocolIEs;
 	/*
 	 * This type is extensible,
 	 * possible extensions are below.
diff --git a/e2ap/headers/RICsubscriptionDetails.h b/e2ap/headers/RICsubscriptionDetails.h
index 9b0a03e..6b28b40 100644
--- a/e2ap/headers/RICsubscriptionDetails.h
+++ b/e2ap/headers/RICsubscriptionDetails.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICsubscriptionDetails_H_
diff --git a/e2ap/headers/RICsubscriptionFailure.h b/e2ap/headers/RICsubscriptionFailure.h
index c8c4a77..8d2a101 100644
--- a/e2ap/headers/RICsubscriptionFailure.h
+++ b/e2ap/headers/RICsubscriptionFailure.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICsubscriptionFailure_H_
@@ -21,7 +21,7 @@
 
 /* RICsubscriptionFailure */
 typedef struct RICsubscriptionFailure {
-	ProtocolIE_Container_87P2_t	 protocolIEs;
+	ProtocolIE_Container_185P2_t	 protocolIEs;
 	/*
 	 * This type is extensible,
 	 * possible extensions are below.
diff --git a/e2ap/headers/RICsubscriptionRequest.h b/e2ap/headers/RICsubscriptionRequest.h
index 9e9e0bb..7f1abc4 100644
--- a/e2ap/headers/RICsubscriptionRequest.h
+++ b/e2ap/headers/RICsubscriptionRequest.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICsubscriptionRequest_H_
@@ -21,7 +21,7 @@
 
 /* RICsubscriptionRequest */
 typedef struct RICsubscriptionRequest {
-	ProtocolIE_Container_87P0_t	 protocolIEs;
+	ProtocolIE_Container_185P0_t	 protocolIEs;
 	/*
 	 * This type is extensible,
 	 * possible extensions are below.
diff --git a/e2ap/headers/RICsubscriptionResponse.h b/e2ap/headers/RICsubscriptionResponse.h
index 9b8bb17..3df4866 100644
--- a/e2ap/headers/RICsubscriptionResponse.h
+++ b/e2ap/headers/RICsubscriptionResponse.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICsubscriptionResponse_H_
@@ -21,7 +21,7 @@
 
 /* RICsubscriptionResponse */
 typedef struct RICsubscriptionResponse {
-	ProtocolIE_Container_87P1_t	 protocolIEs;
+	ProtocolIE_Container_185P1_t	 protocolIEs;
 	/*
 	 * This type is extensible,
 	 * possible extensions are below.
diff --git a/e2ap/headers/RICsubsequentAction.h b/e2ap/headers/RICsubsequentAction.h
index fffdc21..c91a14e 100644
--- a/e2ap/headers/RICsubsequentAction.h
+++ b/e2ap/headers/RICsubsequentAction.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICsubsequentAction_H_
diff --git a/e2ap/headers/RICsubsequentActionType.h b/e2ap/headers/RICsubsequentActionType.h
index 1dea790..eedf0dc 100644
--- a/e2ap/headers/RICsubsequentActionType.h
+++ b/e2ap/headers/RICsubsequentActionType.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICsubsequentActionType_H_
diff --git a/e2ap/headers/RICtimeToWait.h b/e2ap/headers/RICtimeToWait.h
index efe9b2a..62c01b5 100644
--- a/e2ap/headers/RICtimeToWait.h
+++ b/e2ap/headers/RICtimeToWait.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_RICtimeToWait_H_
@@ -20,24 +20,23 @@
 
 /* Dependencies */
 typedef enum RICtimeToWait {
-	RICtimeToWait_zero	= 0,
-	RICtimeToWait_w1ms	= 1,
-	RICtimeToWait_w2ms	= 2,
-	RICtimeToWait_w5ms	= 3,
-	RICtimeToWait_w10ms	= 4,
-	RICtimeToWait_w20ms	= 5,
-	RICtimeToWait_w30ms	= 6,
-	RICtimeToWait_w40ms	= 7,
-	RICtimeToWait_w50ms	= 8,
-	RICtimeToWait_w100ms	= 9,
-	RICtimeToWait_w200ms	= 10,
-	RICtimeToWait_w500ms	= 11,
-	RICtimeToWait_w1s	= 12,
-	RICtimeToWait_w2s	= 13,
-	RICtimeToWait_w5s	= 14,
-	RICtimeToWait_w10s	= 15,
-	RICtimeToWait_w20s	= 16,
-	RICtimeToWait_w60s	= 17
+	RICtimeToWait_w1ms	= 0,
+	RICtimeToWait_w2ms	= 1,
+	RICtimeToWait_w5ms	= 2,
+	RICtimeToWait_w10ms	= 3,
+	RICtimeToWait_w20ms	= 4,
+	RICtimeToWait_w30ms	= 5,
+	RICtimeToWait_w40ms	= 6,
+	RICtimeToWait_w50ms	= 7,
+	RICtimeToWait_w100ms	= 8,
+	RICtimeToWait_w200ms	= 9,
+	RICtimeToWait_w500ms	= 10,
+	RICtimeToWait_w1s	= 11,
+	RICtimeToWait_w2s	= 12,
+	RICtimeToWait_w5s	= 13,
+	RICtimeToWait_w10s	= 14,
+	RICtimeToWait_w20s	= 15,
+	RICtimeToWait_w60s	= 16
 	/*
 	 * Enumeration is extensible
 	 */
diff --git a/e2ap/headers/ResetRequest.h b/e2ap/headers/ResetRequest.h
index b8ccee4..ecced95 100644
--- a/e2ap/headers/ResetRequest.h
+++ b/e2ap/headers/ResetRequest.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_ResetRequest_H_
@@ -21,7 +21,7 @@
 
 /* ResetRequest */
 typedef struct ResetRequest {
-	ProtocolIE_Container_87P14_t	 protocolIEs;
+	ProtocolIE_Container_185P18_t	 protocolIEs;
 	/*
 	 * This type is extensible,
 	 * possible extensions are below.
diff --git a/e2ap/headers/ResetResponse.h b/e2ap/headers/ResetResponse.h
index cfd7a3c..b96d348 100644
--- a/e2ap/headers/ResetResponse.h
+++ b/e2ap/headers/ResetResponse.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_ResetResponse_H_
@@ -21,7 +21,7 @@
 
 /* ResetResponse */
 typedef struct ResetResponse {
-	ProtocolIE_Container_87P15_t	 protocolIEs;
+	ProtocolIE_Container_185P19_t	 protocolIEs;
 	/*
 	 * This type is extensible,
 	 * possible extensions are below.
diff --git a/e2ap/headers/SuccessfulOutcome.h b/e2ap/headers/SuccessfulOutcome.h
index 734bd7e..a21ecf7 100644
--- a/e2ap/headers/SuccessfulOutcome.h
+++ b/e2ap/headers/SuccessfulOutcome.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Descriptions"
- * 	found in "E2AP-PDU-Descriptions-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_SuccessfulOutcome_H_
@@ -22,20 +22,24 @@
 #include "RICsubscriptionDeleteRequest.h"
 #include "RICsubscriptionDeleteResponse.h"
 #include "RICsubscriptionDeleteFailure.h"
-#include "RICserviceUpdate.h"
-#include "RICserviceUpdateAcknowledge.h"
-#include "RICserviceUpdateFailure.h"
 #include "RICcontrolRequest.h"
 #include "RICcontrolAcknowledge.h"
 #include "RICcontrolFailure.h"
 #include "E2setupRequest.h"
 #include "E2setupResponse.h"
 #include "E2setupFailure.h"
+#include "E2nodeConfigurationUpdate.h"
+#include "E2nodeConfigurationUpdateAcknowledge.h"
+#include "E2nodeConfigurationUpdateFailure.h"
 #include "ResetRequest.h"
 #include "ResetResponse.h"
+#include "E2RemovalRequest.h"
+#include "E2RemovalResponse.h"
+#include "E2RemovalFailure.h"
 #include "RICindication.h"
 #include "RICserviceQuery.h"
 #include "ErrorIndication.h"
+#include "RICsubscriptionDeleteRequired.h"
 #include <OPEN_TYPE.h>
 #include <constr_CHOICE.h>
 #include <constr_SEQUENCE.h>
@@ -49,10 +53,11 @@
 	SuccessfulOutcome__value_PR_NOTHING,	/* No components present */
 	SuccessfulOutcome__value_PR_RICsubscriptionResponse,
 	SuccessfulOutcome__value_PR_RICsubscriptionDeleteResponse,
-	SuccessfulOutcome__value_PR_RICserviceUpdateAcknowledge,
 	SuccessfulOutcome__value_PR_RICcontrolAcknowledge,
 	SuccessfulOutcome__value_PR_E2setupResponse,
-	SuccessfulOutcome__value_PR_ResetResponse
+	SuccessfulOutcome__value_PR_E2nodeConfigurationUpdateAcknowledge,
+	SuccessfulOutcome__value_PR_ResetResponse,
+	SuccessfulOutcome__value_PR_E2RemovalResponse
 } SuccessfulOutcome__value_PR;
 
 /* SuccessfulOutcome */
@@ -64,10 +69,11 @@
 		union SuccessfulOutcome__value_u {
 			RICsubscriptionResponse_t	 RICsubscriptionResponse;
 			RICsubscriptionDeleteResponse_t	 RICsubscriptionDeleteResponse;
-			RICserviceUpdateAcknowledge_t	 RICserviceUpdateAcknowledge;
 			RICcontrolAcknowledge_t	 RICcontrolAcknowledge;
 			E2setupResponse_t	 E2setupResponse;
+			E2nodeConfigurationUpdateAcknowledge_t	 E2nodeConfigurationUpdateAcknowledge;
 			ResetResponse_t	 ResetResponse;
+			E2RemovalResponse_t	 E2RemovalResponse;
 		} choice;
 		
 		/* Context for parsing across buffer boundaries */
diff --git a/e2ap/headers/TNLinformation.h b/e2ap/headers/TNLinformation.h
new file mode 100644
index 0000000..b34bd58
--- /dev/null
+++ b/e2ap/headers/TNLinformation.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_TNLinformation_H_
+#define	_TNLinformation_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* TNLinformation */
+typedef struct TNLinformation {
+	BIT_STRING_t	 tnlAddress;
+	BIT_STRING_t	*tnlPort;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} TNLinformation_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TNLinformation;
+extern asn_SEQUENCE_specifics_t asn_SPC_TNLinformation_specs_1;
+extern asn_TYPE_member_t asn_MBR_TNLinformation_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _TNLinformation_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/TNLusage.h b/e2ap/headers/TNLusage.h
new file mode 100644
index 0000000..958e09a
--- /dev/null
+++ b/e2ap/headers/TNLusage.h
@@ -0,0 +1,55 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_TNLusage_H_
+#define	_TNLusage_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum TNLusage {
+	TNLusage_ric_service	= 0,
+	TNLusage_support_function	= 1,
+	TNLusage_both	= 2
+	/*
+	 * Enumeration is extensible
+	 */
+} e_TNLusage;
+
+/* TNLusage */
+typedef long	 TNLusage_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TNLusage;
+asn_struct_free_f TNLusage_free;
+asn_struct_print_f TNLusage_print;
+asn_constr_check_f TNLusage_constraint;
+ber_type_decoder_f TNLusage_decode_ber;
+der_type_encoder_f TNLusage_encode_der;
+xer_type_decoder_f TNLusage_decode_xer;
+xer_type_encoder_f TNLusage_encode_xer;
+oer_type_decoder_f TNLusage_decode_oer;
+oer_type_encoder_f TNLusage_encode_oer;
+per_type_decoder_f TNLusage_decode_uper;
+per_type_encoder_f TNLusage_encode_uper;
+per_type_decoder_f TNLusage_decode_aper;
+per_type_encoder_f TNLusage_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _TNLusage_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/TimeToWait.h b/e2ap/headers/TimeToWait.h
index 9627535..753e318 100644
--- a/e2ap/headers/TimeToWait.h
+++ b/e2ap/headers/TimeToWait.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_TimeToWait_H_
diff --git a/e2ap/headers/TransactionID.h b/e2ap/headers/TransactionID.h
new file mode 100644
index 0000000..371cb9d
--- /dev/null
+++ b/e2ap/headers/TransactionID.h
@@ -0,0 +1,46 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_TransactionID_H_
+#define	_TransactionID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* TransactionID */
+typedef long	 TransactionID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_TransactionID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_TransactionID;
+asn_struct_free_f TransactionID_free;
+asn_struct_print_f TransactionID_print;
+asn_constr_check_f TransactionID_constraint;
+ber_type_decoder_f TransactionID_decode_ber;
+der_type_encoder_f TransactionID_encode_der;
+xer_type_decoder_f TransactionID_decode_xer;
+xer_type_encoder_f TransactionID_encode_xer;
+oer_type_decoder_f TransactionID_decode_oer;
+oer_type_encoder_f TransactionID_encode_oer;
+per_type_decoder_f TransactionID_decode_uper;
+per_type_encoder_f TransactionID_encode_uper;
+per_type_decoder_f TransactionID_decode_aper;
+per_type_encoder_f TransactionID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _TransactionID_H_ */
+#include <asn_internal.h>
diff --git a/e2ap/headers/TriggeringMessage.h b/e2ap/headers/TriggeringMessage.h
index 6f9f42e..769df9b 100644
--- a/e2ap/headers/TriggeringMessage.h
+++ b/e2ap/headers/TriggeringMessage.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2AP-CommonDataTypes"
- * 	found in "E2AP-CommonDataTypes-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_TriggeringMessage_H_
diff --git a/e2ap/headers/TypeOfError.h b/e2ap/headers/TypeOfError.h
index aec2d63..789f819 100644
--- a/e2ap/headers/TypeOfError.h
+++ b/e2ap/headers/TypeOfError.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_TypeOfError_H_
diff --git a/e2ap/headers/UnsuccessfulOutcome.h b/e2ap/headers/UnsuccessfulOutcome.h
index baf8838..258f70f 100644
--- a/e2ap/headers/UnsuccessfulOutcome.h
+++ b/e2ap/headers/UnsuccessfulOutcome.h
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Descriptions"
- * 	found in "E2AP-PDU-Descriptions-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #ifndef	_UnsuccessfulOutcome_H_
@@ -22,20 +22,24 @@
 #include "RICsubscriptionDeleteRequest.h"
 #include "RICsubscriptionDeleteResponse.h"
 #include "RICsubscriptionDeleteFailure.h"
-#include "RICserviceUpdate.h"
-#include "RICserviceUpdateAcknowledge.h"
-#include "RICserviceUpdateFailure.h"
 #include "RICcontrolRequest.h"
 #include "RICcontrolAcknowledge.h"
 #include "RICcontrolFailure.h"
 #include "E2setupRequest.h"
 #include "E2setupResponse.h"
 #include "E2setupFailure.h"
+#include "E2nodeConfigurationUpdate.h"
+#include "E2nodeConfigurationUpdateAcknowledge.h"
+#include "E2nodeConfigurationUpdateFailure.h"
 #include "ResetRequest.h"
 #include "ResetResponse.h"
+#include "E2RemovalRequest.h"
+#include "E2RemovalResponse.h"
+#include "E2RemovalFailure.h"
 #include "RICindication.h"
 #include "RICserviceQuery.h"
 #include "ErrorIndication.h"
+#include "RICsubscriptionDeleteRequired.h"
 #include <OPEN_TYPE.h>
 #include <constr_CHOICE.h>
 #include <constr_SEQUENCE.h>
@@ -49,9 +53,10 @@
 	UnsuccessfulOutcome__value_PR_NOTHING,	/* No components present */
 	UnsuccessfulOutcome__value_PR_RICsubscriptionFailure,
 	UnsuccessfulOutcome__value_PR_RICsubscriptionDeleteFailure,
-	UnsuccessfulOutcome__value_PR_RICserviceUpdateFailure,
 	UnsuccessfulOutcome__value_PR_RICcontrolFailure,
-	UnsuccessfulOutcome__value_PR_E2setupFailure
+	UnsuccessfulOutcome__value_PR_E2setupFailure,
+	UnsuccessfulOutcome__value_PR_E2nodeConfigurationUpdateFailure,
+	UnsuccessfulOutcome__value_PR_E2RemovalFailure
 } UnsuccessfulOutcome__value_PR;
 
 /* UnsuccessfulOutcome */
@@ -63,9 +68,10 @@
 		union UnsuccessfulOutcome__value_u {
 			RICsubscriptionFailure_t	 RICsubscriptionFailure;
 			RICsubscriptionDeleteFailure_t	 RICsubscriptionDeleteFailure;
-			RICserviceUpdateFailure_t	 RICserviceUpdateFailure;
 			RICcontrolFailure_t	 RICcontrolFailure;
 			E2setupFailure_t	 E2setupFailure;
+			E2nodeConfigurationUpdateFailure_t	 E2nodeConfigurationUpdateFailure;
+			E2RemovalFailure_t	 E2RemovalFailure;
 		} choice;
 		
 		/* Context for parsing across buffer boundaries */
diff --git a/e2ap/headers/asn_constant.h b/e2ap/headers/asn_constant.h
index a6f348c..b850c56 100644
--- a/e2ap/headers/asn_constant.h
+++ b/e2ap/headers/asn_constant.h
@@ -11,8 +11,11 @@
 
 #define maxProtocolIEs (65535)
 #define maxnoofErrors (256)
+#define maxofE2nodeComponents (1024)
 #define maxofRANfunctionID (256)
 #define maxofRICactionID (16)
+#define maxofTNLA (32)
+#define maxofRICrequestID (4294967295)
 
 
 #ifdef __cplusplus
diff --git a/e2ap/headers/asn_system.h b/e2ap/headers/asn_system.h
index cc5cead..fa8cf11 100644
--- a/e2ap/headers/asn_system.h
+++ b/e2ap/headers/asn_system.h
@@ -63,11 +63,7 @@
 #define isnan _isnan
 #define finite _finite
 #define copysign _copysign
-#ifdef WIN32	//MCHECK
-	#define	ilogb	ilogb
-#else
-	#define ilogb _logb
-#endif
+#define	ilogb	_logb
 #else	/* !_MSC_VER */
 #include <stdint.h>
 #endif	/* _MSC_VER */
diff --git a/e2ap/lib/AMFName.c b/e2ap/lib/AMFName.c
new file mode 100644
index 0000000..ed2a6e7
--- /dev/null
+++ b/e2ap/lib/AMFName.c
@@ -0,0 +1,109 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "AMFName.h"
+
+static const int permitted_alphabet_table_1[256] = {
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/*                  */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/*                  */
+ 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9,	/* .      '() +,-./ */
+10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22,	/* 0123456789:  = ? */
+ 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,	/*  ABCDEFGHIJKLMNO */
+38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0,	/* PQRSTUVWXYZ      */
+ 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,	/*  abcdefghijklmno */
+64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0,	/* pqrstuvwxyz      */
+};
+static const int permitted_alphabet_code2value_1[74] = {
+32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54,
+55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74,
+75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,
+97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,
+113,114,115,116,117,118,119,120,121,122,};
+
+
+static int check_permitted_alphabet_1(const void *sptr) {
+	const int *table = permitted_alphabet_table_1;
+	/* The underlying type is PrintableString */
+	const PrintableString_t *st = (const PrintableString_t *)sptr;
+	const uint8_t *ch = st->buf;
+	const uint8_t *end = ch + st->size;
+	
+	for(; ch < end; ch++) {
+		uint8_t cv = *ch;
+		if(!table[cv]) return -1;
+	}
+	return 0;
+}
+
+int
+AMFName_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const PrintableString_t *st = (const PrintableString_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size >= 1 && size <= 150)
+		 && !check_permitted_alphabet_1(st)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static int asn_PER_MAP_AMFName_1_v2c(unsigned int value) {
+	if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0]))
+		return -1;
+	return permitted_alphabet_table_1[value] - 1;
+}
+static int asn_PER_MAP_AMFName_1_c2v(unsigned int code) {
+	if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0]))
+		return -1;
+	return permitted_alphabet_code2value_1[code];
+}
+/*
+ * This type is implemented using PrintableString,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_AMFName_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(0..MAX)) */};
+asn_per_constraints_t asn_PER_type_AMFName_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 7,  7,  32,  122 }	/* (32..122) */,
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  8,  8,  1,  150 }	/* (SIZE(1..150,...)) */,
+	asn_PER_MAP_AMFName_1_v2c,	/* Value to PER code map */
+	asn_PER_MAP_AMFName_1_c2v	/* PER code to value map */
+};
+static const ber_tlv_tag_t asn_DEF_AMFName_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (19 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_AMFName = {
+	"AMFName",
+	"AMFName",
+	&asn_OP_PrintableString,
+	asn_DEF_AMFName_tags_1,
+	sizeof(asn_DEF_AMFName_tags_1)
+		/sizeof(asn_DEF_AMFName_tags_1[0]), /* 1 */
+	asn_DEF_AMFName_tags_1,	/* Same as above */
+	sizeof(asn_DEF_AMFName_tags_1)
+		/sizeof(asn_DEF_AMFName_tags_1[0]), /* 1 */
+	{ &asn_OER_type_AMFName_constr_1, &asn_PER_type_AMFName_constr_1, AMFName_constraint },
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/e2ap/lib/Cause.c b/e2ap/lib/Cause.c
index bdb51be..15a29de 100644
--- a/e2ap/lib/Cause.c
+++ b/e2ap/lib/Cause.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "Cause.h"
@@ -11,7 +11,7 @@
 	{ 0, 0 },
 	-1};
 asn_per_constraints_t asn_PER_type_Cause_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  4 }	/* (0..4,...) */,
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  5 }	/* (0..5,...) */,
 	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
 	0, 0	/* No PER value map */
 };
@@ -19,7 +19,7 @@
 	{ ATF_NOFLAGS, 0, offsetof(struct Cause, choice.ricRequest),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_CauseRIC,
+		&asn_DEF_CauseRICrequest,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
@@ -34,9 +34,18 @@
 		0, 0, /* No default value */
 		"ricService"
 		},
-	{ ATF_NOFLAGS, 0, offsetof(struct Cause, choice.transport),
+	{ ATF_NOFLAGS, 0, offsetof(struct Cause, choice.e2Node),
 		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
 		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_CauseE2node,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"e2Node"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct Cause, choice.transport),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_CauseTransport,
 		0,
 		{ 0, 0, 0 },
@@ -44,7 +53,7 @@
 		"transport"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct Cause, choice.protocol),
-		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
 		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_CauseProtocol,
 		0,
@@ -53,7 +62,7 @@
 		"protocol"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct Cause, choice.misc),
-		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
 		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_CauseMisc,
 		0,
@@ -65,9 +74,10 @@
 static const asn_TYPE_tag2member_t asn_MAP_Cause_tag2el_1[] = {
     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequest */
     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricService */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* transport */
-    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protocol */
-    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* misc */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* e2Node */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* misc */
 };
 asn_CHOICE_specifics_t asn_SPC_Cause_specs_1 = {
 	sizeof(struct Cause),
@@ -75,9 +85,9 @@
 	offsetof(struct Cause, present),
 	sizeof(((struct Cause *)0)->present),
 	asn_MAP_Cause_tag2el_1,
-	5,	/* Count of tags in the map */
+	6,	/* Count of tags in the map */
 	0, 0,
-	5	/* Extensions start */
+	6	/* Extensions start */
 };
 asn_TYPE_descriptor_t asn_DEF_Cause = {
 	"Cause",
@@ -89,7 +99,7 @@
 	0,	/* No tags (count) */
 	{ &asn_OER_type_Cause_constr_1, &asn_PER_type_Cause_constr_1, CHOICE_constraint },
 	asn_MBR_Cause_1,
-	5,	/* Elements count */
+	6,	/* Elements count */
 	&asn_SPC_Cause_specs_1	/* Additional specs */
 };
 
diff --git a/e2ap/lib/CauseE2node.c b/e2ap/lib/CauseE2node.c
new file mode 100644
index 0000000..72b7840
--- /dev/null
+++ b/e2ap/lib/CauseE2node.c
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "CauseE2node.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_CauseE2node_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_CauseE2node_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }	/* (0..0,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_CauseE2node_value2enum_1[] = {
+	{ 0,	24,	"e2node-component-unknown" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_CauseE2node_enum2value_1[] = {
+	0	/* e2node-component-unknown(0) */
+	/* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_CauseE2node_specs_1 = {
+	asn_MAP_CauseE2node_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_CauseE2node_enum2value_1,	/* N => "tag"; sorted by N */
+	1,	/* Number of elements in the maps */
+	2,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_CauseE2node_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_CauseE2node = {
+	"CauseE2node",
+	"CauseE2node",
+	&asn_OP_NativeEnumerated,
+	asn_DEF_CauseE2node_tags_1,
+	sizeof(asn_DEF_CauseE2node_tags_1)
+		/sizeof(asn_DEF_CauseE2node_tags_1[0]), /* 1 */
+	asn_DEF_CauseE2node_tags_1,	/* Same as above */
+	sizeof(asn_DEF_CauseE2node_tags_1)
+		/sizeof(asn_DEF_CauseE2node_tags_1[0]), /* 1 */
+	{ &asn_OER_type_CauseE2node_constr_1, &asn_PER_type_CauseE2node_constr_1, NativeEnumerated_constraint },
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_CauseE2node_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/CauseMisc.c b/e2ap/lib/CauseMisc.c
index e09c0b1..fbd8599 100644
--- a/e2ap/lib/CauseMisc.c
+++ b/e2ap/lib/CauseMisc.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "CauseMisc.h"
diff --git a/e2ap/lib/CauseProtocol.c b/e2ap/lib/CauseProtocol.c
index 66bb383..f2e200b 100644
--- a/e2ap/lib/CauseProtocol.c
+++ b/e2ap/lib/CauseProtocol.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "CauseProtocol.h"
diff --git a/e2ap/lib/CauseRIC.c b/e2ap/lib/CauseRIC.c
deleted file mode 100644
index 7d94696..0000000
--- a/e2ap/lib/CauseRIC.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
- */
-
-#include "CauseRIC.h"
-
-/*
- * This type is implemented using NativeEnumerated,
- * so here we adjust the DEF accordingly.
- */
-static asn_oer_constraints_t asn_OER_type_CauseRIC_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	-1};
-asn_per_constraints_t asn_PER_type_CauseRIC_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  4,  4,  0,  10 }	/* (0..10,...) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static const asn_INTEGER_enum_map_t asn_MAP_CauseRIC_value2enum_1[] = {
-	{ 0,	23,	"ran-function-id-Invalid" },
-	{ 1,	20,	"action-not-supported" },
-	{ 2,	17,	"excessive-actions" },
-	{ 3,	16,	"duplicate-action" },
-	{ 4,	15,	"duplicate-event" },
-	{ 5,	23,	"function-resource-limit" },
-	{ 6,	18,	"request-id-unknown" },
-	{ 7,	46,	"inconsistent-action-subsequent-action-sequence" },
-	{ 8,	23,	"control-message-invalid" },
-	{ 9,	23,	"call-process-id-invalid" },
-	{ 10,	11,	"unspecified" }
-	/* This list is extensible */
-};
-static const unsigned int asn_MAP_CauseRIC_enum2value_1[] = {
-	1,	/* action-not-supported(1) */
-	9,	/* call-process-id-invalid(9) */
-	8,	/* control-message-invalid(8) */
-	3,	/* duplicate-action(3) */
-	4,	/* duplicate-event(4) */
-	2,	/* excessive-actions(2) */
-	5,	/* function-resource-limit(5) */
-	7,	/* inconsistent-action-subsequent-action-sequence(7) */
-	0,	/* ran-function-id-Invalid(0) */
-	6,	/* request-id-unknown(6) */
-	10	/* unspecified(10) */
-	/* This list is extensible */
-};
-const asn_INTEGER_specifics_t asn_SPC_CauseRIC_specs_1 = {
-	asn_MAP_CauseRIC_value2enum_1,	/* "tag" => N; sorted by tag */
-	asn_MAP_CauseRIC_enum2value_1,	/* N => "tag"; sorted by N */
-	11,	/* Number of elements in the maps */
-	12,	/* Extensions before this member */
-	1,	/* Strict enumeration */
-	0,	/* Native long size */
-	0
-};
-static const ber_tlv_tag_t asn_DEF_CauseRIC_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
-};
-asn_TYPE_descriptor_t asn_DEF_CauseRIC = {
-	"CauseRIC",
-	"CauseRIC",
-	&asn_OP_NativeEnumerated,
-	asn_DEF_CauseRIC_tags_1,
-	sizeof(asn_DEF_CauseRIC_tags_1)
-		/sizeof(asn_DEF_CauseRIC_tags_1[0]), /* 1 */
-	asn_DEF_CauseRIC_tags_1,	/* Same as above */
-	sizeof(asn_DEF_CauseRIC_tags_1)
-		/sizeof(asn_DEF_CauseRIC_tags_1[0]), /* 1 */
-	{ &asn_OER_type_CauseRIC_constr_1, &asn_PER_type_CauseRIC_constr_1, NativeEnumerated_constraint },
-	0, 0,	/* Defined elsewhere */
-	&asn_SPC_CauseRIC_specs_1	/* Additional specs */
-};
-
diff --git a/e2ap/lib/CauseRICrequest.c b/e2ap/lib/CauseRICrequest.c
new file mode 100644
index 0000000..2b0257a
--- /dev/null
+++ b/e2ap/lib/CauseRICrequest.c
@@ -0,0 +1,82 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "CauseRICrequest.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_CauseRICrequest_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_CauseRICrequest_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  4,  4,  0,  13 }	/* (0..13,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_CauseRICrequest_value2enum_1[] = {
+	{ 0,	23,	"ran-function-id-invalid" },
+	{ 1,	20,	"action-not-supported" },
+	{ 2,	17,	"excessive-actions" },
+	{ 3,	16,	"duplicate-action" },
+	{ 4,	23,	"duplicate-event-trigger" },
+	{ 5,	23,	"function-resource-limit" },
+	{ 6,	18,	"request-id-unknown" },
+	{ 7,	46,	"inconsistent-action-subsequent-action-sequence" },
+	{ 8,	23,	"control-message-invalid" },
+	{ 9,	27,	"ric-call-process-id-invalid" },
+	{ 10,	21,	"control-timer-expired" },
+	{ 11,	25,	"control-failed-to-execute" },
+	{ 12,	16,	"system-not-ready" },
+	{ 13,	11,	"unspecified" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_CauseRICrequest_enum2value_1[] = {
+	1,	/* action-not-supported(1) */
+	11,	/* control-failed-to-execute(11) */
+	8,	/* control-message-invalid(8) */
+	10,	/* control-timer-expired(10) */
+	3,	/* duplicate-action(3) */
+	4,	/* duplicate-event-trigger(4) */
+	2,	/* excessive-actions(2) */
+	5,	/* function-resource-limit(5) */
+	7,	/* inconsistent-action-subsequent-action-sequence(7) */
+	0,	/* ran-function-id-invalid(0) */
+	6,	/* request-id-unknown(6) */
+	9,	/* ric-call-process-id-invalid(9) */
+	12,	/* system-not-ready(12) */
+	13	/* unspecified(13) */
+	/* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_CauseRICrequest_specs_1 = {
+	asn_MAP_CauseRICrequest_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_CauseRICrequest_enum2value_1,	/* N => "tag"; sorted by N */
+	14,	/* Number of elements in the maps */
+	15,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_CauseRICrequest_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_CauseRICrequest = {
+	"CauseRICrequest",
+	"CauseRICrequest",
+	&asn_OP_NativeEnumerated,
+	asn_DEF_CauseRICrequest_tags_1,
+	sizeof(asn_DEF_CauseRICrequest_tags_1)
+		/sizeof(asn_DEF_CauseRICrequest_tags_1[0]), /* 1 */
+	asn_DEF_CauseRICrequest_tags_1,	/* Same as above */
+	sizeof(asn_DEF_CauseRICrequest_tags_1)
+		/sizeof(asn_DEF_CauseRICrequest_tags_1[0]), /* 1 */
+	{ &asn_OER_type_CauseRICrequest_constr_1, &asn_PER_type_CauseRICrequest_constr_1, NativeEnumerated_constraint },
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_CauseRICrequest_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/CauseRICservice.c b/e2ap/lib/CauseRICservice.c
index c2cbccb..a09c74d 100644
--- a/e2ap/lib/CauseRICservice.c
+++ b/e2ap/lib/CauseRICservice.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "CauseRICservice.h"
@@ -20,14 +20,14 @@
 	0, 0	/* No PER value map */
 };
 static const asn_INTEGER_enum_map_t asn_MAP_CauseRICservice_value2enum_1[] = {
-	{ 0,	21,	"function-not-required" },
+	{ 0,	26,	"ran-function-not-supported" },
 	{ 1,	19,	"excessive-functions" },
 	{ 2,	18,	"ric-resource-limit" }
 	/* This list is extensible */
 };
 static const unsigned int asn_MAP_CauseRICservice_enum2value_1[] = {
 	1,	/* excessive-functions(1) */
-	0,	/* function-not-required(0) */
+	0,	/* ran-function-not-supported(0) */
 	2	/* ric-resource-limit(2) */
 	/* This list is extensible */
 };
diff --git a/e2ap/lib/CauseTransport.c b/e2ap/lib/CauseTransport.c
index a0a5f38..bada442 100644
--- a/e2ap/lib/CauseTransport.c
+++ b/e2ap/lib/CauseTransport.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "CauseTransport.h"
diff --git a/e2ap/lib/Criticality.c b/e2ap/lib/Criticality.c
index 9bfe1ca..3b33c9c 100644
--- a/e2ap/lib/Criticality.c
+++ b/e2ap/lib/Criticality.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2AP-CommonDataTypes"
- * 	found in "E2AP-CommonDataTypes-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "Criticality.h"
diff --git a/e2ap/lib/CriticalityDiagnostics-IE-Item.c b/e2ap/lib/CriticalityDiagnostics-IE-Item.c
index d950a0c..8a17bfc 100644
--- a/e2ap/lib/CriticalityDiagnostics-IE-Item.c
+++ b/e2ap/lib/CriticalityDiagnostics-IE-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "CriticalityDiagnostics-IE-Item.h"
diff --git a/e2ap/lib/CriticalityDiagnostics-IE-List.c b/e2ap/lib/CriticalityDiagnostics-IE-List.c
index 29ae2dd..85b0d23 100644
--- a/e2ap/lib/CriticalityDiagnostics-IE-List.c
+++ b/e2ap/lib/CriticalityDiagnostics-IE-List.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "CriticalityDiagnostics-IE-List.h"
diff --git a/e2ap/lib/CriticalityDiagnostics.c b/e2ap/lib/CriticalityDiagnostics.c
index c07926c..54b7bc4 100644
--- a/e2ap/lib/CriticalityDiagnostics.c
+++ b/e2ap/lib/CriticalityDiagnostics.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "CriticalityDiagnostics.h"
diff --git a/e2ap/lib/E2AP-PDU.c b/e2ap/lib/E2AP-PDU.c
index c8386c2..81aabdb 100644
--- a/e2ap/lib/E2AP-PDU.c
+++ b/e2ap/lib/E2AP-PDU.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Descriptions"
- * 	found in "E2AP-PDU-Descriptions-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "E2AP-PDU.h"
diff --git a/e2ap/lib/E2RemovalFailure.c b/e2ap/lib/E2RemovalFailure.c
new file mode 100644
index 0000000..ecae6f5
--- /dev/null
+++ b/e2ap/lib/E2RemovalFailure.c
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2RemovalFailure.h"
+
+static asn_TYPE_member_t asn_MBR_E2RemovalFailure_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2RemovalFailure, protocolIEs),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_ProtocolIE_Container_185P23,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"protocolIEs"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2RemovalFailure_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2RemovalFailure_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E2RemovalFailure_specs_1 = {
+	sizeof(struct E2RemovalFailure),
+	offsetof(struct E2RemovalFailure, _asn_ctx),
+	asn_MAP_E2RemovalFailure_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_E2RemovalFailure = {
+	"E2RemovalFailure",
+	"E2RemovalFailure",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2RemovalFailure_tags_1,
+	sizeof(asn_DEF_E2RemovalFailure_tags_1)
+		/sizeof(asn_DEF_E2RemovalFailure_tags_1[0]), /* 1 */
+	asn_DEF_E2RemovalFailure_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2RemovalFailure_tags_1)
+		/sizeof(asn_DEF_E2RemovalFailure_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2RemovalFailure_1,
+	1,	/* Elements count */
+	&asn_SPC_E2RemovalFailure_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/E2RemovalRequest.c b/e2ap/lib/E2RemovalRequest.c
new file mode 100644
index 0000000..7c505c7
--- /dev/null
+++ b/e2ap/lib/E2RemovalRequest.c
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2RemovalRequest.h"
+
+static asn_TYPE_member_t asn_MBR_E2RemovalRequest_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2RemovalRequest, protocolIEs),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_ProtocolIE_Container_185P21,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"protocolIEs"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2RemovalRequest_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2RemovalRequest_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E2RemovalRequest_specs_1 = {
+	sizeof(struct E2RemovalRequest),
+	offsetof(struct E2RemovalRequest, _asn_ctx),
+	asn_MAP_E2RemovalRequest_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_E2RemovalRequest = {
+	"E2RemovalRequest",
+	"E2RemovalRequest",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2RemovalRequest_tags_1,
+	sizeof(asn_DEF_E2RemovalRequest_tags_1)
+		/sizeof(asn_DEF_E2RemovalRequest_tags_1[0]), /* 1 */
+	asn_DEF_E2RemovalRequest_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2RemovalRequest_tags_1)
+		/sizeof(asn_DEF_E2RemovalRequest_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2RemovalRequest_1,
+	1,	/* Elements count */
+	&asn_SPC_E2RemovalRequest_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/E2RemovalResponse.c b/e2ap/lib/E2RemovalResponse.c
new file mode 100644
index 0000000..4e72a81
--- /dev/null
+++ b/e2ap/lib/E2RemovalResponse.c
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2RemovalResponse.h"
+
+static asn_TYPE_member_t asn_MBR_E2RemovalResponse_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2RemovalResponse, protocolIEs),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_ProtocolIE_Container_185P22,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"protocolIEs"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2RemovalResponse_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2RemovalResponse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E2RemovalResponse_specs_1 = {
+	sizeof(struct E2RemovalResponse),
+	offsetof(struct E2RemovalResponse, _asn_ctx),
+	asn_MAP_E2RemovalResponse_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_E2RemovalResponse = {
+	"E2RemovalResponse",
+	"E2RemovalResponse",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2RemovalResponse_tags_1,
+	sizeof(asn_DEF_E2RemovalResponse_tags_1)
+		/sizeof(asn_DEF_E2RemovalResponse_tags_1[0]), /* 1 */
+	asn_DEF_E2RemovalResponse_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2RemovalResponse_tags_1)
+		/sizeof(asn_DEF_E2RemovalResponse_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2RemovalResponse_1,
+	1,	/* Elements count */
+	&asn_SPC_E2RemovalResponse_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/E2nodeComponentConfigAddition-Item.c b/e2ap/lib/E2nodeComponentConfigAddition-Item.c
new file mode 100644
index 0000000..4672c3c
--- /dev/null
+++ b/e2ap/lib/E2nodeComponentConfigAddition-Item.c
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2nodeComponentConfigAddition-Item.h"
+
+asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAddition_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_Item, e2nodeComponentInterfaceType),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2nodeComponentInterfaceType,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"e2nodeComponentInterfaceType"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_Item, e2nodeComponentID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_E2nodeComponentID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"e2nodeComponentID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_Item, e2nodeComponentConfiguration),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2nodeComponentConfiguration,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"e2nodeComponentConfiguration"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigAddition_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigAddition_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentInterfaceType */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e2nodeComponentID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* e2nodeComponentConfiguration */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAddition_Item_specs_1 = {
+	sizeof(struct E2nodeComponentConfigAddition_Item),
+	offsetof(struct E2nodeComponentConfigAddition_Item, _asn_ctx),
+	asn_MAP_E2nodeComponentConfigAddition_Item_tag2el_1,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	3,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAddition_Item = {
+	"E2nodeComponentConfigAddition-Item",
+	"E2nodeComponentConfigAddition-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2nodeComponentConfigAddition_Item_tags_1,
+	sizeof(asn_DEF_E2nodeComponentConfigAddition_Item_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentConfigAddition_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2nodeComponentConfigAddition_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2nodeComponentConfigAddition_Item_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentConfigAddition_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeComponentConfigAddition_Item_1,
+	3,	/* Elements count */
+	&asn_SPC_E2nodeComponentConfigAddition_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/E2nodeComponentConfigAddition-List.c b/e2ap/lib/E2nodeComponentConfigAddition-List.c
new file mode 100644
index 0000000..471d6af
--- /dev/null
+++ b/e2ap/lib/E2nodeComponentConfigAddition-List.c
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2nodeComponentConfigAddition-List.h"
+
+#include "ProtocolIE-SingleContainer.h"
+static asn_oer_constraints_t asn_OER_type_E2nodeComponentConfigAddition_List_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..1024)) */};
+asn_per_constraints_t asn_PER_type_E2nodeComponentConfigAddition_List_constr_1 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 10,  10,  1,  1024 }	/* (SIZE(1..1024)) */,
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAddition_List_1[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_ProtocolIE_SingleContainer_188P4,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigAddition_List_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigAddition_List_specs_1 = {
+	sizeof(struct E2nodeComponentConfigAddition_List),
+	offsetof(struct E2nodeComponentConfigAddition_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAddition_List = {
+	"E2nodeComponentConfigAddition-List",
+	"E2nodeComponentConfigAddition-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_E2nodeComponentConfigAddition_List_tags_1,
+	sizeof(asn_DEF_E2nodeComponentConfigAddition_List_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentConfigAddition_List_tags_1[0]), /* 1 */
+	asn_DEF_E2nodeComponentConfigAddition_List_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2nodeComponentConfigAddition_List_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentConfigAddition_List_tags_1[0]), /* 1 */
+	{ &asn_OER_type_E2nodeComponentConfigAddition_List_constr_1, &asn_PER_type_E2nodeComponentConfigAddition_List_constr_1, SEQUENCE_OF_constraint },
+	asn_MBR_E2nodeComponentConfigAddition_List_1,
+	1,	/* Single element */
+	&asn_SPC_E2nodeComponentConfigAddition_List_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/E2nodeComponentConfigAdditionAck-Item.c b/e2ap/lib/E2nodeComponentConfigAdditionAck-Item.c
new file mode 100644
index 0000000..48b9f39
--- /dev/null
+++ b/e2ap/lib/E2nodeComponentConfigAdditionAck-Item.c
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2nodeComponentConfigAdditionAck-Item.h"
+
+asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAdditionAck_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_Item, e2nodeComponentInterfaceType),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2nodeComponentInterfaceType,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"e2nodeComponentInterfaceType"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_Item, e2nodeComponentID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_E2nodeComponentID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"e2nodeComponentID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_Item, e2nodeComponentConfigurationAck),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2nodeComponentConfigurationAck,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"e2nodeComponentConfigurationAck"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigAdditionAck_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigAdditionAck_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentInterfaceType */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e2nodeComponentID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* e2nodeComponentConfigurationAck */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAdditionAck_Item_specs_1 = {
+	sizeof(struct E2nodeComponentConfigAdditionAck_Item),
+	offsetof(struct E2nodeComponentConfigAdditionAck_Item, _asn_ctx),
+	asn_MAP_E2nodeComponentConfigAdditionAck_Item_tag2el_1,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	3,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAdditionAck_Item = {
+	"E2nodeComponentConfigAdditionAck-Item",
+	"E2nodeComponentConfigAdditionAck-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2nodeComponentConfigAdditionAck_Item_tags_1,
+	sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_Item_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2nodeComponentConfigAdditionAck_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_Item_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeComponentConfigAdditionAck_Item_1,
+	3,	/* Elements count */
+	&asn_SPC_E2nodeComponentConfigAdditionAck_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/E2nodeComponentConfigAdditionAck-List.c b/e2ap/lib/E2nodeComponentConfigAdditionAck-List.c
new file mode 100644
index 0000000..11327e1
--- /dev/null
+++ b/e2ap/lib/E2nodeComponentConfigAdditionAck-List.c
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2nodeComponentConfigAdditionAck-List.h"
+
+#include "ProtocolIE-SingleContainer.h"
+static asn_oer_constraints_t asn_OER_type_E2nodeComponentConfigAdditionAck_List_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..1024)) */};
+asn_per_constraints_t asn_PER_type_E2nodeComponentConfigAdditionAck_List_constr_1 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 10,  10,  1,  1024 }	/* (SIZE(1..1024)) */,
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAdditionAck_List_1[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_ProtocolIE_SingleContainer_188P8,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigAdditionAck_List_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigAdditionAck_List_specs_1 = {
+	sizeof(struct E2nodeComponentConfigAdditionAck_List),
+	offsetof(struct E2nodeComponentConfigAdditionAck_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAdditionAck_List = {
+	"E2nodeComponentConfigAdditionAck-List",
+	"E2nodeComponentConfigAdditionAck-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_E2nodeComponentConfigAdditionAck_List_tags_1,
+	sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_List_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_List_tags_1[0]), /* 1 */
+	asn_DEF_E2nodeComponentConfigAdditionAck_List_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_List_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_List_tags_1[0]), /* 1 */
+	{ &asn_OER_type_E2nodeComponentConfigAdditionAck_List_constr_1, &asn_PER_type_E2nodeComponentConfigAdditionAck_List_constr_1, SEQUENCE_OF_constraint },
+	asn_MBR_E2nodeComponentConfigAdditionAck_List_1,
+	1,	/* Single element */
+	&asn_SPC_E2nodeComponentConfigAdditionAck_List_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/E2nodeComponentConfigRemoval-Item.c b/e2ap/lib/E2nodeComponentConfigRemoval-Item.c
new file mode 100644
index 0000000..12a7605
--- /dev/null
+++ b/e2ap/lib/E2nodeComponentConfigRemoval-Item.c
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2nodeComponentConfigRemoval-Item.h"
+
+asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemoval_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemoval_Item, e2nodeComponentInterfaceType),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2nodeComponentInterfaceType,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"e2nodeComponentInterfaceType"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemoval_Item, e2nodeComponentID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_E2nodeComponentID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"e2nodeComponentID"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigRemoval_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigRemoval_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentInterfaceType */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* e2nodeComponentID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemoval_Item_specs_1 = {
+	sizeof(struct E2nodeComponentConfigRemoval_Item),
+	offsetof(struct E2nodeComponentConfigRemoval_Item, _asn_ctx),
+	asn_MAP_E2nodeComponentConfigRemoval_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_E2nodeComponentConfigRemoval_Item = {
+	"E2nodeComponentConfigRemoval-Item",
+	"E2nodeComponentConfigRemoval-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2nodeComponentConfigRemoval_Item_tags_1,
+	sizeof(asn_DEF_E2nodeComponentConfigRemoval_Item_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentConfigRemoval_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2nodeComponentConfigRemoval_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2nodeComponentConfigRemoval_Item_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentConfigRemoval_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeComponentConfigRemoval_Item_1,
+	2,	/* Elements count */
+	&asn_SPC_E2nodeComponentConfigRemoval_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/E2nodeComponentConfigRemoval-List.c b/e2ap/lib/E2nodeComponentConfigRemoval-List.c
new file mode 100644
index 0000000..3e3ba53
--- /dev/null
+++ b/e2ap/lib/E2nodeComponentConfigRemoval-List.c
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2nodeComponentConfigRemoval-List.h"
+
+#include "ProtocolIE-SingleContainer.h"
+static asn_oer_constraints_t asn_OER_type_E2nodeComponentConfigRemoval_List_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..1024)) */};
+asn_per_constraints_t asn_PER_type_E2nodeComponentConfigRemoval_List_constr_1 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 10,  10,  1,  1024 }	/* (SIZE(1..1024)) */,
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemoval_List_1[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_ProtocolIE_SingleContainer_188P6,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigRemoval_List_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigRemoval_List_specs_1 = {
+	sizeof(struct E2nodeComponentConfigRemoval_List),
+	offsetof(struct E2nodeComponentConfigRemoval_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemoval_List = {
+	"E2nodeComponentConfigRemoval-List",
+	"E2nodeComponentConfigRemoval-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_E2nodeComponentConfigRemoval_List_tags_1,
+	sizeof(asn_DEF_E2nodeComponentConfigRemoval_List_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentConfigRemoval_List_tags_1[0]), /* 1 */
+	asn_DEF_E2nodeComponentConfigRemoval_List_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2nodeComponentConfigRemoval_List_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentConfigRemoval_List_tags_1[0]), /* 1 */
+	{ &asn_OER_type_E2nodeComponentConfigRemoval_List_constr_1, &asn_PER_type_E2nodeComponentConfigRemoval_List_constr_1, SEQUENCE_OF_constraint },
+	asn_MBR_E2nodeComponentConfigRemoval_List_1,
+	1,	/* Single element */
+	&asn_SPC_E2nodeComponentConfigRemoval_List_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/E2nodeComponentConfigRemovalAck-Item.c b/e2ap/lib/E2nodeComponentConfigRemovalAck-Item.c
new file mode 100644
index 0000000..ea853cd
--- /dev/null
+++ b/e2ap/lib/E2nodeComponentConfigRemovalAck-Item.c
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2nodeComponentConfigRemovalAck-Item.h"
+
+asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemovalAck_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_Item, e2nodeComponentInterfaceType),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2nodeComponentInterfaceType,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"e2nodeComponentInterfaceType"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_Item, e2nodeComponentID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_E2nodeComponentID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"e2nodeComponentID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_Item, e2nodeComponentConfigurationAck),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2nodeComponentConfigurationAck,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"e2nodeComponentConfigurationAck"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigRemovalAck_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigRemovalAck_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentInterfaceType */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e2nodeComponentID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* e2nodeComponentConfigurationAck */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemovalAck_Item_specs_1 = {
+	sizeof(struct E2nodeComponentConfigRemovalAck_Item),
+	offsetof(struct E2nodeComponentConfigRemovalAck_Item, _asn_ctx),
+	asn_MAP_E2nodeComponentConfigRemovalAck_Item_tag2el_1,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	3,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemovalAck_Item = {
+	"E2nodeComponentConfigRemovalAck-Item",
+	"E2nodeComponentConfigRemovalAck-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2nodeComponentConfigRemovalAck_Item_tags_1,
+	sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_Item_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2nodeComponentConfigRemovalAck_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_Item_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeComponentConfigRemovalAck_Item_1,
+	3,	/* Elements count */
+	&asn_SPC_E2nodeComponentConfigRemovalAck_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/E2nodeComponentConfigRemovalAck-List.c b/e2ap/lib/E2nodeComponentConfigRemovalAck-List.c
new file mode 100644
index 0000000..ec6dba3
--- /dev/null
+++ b/e2ap/lib/E2nodeComponentConfigRemovalAck-List.c
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2nodeComponentConfigRemovalAck-List.h"
+
+#include "ProtocolIE-SingleContainer.h"
+static asn_oer_constraints_t asn_OER_type_E2nodeComponentConfigRemovalAck_List_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..1024)) */};
+asn_per_constraints_t asn_PER_type_E2nodeComponentConfigRemovalAck_List_constr_1 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 10,  10,  1,  1024 }	/* (SIZE(1..1024)) */,
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemovalAck_List_1[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_ProtocolIE_SingleContainer_188P10,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigRemovalAck_List_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigRemovalAck_List_specs_1 = {
+	sizeof(struct E2nodeComponentConfigRemovalAck_List),
+	offsetof(struct E2nodeComponentConfigRemovalAck_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemovalAck_List = {
+	"E2nodeComponentConfigRemovalAck-List",
+	"E2nodeComponentConfigRemovalAck-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_E2nodeComponentConfigRemovalAck_List_tags_1,
+	sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_List_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_List_tags_1[0]), /* 1 */
+	asn_DEF_E2nodeComponentConfigRemovalAck_List_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_List_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_List_tags_1[0]), /* 1 */
+	{ &asn_OER_type_E2nodeComponentConfigRemovalAck_List_constr_1, &asn_PER_type_E2nodeComponentConfigRemovalAck_List_constr_1, SEQUENCE_OF_constraint },
+	asn_MBR_E2nodeComponentConfigRemovalAck_List_1,
+	1,	/* Single element */
+	&asn_SPC_E2nodeComponentConfigRemovalAck_List_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/E2nodeComponentConfigUpdate-Item.c b/e2ap/lib/E2nodeComponentConfigUpdate-Item.c
new file mode 100644
index 0000000..e56ec2b
--- /dev/null
+++ b/e2ap/lib/E2nodeComponentConfigUpdate-Item.c
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2nodeComponentConfigUpdate-Item.h"
+
+asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_Item, e2nodeComponentInterfaceType),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2nodeComponentInterfaceType,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"e2nodeComponentInterfaceType"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_Item, e2nodeComponentID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_E2nodeComponentID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"e2nodeComponentID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_Item, e2nodeComponentConfiguration),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2nodeComponentConfiguration,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"e2nodeComponentConfiguration"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdate_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdate_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentInterfaceType */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e2nodeComponentID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* e2nodeComponentConfiguration */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdate_Item_specs_1 = {
+	sizeof(struct E2nodeComponentConfigUpdate_Item),
+	offsetof(struct E2nodeComponentConfigUpdate_Item, _asn_ctx),
+	asn_MAP_E2nodeComponentConfigUpdate_Item_tag2el_1,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	3,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdate_Item = {
+	"E2nodeComponentConfigUpdate-Item",
+	"E2nodeComponentConfigUpdate-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2nodeComponentConfigUpdate_Item_tags_1,
+	sizeof(asn_DEF_E2nodeComponentConfigUpdate_Item_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentConfigUpdate_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2nodeComponentConfigUpdate_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2nodeComponentConfigUpdate_Item_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentConfigUpdate_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeComponentConfigUpdate_Item_1,
+	3,	/* Elements count */
+	&asn_SPC_E2nodeComponentConfigUpdate_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/E2nodeComponentConfigUpdate-List.c b/e2ap/lib/E2nodeComponentConfigUpdate-List.c
new file mode 100644
index 0000000..24474c2
--- /dev/null
+++ b/e2ap/lib/E2nodeComponentConfigUpdate-List.c
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2nodeComponentConfigUpdate-List.h"
+
+#include "ProtocolIE-SingleContainer.h"
+static asn_oer_constraints_t asn_OER_type_E2nodeComponentConfigUpdate_List_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..1024)) */};
+asn_per_constraints_t asn_PER_type_E2nodeComponentConfigUpdate_List_constr_1 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 10,  10,  1,  1024 }	/* (SIZE(1..1024)) */,
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_List_1[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_ProtocolIE_SingleContainer_188P5,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdate_List_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigUpdate_List_specs_1 = {
+	sizeof(struct E2nodeComponentConfigUpdate_List),
+	offsetof(struct E2nodeComponentConfigUpdate_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdate_List = {
+	"E2nodeComponentConfigUpdate-List",
+	"E2nodeComponentConfigUpdate-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_E2nodeComponentConfigUpdate_List_tags_1,
+	sizeof(asn_DEF_E2nodeComponentConfigUpdate_List_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentConfigUpdate_List_tags_1[0]), /* 1 */
+	asn_DEF_E2nodeComponentConfigUpdate_List_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2nodeComponentConfigUpdate_List_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentConfigUpdate_List_tags_1[0]), /* 1 */
+	{ &asn_OER_type_E2nodeComponentConfigUpdate_List_constr_1, &asn_PER_type_E2nodeComponentConfigUpdate_List_constr_1, SEQUENCE_OF_constraint },
+	asn_MBR_E2nodeComponentConfigUpdate_List_1,
+	1,	/* Single element */
+	&asn_SPC_E2nodeComponentConfigUpdate_List_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/E2nodeComponentConfigUpdateAck-Item.c b/e2ap/lib/E2nodeComponentConfigUpdateAck-Item.c
new file mode 100644
index 0000000..839cb6e
--- /dev/null
+++ b/e2ap/lib/E2nodeComponentConfigUpdateAck-Item.c
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2nodeComponentConfigUpdateAck-Item.h"
+
+asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_Item, e2nodeComponentInterfaceType),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2nodeComponentInterfaceType,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"e2nodeComponentInterfaceType"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_Item, e2nodeComponentID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_E2nodeComponentID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"e2nodeComponentID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_Item, e2nodeComponentConfigurationAck),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2nodeComponentConfigurationAck,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"e2nodeComponentConfigurationAck"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdateAck_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdateAck_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentInterfaceType */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e2nodeComponentID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* e2nodeComponentConfigurationAck */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_Item_specs_1 = {
+	sizeof(struct E2nodeComponentConfigUpdateAck_Item),
+	offsetof(struct E2nodeComponentConfigUpdateAck_Item, _asn_ctx),
+	asn_MAP_E2nodeComponentConfigUpdateAck_Item_tag2el_1,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	3,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateAck_Item = {
+	"E2nodeComponentConfigUpdateAck-Item",
+	"E2nodeComponentConfigUpdateAck-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2nodeComponentConfigUpdateAck_Item_tags_1,
+	sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_Item_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2nodeComponentConfigUpdateAck_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_Item_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeComponentConfigUpdateAck_Item_1,
+	3,	/* Elements count */
+	&asn_SPC_E2nodeComponentConfigUpdateAck_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/E2nodeComponentConfigUpdateAck-List.c b/e2ap/lib/E2nodeComponentConfigUpdateAck-List.c
new file mode 100644
index 0000000..9d119ca
--- /dev/null
+++ b/e2ap/lib/E2nodeComponentConfigUpdateAck-List.c
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2nodeComponentConfigUpdateAck-List.h"
+
+#include "ProtocolIE-SingleContainer.h"
+static asn_oer_constraints_t asn_OER_type_E2nodeComponentConfigUpdateAck_List_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..1024)) */};
+asn_per_constraints_t asn_PER_type_E2nodeComponentConfigUpdateAck_List_constr_1 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 10,  10,  1,  1024 }	/* (SIZE(1..1024)) */,
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_List_1[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_ProtocolIE_SingleContainer_188P9,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdateAck_List_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_List_specs_1 = {
+	sizeof(struct E2nodeComponentConfigUpdateAck_List),
+	offsetof(struct E2nodeComponentConfigUpdateAck_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateAck_List = {
+	"E2nodeComponentConfigUpdateAck-List",
+	"E2nodeComponentConfigUpdateAck-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_E2nodeComponentConfigUpdateAck_List_tags_1,
+	sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_List_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_List_tags_1[0]), /* 1 */
+	asn_DEF_E2nodeComponentConfigUpdateAck_List_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_List_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_List_tags_1[0]), /* 1 */
+	{ &asn_OER_type_E2nodeComponentConfigUpdateAck_List_constr_1, &asn_PER_type_E2nodeComponentConfigUpdateAck_List_constr_1, SEQUENCE_OF_constraint },
+	asn_MBR_E2nodeComponentConfigUpdateAck_List_1,
+	1,	/* Single element */
+	&asn_SPC_E2nodeComponentConfigUpdateAck_List_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/E2nodeComponentConfiguration.c b/e2ap/lib/E2nodeComponentConfiguration.c
new file mode 100644
index 0000000..f109080
--- /dev/null
+++ b/e2ap/lib/E2nodeComponentConfiguration.c
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2nodeComponentConfiguration.h"
+
+asn_TYPE_member_t asn_MBR_E2nodeComponentConfiguration_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfiguration, e2nodeComponentRequestPart),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_OCTET_STRING,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"e2nodeComponentRequestPart"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfiguration, e2nodeComponentResponsePart),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_OCTET_STRING,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"e2nodeComponentResponsePart"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfiguration_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfiguration_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentRequestPart */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* e2nodeComponentResponsePart */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfiguration_specs_1 = {
+	sizeof(struct E2nodeComponentConfiguration),
+	offsetof(struct E2nodeComponentConfiguration, _asn_ctx),
+	asn_MAP_E2nodeComponentConfiguration_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_E2nodeComponentConfiguration = {
+	"E2nodeComponentConfiguration",
+	"E2nodeComponentConfiguration",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2nodeComponentConfiguration_tags_1,
+	sizeof(asn_DEF_E2nodeComponentConfiguration_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentConfiguration_tags_1[0]), /* 1 */
+	asn_DEF_E2nodeComponentConfiguration_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2nodeComponentConfiguration_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentConfiguration_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeComponentConfiguration_1,
+	2,	/* Elements count */
+	&asn_SPC_E2nodeComponentConfiguration_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/E2nodeComponentConfigurationAck.c b/e2ap/lib/E2nodeComponentConfigurationAck.c
new file mode 100644
index 0000000..f562dee
--- /dev/null
+++ b/e2ap/lib/E2nodeComponentConfigurationAck.c
@@ -0,0 +1,114 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2nodeComponentConfigurationAck.h"
+
+#include "Cause.h"
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_updateOutcome_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_type_updateOutcome_constr_2 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_updateOutcome_value2enum_2[] = {
+	{ 0,	7,	"success" },
+	{ 1,	7,	"failure" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_updateOutcome_enum2value_2[] = {
+	1,	/* failure(1) */
+	0	/* success(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_updateOutcome_specs_2 = {
+	asn_MAP_updateOutcome_value2enum_2,	/* "tag" => N; sorted by tag */
+	asn_MAP_updateOutcome_enum2value_2,	/* 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_updateOutcome_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_updateOutcome_2 = {
+	"updateOutcome",
+	"updateOutcome",
+	&asn_OP_NativeEnumerated,
+	asn_DEF_updateOutcome_tags_2,
+	sizeof(asn_DEF_updateOutcome_tags_2)
+		/sizeof(asn_DEF_updateOutcome_tags_2[0]) - 1, /* 1 */
+	asn_DEF_updateOutcome_tags_2,	/* Same as above */
+	sizeof(asn_DEF_updateOutcome_tags_2)
+		/sizeof(asn_DEF_updateOutcome_tags_2[0]), /* 2 */
+	{ &asn_OER_type_updateOutcome_constr_2, &asn_PER_type_updateOutcome_constr_2, NativeEnumerated_constraint },
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_updateOutcome_specs_2	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2nodeComponentConfigurationAck_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigurationAck, updateOutcome),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_updateOutcome_2,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"updateOutcome"
+		},
+	{ ATF_POINTER, 1, offsetof(struct E2nodeComponentConfigurationAck, failureCause),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_Cause,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"failureCause"
+		},
+};
+static const int asn_MAP_E2nodeComponentConfigurationAck_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigurationAck_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigurationAck_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* updateOutcome */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* failureCause */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigurationAck_specs_1 = {
+	sizeof(struct E2nodeComponentConfigurationAck),
+	offsetof(struct E2nodeComponentConfigurationAck, _asn_ctx),
+	asn_MAP_E2nodeComponentConfigurationAck_tag2el_1,
+	2,	/* Count of tags in the map */
+	asn_MAP_E2nodeComponentConfigurationAck_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigurationAck = {
+	"E2nodeComponentConfigurationAck",
+	"E2nodeComponentConfigurationAck",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2nodeComponentConfigurationAck_tags_1,
+	sizeof(asn_DEF_E2nodeComponentConfigurationAck_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentConfigurationAck_tags_1[0]), /* 1 */
+	asn_DEF_E2nodeComponentConfigurationAck_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2nodeComponentConfigurationAck_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentConfigurationAck_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeComponentConfigurationAck_1,
+	2,	/* Elements count */
+	&asn_SPC_E2nodeComponentConfigurationAck_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/E2nodeComponentID.c b/e2ap/lib/E2nodeComponentID.c
new file mode 100644
index 0000000..9aff2ad
--- /dev/null
+++ b/e2ap/lib/E2nodeComponentID.c
@@ -0,0 +1,122 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2nodeComponentID.h"
+
+#include "E2nodeComponentInterfaceNG.h"
+#include "E2nodeComponentInterfaceXn.h"
+#include "E2nodeComponentInterfaceE1.h"
+#include "E2nodeComponentInterfaceF1.h"
+#include "E2nodeComponentInterfaceW1.h"
+#include "E2nodeComponentInterfaceS1.h"
+#include "E2nodeComponentInterfaceX2.h"
+static asn_oer_constraints_t asn_OER_type_E2nodeComponentID_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_E2nodeComponentID_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  6 }	/* (0..6,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_E2nodeComponentID_1[] = {
+	{ ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentInterfaceTypeNG),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2nodeComponentInterfaceNG,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"e2nodeComponentInterfaceTypeNG"
+		},
+	{ ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentInterfaceTypeXn),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2nodeComponentInterfaceXn,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"e2nodeComponentInterfaceTypeXn"
+		},
+	{ ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentInterfaceTypeE1),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2nodeComponentInterfaceE1,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"e2nodeComponentInterfaceTypeE1"
+		},
+	{ ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentInterfaceTypeF1),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2nodeComponentInterfaceF1,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"e2nodeComponentInterfaceTypeF1"
+		},
+	{ ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentInterfaceTypeW1),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2nodeComponentInterfaceW1,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"e2nodeComponentInterfaceTypeW1"
+		},
+	{ ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentInterfaceTypeS1),
+		(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2nodeComponentInterfaceS1,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"e2nodeComponentInterfaceTypeS1"
+		},
+	{ ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentInterfaceTypeX2),
+		(ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2nodeComponentInterfaceX2,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"e2nodeComponentInterfaceTypeX2"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentInterfaceTypeNG */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e2nodeComponentInterfaceTypeXn */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* e2nodeComponentInterfaceTypeE1 */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* e2nodeComponentInterfaceTypeF1 */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* e2nodeComponentInterfaceTypeW1 */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* e2nodeComponentInterfaceTypeS1 */
+    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* e2nodeComponentInterfaceTypeX2 */
+};
+asn_CHOICE_specifics_t asn_SPC_E2nodeComponentID_specs_1 = {
+	sizeof(struct E2nodeComponentID),
+	offsetof(struct E2nodeComponentID, _asn_ctx),
+	offsetof(struct E2nodeComponentID, present),
+	sizeof(((struct E2nodeComponentID *)0)->present),
+	asn_MAP_E2nodeComponentID_tag2el_1,
+	7,	/* Count of tags in the map */
+	0, 0,
+	7	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_E2nodeComponentID = {
+	"E2nodeComponentID",
+	"E2nodeComponentID",
+	&asn_OP_CHOICE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ &asn_OER_type_E2nodeComponentID_constr_1, &asn_PER_type_E2nodeComponentID_constr_1, CHOICE_constraint },
+	asn_MBR_E2nodeComponentID_1,
+	7,	/* Elements count */
+	&asn_SPC_E2nodeComponentID_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/E2nodeComponentInterfaceE1.c b/e2ap/lib/E2nodeComponentInterfaceE1.c
new file mode 100644
index 0000000..6df3636
--- /dev/null
+++ b/e2ap/lib/E2nodeComponentInterfaceE1.c
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2nodeComponentInterfaceE1.h"
+
+asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceE1_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentInterfaceE1, gNB_CU_CP_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GNB_CU_UP_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"gNB-CU-CP-ID"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceE1_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentInterfaceE1_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gNB-CU-CP-ID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceE1_specs_1 = {
+	sizeof(struct E2nodeComponentInterfaceE1),
+	offsetof(struct E2nodeComponentInterfaceE1, _asn_ctx),
+	asn_MAP_E2nodeComponentInterfaceE1_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_E2nodeComponentInterfaceE1 = {
+	"E2nodeComponentInterfaceE1",
+	"E2nodeComponentInterfaceE1",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2nodeComponentInterfaceE1_tags_1,
+	sizeof(asn_DEF_E2nodeComponentInterfaceE1_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentInterfaceE1_tags_1[0]), /* 1 */
+	asn_DEF_E2nodeComponentInterfaceE1_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2nodeComponentInterfaceE1_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentInterfaceE1_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeComponentInterfaceE1_1,
+	1,	/* Elements count */
+	&asn_SPC_E2nodeComponentInterfaceE1_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/E2nodeComponentInterfaceF1.c b/e2ap/lib/E2nodeComponentInterfaceF1.c
new file mode 100644
index 0000000..6c5f81a
--- /dev/null
+++ b/e2ap/lib/E2nodeComponentInterfaceF1.c
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2nodeComponentInterfaceF1.h"
+
+asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceF1_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentInterfaceF1, gNB_DU_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GNB_DU_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"gNB-DU-ID"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceF1_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentInterfaceF1_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gNB-DU-ID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceF1_specs_1 = {
+	sizeof(struct E2nodeComponentInterfaceF1),
+	offsetof(struct E2nodeComponentInterfaceF1, _asn_ctx),
+	asn_MAP_E2nodeComponentInterfaceF1_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_E2nodeComponentInterfaceF1 = {
+	"E2nodeComponentInterfaceF1",
+	"E2nodeComponentInterfaceF1",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2nodeComponentInterfaceF1_tags_1,
+	sizeof(asn_DEF_E2nodeComponentInterfaceF1_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentInterfaceF1_tags_1[0]), /* 1 */
+	asn_DEF_E2nodeComponentInterfaceF1_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2nodeComponentInterfaceF1_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentInterfaceF1_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeComponentInterfaceF1_1,
+	1,	/* Elements count */
+	&asn_SPC_E2nodeComponentInterfaceF1_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/E2nodeComponentInterfaceNG.c b/e2ap/lib/E2nodeComponentInterfaceNG.c
new file mode 100644
index 0000000..636076d
--- /dev/null
+++ b/e2ap/lib/E2nodeComponentInterfaceNG.c
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2nodeComponentInterfaceNG.h"
+
+asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceNG_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentInterfaceNG, amf_name),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_AMFName,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"amf-name"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceNG_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentInterfaceNG_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* amf-name */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceNG_specs_1 = {
+	sizeof(struct E2nodeComponentInterfaceNG),
+	offsetof(struct E2nodeComponentInterfaceNG, _asn_ctx),
+	asn_MAP_E2nodeComponentInterfaceNG_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_E2nodeComponentInterfaceNG = {
+	"E2nodeComponentInterfaceNG",
+	"E2nodeComponentInterfaceNG",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2nodeComponentInterfaceNG_tags_1,
+	sizeof(asn_DEF_E2nodeComponentInterfaceNG_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentInterfaceNG_tags_1[0]), /* 1 */
+	asn_DEF_E2nodeComponentInterfaceNG_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2nodeComponentInterfaceNG_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentInterfaceNG_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeComponentInterfaceNG_1,
+	1,	/* Elements count */
+	&asn_SPC_E2nodeComponentInterfaceNG_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/E2nodeComponentInterfaceS1.c b/e2ap/lib/E2nodeComponentInterfaceS1.c
new file mode 100644
index 0000000..984e22d
--- /dev/null
+++ b/e2ap/lib/E2nodeComponentInterfaceS1.c
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2nodeComponentInterfaceS1.h"
+
+asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceS1_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentInterfaceS1, mme_name),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_MMEname,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"mme-name"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceS1_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentInterfaceS1_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* mme-name */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceS1_specs_1 = {
+	sizeof(struct E2nodeComponentInterfaceS1),
+	offsetof(struct E2nodeComponentInterfaceS1, _asn_ctx),
+	asn_MAP_E2nodeComponentInterfaceS1_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_E2nodeComponentInterfaceS1 = {
+	"E2nodeComponentInterfaceS1",
+	"E2nodeComponentInterfaceS1",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2nodeComponentInterfaceS1_tags_1,
+	sizeof(asn_DEF_E2nodeComponentInterfaceS1_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentInterfaceS1_tags_1[0]), /* 1 */
+	asn_DEF_E2nodeComponentInterfaceS1_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2nodeComponentInterfaceS1_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentInterfaceS1_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeComponentInterfaceS1_1,
+	1,	/* Elements count */
+	&asn_SPC_E2nodeComponentInterfaceS1_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/E2nodeComponentInterfaceType.c b/e2ap/lib/E2nodeComponentInterfaceType.c
new file mode 100644
index 0000000..fec6a6a
--- /dev/null
+++ b/e2ap/lib/E2nodeComponentInterfaceType.c
@@ -0,0 +1,68 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2nodeComponentInterfaceType.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_E2nodeComponentInterfaceType_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_E2nodeComponentInterfaceType_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  6 }	/* (0..6,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_E2nodeComponentInterfaceType_value2enum_1[] = {
+	{ 0,	2,	"ng" },
+	{ 1,	2,	"xn" },
+	{ 2,	2,	"e1" },
+	{ 3,	2,	"f1" },
+	{ 4,	2,	"w1" },
+	{ 5,	2,	"s1" },
+	{ 6,	2,	"x2" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_E2nodeComponentInterfaceType_enum2value_1[] = {
+	2,	/* e1(2) */
+	3,	/* f1(3) */
+	0,	/* ng(0) */
+	5,	/* s1(5) */
+	4,	/* w1(4) */
+	6,	/* x2(6) */
+	1	/* xn(1) */
+	/* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_E2nodeComponentInterfaceType_specs_1 = {
+	asn_MAP_E2nodeComponentInterfaceType_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_E2nodeComponentInterfaceType_enum2value_1,	/* N => "tag"; sorted by N */
+	7,	/* Number of elements in the maps */
+	8,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceType_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceType = {
+	"E2nodeComponentInterfaceType",
+	"E2nodeComponentInterfaceType",
+	&asn_OP_NativeEnumerated,
+	asn_DEF_E2nodeComponentInterfaceType_tags_1,
+	sizeof(asn_DEF_E2nodeComponentInterfaceType_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentInterfaceType_tags_1[0]), /* 1 */
+	asn_DEF_E2nodeComponentInterfaceType_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2nodeComponentInterfaceType_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentInterfaceType_tags_1[0]), /* 1 */
+	{ &asn_OER_type_E2nodeComponentInterfaceType_constr_1, &asn_PER_type_E2nodeComponentInterfaceType_constr_1, NativeEnumerated_constraint },
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_E2nodeComponentInterfaceType_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/E2nodeComponentInterfaceW1.c b/e2ap/lib/E2nodeComponentInterfaceW1.c
new file mode 100644
index 0000000..056d9fa
--- /dev/null
+++ b/e2ap/lib/E2nodeComponentInterfaceW1.c
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2nodeComponentInterfaceW1.h"
+
+asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceW1_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentInterfaceW1, ng_eNB_DU_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NGENB_DU_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ng-eNB-DU-ID"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceW1_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentInterfaceW1_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ng-eNB-DU-ID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceW1_specs_1 = {
+	sizeof(struct E2nodeComponentInterfaceW1),
+	offsetof(struct E2nodeComponentInterfaceW1, _asn_ctx),
+	asn_MAP_E2nodeComponentInterfaceW1_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_E2nodeComponentInterfaceW1 = {
+	"E2nodeComponentInterfaceW1",
+	"E2nodeComponentInterfaceW1",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2nodeComponentInterfaceW1_tags_1,
+	sizeof(asn_DEF_E2nodeComponentInterfaceW1_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentInterfaceW1_tags_1[0]), /* 1 */
+	asn_DEF_E2nodeComponentInterfaceW1_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2nodeComponentInterfaceW1_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentInterfaceW1_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeComponentInterfaceW1_1,
+	1,	/* Elements count */
+	&asn_SPC_E2nodeComponentInterfaceW1_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/E2nodeComponentInterfaceX2.c b/e2ap/lib/E2nodeComponentInterfaceX2.c
new file mode 100644
index 0000000..e7372c4
--- /dev/null
+++ b/e2ap/lib/E2nodeComponentInterfaceX2.c
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2nodeComponentInterfaceX2.h"
+
+#include "GlobalENB-ID.h"
+#include "GlobalenGNB-ID.h"
+asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceX2_1[] = {
+	{ ATF_POINTER, 2, offsetof(struct E2nodeComponentInterfaceX2, global_eNB_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GlobalENB_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"global-eNB-ID"
+		},
+	{ ATF_POINTER, 1, offsetof(struct E2nodeComponentInterfaceX2, global_en_gNB_ID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GlobalenGNB_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"global-en-gNB-ID"
+		},
+};
+static const int asn_MAP_E2nodeComponentInterfaceX2_oms_1[] = { 0, 1 };
+static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceX2_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentInterfaceX2_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* global-eNB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* global-en-gNB-ID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceX2_specs_1 = {
+	sizeof(struct E2nodeComponentInterfaceX2),
+	offsetof(struct E2nodeComponentInterfaceX2, _asn_ctx),
+	asn_MAP_E2nodeComponentInterfaceX2_tag2el_1,
+	2,	/* Count of tags in the map */
+	asn_MAP_E2nodeComponentInterfaceX2_oms_1,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceX2 = {
+	"E2nodeComponentInterfaceX2",
+	"E2nodeComponentInterfaceX2",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2nodeComponentInterfaceX2_tags_1,
+	sizeof(asn_DEF_E2nodeComponentInterfaceX2_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentInterfaceX2_tags_1[0]), /* 1 */
+	asn_DEF_E2nodeComponentInterfaceX2_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2nodeComponentInterfaceX2_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentInterfaceX2_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeComponentInterfaceX2_1,
+	2,	/* Elements count */
+	&asn_SPC_E2nodeComponentInterfaceX2_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/E2nodeComponentInterfaceXn.c b/e2ap/lib/E2nodeComponentInterfaceXn.c
new file mode 100644
index 0000000..92b3af5
--- /dev/null
+++ b/e2ap/lib/E2nodeComponentInterfaceXn.c
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2nodeComponentInterfaceXn.h"
+
+asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceXn_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentInterfaceXn, global_NG_RAN_Node_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_GlobalNG_RANNode_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"global-NG-RAN-Node-ID"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceXn_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentInterfaceXn_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-NG-RAN-Node-ID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceXn_specs_1 = {
+	sizeof(struct E2nodeComponentInterfaceXn),
+	offsetof(struct E2nodeComponentInterfaceXn, _asn_ctx),
+	asn_MAP_E2nodeComponentInterfaceXn_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_E2nodeComponentInterfaceXn = {
+	"E2nodeComponentInterfaceXn",
+	"E2nodeComponentInterfaceXn",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2nodeComponentInterfaceXn_tags_1,
+	sizeof(asn_DEF_E2nodeComponentInterfaceXn_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentInterfaceXn_tags_1[0]), /* 1 */
+	asn_DEF_E2nodeComponentInterfaceXn_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2nodeComponentInterfaceXn_tags_1)
+		/sizeof(asn_DEF_E2nodeComponentInterfaceXn_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeComponentInterfaceXn_1,
+	1,	/* Elements count */
+	&asn_SPC_E2nodeComponentInterfaceXn_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/E2nodeConfigurationUpdate.c b/e2ap/lib/E2nodeConfigurationUpdate.c
new file mode 100644
index 0000000..34992aa
--- /dev/null
+++ b/e2ap/lib/E2nodeConfigurationUpdate.c
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2nodeConfigurationUpdate.h"
+
+static asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdate_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate, protocolIEs),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_ProtocolIE_Container_185P15,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"protocolIEs"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeConfigurationUpdate_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2nodeConfigurationUpdate_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdate_specs_1 = {
+	sizeof(struct E2nodeConfigurationUpdate),
+	offsetof(struct E2nodeConfigurationUpdate, _asn_ctx),
+	asn_MAP_E2nodeConfigurationUpdate_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_E2nodeConfigurationUpdate = {
+	"E2nodeConfigurationUpdate",
+	"E2nodeConfigurationUpdate",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2nodeConfigurationUpdate_tags_1,
+	sizeof(asn_DEF_E2nodeConfigurationUpdate_tags_1)
+		/sizeof(asn_DEF_E2nodeConfigurationUpdate_tags_1[0]), /* 1 */
+	asn_DEF_E2nodeConfigurationUpdate_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2nodeConfigurationUpdate_tags_1)
+		/sizeof(asn_DEF_E2nodeConfigurationUpdate_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeConfigurationUpdate_1,
+	1,	/* Elements count */
+	&asn_SPC_E2nodeConfigurationUpdate_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/E2nodeConfigurationUpdateAcknowledge.c b/e2ap/lib/E2nodeConfigurationUpdateAcknowledge.c
new file mode 100644
index 0000000..e2d2171
--- /dev/null
+++ b/e2ap/lib/E2nodeConfigurationUpdateAcknowledge.c
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2nodeConfigurationUpdateAcknowledge.h"
+
+static asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateAcknowledge_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge, protocolIEs),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_ProtocolIE_Container_185P16,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"protocolIEs"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeConfigurationUpdateAcknowledge_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2nodeConfigurationUpdateAcknowledge_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateAcknowledge_specs_1 = {
+	sizeof(struct E2nodeConfigurationUpdateAcknowledge),
+	offsetof(struct E2nodeConfigurationUpdateAcknowledge, _asn_ctx),
+	asn_MAP_E2nodeConfigurationUpdateAcknowledge_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_E2nodeConfigurationUpdateAcknowledge = {
+	"E2nodeConfigurationUpdateAcknowledge",
+	"E2nodeConfigurationUpdateAcknowledge",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2nodeConfigurationUpdateAcknowledge_tags_1,
+	sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_tags_1)
+		/sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_tags_1[0]), /* 1 */
+	asn_DEF_E2nodeConfigurationUpdateAcknowledge_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_tags_1)
+		/sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeConfigurationUpdateAcknowledge_1,
+	1,	/* Elements count */
+	&asn_SPC_E2nodeConfigurationUpdateAcknowledge_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/E2nodeConfigurationUpdateFailure.c b/e2ap/lib/E2nodeConfigurationUpdateFailure.c
new file mode 100644
index 0000000..913c107
--- /dev/null
+++ b/e2ap/lib/E2nodeConfigurationUpdateFailure.c
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2nodeConfigurationUpdateFailure.h"
+
+static asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateFailure_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure, protocolIEs),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_ProtocolIE_Container_185P17,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"protocolIEs"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeConfigurationUpdateFailure_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2nodeConfigurationUpdateFailure_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateFailure_specs_1 = {
+	sizeof(struct E2nodeConfigurationUpdateFailure),
+	offsetof(struct E2nodeConfigurationUpdateFailure, _asn_ctx),
+	asn_MAP_E2nodeConfigurationUpdateFailure_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_E2nodeConfigurationUpdateFailure = {
+	"E2nodeConfigurationUpdateFailure",
+	"E2nodeConfigurationUpdateFailure",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2nodeConfigurationUpdateFailure_tags_1,
+	sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_tags_1)
+		/sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_tags_1[0]), /* 1 */
+	asn_DEF_E2nodeConfigurationUpdateFailure_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_tags_1)
+		/sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeConfigurationUpdateFailure_1,
+	1,	/* Elements count */
+	&asn_SPC_E2nodeConfigurationUpdateFailure_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/E2nodeTNLassociationRemoval-Item.c b/e2ap/lib/E2nodeTNLassociationRemoval-Item.c
new file mode 100644
index 0000000..4044aec
--- /dev/null
+++ b/e2ap/lib/E2nodeTNLassociationRemoval-Item.c
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2nodeTNLassociationRemoval-Item.h"
+
+asn_TYPE_member_t asn_MBR_E2nodeTNLassociationRemoval_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeTNLassociationRemoval_Item, tnlInformation),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_TNLinformation,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"tnlInformation"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeTNLassociationRemoval_Item, tnlInformationRIC),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_TNLinformation,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"tnlInformationRIC"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeTNLassociationRemoval_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2nodeTNLassociationRemoval_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tnlInformation */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* tnlInformationRIC */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2nodeTNLassociationRemoval_Item_specs_1 = {
+	sizeof(struct E2nodeTNLassociationRemoval_Item),
+	offsetof(struct E2nodeTNLassociationRemoval_Item, _asn_ctx),
+	asn_MAP_E2nodeTNLassociationRemoval_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_E2nodeTNLassociationRemoval_Item = {
+	"E2nodeTNLassociationRemoval-Item",
+	"E2nodeTNLassociationRemoval-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2nodeTNLassociationRemoval_Item_tags_1,
+	sizeof(asn_DEF_E2nodeTNLassociationRemoval_Item_tags_1)
+		/sizeof(asn_DEF_E2nodeTNLassociationRemoval_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2nodeTNLassociationRemoval_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2nodeTNLassociationRemoval_Item_tags_1)
+		/sizeof(asn_DEF_E2nodeTNLassociationRemoval_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeTNLassociationRemoval_Item_1,
+	2,	/* Elements count */
+	&asn_SPC_E2nodeTNLassociationRemoval_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/E2nodeTNLassociationRemoval-List.c b/e2ap/lib/E2nodeTNLassociationRemoval-List.c
new file mode 100644
index 0000000..a729c78
--- /dev/null
+++ b/e2ap/lib/E2nodeTNLassociationRemoval-List.c
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2nodeTNLassociationRemoval-List.h"
+
+#include "ProtocolIE-SingleContainer.h"
+static asn_oer_constraints_t asn_OER_type_E2nodeTNLassociationRemoval_List_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..32)) */};
+asn_per_constraints_t asn_PER_type_E2nodeTNLassociationRemoval_List_constr_1 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 5,  5,  1,  32 }	/* (SIZE(1..32)) */,
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_E2nodeTNLassociationRemoval_List_1[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_ProtocolIE_SingleContainer_188P7,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeTNLassociationRemoval_List_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_E2nodeTNLassociationRemoval_List_specs_1 = {
+	sizeof(struct E2nodeTNLassociationRemoval_List),
+	offsetof(struct E2nodeTNLassociationRemoval_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_E2nodeTNLassociationRemoval_List = {
+	"E2nodeTNLassociationRemoval-List",
+	"E2nodeTNLassociationRemoval-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_E2nodeTNLassociationRemoval_List_tags_1,
+	sizeof(asn_DEF_E2nodeTNLassociationRemoval_List_tags_1)
+		/sizeof(asn_DEF_E2nodeTNLassociationRemoval_List_tags_1[0]), /* 1 */
+	asn_DEF_E2nodeTNLassociationRemoval_List_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2nodeTNLassociationRemoval_List_tags_1)
+		/sizeof(asn_DEF_E2nodeTNLassociationRemoval_List_tags_1[0]), /* 1 */
+	{ &asn_OER_type_E2nodeTNLassociationRemoval_List_constr_1, &asn_PER_type_E2nodeTNLassociationRemoval_List_constr_1, SEQUENCE_OF_constraint },
+	asn_MBR_E2nodeTNLassociationRemoval_List_1,
+	1,	/* Single element */
+	&asn_SPC_E2nodeTNLassociationRemoval_List_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/E2setupFailure.c b/e2ap/lib/E2setupFailure.c
index 1b0bd35..81f9ac9 100644
--- a/e2ap/lib/E2setupFailure.c
+++ b/e2ap/lib/E2setupFailure.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "E2setupFailure.h"
@@ -11,7 +11,7 @@
 	{ ATF_NOFLAGS, 0, offsetof(struct E2setupFailure, protocolIEs),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_ProtocolIE_Container_87P13,
+		&asn_DEF_ProtocolIE_Container_185P14,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
diff --git a/e2ap/lib/E2setupRequest.c b/e2ap/lib/E2setupRequest.c
index 92fd09b..8a4e4c0 100644
--- a/e2ap/lib/E2setupRequest.c
+++ b/e2ap/lib/E2setupRequest.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "E2setupRequest.h"
@@ -11,7 +11,7 @@
 	{ ATF_NOFLAGS, 0, offsetof(struct E2setupRequest, protocolIEs),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_ProtocolIE_Container_87P11,
+		&asn_DEF_ProtocolIE_Container_185P12,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
diff --git a/e2ap/lib/E2setupResponse.c b/e2ap/lib/E2setupResponse.c
index b08bc06..e14d0e1 100644
--- a/e2ap/lib/E2setupResponse.c
+++ b/e2ap/lib/E2setupResponse.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "E2setupResponse.h"
@@ -11,7 +11,7 @@
 	{ ATF_NOFLAGS, 0, offsetof(struct E2setupResponse, protocolIEs),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_ProtocolIE_Container_87P12,
+		&asn_DEF_ProtocolIE_Container_185P13,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
diff --git a/e2ap/lib/ENB-ID-Choice.c b/e2ap/lib/ENB-ID-Choice.c
index b95e5eb..f51f6b2 100644
--- a/e2ap/lib/ENB-ID-Choice.c
+++ b/e2ap/lib/ENB-ID-Choice.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "ENB-ID-Choice.h"
diff --git a/e2ap/lib/ENB-ID.c b/e2ap/lib/ENB-ID.c
index 96b8cb5..c9a1c74 100644
--- a/e2ap/lib/ENB-ID.c
+++ b/e2ap/lib/ENB-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "ENB-ID.h"
diff --git a/e2ap/lib/ENGNB-ID.c b/e2ap/lib/ENGNB-ID.c
index 4bfdbd8..82cd43b 100644
--- a/e2ap/lib/ENGNB-ID.c
+++ b/e2ap/lib/ENGNB-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "ENGNB-ID.h"
diff --git a/e2ap/lib/ErrorIndication.c b/e2ap/lib/ErrorIndication.c
index a47c6e0..1c18bc7 100644
--- a/e2ap/lib/ErrorIndication.c
+++ b/e2ap/lib/ErrorIndication.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "ErrorIndication.h"
@@ -11,7 +11,7 @@
 	{ ATF_NOFLAGS, 0, offsetof(struct ErrorIndication, protocolIEs),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_ProtocolIE_Container_87P10,
+		&asn_DEF_ProtocolIE_Container_185P11,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
diff --git a/e2ap/lib/GNB-CU-UP-ID.c b/e2ap/lib/GNB-CU-UP-ID.c
index 8f960e2..0505ab3 100644
--- a/e2ap/lib/GNB-CU-UP-ID.c
+++ b/e2ap/lib/GNB-CU-UP-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "GNB-CU-UP-ID.h"
diff --git a/e2ap/lib/GNB-DU-ID.c b/e2ap/lib/GNB-DU-ID.c
index 6c0940d..8b1a66a 100644
--- a/e2ap/lib/GNB-DU-ID.c
+++ b/e2ap/lib/GNB-DU-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "GNB-DU-ID.h"
diff --git a/e2ap/lib/GNB-ID-Choice.c b/e2ap/lib/GNB-ID-Choice.c
index 085a942..1dda293 100644
--- a/e2ap/lib/GNB-ID-Choice.c
+++ b/e2ap/lib/GNB-ID-Choice.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "GNB-ID-Choice.h"
diff --git a/e2ap/lib/GlobalE2node-ID.c b/e2ap/lib/GlobalE2node-ID.c
index 13a8295..2a86c0a 100644
--- a/e2ap/lib/GlobalE2node-ID.c
+++ b/e2ap/lib/GlobalE2node-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "GlobalE2node-ID.h"
diff --git a/e2ap/lib/GlobalE2node-eNB-ID.c b/e2ap/lib/GlobalE2node-eNB-ID.c
index 7cb93f1..e7aacf0 100644
--- a/e2ap/lib/GlobalE2node-eNB-ID.c
+++ b/e2ap/lib/GlobalE2node-eNB-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "GlobalE2node-eNB-ID.h"
diff --git a/e2ap/lib/GlobalE2node-en-gNB-ID.c b/e2ap/lib/GlobalE2node-en-gNB-ID.c
index 6444325..46ddfa2 100644
--- a/e2ap/lib/GlobalE2node-en-gNB-ID.c
+++ b/e2ap/lib/GlobalE2node-en-gNB-ID.c
@@ -1,36 +1,58 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "GlobalE2node-en-gNB-ID.h"
 
 asn_TYPE_member_t asn_MBR_GlobalE2node_en_gNB_ID_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_en_gNB_ID, global_gNB_ID),
+	{ ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_en_gNB_ID, global_en_gNB_ID),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_GlobalenGNB_ID,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
-		"global-gNB-ID"
+		"global-en-gNB-ID"
+		},
+	{ ATF_POINTER, 2, offsetof(struct GlobalE2node_en_gNB_ID, en_gNB_CU_UP_ID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GNB_CU_UP_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"en-gNB-CU-UP-ID"
+		},
+	{ ATF_POINTER, 1, offsetof(struct GlobalE2node_en_gNB_ID, en_gNB_DU_ID),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GNB_DU_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"en-gNB-DU-ID"
 		},
 };
+static const int asn_MAP_GlobalE2node_en_gNB_ID_oms_1[] = { 1, 2 };
 static const ber_tlv_tag_t asn_DEF_GlobalE2node_en_gNB_ID_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
 static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_en_gNB_ID_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-gNB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* global-en-gNB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-gNB-CU-UP-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* en-gNB-DU-ID */
 };
 asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_en_gNB_ID_specs_1 = {
 	sizeof(struct GlobalE2node_en_gNB_ID),
 	offsetof(struct GlobalE2node_en_gNB_ID, _asn_ctx),
 	asn_MAP_GlobalE2node_en_gNB_ID_tag2el_1,
-	1,	/* Count of tags in the map */
-	0, 0, 0,	/* Optional elements (not needed) */
-	1,	/* First extension addition */
+	3,	/* Count of tags in the map */
+	asn_MAP_GlobalE2node_en_gNB_ID_oms_1,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	3,	/* First extension addition */
 };
 asn_TYPE_descriptor_t asn_DEF_GlobalE2node_en_gNB_ID = {
 	"GlobalE2node-en-gNB-ID",
@@ -44,7 +66,7 @@
 		/sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
 	asn_MBR_GlobalE2node_en_gNB_ID_1,
-	1,	/* Elements count */
+	3,	/* Elements count */
 	&asn_SPC_GlobalE2node_en_gNB_ID_specs_1	/* Additional specs */
 };
 
diff --git a/e2ap/lib/GlobalE2node-gNB-ID.c b/e2ap/lib/GlobalE2node-gNB-ID.c
index 31bf024..039fb59 100644
--- a/e2ap/lib/GlobalE2node-gNB-ID.c
+++ b/e2ap/lib/GlobalE2node-gNB-ID.c
@@ -1,12 +1,13 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "GlobalE2node-gNB-ID.h"
 
+#include "GlobalenGNB-ID.h"
 asn_TYPE_member_t asn_MBR_GlobalE2node_gNB_ID_1[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_gNB_ID, global_gNB_ID),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
@@ -17,9 +18,18 @@
 		0, 0, /* No default value */
 		"global-gNB-ID"
 		},
-	{ ATF_POINTER, 2, offsetof(struct GlobalE2node_gNB_ID, gNB_CU_UP_ID),
+	{ ATF_POINTER, 3, offsetof(struct GlobalE2node_gNB_ID, global_en_gNB_ID),
 		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
 		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GlobalenGNB_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"global-en-gNB-ID"
+		},
+	{ ATF_POINTER, 2, offsetof(struct GlobalE2node_gNB_ID, gNB_CU_UP_ID),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_GNB_CU_UP_ID,
 		0,
 		{ 0, 0, 0 },
@@ -27,7 +37,7 @@
 		"gNB-CU-UP-ID"
 		},
 	{ ATF_POINTER, 1, offsetof(struct GlobalE2node_gNB_ID, gNB_DU_ID),
-		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
 		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_GNB_DU_ID,
 		0,
@@ -36,23 +46,24 @@
 		"gNB-DU-ID"
 		},
 };
-static const int asn_MAP_GlobalE2node_gNB_ID_oms_1[] = { 1, 2 };
+static const int asn_MAP_GlobalE2node_gNB_ID_oms_1[] = { 1, 2, 3 };
 static const ber_tlv_tag_t asn_DEF_GlobalE2node_gNB_ID_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
 static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_gNB_ID_tag2el_1[] = {
     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* global-gNB-ID */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* gNB-CU-UP-ID */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* gNB-DU-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* global-en-gNB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* gNB-CU-UP-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* gNB-DU-ID */
 };
 asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_gNB_ID_specs_1 = {
 	sizeof(struct GlobalE2node_gNB_ID),
 	offsetof(struct GlobalE2node_gNB_ID, _asn_ctx),
 	asn_MAP_GlobalE2node_gNB_ID_tag2el_1,
-	3,	/* Count of tags in the map */
+	4,	/* Count of tags in the map */
 	asn_MAP_GlobalE2node_gNB_ID_oms_1,	/* Optional members */
-	2, 0,	/* Root/Additions */
-	3,	/* First extension addition */
+	3, 0,	/* Root/Additions */
+	4,	/* First extension addition */
 };
 asn_TYPE_descriptor_t asn_DEF_GlobalE2node_gNB_ID = {
 	"GlobalE2node-gNB-ID",
@@ -66,7 +77,7 @@
 		/sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
 	asn_MBR_GlobalE2node_gNB_ID_1,
-	3,	/* Elements count */
+	4,	/* Elements count */
 	&asn_SPC_GlobalE2node_gNB_ID_specs_1	/* Additional specs */
 };
 
diff --git a/e2ap/lib/GlobalE2node-ng-eNB-ID.c b/e2ap/lib/GlobalE2node-ng-eNB-ID.c
index b3bb491..cbd82d0 100644
--- a/e2ap/lib/GlobalE2node-ng-eNB-ID.c
+++ b/e2ap/lib/GlobalE2node-ng-eNB-ID.c
@@ -1,12 +1,13 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "GlobalE2node-ng-eNB-ID.h"
 
+#include "GlobalENB-ID.h"
 asn_TYPE_member_t asn_MBR_GlobalE2node_ng_eNB_ID_1[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_ng_eNB_ID, global_ng_eNB_ID),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
@@ -17,20 +18,42 @@
 		0, 0, /* No default value */
 		"global-ng-eNB-ID"
 		},
+	{ ATF_POINTER, 2, offsetof(struct GlobalE2node_ng_eNB_ID, global_eNB_ID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GlobalENB_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"global-eNB-ID"
+		},
+	{ ATF_POINTER, 1, offsetof(struct GlobalE2node_ng_eNB_ID, ngENB_DU_ID),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NGENB_DU_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ngENB-DU-ID"
+		},
 };
+static const int asn_MAP_GlobalE2node_ng_eNB_ID_oms_1[] = { 1, 2 };
 static const ber_tlv_tag_t asn_DEF_GlobalE2node_ng_eNB_ID_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
 static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_ng_eNB_ID_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-ng-eNB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* global-ng-eNB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* global-eNB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ngENB-DU-ID */
 };
 asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_ng_eNB_ID_specs_1 = {
 	sizeof(struct GlobalE2node_ng_eNB_ID),
 	offsetof(struct GlobalE2node_ng_eNB_ID, _asn_ctx),
 	asn_MAP_GlobalE2node_ng_eNB_ID_tag2el_1,
-	1,	/* Count of tags in the map */
-	0, 0, 0,	/* Optional elements (not needed) */
-	1,	/* First extension addition */
+	3,	/* Count of tags in the map */
+	asn_MAP_GlobalE2node_ng_eNB_ID_oms_1,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	3,	/* First extension addition */
 };
 asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ng_eNB_ID = {
 	"GlobalE2node-ng-eNB-ID",
@@ -44,7 +67,7 @@
 		/sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
 	asn_MBR_GlobalE2node_ng_eNB_ID_1,
-	1,	/* Elements count */
+	3,	/* Elements count */
 	&asn_SPC_GlobalE2node_ng_eNB_ID_specs_1	/* Additional specs */
 };
 
diff --git a/e2ap/lib/GlobalENB-ID.c b/e2ap/lib/GlobalENB-ID.c
index 9c34820..5da3873 100644
--- a/e2ap/lib/GlobalENB-ID.c
+++ b/e2ap/lib/GlobalENB-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "GlobalENB-ID.h"
diff --git a/e2ap/lib/GlobalNG-RANNode-ID.c b/e2ap/lib/GlobalNG-RANNode-ID.c
new file mode 100644
index 0000000..fab4c83
--- /dev/null
+++ b/e2ap/lib/GlobalNG-RANNode-ID.c
@@ -0,0 +1,67 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "GlobalNG-RANNode-ID.h"
+
+#include "GlobalgNB-ID.h"
+#include "GlobalngeNB-ID.h"
+static asn_oer_constraints_t asn_OER_type_GlobalNG_RANNode_ID_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_GlobalNG_RANNode_ID_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_GlobalNG_RANNode_ID_1[] = {
+	{ ATF_POINTER, 0, offsetof(struct GlobalNG_RANNode_ID, choice.gNB),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GlobalgNB_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"gNB"
+		},
+	{ ATF_POINTER, 0, offsetof(struct GlobalNG_RANNode_ID, choice.ng_eNB),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GlobalngeNB_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ng-eNB"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_GlobalNG_RANNode_ID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ng-eNB */
+};
+asn_CHOICE_specifics_t asn_SPC_GlobalNG_RANNode_ID_specs_1 = {
+	sizeof(struct GlobalNG_RANNode_ID),
+	offsetof(struct GlobalNG_RANNode_ID, _asn_ctx),
+	offsetof(struct GlobalNG_RANNode_ID, present),
+	sizeof(((struct GlobalNG_RANNode_ID *)0)->present),
+	asn_MAP_GlobalNG_RANNode_ID_tag2el_1,
+	2,	/* Count of tags in the map */
+	0, 0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_GlobalNG_RANNode_ID = {
+	"GlobalNG-RANNode-ID",
+	"GlobalNG-RANNode-ID",
+	&asn_OP_CHOICE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ &asn_OER_type_GlobalNG_RANNode_ID_constr_1, &asn_PER_type_GlobalNG_RANNode_ID_constr_1, CHOICE_constraint },
+	asn_MBR_GlobalNG_RANNode_ID_1,
+	2,	/* Elements count */
+	&asn_SPC_GlobalNG_RANNode_ID_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/GlobalRIC-ID.c b/e2ap/lib/GlobalRIC-ID.c
index c027c79..3e4ecd1 100644
--- a/e2ap/lib/GlobalRIC-ID.c
+++ b/e2ap/lib/GlobalRIC-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "GlobalRIC-ID.h"
diff --git a/e2ap/lib/GlobalenGNB-ID.c b/e2ap/lib/GlobalenGNB-ID.c
index 2599aae..56e2ebb 100644
--- a/e2ap/lib/GlobalenGNB-ID.c
+++ b/e2ap/lib/GlobalenGNB-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "GlobalenGNB-ID.h"
diff --git a/e2ap/lib/GlobalgNB-ID.c b/e2ap/lib/GlobalgNB-ID.c
index 2150089..cb49630 100644
--- a/e2ap/lib/GlobalgNB-ID.c
+++ b/e2ap/lib/GlobalgNB-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "GlobalgNB-ID.h"
diff --git a/e2ap/lib/GlobalngeNB-ID.c b/e2ap/lib/GlobalngeNB-ID.c
index 97d1f41..59c4874 100644
--- a/e2ap/lib/GlobalngeNB-ID.c
+++ b/e2ap/lib/GlobalngeNB-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "GlobalngeNB-ID.h"
diff --git a/e2ap/lib/InitiatingMessage.c b/e2ap/lib/InitiatingMessage.c
index 6a6bfdb..7b86826 100644
--- a/e2ap/lib/InitiatingMessage.c
+++ b/e2ap/lib/InitiatingMessage.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Descriptions"
- * 	found in "E2AP-PDU-Descriptions-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "InitiatingMessage.h"
@@ -11,20 +11,24 @@
 static const long asn_VAL_1_reject = 0;
 static const long asn_VAL_2_id_RICsubscriptionDelete = 9;
 static const long asn_VAL_2_reject = 0;
-static const long asn_VAL_3_id_RICserviceUpdate = 7;
+static const long asn_VAL_3_id_RICcontrol = 4;
 static const long asn_VAL_3_reject = 0;
-static const long asn_VAL_4_id_RICcontrol = 4;
+static const long asn_VAL_4_id_E2setup = 1;
 static const long asn_VAL_4_reject = 0;
-static const long asn_VAL_5_id_E2setup = 1;
+static const long asn_VAL_5_id_E2nodeConfigurationUpdate = 10;
 static const long asn_VAL_5_reject = 0;
 static const long asn_VAL_6_id_Reset = 3;
 static const long asn_VAL_6_reject = 0;
-static const long asn_VAL_7_id_RICindication = 5;
-static const long asn_VAL_7_ignore = 1;
-static const long asn_VAL_8_id_RICserviceQuery = 6;
+static const long asn_VAL_7_id_E2removal = 13;
+static const long asn_VAL_7_reject = 0;
+static const long asn_VAL_8_id_RICindication = 5;
 static const long asn_VAL_8_ignore = 1;
-static const long asn_VAL_9_id_ErrorIndication = 2;
+static const long asn_VAL_9_id_RICserviceQuery = 6;
 static const long asn_VAL_9_ignore = 1;
+static const long asn_VAL_10_id_ErrorIndication = 2;
+static const long asn_VAL_10_ignore = 1;
+static const long asn_VAL_11_id_RICsubscriptionDeleteRequired = 12;
+static const long asn_VAL_11_ignore = 1;
 static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = {
 	{ "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest },
 	{ "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse },
@@ -36,44 +40,54 @@
 	{ "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteFailure },
 	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_RICsubscriptionDelete },
 	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject },
-	{ "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceUpdate },
-	{ "&SuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateAcknowledge },
-	{ "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateFailure },
-	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_RICserviceUpdate },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject },
 	{ "&InitiatingMessage", aioc__type, &asn_DEF_RICcontrolRequest },
 	{ "&SuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolAcknowledge },
 	{ "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolFailure },
-	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_RICcontrol },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject },
+	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_RICcontrol },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject },
 	{ "&InitiatingMessage", aioc__type, &asn_DEF_E2setupRequest },
 	{ "&SuccessfulOutcome", aioc__type, &asn_DEF_E2setupResponse },
 	{ "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2setupFailure },
-	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_E2setup },
+	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_E2setup },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject },
+	{ "&InitiatingMessage", aioc__type, &asn_DEF_E2nodeConfigurationUpdate },
+	{ "&SuccessfulOutcome", aioc__type, &asn_DEF_E2nodeConfigurationUpdateAcknowledge },
+	{ "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2nodeConfigurationUpdateFailure },
+	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_E2nodeConfigurationUpdate },
 	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject },
 	{ "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest },
 	{ "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse },
 	{ "&UnsuccessfulOutcome",  },
 	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_Reset },
 	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject },
+	{ "&InitiatingMessage", aioc__type, &asn_DEF_E2RemovalRequest },
+	{ "&SuccessfulOutcome", aioc__type, &asn_DEF_E2RemovalResponse },
+	{ "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2RemovalFailure },
+	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_E2removal },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_reject },
 	{ "&InitiatingMessage", aioc__type, &asn_DEF_RICindication },
 	{ "&SuccessfulOutcome",  },
 	{ "&UnsuccessfulOutcome",  },
-	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_RICindication },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_ignore },
+	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_RICindication },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_ignore },
 	{ "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery },
 	{ "&SuccessfulOutcome",  },
 	{ "&UnsuccessfulOutcome",  },
-	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_RICserviceQuery },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_ignore },
+	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_RICserviceQuery },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore },
 	{ "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication },
 	{ "&SuccessfulOutcome",  },
 	{ "&UnsuccessfulOutcome",  },
-	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_ErrorIndication },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore }
+	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_10_id_ErrorIndication },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_ignore },
+	{ "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequired },
+	{ "&SuccessfulOutcome",  },
+	{ "&UnsuccessfulOutcome",  },
+	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_RICsubscriptionDeleteRequired },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore }
 };
 static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = {
-	{ 9, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows }
+	{ 11, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows }
 };
 static int
 memb_procedureCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
@@ -235,15 +249,6 @@
 		0, 0, /* No default value */
 		"RICsubscriptionDeleteRequest"
 		},
-	{ ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICserviceUpdate),
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_RICserviceUpdate,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"RICserviceUpdate"
-		},
 	{ ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICcontrolRequest),
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -262,6 +267,15 @@
 		0, 0, /* No default value */
 		"E2setupRequest"
 		},
+	{ ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.E2nodeConfigurationUpdate),
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2nodeConfigurationUpdate,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"E2nodeConfigurationUpdate"
+		},
 	{ ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.ResetRequest),
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -271,6 +285,15 @@
 		0, 0, /* No default value */
 		"ResetRequest"
 		},
+	{ ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.E2RemovalRequest),
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2RemovalRequest,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"E2RemovalRequest"
+		},
 	{ ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICindication),
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -298,17 +321,28 @@
 		0, 0, /* No default value */
 		"ErrorIndication"
 		},
+	{ ATF_NOFLAGS, 0, offsetof(struct InitiatingMessage__value, choice.RICsubscriptionDeleteRequired),
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_RICsubscriptionDeleteRequired,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"RICsubscriptionDeleteRequired"
+		},
 };
 static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 8 }, /* RICsubscriptionRequest */
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 7 }, /* RICsubscriptionDeleteRequest */
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 6 }, /* RICserviceUpdate */
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 5 }, /* RICcontrolRequest */
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 4 }, /* E2setupRequest */
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 3 }, /* ResetRequest */
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 2 }, /* RICindication */
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -7, 1 }, /* RICserviceQuery */
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -8, 0 } /* ErrorIndication */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 10 }, /* RICsubscriptionRequest */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 9 }, /* RICsubscriptionDeleteRequest */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 8 }, /* RICcontrolRequest */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 7 }, /* E2setupRequest */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 6 }, /* E2nodeConfigurationUpdate */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 5 }, /* ResetRequest */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 4 }, /* E2RemovalRequest */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -7, 3 }, /* RICindication */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -8, 2 }, /* RICserviceQuery */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -9, 1 }, /* ErrorIndication */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 10, -10, 0 } /* RICsubscriptionDeleteRequired */
 };
 static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = {
 	sizeof(struct InitiatingMessage__value),
@@ -316,7 +350,7 @@
 	offsetof(struct InitiatingMessage__value, present),
 	sizeof(((struct InitiatingMessage__value *)0)->present),
 	asn_MAP_value_tag2el_4,
-	9,	/* Count of tags in the map */
+	11,	/* Count of tags in the map */
 	0, 0,
 	-1	/* Extensions start */
 };
@@ -331,7 +365,7 @@
 	0,	/* No tags (count) */
 	{ 0, 0, OPEN_TYPE_constraint },
 	asn_MBR_value_4,
-	9,	/* Elements count */
+	11,	/* Elements count */
 	&asn_SPC_value_specs_4	/* Additional specs */
 };
 
diff --git a/e2ap/lib/MMEname.c b/e2ap/lib/MMEname.c
new file mode 100644
index 0000000..3218642
--- /dev/null
+++ b/e2ap/lib/MMEname.c
@@ -0,0 +1,109 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "MMEname.h"
+
+static const int permitted_alphabet_table_1[256] = {
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/*                  */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/*                  */
+ 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9,	/* .      '() +,-./ */
+10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22,	/* 0123456789:  = ? */
+ 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,	/*  ABCDEFGHIJKLMNO */
+38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0,	/* PQRSTUVWXYZ      */
+ 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,	/*  abcdefghijklmno */
+64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0,	/* pqrstuvwxyz      */
+};
+static const int permitted_alphabet_code2value_1[74] = {
+32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54,
+55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74,
+75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,
+97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,
+113,114,115,116,117,118,119,120,121,122,};
+
+
+static int check_permitted_alphabet_1(const void *sptr) {
+	const int *table = permitted_alphabet_table_1;
+	/* The underlying type is PrintableString */
+	const PrintableString_t *st = (const PrintableString_t *)sptr;
+	const uint8_t *ch = st->buf;
+	const uint8_t *end = ch + st->size;
+	
+	for(; ch < end; ch++) {
+		uint8_t cv = *ch;
+		if(!table[cv]) return -1;
+	}
+	return 0;
+}
+
+int
+MMEname_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const PrintableString_t *st = (const PrintableString_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size >= 1 && size <= 150)
+		 && !check_permitted_alphabet_1(st)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static int asn_PER_MAP_MMEname_1_v2c(unsigned int value) {
+	if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0]))
+		return -1;
+	return permitted_alphabet_table_1[value] - 1;
+}
+static int asn_PER_MAP_MMEname_1_c2v(unsigned int code) {
+	if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0]))
+		return -1;
+	return permitted_alphabet_code2value_1[code];
+}
+/*
+ * This type is implemented using PrintableString,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_MMEname_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(0..MAX)) */};
+asn_per_constraints_t asn_PER_type_MMEname_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 7,  7,  32,  122 }	/* (32..122) */,
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  8,  8,  1,  150 }	/* (SIZE(1..150,...)) */,
+	asn_PER_MAP_MMEname_1_v2c,	/* Value to PER code map */
+	asn_PER_MAP_MMEname_1_c2v	/* PER code to value map */
+};
+static const ber_tlv_tag_t asn_DEF_MMEname_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (19 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_MMEname = {
+	"MMEname",
+	"MMEname",
+	&asn_OP_PrintableString,
+	asn_DEF_MMEname_tags_1,
+	sizeof(asn_DEF_MMEname_tags_1)
+		/sizeof(asn_DEF_MMEname_tags_1[0]), /* 1 */
+	asn_DEF_MMEname_tags_1,	/* Same as above */
+	sizeof(asn_DEF_MMEname_tags_1)
+		/sizeof(asn_DEF_MMEname_tags_1[0]), /* 1 */
+	{ &asn_OER_type_MMEname_constr_1, &asn_PER_type_MMEname_constr_1, MMEname_constraint },
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/e2ap/lib/NGENB-DU-ID.c b/e2ap/lib/NGENB-DU-ID.c
new file mode 100644
index 0000000..1a8f48a
--- /dev/null
+++ b/e2ap/lib/NGENB-DU-ID.c
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "NGENB-DU-ID.h"
+
+int
+NGENB_DU_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const INTEGER_t *st = (const INTEGER_t *)sptr;
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(asn_INTEGER2long(st, &value)) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value too large (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if((value >= 0 && value <= 68719476735)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using INTEGER,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_NGENB_DU_ID_constr_1 CC_NOTUSED = {
+	{ 8, 1 }	/* (0..68719476735) */,
+	-1};
+asn_per_constraints_t asn_PER_type_NGENB_DU_ID_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 36, -1,  0,  68719476735 }	/* (0..68719476735) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_NGENB_DU_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_NGENB_DU_ID = {
+	"NGENB-DU-ID",
+	"NGENB-DU-ID",
+	&asn_OP_INTEGER,
+	asn_DEF_NGENB_DU_ID_tags_1,
+	sizeof(asn_DEF_NGENB_DU_ID_tags_1)
+		/sizeof(asn_DEF_NGENB_DU_ID_tags_1[0]), /* 1 */
+	asn_DEF_NGENB_DU_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_NGENB_DU_ID_tags_1)
+		/sizeof(asn_DEF_NGENB_DU_ID_tags_1[0]), /* 1 */
+	{ &asn_OER_type_NGENB_DU_ID_constr_1, &asn_PER_type_NGENB_DU_ID_constr_1, NGENB_DU_ID_constraint },
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/e2ap/lib/PLMN-Identity.c b/e2ap/lib/PLMN-Identity.c
index 24f3043..8be1dc8 100644
--- a/e2ap/lib/PLMN-Identity.c
+++ b/e2ap/lib/PLMN-Identity.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "PLMN-Identity.h"
diff --git a/e2ap/lib/Presence.c b/e2ap/lib/Presence.c
index c32f9e0..3377b10 100644
--- a/e2ap/lib/Presence.c
+++ b/e2ap/lib/Presence.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2AP-CommonDataTypes"
- * 	found in "E2AP-CommonDataTypes-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "Presence.h"
diff --git a/e2ap/lib/PrintableString.c b/e2ap/lib/PrintableString.c
new file mode 100644
index 0000000..8fc3939
--- /dev/null
+++ b/e2ap/lib/PrintableString.c
@@ -0,0 +1,130 @@
+/*-
+ * Copyright (c) 2003, 2004, 2006 Lev Walkin <vlm@lionet.info>.
+ * All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include <asn_internal.h>
+#include <PrintableString.h>
+
+/*
+ * ASN.1:1984 (X.409)
+ */
+static const int _PrintableString_alphabet[256] = {
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/*                  */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/*                  */
+ 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9,	/* .      '() +,-./ */
+10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22,	/* 0123456789:  = ? */
+ 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,	/*  ABCDEFGHIJKLMNO */
+38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0,	/* PQRSTUVWXYZ      */
+ 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,	/*  abcdefghijklmno */
+64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0,	/* pqrstuvwxyz      */
+};
+static const int _PrintableString_code2value[74] = {
+32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54,
+55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74,
+75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,
+97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,
+113,114,115,116,117,118,119,120,121,122};
+
+/*
+ * PrintableString basic type description.
+ */
+static const ber_tlv_tag_t asn_DEF_PrintableString_tags[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (19 << 2)),	/* [UNIVERSAL 19] IMPLICIT ...*/
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))	/* ... OCTET STRING */
+};
+static int asn_DEF_PrintableString_v2c(unsigned int value) {
+	return _PrintableString_alphabet[value > 255 ? 0 : value] - 1;
+}
+static int asn_DEF_PrintableString_c2v(unsigned int code) {
+	if(code < 74)
+		return _PrintableString_code2value[code];
+	return -1;
+}
+static asn_per_constraints_t asn_DEF_PrintableString_per_constraints = {
+	{ APC_CONSTRAINED, 4, 4, 0x20, 0x39 },	/* Value */
+	{ APC_SEMI_CONSTRAINED, -1, -1, 0, 0 },	/* Size */
+	asn_DEF_PrintableString_v2c,
+	asn_DEF_PrintableString_c2v
+};
+asn_TYPE_operation_t asn_OP_PrintableString = {
+	OCTET_STRING_free,
+	OCTET_STRING_print_utf8,	/* ASCII subset */
+	OCTET_STRING_compare,
+	OCTET_STRING_decode_ber,      /* Implemented in terms of OCTET STRING */
+	OCTET_STRING_encode_der,
+	OCTET_STRING_decode_xer_utf8,
+	OCTET_STRING_encode_xer_utf8,
+#ifdef	ASN_DISABLE_OER_SUPPORT
+	0,
+	0,
+#else
+	OCTET_STRING_decode_oer,
+	OCTET_STRING_encode_oer,
+#endif	/* ASN_DISABLE_OER_SUPPORT */
+#ifdef	ASN_DISABLE_PER_SUPPORT
+	0,
+	0,
+	0,
+	0,
+#else
+	OCTET_STRING_decode_uper,
+	OCTET_STRING_encode_uper,
+	OCTET_STRING_decode_aper,
+	OCTET_STRING_encode_aper,
+#endif	/* ASN_DISABLE_PER_SUPPORT */
+	OCTET_STRING_random_fill,
+	0	/* Use generic outmost tag fetcher */
+};
+asn_TYPE_descriptor_t asn_DEF_PrintableString = {
+	"PrintableString",
+	"PrintableString",
+	&asn_OP_PrintableString,
+	asn_DEF_PrintableString_tags,
+	sizeof(asn_DEF_PrintableString_tags)
+	  / sizeof(asn_DEF_PrintableString_tags[0]) - 1,
+	asn_DEF_PrintableString_tags,
+	sizeof(asn_DEF_PrintableString_tags)
+	  / sizeof(asn_DEF_PrintableString_tags[0]),
+	{ 0, &asn_DEF_PrintableString_per_constraints, PrintableString_constraint },
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
+
+int
+PrintableString_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+                           asn_app_constraint_failed_f *ctfailcb,
+                           void *app_key) {
+    const PrintableString_t *st = (const PrintableString_t *)sptr;
+
+	if(st && st->buf) {
+		uint8_t *buf = st->buf;
+		uint8_t *end = buf + st->size;
+
+		/*
+		 * Check the alphabet of the PrintableString.
+		 * ASN.1:1984 (X.409)
+		 */
+		for(; buf < end; buf++) {
+			if(!_PrintableString_alphabet[*buf]) {
+				ASN__CTFAIL(app_key, td, sptr,
+					"%s: value byte %ld (%d) "
+					"not in PrintableString alphabet "
+					"(%s:%d)",
+					td->name,
+					(long)((buf - st->buf) + 1),
+					*buf,
+					__FILE__, __LINE__);
+				return -1;
+			}
+		}
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+
+	return 0;
+}
diff --git a/e2ap/lib/ProcedureCode.c b/e2ap/lib/ProcedureCode.c
index 8678080..ba5d14d 100644
--- a/e2ap/lib/ProcedureCode.c
+++ b/e2ap/lib/ProcedureCode.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2AP-CommonDataTypes"
- * 	found in "E2AP-CommonDataTypes-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "ProcedureCode.h"
diff --git a/e2ap/lib/ProtocolIE-Container.c b/e2ap/lib/ProtocolIE-Container.c
index 05014c6..e39d798 100644
--- a/e2ap/lib/ProtocolIE-Container.c
+++ b/e2ap/lib/ProtocolIE-Container.c
@@ -1,174 +1,206 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-Containers"
- * 	found in "E2AP-Containers-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "ProtocolIE-Container.h"
 
 #include "ProtocolIE-Field.h"
-static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_87P0_constr_1 CC_NOTUSED = {
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_185P0_constr_1 CC_NOTUSED = {
 	{ 0, 0 },
 	-1	/* (SIZE(0..65535)) */};
-asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P0_constr_1 CC_NOTUSED = {
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P0_constr_1 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_type_ProtocolIE_Container_87P1_constr_3 CC_NOTUSED = {
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_185P1_constr_3 CC_NOTUSED = {
 	{ 0, 0 },
 	-1	/* (SIZE(0..65535)) */};
-asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P1_constr_3 CC_NOTUSED = {
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P1_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_type_ProtocolIE_Container_87P2_constr_5 CC_NOTUSED = {
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_185P2_constr_5 CC_NOTUSED = {
 	{ 0, 0 },
 	-1	/* (SIZE(0..65535)) */};
-asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P2_constr_5 CC_NOTUSED = {
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P2_constr_5 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_type_ProtocolIE_Container_87P3_constr_7 CC_NOTUSED = {
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_185P3_constr_7 CC_NOTUSED = {
 	{ 0, 0 },
 	-1	/* (SIZE(0..65535)) */};
-asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P3_constr_7 CC_NOTUSED = {
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P3_constr_7 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_type_ProtocolIE_Container_87P4_constr_9 CC_NOTUSED = {
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_185P4_constr_9 CC_NOTUSED = {
 	{ 0, 0 },
 	-1	/* (SIZE(0..65535)) */};
-asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P4_constr_9 CC_NOTUSED = {
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P4_constr_9 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_type_ProtocolIE_Container_87P5_constr_11 CC_NOTUSED = {
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_185P5_constr_11 CC_NOTUSED = {
 	{ 0, 0 },
 	-1	/* (SIZE(0..65535)) */};
-asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P5_constr_11 CC_NOTUSED = {
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P5_constr_11 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_type_ProtocolIE_Container_87P6_constr_13 CC_NOTUSED = {
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_185P6_constr_13 CC_NOTUSED = {
 	{ 0, 0 },
 	-1	/* (SIZE(0..65535)) */};
-asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P6_constr_13 CC_NOTUSED = {
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P6_constr_13 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_type_ProtocolIE_Container_87P7_constr_15 CC_NOTUSED = {
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_185P7_constr_15 CC_NOTUSED = {
 	{ 0, 0 },
 	-1	/* (SIZE(0..65535)) */};
-asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P7_constr_15 CC_NOTUSED = {
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P7_constr_15 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_type_ProtocolIE_Container_87P8_constr_17 CC_NOTUSED = {
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_185P8_constr_17 CC_NOTUSED = {
 	{ 0, 0 },
 	-1	/* (SIZE(0..65535)) */};
-asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P8_constr_17 CC_NOTUSED = {
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P8_constr_17 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_type_ProtocolIE_Container_87P9_constr_19 CC_NOTUSED = {
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_185P9_constr_19 CC_NOTUSED = {
 	{ 0, 0 },
 	-1	/* (SIZE(0..65535)) */};
-asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P9_constr_19 CC_NOTUSED = {
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P9_constr_19 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_type_ProtocolIE_Container_87P10_constr_21 CC_NOTUSED = {
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_185P10_constr_21 CC_NOTUSED = {
 	{ 0, 0 },
 	-1	/* (SIZE(0..65535)) */};
-asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P10_constr_21 CC_NOTUSED = {
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P10_constr_21 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_type_ProtocolIE_Container_87P11_constr_23 CC_NOTUSED = {
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_185P11_constr_23 CC_NOTUSED = {
 	{ 0, 0 },
 	-1	/* (SIZE(0..65535)) */};
-asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P11_constr_23 CC_NOTUSED = {
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P11_constr_23 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_type_ProtocolIE_Container_87P12_constr_25 CC_NOTUSED = {
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_185P12_constr_25 CC_NOTUSED = {
 	{ 0, 0 },
 	-1	/* (SIZE(0..65535)) */};
-asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P12_constr_25 CC_NOTUSED = {
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P12_constr_25 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_type_ProtocolIE_Container_87P13_constr_27 CC_NOTUSED = {
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_185P13_constr_27 CC_NOTUSED = {
 	{ 0, 0 },
 	-1	/* (SIZE(0..65535)) */};
-asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P13_constr_27 CC_NOTUSED = {
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P13_constr_27 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_type_ProtocolIE_Container_87P14_constr_29 CC_NOTUSED = {
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_185P14_constr_29 CC_NOTUSED = {
 	{ 0, 0 },
 	-1	/* (SIZE(0..65535)) */};
-asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P14_constr_29 CC_NOTUSED = {
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P14_constr_29 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_type_ProtocolIE_Container_87P15_constr_31 CC_NOTUSED = {
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_185P15_constr_31 CC_NOTUSED = {
 	{ 0, 0 },
 	-1	/* (SIZE(0..65535)) */};
-asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P15_constr_31 CC_NOTUSED = {
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P15_constr_31 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_type_ProtocolIE_Container_87P16_constr_33 CC_NOTUSED = {
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_185P16_constr_33 CC_NOTUSED = {
 	{ 0, 0 },
 	-1	/* (SIZE(0..65535)) */};
-asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P16_constr_33 CC_NOTUSED = {
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P16_constr_33 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_type_ProtocolIE_Container_87P17_constr_35 CC_NOTUSED = {
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_185P17_constr_35 CC_NOTUSED = {
 	{ 0, 0 },
 	-1	/* (SIZE(0..65535)) */};
-asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P17_constr_35 CC_NOTUSED = {
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P17_constr_35 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_type_ProtocolIE_Container_87P18_constr_37 CC_NOTUSED = {
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_185P18_constr_37 CC_NOTUSED = {
 	{ 0, 0 },
 	-1	/* (SIZE(0..65535)) */};
-asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P18_constr_37 CC_NOTUSED = {
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P18_constr_37 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_type_ProtocolIE_Container_87P19_constr_39 CC_NOTUSED = {
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_185P19_constr_39 CC_NOTUSED = {
 	{ 0, 0 },
 	-1	/* (SIZE(0..65535)) */};
-asn_per_constraints_t asn_PER_type_ProtocolIE_Container_87P19_constr_39 CC_NOTUSED = {
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P19_constr_39 CC_NOTUSED = {
 	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
 	{ APC_CONSTRAINED,	 16,  16,  0,  65535 }	/* (SIZE(0..65535)) */,
 	0, 0	/* No PER value map */
 };
-asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P0_1[] = {
+static asn_oer_constraints_t asn_OER_type_ProtocolIE_Container_185P20_constr_41 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P20_constr_41 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_type_ProtocolIE_Container_185P21_constr_43 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P21_constr_43 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_type_ProtocolIE_Container_185P22_constr_45 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P22_constr_45 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_type_ProtocolIE_Container_185P23_constr_47 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(0..65535)) */};
+asn_per_constraints_t asn_PER_type_ProtocolIE_Container_185P23_constr_47 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  0,  65535 }	/* (SIZE(0..65535)) */,
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P0_1[] = {
 	{ ATF_POINTER, 0, 0,
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -179,31 +211,31 @@
 		""
 		},
 };
-static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P0_tags_1[] = {
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_185P0_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P0_specs_1 = {
-	sizeof(struct ProtocolIE_Container_87P0),
-	offsetof(struct ProtocolIE_Container_87P0, _asn_ctx),
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P0_specs_1 = {
+	sizeof(struct ProtocolIE_Container_185P0),
+	offsetof(struct ProtocolIE_Container_185P0, _asn_ctx),
 	0,	/* XER encoding is XMLDelimitedItemList */
 };
-asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P0 = {
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P0 = {
 	"ProtocolIE-Container",
 	"ProtocolIE-Container",
 	&asn_OP_SEQUENCE_OF,
-	asn_DEF_ProtocolIE_Container_87P0_tags_1,
-	sizeof(asn_DEF_ProtocolIE_Container_87P0_tags_1)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P0_tags_1[0]), /* 1 */
-	asn_DEF_ProtocolIE_Container_87P0_tags_1,	/* Same as above */
-	sizeof(asn_DEF_ProtocolIE_Container_87P0_tags_1)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P0_tags_1[0]), /* 1 */
-	{ &asn_OER_type_ProtocolIE_Container_87P0_constr_1, &asn_PER_type_ProtocolIE_Container_87P0_constr_1, SEQUENCE_OF_constraint },
-	asn_MBR_ProtocolIE_Container_87P0_1,
+	asn_DEF_ProtocolIE_Container_185P0_tags_1,
+	sizeof(asn_DEF_ProtocolIE_Container_185P0_tags_1)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P0_tags_1[0]), /* 1 */
+	asn_DEF_ProtocolIE_Container_185P0_tags_1,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_Container_185P0_tags_1)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P0_tags_1[0]), /* 1 */
+	{ &asn_OER_type_ProtocolIE_Container_185P0_constr_1, &asn_PER_type_ProtocolIE_Container_185P0_constr_1, SEQUENCE_OF_constraint },
+	asn_MBR_ProtocolIE_Container_185P0_1,
 	1,	/* Single element */
-	&asn_SPC_ProtocolIE_Container_87P0_specs_1	/* Additional specs */
+	&asn_SPC_ProtocolIE_Container_185P0_specs_1	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P1_3[] = {
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P1_3[] = {
 	{ ATF_POINTER, 0, 0,
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -214,31 +246,31 @@
 		""
 		},
 };
-static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P1_tags_3[] = {
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_185P1_tags_3[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P1_specs_3 = {
-	sizeof(struct ProtocolIE_Container_87P1),
-	offsetof(struct ProtocolIE_Container_87P1, _asn_ctx),
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P1_specs_3 = {
+	sizeof(struct ProtocolIE_Container_185P1),
+	offsetof(struct ProtocolIE_Container_185P1, _asn_ctx),
 	0,	/* XER encoding is XMLDelimitedItemList */
 };
-asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P1 = {
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P1 = {
 	"ProtocolIE-Container",
 	"ProtocolIE-Container",
 	&asn_OP_SEQUENCE_OF,
-	asn_DEF_ProtocolIE_Container_87P1_tags_3,
-	sizeof(asn_DEF_ProtocolIE_Container_87P1_tags_3)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P1_tags_3[0]), /* 1 */
-	asn_DEF_ProtocolIE_Container_87P1_tags_3,	/* Same as above */
-	sizeof(asn_DEF_ProtocolIE_Container_87P1_tags_3)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P1_tags_3[0]), /* 1 */
-	{ &asn_OER_type_ProtocolIE_Container_87P1_constr_3, &asn_PER_type_ProtocolIE_Container_87P1_constr_3, SEQUENCE_OF_constraint },
-	asn_MBR_ProtocolIE_Container_87P1_3,
+	asn_DEF_ProtocolIE_Container_185P1_tags_3,
+	sizeof(asn_DEF_ProtocolIE_Container_185P1_tags_3)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P1_tags_3[0]), /* 1 */
+	asn_DEF_ProtocolIE_Container_185P1_tags_3,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_Container_185P1_tags_3)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P1_tags_3[0]), /* 1 */
+	{ &asn_OER_type_ProtocolIE_Container_185P1_constr_3, &asn_PER_type_ProtocolIE_Container_185P1_constr_3, SEQUENCE_OF_constraint },
+	asn_MBR_ProtocolIE_Container_185P1_3,
 	1,	/* Single element */
-	&asn_SPC_ProtocolIE_Container_87P1_specs_3	/* Additional specs */
+	&asn_SPC_ProtocolIE_Container_185P1_specs_3	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P2_5[] = {
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P2_5[] = {
 	{ ATF_POINTER, 0, 0,
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -249,31 +281,31 @@
 		""
 		},
 };
-static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P2_tags_5[] = {
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_185P2_tags_5[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P2_specs_5 = {
-	sizeof(struct ProtocolIE_Container_87P2),
-	offsetof(struct ProtocolIE_Container_87P2, _asn_ctx),
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P2_specs_5 = {
+	sizeof(struct ProtocolIE_Container_185P2),
+	offsetof(struct ProtocolIE_Container_185P2, _asn_ctx),
 	0,	/* XER encoding is XMLDelimitedItemList */
 };
-asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P2 = {
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P2 = {
 	"ProtocolIE-Container",
 	"ProtocolIE-Container",
 	&asn_OP_SEQUENCE_OF,
-	asn_DEF_ProtocolIE_Container_87P2_tags_5,
-	sizeof(asn_DEF_ProtocolIE_Container_87P2_tags_5)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P2_tags_5[0]), /* 1 */
-	asn_DEF_ProtocolIE_Container_87P2_tags_5,	/* Same as above */
-	sizeof(asn_DEF_ProtocolIE_Container_87P2_tags_5)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P2_tags_5[0]), /* 1 */
-	{ &asn_OER_type_ProtocolIE_Container_87P2_constr_5, &asn_PER_type_ProtocolIE_Container_87P2_constr_5, SEQUENCE_OF_constraint },
-	asn_MBR_ProtocolIE_Container_87P2_5,
+	asn_DEF_ProtocolIE_Container_185P2_tags_5,
+	sizeof(asn_DEF_ProtocolIE_Container_185P2_tags_5)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P2_tags_5[0]), /* 1 */
+	asn_DEF_ProtocolIE_Container_185P2_tags_5,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_Container_185P2_tags_5)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P2_tags_5[0]), /* 1 */
+	{ &asn_OER_type_ProtocolIE_Container_185P2_constr_5, &asn_PER_type_ProtocolIE_Container_185P2_constr_5, SEQUENCE_OF_constraint },
+	asn_MBR_ProtocolIE_Container_185P2_5,
 	1,	/* Single element */
-	&asn_SPC_ProtocolIE_Container_87P2_specs_5	/* Additional specs */
+	&asn_SPC_ProtocolIE_Container_185P2_specs_5	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P3_7[] = {
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P3_7[] = {
 	{ ATF_POINTER, 0, 0,
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -284,31 +316,31 @@
 		""
 		},
 };
-static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P3_tags_7[] = {
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_185P3_tags_7[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P3_specs_7 = {
-	sizeof(struct ProtocolIE_Container_87P3),
-	offsetof(struct ProtocolIE_Container_87P3, _asn_ctx),
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P3_specs_7 = {
+	sizeof(struct ProtocolIE_Container_185P3),
+	offsetof(struct ProtocolIE_Container_185P3, _asn_ctx),
 	0,	/* XER encoding is XMLDelimitedItemList */
 };
-asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P3 = {
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P3 = {
 	"ProtocolIE-Container",
 	"ProtocolIE-Container",
 	&asn_OP_SEQUENCE_OF,
-	asn_DEF_ProtocolIE_Container_87P3_tags_7,
-	sizeof(asn_DEF_ProtocolIE_Container_87P3_tags_7)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P3_tags_7[0]), /* 1 */
-	asn_DEF_ProtocolIE_Container_87P3_tags_7,	/* Same as above */
-	sizeof(asn_DEF_ProtocolIE_Container_87P3_tags_7)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P3_tags_7[0]), /* 1 */
-	{ &asn_OER_type_ProtocolIE_Container_87P3_constr_7, &asn_PER_type_ProtocolIE_Container_87P3_constr_7, SEQUENCE_OF_constraint },
-	asn_MBR_ProtocolIE_Container_87P3_7,
+	asn_DEF_ProtocolIE_Container_185P3_tags_7,
+	sizeof(asn_DEF_ProtocolIE_Container_185P3_tags_7)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P3_tags_7[0]), /* 1 */
+	asn_DEF_ProtocolIE_Container_185P3_tags_7,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_Container_185P3_tags_7)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P3_tags_7[0]), /* 1 */
+	{ &asn_OER_type_ProtocolIE_Container_185P3_constr_7, &asn_PER_type_ProtocolIE_Container_185P3_constr_7, SEQUENCE_OF_constraint },
+	asn_MBR_ProtocolIE_Container_185P3_7,
 	1,	/* Single element */
-	&asn_SPC_ProtocolIE_Container_87P3_specs_7	/* Additional specs */
+	&asn_SPC_ProtocolIE_Container_185P3_specs_7	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P4_9[] = {
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P4_9[] = {
 	{ ATF_POINTER, 0, 0,
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -319,31 +351,31 @@
 		""
 		},
 };
-static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P4_tags_9[] = {
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_185P4_tags_9[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P4_specs_9 = {
-	sizeof(struct ProtocolIE_Container_87P4),
-	offsetof(struct ProtocolIE_Container_87P4, _asn_ctx),
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P4_specs_9 = {
+	sizeof(struct ProtocolIE_Container_185P4),
+	offsetof(struct ProtocolIE_Container_185P4, _asn_ctx),
 	0,	/* XER encoding is XMLDelimitedItemList */
 };
-asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P4 = {
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P4 = {
 	"ProtocolIE-Container",
 	"ProtocolIE-Container",
 	&asn_OP_SEQUENCE_OF,
-	asn_DEF_ProtocolIE_Container_87P4_tags_9,
-	sizeof(asn_DEF_ProtocolIE_Container_87P4_tags_9)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P4_tags_9[0]), /* 1 */
-	asn_DEF_ProtocolIE_Container_87P4_tags_9,	/* Same as above */
-	sizeof(asn_DEF_ProtocolIE_Container_87P4_tags_9)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P4_tags_9[0]), /* 1 */
-	{ &asn_OER_type_ProtocolIE_Container_87P4_constr_9, &asn_PER_type_ProtocolIE_Container_87P4_constr_9, SEQUENCE_OF_constraint },
-	asn_MBR_ProtocolIE_Container_87P4_9,
+	asn_DEF_ProtocolIE_Container_185P4_tags_9,
+	sizeof(asn_DEF_ProtocolIE_Container_185P4_tags_9)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P4_tags_9[0]), /* 1 */
+	asn_DEF_ProtocolIE_Container_185P4_tags_9,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_Container_185P4_tags_9)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P4_tags_9[0]), /* 1 */
+	{ &asn_OER_type_ProtocolIE_Container_185P4_constr_9, &asn_PER_type_ProtocolIE_Container_185P4_constr_9, SEQUENCE_OF_constraint },
+	asn_MBR_ProtocolIE_Container_185P4_9,
 	1,	/* Single element */
-	&asn_SPC_ProtocolIE_Container_87P4_specs_9	/* Additional specs */
+	&asn_SPC_ProtocolIE_Container_185P4_specs_9	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P5_11[] = {
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P5_11[] = {
 	{ ATF_POINTER, 0, 0,
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -354,31 +386,66 @@
 		""
 		},
 };
-static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P5_tags_11[] = {
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_185P5_tags_11[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P5_specs_11 = {
-	sizeof(struct ProtocolIE_Container_87P5),
-	offsetof(struct ProtocolIE_Container_87P5, _asn_ctx),
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P5_specs_11 = {
+	sizeof(struct ProtocolIE_Container_185P5),
+	offsetof(struct ProtocolIE_Container_185P5, _asn_ctx),
 	0,	/* XER encoding is XMLDelimitedItemList */
 };
-asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P5 = {
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P5 = {
 	"ProtocolIE-Container",
 	"ProtocolIE-Container",
 	&asn_OP_SEQUENCE_OF,
-	asn_DEF_ProtocolIE_Container_87P5_tags_11,
-	sizeof(asn_DEF_ProtocolIE_Container_87P5_tags_11)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P5_tags_11[0]), /* 1 */
-	asn_DEF_ProtocolIE_Container_87P5_tags_11,	/* Same as above */
-	sizeof(asn_DEF_ProtocolIE_Container_87P5_tags_11)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P5_tags_11[0]), /* 1 */
-	{ &asn_OER_type_ProtocolIE_Container_87P5_constr_11, &asn_PER_type_ProtocolIE_Container_87P5_constr_11, SEQUENCE_OF_constraint },
-	asn_MBR_ProtocolIE_Container_87P5_11,
+	asn_DEF_ProtocolIE_Container_185P5_tags_11,
+	sizeof(asn_DEF_ProtocolIE_Container_185P5_tags_11)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P5_tags_11[0]), /* 1 */
+	asn_DEF_ProtocolIE_Container_185P5_tags_11,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_Container_185P5_tags_11)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P5_tags_11[0]), /* 1 */
+	{ &asn_OER_type_ProtocolIE_Container_185P5_constr_11, &asn_PER_type_ProtocolIE_Container_185P5_constr_11, SEQUENCE_OF_constraint },
+	asn_MBR_ProtocolIE_Container_185P5_11,
 	1,	/* Single element */
-	&asn_SPC_ProtocolIE_Container_87P5_specs_11	/* Additional specs */
+	&asn_SPC_ProtocolIE_Container_185P5_specs_11	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P6_13[] = {
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P6_13[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_RICsubscriptionDeleteRequired_IEs,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_185P6_tags_13[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P6_specs_13 = {
+	sizeof(struct ProtocolIE_Container_185P6),
+	offsetof(struct ProtocolIE_Container_185P6, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P6 = {
+	"ProtocolIE-Container",
+	"ProtocolIE-Container",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ProtocolIE_Container_185P6_tags_13,
+	sizeof(asn_DEF_ProtocolIE_Container_185P6_tags_13)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P6_tags_13[0]), /* 1 */
+	asn_DEF_ProtocolIE_Container_185P6_tags_13,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_Container_185P6_tags_13)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P6_tags_13[0]), /* 1 */
+	{ &asn_OER_type_ProtocolIE_Container_185P6_constr_13, &asn_PER_type_ProtocolIE_Container_185P6_constr_13, SEQUENCE_OF_constraint },
+	asn_MBR_ProtocolIE_Container_185P6_13,
+	1,	/* Single element */
+	&asn_SPC_ProtocolIE_Container_185P6_specs_13	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P7_15[] = {
 	{ ATF_POINTER, 0, 0,
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -389,31 +456,31 @@
 		""
 		},
 };
-static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P6_tags_13[] = {
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_185P7_tags_15[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P6_specs_13 = {
-	sizeof(struct ProtocolIE_Container_87P6),
-	offsetof(struct ProtocolIE_Container_87P6, _asn_ctx),
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P7_specs_15 = {
+	sizeof(struct ProtocolIE_Container_185P7),
+	offsetof(struct ProtocolIE_Container_185P7, _asn_ctx),
 	0,	/* XER encoding is XMLDelimitedItemList */
 };
-asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P6 = {
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P7 = {
 	"ProtocolIE-Container",
 	"ProtocolIE-Container",
 	&asn_OP_SEQUENCE_OF,
-	asn_DEF_ProtocolIE_Container_87P6_tags_13,
-	sizeof(asn_DEF_ProtocolIE_Container_87P6_tags_13)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P6_tags_13[0]), /* 1 */
-	asn_DEF_ProtocolIE_Container_87P6_tags_13,	/* Same as above */
-	sizeof(asn_DEF_ProtocolIE_Container_87P6_tags_13)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P6_tags_13[0]), /* 1 */
-	{ &asn_OER_type_ProtocolIE_Container_87P6_constr_13, &asn_PER_type_ProtocolIE_Container_87P6_constr_13, SEQUENCE_OF_constraint },
-	asn_MBR_ProtocolIE_Container_87P6_13,
+	asn_DEF_ProtocolIE_Container_185P7_tags_15,
+	sizeof(asn_DEF_ProtocolIE_Container_185P7_tags_15)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P7_tags_15[0]), /* 1 */
+	asn_DEF_ProtocolIE_Container_185P7_tags_15,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_Container_185P7_tags_15)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P7_tags_15[0]), /* 1 */
+	{ &asn_OER_type_ProtocolIE_Container_185P7_constr_15, &asn_PER_type_ProtocolIE_Container_185P7_constr_15, SEQUENCE_OF_constraint },
+	asn_MBR_ProtocolIE_Container_185P7_15,
 	1,	/* Single element */
-	&asn_SPC_ProtocolIE_Container_87P6_specs_13	/* Additional specs */
+	&asn_SPC_ProtocolIE_Container_185P7_specs_15	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P7_15[] = {
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P8_17[] = {
 	{ ATF_POINTER, 0, 0,
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -424,31 +491,31 @@
 		""
 		},
 };
-static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P7_tags_15[] = {
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_185P8_tags_17[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P7_specs_15 = {
-	sizeof(struct ProtocolIE_Container_87P7),
-	offsetof(struct ProtocolIE_Container_87P7, _asn_ctx),
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P8_specs_17 = {
+	sizeof(struct ProtocolIE_Container_185P8),
+	offsetof(struct ProtocolIE_Container_185P8, _asn_ctx),
 	0,	/* XER encoding is XMLDelimitedItemList */
 };
-asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P7 = {
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P8 = {
 	"ProtocolIE-Container",
 	"ProtocolIE-Container",
 	&asn_OP_SEQUENCE_OF,
-	asn_DEF_ProtocolIE_Container_87P7_tags_15,
-	sizeof(asn_DEF_ProtocolIE_Container_87P7_tags_15)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P7_tags_15[0]), /* 1 */
-	asn_DEF_ProtocolIE_Container_87P7_tags_15,	/* Same as above */
-	sizeof(asn_DEF_ProtocolIE_Container_87P7_tags_15)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P7_tags_15[0]), /* 1 */
-	{ &asn_OER_type_ProtocolIE_Container_87P7_constr_15, &asn_PER_type_ProtocolIE_Container_87P7_constr_15, SEQUENCE_OF_constraint },
-	asn_MBR_ProtocolIE_Container_87P7_15,
+	asn_DEF_ProtocolIE_Container_185P8_tags_17,
+	sizeof(asn_DEF_ProtocolIE_Container_185P8_tags_17)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P8_tags_17[0]), /* 1 */
+	asn_DEF_ProtocolIE_Container_185P8_tags_17,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_Container_185P8_tags_17)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P8_tags_17[0]), /* 1 */
+	{ &asn_OER_type_ProtocolIE_Container_185P8_constr_17, &asn_PER_type_ProtocolIE_Container_185P8_constr_17, SEQUENCE_OF_constraint },
+	asn_MBR_ProtocolIE_Container_185P8_17,
 	1,	/* Single element */
-	&asn_SPC_ProtocolIE_Container_87P7_specs_15	/* Additional specs */
+	&asn_SPC_ProtocolIE_Container_185P8_specs_17	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P8_17[] = {
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P9_19[] = {
 	{ ATF_POINTER, 0, 0,
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -459,31 +526,31 @@
 		""
 		},
 };
-static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P8_tags_17[] = {
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_185P9_tags_19[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P8_specs_17 = {
-	sizeof(struct ProtocolIE_Container_87P8),
-	offsetof(struct ProtocolIE_Container_87P8, _asn_ctx),
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P9_specs_19 = {
+	sizeof(struct ProtocolIE_Container_185P9),
+	offsetof(struct ProtocolIE_Container_185P9, _asn_ctx),
 	0,	/* XER encoding is XMLDelimitedItemList */
 };
-asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P8 = {
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P9 = {
 	"ProtocolIE-Container",
 	"ProtocolIE-Container",
 	&asn_OP_SEQUENCE_OF,
-	asn_DEF_ProtocolIE_Container_87P8_tags_17,
-	sizeof(asn_DEF_ProtocolIE_Container_87P8_tags_17)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P8_tags_17[0]), /* 1 */
-	asn_DEF_ProtocolIE_Container_87P8_tags_17,	/* Same as above */
-	sizeof(asn_DEF_ProtocolIE_Container_87P8_tags_17)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P8_tags_17[0]), /* 1 */
-	{ &asn_OER_type_ProtocolIE_Container_87P8_constr_17, &asn_PER_type_ProtocolIE_Container_87P8_constr_17, SEQUENCE_OF_constraint },
-	asn_MBR_ProtocolIE_Container_87P8_17,
+	asn_DEF_ProtocolIE_Container_185P9_tags_19,
+	sizeof(asn_DEF_ProtocolIE_Container_185P9_tags_19)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P9_tags_19[0]), /* 1 */
+	asn_DEF_ProtocolIE_Container_185P9_tags_19,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_Container_185P9_tags_19)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P9_tags_19[0]), /* 1 */
+	{ &asn_OER_type_ProtocolIE_Container_185P9_constr_19, &asn_PER_type_ProtocolIE_Container_185P9_constr_19, SEQUENCE_OF_constraint },
+	asn_MBR_ProtocolIE_Container_185P9_19,
 	1,	/* Single element */
-	&asn_SPC_ProtocolIE_Container_87P8_specs_17	/* Additional specs */
+	&asn_SPC_ProtocolIE_Container_185P9_specs_19	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P9_19[] = {
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P10_21[] = {
 	{ ATF_POINTER, 0, 0,
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -494,31 +561,31 @@
 		""
 		},
 };
-static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P9_tags_19[] = {
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_185P10_tags_21[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P9_specs_19 = {
-	sizeof(struct ProtocolIE_Container_87P9),
-	offsetof(struct ProtocolIE_Container_87P9, _asn_ctx),
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P10_specs_21 = {
+	sizeof(struct ProtocolIE_Container_185P10),
+	offsetof(struct ProtocolIE_Container_185P10, _asn_ctx),
 	0,	/* XER encoding is XMLDelimitedItemList */
 };
-asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P9 = {
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P10 = {
 	"ProtocolIE-Container",
 	"ProtocolIE-Container",
 	&asn_OP_SEQUENCE_OF,
-	asn_DEF_ProtocolIE_Container_87P9_tags_19,
-	sizeof(asn_DEF_ProtocolIE_Container_87P9_tags_19)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P9_tags_19[0]), /* 1 */
-	asn_DEF_ProtocolIE_Container_87P9_tags_19,	/* Same as above */
-	sizeof(asn_DEF_ProtocolIE_Container_87P9_tags_19)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P9_tags_19[0]), /* 1 */
-	{ &asn_OER_type_ProtocolIE_Container_87P9_constr_19, &asn_PER_type_ProtocolIE_Container_87P9_constr_19, SEQUENCE_OF_constraint },
-	asn_MBR_ProtocolIE_Container_87P9_19,
+	asn_DEF_ProtocolIE_Container_185P10_tags_21,
+	sizeof(asn_DEF_ProtocolIE_Container_185P10_tags_21)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P10_tags_21[0]), /* 1 */
+	asn_DEF_ProtocolIE_Container_185P10_tags_21,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_Container_185P10_tags_21)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P10_tags_21[0]), /* 1 */
+	{ &asn_OER_type_ProtocolIE_Container_185P10_constr_21, &asn_PER_type_ProtocolIE_Container_185P10_constr_21, SEQUENCE_OF_constraint },
+	asn_MBR_ProtocolIE_Container_185P10_21,
 	1,	/* Single element */
-	&asn_SPC_ProtocolIE_Container_87P9_specs_19	/* Additional specs */
+	&asn_SPC_ProtocolIE_Container_185P10_specs_21	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P10_21[] = {
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P11_23[] = {
 	{ ATF_POINTER, 0, 0,
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -529,31 +596,31 @@
 		""
 		},
 };
-static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P10_tags_21[] = {
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_185P11_tags_23[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P10_specs_21 = {
-	sizeof(struct ProtocolIE_Container_87P10),
-	offsetof(struct ProtocolIE_Container_87P10, _asn_ctx),
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P11_specs_23 = {
+	sizeof(struct ProtocolIE_Container_185P11),
+	offsetof(struct ProtocolIE_Container_185P11, _asn_ctx),
 	0,	/* XER encoding is XMLDelimitedItemList */
 };
-asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P10 = {
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P11 = {
 	"ProtocolIE-Container",
 	"ProtocolIE-Container",
 	&asn_OP_SEQUENCE_OF,
-	asn_DEF_ProtocolIE_Container_87P10_tags_21,
-	sizeof(asn_DEF_ProtocolIE_Container_87P10_tags_21)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P10_tags_21[0]), /* 1 */
-	asn_DEF_ProtocolIE_Container_87P10_tags_21,	/* Same as above */
-	sizeof(asn_DEF_ProtocolIE_Container_87P10_tags_21)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P10_tags_21[0]), /* 1 */
-	{ &asn_OER_type_ProtocolIE_Container_87P10_constr_21, &asn_PER_type_ProtocolIE_Container_87P10_constr_21, SEQUENCE_OF_constraint },
-	asn_MBR_ProtocolIE_Container_87P10_21,
+	asn_DEF_ProtocolIE_Container_185P11_tags_23,
+	sizeof(asn_DEF_ProtocolIE_Container_185P11_tags_23)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P11_tags_23[0]), /* 1 */
+	asn_DEF_ProtocolIE_Container_185P11_tags_23,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_Container_185P11_tags_23)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P11_tags_23[0]), /* 1 */
+	{ &asn_OER_type_ProtocolIE_Container_185P11_constr_23, &asn_PER_type_ProtocolIE_Container_185P11_constr_23, SEQUENCE_OF_constraint },
+	asn_MBR_ProtocolIE_Container_185P11_23,
 	1,	/* Single element */
-	&asn_SPC_ProtocolIE_Container_87P10_specs_21	/* Additional specs */
+	&asn_SPC_ProtocolIE_Container_185P11_specs_23	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P11_23[] = {
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P12_25[] = {
 	{ ATF_POINTER, 0, 0,
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -564,31 +631,31 @@
 		""
 		},
 };
-static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P11_tags_23[] = {
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_185P12_tags_25[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P11_specs_23 = {
-	sizeof(struct ProtocolIE_Container_87P11),
-	offsetof(struct ProtocolIE_Container_87P11, _asn_ctx),
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P12_specs_25 = {
+	sizeof(struct ProtocolIE_Container_185P12),
+	offsetof(struct ProtocolIE_Container_185P12, _asn_ctx),
 	0,	/* XER encoding is XMLDelimitedItemList */
 };
-asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P11 = {
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P12 = {
 	"ProtocolIE-Container",
 	"ProtocolIE-Container",
 	&asn_OP_SEQUENCE_OF,
-	asn_DEF_ProtocolIE_Container_87P11_tags_23,
-	sizeof(asn_DEF_ProtocolIE_Container_87P11_tags_23)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P11_tags_23[0]), /* 1 */
-	asn_DEF_ProtocolIE_Container_87P11_tags_23,	/* Same as above */
-	sizeof(asn_DEF_ProtocolIE_Container_87P11_tags_23)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P11_tags_23[0]), /* 1 */
-	{ &asn_OER_type_ProtocolIE_Container_87P11_constr_23, &asn_PER_type_ProtocolIE_Container_87P11_constr_23, SEQUENCE_OF_constraint },
-	asn_MBR_ProtocolIE_Container_87P11_23,
+	asn_DEF_ProtocolIE_Container_185P12_tags_25,
+	sizeof(asn_DEF_ProtocolIE_Container_185P12_tags_25)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P12_tags_25[0]), /* 1 */
+	asn_DEF_ProtocolIE_Container_185P12_tags_25,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_Container_185P12_tags_25)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P12_tags_25[0]), /* 1 */
+	{ &asn_OER_type_ProtocolIE_Container_185P12_constr_25, &asn_PER_type_ProtocolIE_Container_185P12_constr_25, SEQUENCE_OF_constraint },
+	asn_MBR_ProtocolIE_Container_185P12_25,
 	1,	/* Single element */
-	&asn_SPC_ProtocolIE_Container_87P11_specs_23	/* Additional specs */
+	&asn_SPC_ProtocolIE_Container_185P12_specs_25	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P12_25[] = {
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P13_27[] = {
 	{ ATF_POINTER, 0, 0,
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -599,31 +666,31 @@
 		""
 		},
 };
-static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P12_tags_25[] = {
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_185P13_tags_27[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P12_specs_25 = {
-	sizeof(struct ProtocolIE_Container_87P12),
-	offsetof(struct ProtocolIE_Container_87P12, _asn_ctx),
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P13_specs_27 = {
+	sizeof(struct ProtocolIE_Container_185P13),
+	offsetof(struct ProtocolIE_Container_185P13, _asn_ctx),
 	0,	/* XER encoding is XMLDelimitedItemList */
 };
-asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P12 = {
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P13 = {
 	"ProtocolIE-Container",
 	"ProtocolIE-Container",
 	&asn_OP_SEQUENCE_OF,
-	asn_DEF_ProtocolIE_Container_87P12_tags_25,
-	sizeof(asn_DEF_ProtocolIE_Container_87P12_tags_25)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P12_tags_25[0]), /* 1 */
-	asn_DEF_ProtocolIE_Container_87P12_tags_25,	/* Same as above */
-	sizeof(asn_DEF_ProtocolIE_Container_87P12_tags_25)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P12_tags_25[0]), /* 1 */
-	{ &asn_OER_type_ProtocolIE_Container_87P12_constr_25, &asn_PER_type_ProtocolIE_Container_87P12_constr_25, SEQUENCE_OF_constraint },
-	asn_MBR_ProtocolIE_Container_87P12_25,
+	asn_DEF_ProtocolIE_Container_185P13_tags_27,
+	sizeof(asn_DEF_ProtocolIE_Container_185P13_tags_27)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P13_tags_27[0]), /* 1 */
+	asn_DEF_ProtocolIE_Container_185P13_tags_27,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_Container_185P13_tags_27)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P13_tags_27[0]), /* 1 */
+	{ &asn_OER_type_ProtocolIE_Container_185P13_constr_27, &asn_PER_type_ProtocolIE_Container_185P13_constr_27, SEQUENCE_OF_constraint },
+	asn_MBR_ProtocolIE_Container_185P13_27,
 	1,	/* Single element */
-	&asn_SPC_ProtocolIE_Container_87P12_specs_25	/* Additional specs */
+	&asn_SPC_ProtocolIE_Container_185P13_specs_27	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P13_27[] = {
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P14_29[] = {
 	{ ATF_POINTER, 0, 0,
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -634,31 +701,136 @@
 		""
 		},
 };
-static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P13_tags_27[] = {
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_185P14_tags_29[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P13_specs_27 = {
-	sizeof(struct ProtocolIE_Container_87P13),
-	offsetof(struct ProtocolIE_Container_87P13, _asn_ctx),
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P14_specs_29 = {
+	sizeof(struct ProtocolIE_Container_185P14),
+	offsetof(struct ProtocolIE_Container_185P14, _asn_ctx),
 	0,	/* XER encoding is XMLDelimitedItemList */
 };
-asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P13 = {
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P14 = {
 	"ProtocolIE-Container",
 	"ProtocolIE-Container",
 	&asn_OP_SEQUENCE_OF,
-	asn_DEF_ProtocolIE_Container_87P13_tags_27,
-	sizeof(asn_DEF_ProtocolIE_Container_87P13_tags_27)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P13_tags_27[0]), /* 1 */
-	asn_DEF_ProtocolIE_Container_87P13_tags_27,	/* Same as above */
-	sizeof(asn_DEF_ProtocolIE_Container_87P13_tags_27)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P13_tags_27[0]), /* 1 */
-	{ &asn_OER_type_ProtocolIE_Container_87P13_constr_27, &asn_PER_type_ProtocolIE_Container_87P13_constr_27, SEQUENCE_OF_constraint },
-	asn_MBR_ProtocolIE_Container_87P13_27,
+	asn_DEF_ProtocolIE_Container_185P14_tags_29,
+	sizeof(asn_DEF_ProtocolIE_Container_185P14_tags_29)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P14_tags_29[0]), /* 1 */
+	asn_DEF_ProtocolIE_Container_185P14_tags_29,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_Container_185P14_tags_29)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P14_tags_29[0]), /* 1 */
+	{ &asn_OER_type_ProtocolIE_Container_185P14_constr_29, &asn_PER_type_ProtocolIE_Container_185P14_constr_29, SEQUENCE_OF_constraint },
+	asn_MBR_ProtocolIE_Container_185P14_29,
 	1,	/* Single element */
-	&asn_SPC_ProtocolIE_Container_87P13_specs_27	/* Additional specs */
+	&asn_SPC_ProtocolIE_Container_185P14_specs_29	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P14_29[] = {
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P15_31[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2nodeConfigurationUpdate_IEs,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_185P15_tags_31[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P15_specs_31 = {
+	sizeof(struct ProtocolIE_Container_185P15),
+	offsetof(struct ProtocolIE_Container_185P15, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P15 = {
+	"ProtocolIE-Container",
+	"ProtocolIE-Container",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ProtocolIE_Container_185P15_tags_31,
+	sizeof(asn_DEF_ProtocolIE_Container_185P15_tags_31)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P15_tags_31[0]), /* 1 */
+	asn_DEF_ProtocolIE_Container_185P15_tags_31,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_Container_185P15_tags_31)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P15_tags_31[0]), /* 1 */
+	{ &asn_OER_type_ProtocolIE_Container_185P15_constr_31, &asn_PER_type_ProtocolIE_Container_185P15_constr_31, SEQUENCE_OF_constraint },
+	asn_MBR_ProtocolIE_Container_185P15_31,
+	1,	/* Single element */
+	&asn_SPC_ProtocolIE_Container_185P15_specs_31	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P16_33[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_185P16_tags_33[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P16_specs_33 = {
+	sizeof(struct ProtocolIE_Container_185P16),
+	offsetof(struct ProtocolIE_Container_185P16, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P16 = {
+	"ProtocolIE-Container",
+	"ProtocolIE-Container",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ProtocolIE_Container_185P16_tags_33,
+	sizeof(asn_DEF_ProtocolIE_Container_185P16_tags_33)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P16_tags_33[0]), /* 1 */
+	asn_DEF_ProtocolIE_Container_185P16_tags_33,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_Container_185P16_tags_33)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P16_tags_33[0]), /* 1 */
+	{ &asn_OER_type_ProtocolIE_Container_185P16_constr_33, &asn_PER_type_ProtocolIE_Container_185P16_constr_33, SEQUENCE_OF_constraint },
+	asn_MBR_ProtocolIE_Container_185P16_33,
+	1,	/* Single element */
+	&asn_SPC_ProtocolIE_Container_185P16_specs_33	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P17_35[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2nodeConfigurationUpdateFailure_IEs,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_185P17_tags_35[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P17_specs_35 = {
+	sizeof(struct ProtocolIE_Container_185P17),
+	offsetof(struct ProtocolIE_Container_185P17, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P17 = {
+	"ProtocolIE-Container",
+	"ProtocolIE-Container",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ProtocolIE_Container_185P17_tags_35,
+	sizeof(asn_DEF_ProtocolIE_Container_185P17_tags_35)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P17_tags_35[0]), /* 1 */
+	asn_DEF_ProtocolIE_Container_185P17_tags_35,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_Container_185P17_tags_35)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P17_tags_35[0]), /* 1 */
+	{ &asn_OER_type_ProtocolIE_Container_185P17_constr_35, &asn_PER_type_ProtocolIE_Container_185P17_constr_35, SEQUENCE_OF_constraint },
+	asn_MBR_ProtocolIE_Container_185P17_35,
+	1,	/* Single element */
+	&asn_SPC_ProtocolIE_Container_185P17_specs_35	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P18_37[] = {
 	{ ATF_POINTER, 0, 0,
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -669,31 +841,31 @@
 		""
 		},
 };
-static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P14_tags_29[] = {
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_185P18_tags_37[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P14_specs_29 = {
-	sizeof(struct ProtocolIE_Container_87P14),
-	offsetof(struct ProtocolIE_Container_87P14, _asn_ctx),
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P18_specs_37 = {
+	sizeof(struct ProtocolIE_Container_185P18),
+	offsetof(struct ProtocolIE_Container_185P18, _asn_ctx),
 	0,	/* XER encoding is XMLDelimitedItemList */
 };
-asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P14 = {
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P18 = {
 	"ProtocolIE-Container",
 	"ProtocolIE-Container",
 	&asn_OP_SEQUENCE_OF,
-	asn_DEF_ProtocolIE_Container_87P14_tags_29,
-	sizeof(asn_DEF_ProtocolIE_Container_87P14_tags_29)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P14_tags_29[0]), /* 1 */
-	asn_DEF_ProtocolIE_Container_87P14_tags_29,	/* Same as above */
-	sizeof(asn_DEF_ProtocolIE_Container_87P14_tags_29)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P14_tags_29[0]), /* 1 */
-	{ &asn_OER_type_ProtocolIE_Container_87P14_constr_29, &asn_PER_type_ProtocolIE_Container_87P14_constr_29, SEQUENCE_OF_constraint },
-	asn_MBR_ProtocolIE_Container_87P14_29,
+	asn_DEF_ProtocolIE_Container_185P18_tags_37,
+	sizeof(asn_DEF_ProtocolIE_Container_185P18_tags_37)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P18_tags_37[0]), /* 1 */
+	asn_DEF_ProtocolIE_Container_185P18_tags_37,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_Container_185P18_tags_37)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P18_tags_37[0]), /* 1 */
+	{ &asn_OER_type_ProtocolIE_Container_185P18_constr_37, &asn_PER_type_ProtocolIE_Container_185P18_constr_37, SEQUENCE_OF_constraint },
+	asn_MBR_ProtocolIE_Container_185P18_37,
 	1,	/* Single element */
-	&asn_SPC_ProtocolIE_Container_87P14_specs_29	/* Additional specs */
+	&asn_SPC_ProtocolIE_Container_185P18_specs_37	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P15_31[] = {
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P19_39[] = {
 	{ ATF_POINTER, 0, 0,
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -704,136 +876,31 @@
 		""
 		},
 };
-static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P15_tags_31[] = {
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_185P19_tags_39[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P15_specs_31 = {
-	sizeof(struct ProtocolIE_Container_87P15),
-	offsetof(struct ProtocolIE_Container_87P15, _asn_ctx),
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P19_specs_39 = {
+	sizeof(struct ProtocolIE_Container_185P19),
+	offsetof(struct ProtocolIE_Container_185P19, _asn_ctx),
 	0,	/* XER encoding is XMLDelimitedItemList */
 };
-asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P15 = {
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P19 = {
 	"ProtocolIE-Container",
 	"ProtocolIE-Container",
 	&asn_OP_SEQUENCE_OF,
-	asn_DEF_ProtocolIE_Container_87P15_tags_31,
-	sizeof(asn_DEF_ProtocolIE_Container_87P15_tags_31)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P15_tags_31[0]), /* 1 */
-	asn_DEF_ProtocolIE_Container_87P15_tags_31,	/* Same as above */
-	sizeof(asn_DEF_ProtocolIE_Container_87P15_tags_31)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P15_tags_31[0]), /* 1 */
-	{ &asn_OER_type_ProtocolIE_Container_87P15_constr_31, &asn_PER_type_ProtocolIE_Container_87P15_constr_31, SEQUENCE_OF_constraint },
-	asn_MBR_ProtocolIE_Container_87P15_31,
+	asn_DEF_ProtocolIE_Container_185P19_tags_39,
+	sizeof(asn_DEF_ProtocolIE_Container_185P19_tags_39)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P19_tags_39[0]), /* 1 */
+	asn_DEF_ProtocolIE_Container_185P19_tags_39,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_Container_185P19_tags_39)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P19_tags_39[0]), /* 1 */
+	{ &asn_OER_type_ProtocolIE_Container_185P19_constr_39, &asn_PER_type_ProtocolIE_Container_185P19_constr_39, SEQUENCE_OF_constraint },
+	asn_MBR_ProtocolIE_Container_185P19_39,
 	1,	/* Single element */
-	&asn_SPC_ProtocolIE_Container_87P15_specs_31	/* Additional specs */
+	&asn_SPC_ProtocolIE_Container_185P19_specs_39	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P16_33[] = {
-	{ ATF_POINTER, 0, 0,
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_RICserviceUpdate_IEs,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		""
-		},
-};
-static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P16_tags_33[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P16_specs_33 = {
-	sizeof(struct ProtocolIE_Container_87P16),
-	offsetof(struct ProtocolIE_Container_87P16, _asn_ctx),
-	0,	/* XER encoding is XMLDelimitedItemList */
-};
-asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P16 = {
-	"ProtocolIE-Container",
-	"ProtocolIE-Container",
-	&asn_OP_SEQUENCE_OF,
-	asn_DEF_ProtocolIE_Container_87P16_tags_33,
-	sizeof(asn_DEF_ProtocolIE_Container_87P16_tags_33)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P16_tags_33[0]), /* 1 */
-	asn_DEF_ProtocolIE_Container_87P16_tags_33,	/* Same as above */
-	sizeof(asn_DEF_ProtocolIE_Container_87P16_tags_33)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P16_tags_33[0]), /* 1 */
-	{ &asn_OER_type_ProtocolIE_Container_87P16_constr_33, &asn_PER_type_ProtocolIE_Container_87P16_constr_33, SEQUENCE_OF_constraint },
-	asn_MBR_ProtocolIE_Container_87P16_33,
-	1,	/* Single element */
-	&asn_SPC_ProtocolIE_Container_87P16_specs_33	/* Additional specs */
-};
-
-asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P17_35[] = {
-	{ ATF_POINTER, 0, 0,
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_RICserviceUpdateAcknowledge_IEs,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		""
-		},
-};
-static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P17_tags_35[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P17_specs_35 = {
-	sizeof(struct ProtocolIE_Container_87P17),
-	offsetof(struct ProtocolIE_Container_87P17, _asn_ctx),
-	0,	/* XER encoding is XMLDelimitedItemList */
-};
-asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P17 = {
-	"ProtocolIE-Container",
-	"ProtocolIE-Container",
-	&asn_OP_SEQUENCE_OF,
-	asn_DEF_ProtocolIE_Container_87P17_tags_35,
-	sizeof(asn_DEF_ProtocolIE_Container_87P17_tags_35)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P17_tags_35[0]), /* 1 */
-	asn_DEF_ProtocolIE_Container_87P17_tags_35,	/* Same as above */
-	sizeof(asn_DEF_ProtocolIE_Container_87P17_tags_35)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P17_tags_35[0]), /* 1 */
-	{ &asn_OER_type_ProtocolIE_Container_87P17_constr_35, &asn_PER_type_ProtocolIE_Container_87P17_constr_35, SEQUENCE_OF_constraint },
-	asn_MBR_ProtocolIE_Container_87P17_35,
-	1,	/* Single element */
-	&asn_SPC_ProtocolIE_Container_87P17_specs_35	/* Additional specs */
-};
-
-asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P18_37[] = {
-	{ ATF_POINTER, 0, 0,
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_RICserviceUpdateFailure_IEs,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		""
-		},
-};
-static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P18_tags_37[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P18_specs_37 = {
-	sizeof(struct ProtocolIE_Container_87P18),
-	offsetof(struct ProtocolIE_Container_87P18, _asn_ctx),
-	0,	/* XER encoding is XMLDelimitedItemList */
-};
-asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P18 = {
-	"ProtocolIE-Container",
-	"ProtocolIE-Container",
-	&asn_OP_SEQUENCE_OF,
-	asn_DEF_ProtocolIE_Container_87P18_tags_37,
-	sizeof(asn_DEF_ProtocolIE_Container_87P18_tags_37)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P18_tags_37[0]), /* 1 */
-	asn_DEF_ProtocolIE_Container_87P18_tags_37,	/* Same as above */
-	sizeof(asn_DEF_ProtocolIE_Container_87P18_tags_37)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P18_tags_37[0]), /* 1 */
-	{ &asn_OER_type_ProtocolIE_Container_87P18_constr_37, &asn_PER_type_ProtocolIE_Container_87P18_constr_37, SEQUENCE_OF_constraint },
-	asn_MBR_ProtocolIE_Container_87P18_37,
-	1,	/* Single element */
-	&asn_SPC_ProtocolIE_Container_87P18_specs_37	/* Additional specs */
-};
-
-asn_TYPE_member_t asn_MBR_ProtocolIE_Container_87P19_39[] = {
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P20_41[] = {
 	{ ATF_POINTER, 0, 0,
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -844,27 +911,132 @@
 		""
 		},
 };
-static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_87P19_tags_39[] = {
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_185P20_tags_41[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_87P19_specs_39 = {
-	sizeof(struct ProtocolIE_Container_87P19),
-	offsetof(struct ProtocolIE_Container_87P19, _asn_ctx),
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P20_specs_41 = {
+	sizeof(struct ProtocolIE_Container_185P20),
+	offsetof(struct ProtocolIE_Container_185P20, _asn_ctx),
 	0,	/* XER encoding is XMLDelimitedItemList */
 };
-asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_87P19 = {
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P20 = {
 	"ProtocolIE-Container",
 	"ProtocolIE-Container",
 	&asn_OP_SEQUENCE_OF,
-	asn_DEF_ProtocolIE_Container_87P19_tags_39,
-	sizeof(asn_DEF_ProtocolIE_Container_87P19_tags_39)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P19_tags_39[0]), /* 1 */
-	asn_DEF_ProtocolIE_Container_87P19_tags_39,	/* Same as above */
-	sizeof(asn_DEF_ProtocolIE_Container_87P19_tags_39)
-		/sizeof(asn_DEF_ProtocolIE_Container_87P19_tags_39[0]), /* 1 */
-	{ &asn_OER_type_ProtocolIE_Container_87P19_constr_39, &asn_PER_type_ProtocolIE_Container_87P19_constr_39, SEQUENCE_OF_constraint },
-	asn_MBR_ProtocolIE_Container_87P19_39,
+	asn_DEF_ProtocolIE_Container_185P20_tags_41,
+	sizeof(asn_DEF_ProtocolIE_Container_185P20_tags_41)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P20_tags_41[0]), /* 1 */
+	asn_DEF_ProtocolIE_Container_185P20_tags_41,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_Container_185P20_tags_41)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P20_tags_41[0]), /* 1 */
+	{ &asn_OER_type_ProtocolIE_Container_185P20_constr_41, &asn_PER_type_ProtocolIE_Container_185P20_constr_41, SEQUENCE_OF_constraint },
+	asn_MBR_ProtocolIE_Container_185P20_41,
 	1,	/* Single element */
-	&asn_SPC_ProtocolIE_Container_87P19_specs_39	/* Additional specs */
+	&asn_SPC_ProtocolIE_Container_185P20_specs_41	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P21_43[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2RemovalRequestIEs,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_185P21_tags_43[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P21_specs_43 = {
+	sizeof(struct ProtocolIE_Container_185P21),
+	offsetof(struct ProtocolIE_Container_185P21, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P21 = {
+	"ProtocolIE-Container",
+	"ProtocolIE-Container",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ProtocolIE_Container_185P21_tags_43,
+	sizeof(asn_DEF_ProtocolIE_Container_185P21_tags_43)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P21_tags_43[0]), /* 1 */
+	asn_DEF_ProtocolIE_Container_185P21_tags_43,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_Container_185P21_tags_43)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P21_tags_43[0]), /* 1 */
+	{ &asn_OER_type_ProtocolIE_Container_185P21_constr_43, &asn_PER_type_ProtocolIE_Container_185P21_constr_43, SEQUENCE_OF_constraint },
+	asn_MBR_ProtocolIE_Container_185P21_43,
+	1,	/* Single element */
+	&asn_SPC_ProtocolIE_Container_185P21_specs_43	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P22_45[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2RemovalResponseIEs,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_185P22_tags_45[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P22_specs_45 = {
+	sizeof(struct ProtocolIE_Container_185P22),
+	offsetof(struct ProtocolIE_Container_185P22, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P22 = {
+	"ProtocolIE-Container",
+	"ProtocolIE-Container",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ProtocolIE_Container_185P22_tags_45,
+	sizeof(asn_DEF_ProtocolIE_Container_185P22_tags_45)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P22_tags_45[0]), /* 1 */
+	asn_DEF_ProtocolIE_Container_185P22_tags_45,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_Container_185P22_tags_45)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P22_tags_45[0]), /* 1 */
+	{ &asn_OER_type_ProtocolIE_Container_185P22_constr_45, &asn_PER_type_ProtocolIE_Container_185P22_constr_45, SEQUENCE_OF_constraint },
+	asn_MBR_ProtocolIE_Container_185P22_45,
+	1,	/* Single element */
+	&asn_SPC_ProtocolIE_Container_185P22_specs_45	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_ProtocolIE_Container_185P23_47[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2RemovalFailureIEs,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_Container_185P23_tags_47[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_ProtocolIE_Container_185P23_specs_47 = {
+	sizeof(struct ProtocolIE_Container_185P23),
+	offsetof(struct ProtocolIE_Container_185P23, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Container_185P23 = {
+	"ProtocolIE-Container",
+	"ProtocolIE-Container",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ProtocolIE_Container_185P23_tags_47,
+	sizeof(asn_DEF_ProtocolIE_Container_185P23_tags_47)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P23_tags_47[0]), /* 1 */
+	asn_DEF_ProtocolIE_Container_185P23_tags_47,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_Container_185P23_tags_47)
+		/sizeof(asn_DEF_ProtocolIE_Container_185P23_tags_47[0]), /* 1 */
+	{ &asn_OER_type_ProtocolIE_Container_185P23_constr_47, &asn_PER_type_ProtocolIE_Container_185P23_constr_47, SEQUENCE_OF_constraint },
+	asn_MBR_ProtocolIE_Container_185P23_47,
+	1,	/* Single element */
+	&asn_SPC_ProtocolIE_Container_185P23_specs_47	/* Additional specs */
 };
 
diff --git a/e2ap/lib/ProtocolIE-ContainerList.c b/e2ap/lib/ProtocolIE-ContainerList.c
index b43b010..366ff28 100644
--- a/e2ap/lib/ProtocolIE-ContainerList.c
+++ b/e2ap/lib/ProtocolIE-ContainerList.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-Containers"
- * 	found in "E2AP-Containers-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "ProtocolIE-ContainerList.h"
diff --git a/e2ap/lib/ProtocolIE-ContainerPair.c b/e2ap/lib/ProtocolIE-ContainerPair.c
index 0bf1a47..06ee11d 100644
--- a/e2ap/lib/ProtocolIE-ContainerPair.c
+++ b/e2ap/lib/ProtocolIE-ContainerPair.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-Containers"
- * 	found in "E2AP-Containers-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "ProtocolIE-ContainerPair.h"
diff --git a/e2ap/lib/ProtocolIE-ContainerPairList.c b/e2ap/lib/ProtocolIE-ContainerPairList.c
index dba4ec4..3b2f08c 100644
--- a/e2ap/lib/ProtocolIE-ContainerPairList.c
+++ b/e2ap/lib/ProtocolIE-ContainerPairList.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-Containers"
- * 	found in "E2AP-Containers-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "ProtocolIE-ContainerPairList.h"
diff --git a/e2ap/lib/ProtocolIE-Field.c b/e2ap/lib/ProtocolIE-Field.c
index 80336e8..5dcb025 100644
--- a/e2ap/lib/ProtocolIE-Field.c
+++ b/e2ap/lib/ProtocolIE-Field.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-Containers"
- * 	found in "E2AP-Containers-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "ProtocolIE-Field.h"
@@ -43,38 +43,134 @@
 static const asn_ioc_set_t asn_IOS_RICaction_NotAdmitted_ItemIEs_1[] = {
 	{ 1, 4, asn_IOS_RICaction_NotAdmitted_ItemIEs_1_rows }
 };
-static const long asn_VAL_64_id_RANfunction_Item = 8;
-static const long asn_VAL_64_ignore = 1;
-static const long asn_VAL_64_mandatory = 2;
+static const long asn_VAL_24_id_RICsubscription_withCause_Item = 61;
+static const long asn_VAL_24_ignore = 1;
+static const long asn_VAL_24_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_RICsubscription_withCause_ItemIEs_1_rows[] = {
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_24_id_RICsubscription_withCause_Item },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_24_ignore },
+	{ "&Value", aioc__type, &asn_DEF_RICsubscription_withCause_Item },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_24_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_RICsubscription_withCause_ItemIEs_1[] = {
+	{ 1, 4, asn_IOS_RICsubscription_withCause_ItemIEs_1_rows }
+};
+static const long asn_VAL_73_id_E2nodeComponentConfigAddition_Item = 51;
+static const long asn_VAL_73_reject = 0;
+static const long asn_VAL_73_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E2nodeComponentConfigAddition_ItemIEs_1_rows[] = {
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_73_id_E2nodeComponentConfigAddition_Item },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_73_reject },
+	{ "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAddition_Item },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_73_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E2nodeComponentConfigAddition_ItemIEs_1[] = {
+	{ 1, 4, asn_IOS_E2nodeComponentConfigAddition_ItemIEs_1_rows }
+};
+static const long asn_VAL_74_id_E2nodeComponentConfigUpdate_Item = 34;
+static const long asn_VAL_74_reject = 0;
+static const long asn_VAL_74_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E2nodeComponentConfigUpdate_ItemIEs_1_rows[] = {
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_74_id_E2nodeComponentConfigUpdate_Item },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_74_reject },
+	{ "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdate_Item },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_74_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E2nodeComponentConfigUpdate_ItemIEs_1[] = {
+	{ 1, 4, asn_IOS_E2nodeComponentConfigUpdate_ItemIEs_1_rows }
+};
+static const long asn_VAL_75_id_E2nodeComponentConfigRemoval_Item = 55;
+static const long asn_VAL_75_reject = 0;
+static const long asn_VAL_75_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E2nodeComponentConfigRemoval_ItemIEs_1_rows[] = {
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_75_id_E2nodeComponentConfigRemoval_Item },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_75_reject },
+	{ "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigRemoval_Item },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_75_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E2nodeComponentConfigRemoval_ItemIEs_1[] = {
+	{ 1, 4, asn_IOS_E2nodeComponentConfigRemoval_ItemIEs_1_rows }
+};
+static const long asn_VAL_76_id_E2nodeTNLassociationRemoval_Item = 59;
+static const long asn_VAL_76_reject = 0;
+static const long asn_VAL_76_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E2nodeTNLassociationRemoval_ItemIEs_1_rows[] = {
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_76_id_E2nodeTNLassociationRemoval_Item },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_76_reject },
+	{ "&Value", aioc__type, &asn_DEF_E2nodeTNLassociationRemoval_Item },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_76_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E2nodeTNLassociationRemoval_ItemIEs_1[] = {
+	{ 1, 4, asn_IOS_E2nodeTNLassociationRemoval_ItemIEs_1_rows }
+};
+static const long asn_VAL_81_id_E2nodeComponentConfigAdditionAck_Item = 53;
+static const long asn_VAL_81_reject = 0;
+static const long asn_VAL_81_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E2nodeComponentConfigAdditionAck_ItemIEs_1_rows[] = {
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_81_id_E2nodeComponentConfigAdditionAck_Item },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_81_reject },
+	{ "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAdditionAck_Item },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_81_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E2nodeComponentConfigAdditionAck_ItemIEs_1[] = {
+	{ 1, 4, asn_IOS_E2nodeComponentConfigAdditionAck_ItemIEs_1_rows }
+};
+static const long asn_VAL_82_id_E2nodeComponentConfigUpdateAck_Item = 36;
+static const long asn_VAL_82_reject = 0;
+static const long asn_VAL_82_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E2nodeComponentConfigUpdateAck_ItemIEs_1_rows[] = {
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_82_id_E2nodeComponentConfigUpdateAck_Item },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_82_reject },
+	{ "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdateAck_Item },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_82_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E2nodeComponentConfigUpdateAck_ItemIEs_1[] = {
+	{ 1, 4, asn_IOS_E2nodeComponentConfigUpdateAck_ItemIEs_1_rows }
+};
+static const long asn_VAL_83_id_E2nodeComponentConfigRemovalAck_Item = 57;
+static const long asn_VAL_83_reject = 0;
+static const long asn_VAL_83_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E2nodeComponentConfigRemovalAck_ItemIEs_1_rows[] = {
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_83_id_E2nodeComponentConfigRemovalAck_Item },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_83_reject },
+	{ "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigRemovalAck_Item },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_83_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E2nodeComponentConfigRemovalAck_ItemIEs_1[] = {
+	{ 1, 4, asn_IOS_E2nodeComponentConfigRemovalAck_ItemIEs_1_rows }
+};
+static const long asn_VAL_92_id_RANfunction_Item = 8;
+static const long asn_VAL_92_ignore = 1;
+static const long asn_VAL_92_mandatory = 2;
 static const asn_ioc_cell_t asn_IOS_RANfunction_ItemIEs_1_rows[] = {
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_64_id_RANfunction_Item },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_64_ignore },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_92_id_RANfunction_Item },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_92_ignore },
 	{ "&Value", aioc__type, &asn_DEF_RANfunction_Item },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_64_mandatory }
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_92_mandatory }
 };
 static const asn_ioc_set_t asn_IOS_RANfunction_ItemIEs_1[] = {
 	{ 1, 4, asn_IOS_RANfunction_ItemIEs_1_rows }
 };
-static const long asn_VAL_65_id_RANfunctionID_Item = 6;
-static const long asn_VAL_65_ignore = 1;
-static const long asn_VAL_65_mandatory = 2;
+static const long asn_VAL_93_id_RANfunctionID_Item = 6;
+static const long asn_VAL_93_ignore = 1;
+static const long asn_VAL_93_mandatory = 2;
 static const asn_ioc_cell_t asn_IOS_RANfunctionID_ItemIEs_1_rows[] = {
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_65_id_RANfunctionID_Item },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_65_ignore },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_93_id_RANfunctionID_Item },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_93_ignore },
 	{ "&Value", aioc__type, &asn_DEF_RANfunctionID_Item },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_65_mandatory }
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_93_mandatory }
 };
 static const asn_ioc_set_t asn_IOS_RANfunctionID_ItemIEs_1[] = {
 	{ 1, 4, asn_IOS_RANfunctionID_ItemIEs_1_rows }
 };
-static const long asn_VAL_68_id_RANfunctionIEcause_Item = 7;
-static const long asn_VAL_68_ignore = 1;
-static const long asn_VAL_68_mandatory = 2;
+static const long asn_VAL_94_id_RANfunctionIEcause_Item = 7;
+static const long asn_VAL_94_ignore = 1;
+static const long asn_VAL_94_mandatory = 2;
 static const asn_ioc_cell_t asn_IOS_RANfunctionIDcause_ItemIEs_1_rows[] = {
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_68_id_RANfunctionIEcause_Item },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_68_ignore },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_94_id_RANfunctionIEcause_Item },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_94_ignore },
 	{ "&Value", aioc__type, &asn_DEF_RANfunctionIDcause_Item },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_68_mandatory }
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_94_mandatory }
 };
 static const asn_ioc_set_t asn_IOS_RANfunctionIDcause_ItemIEs_1[] = {
 	{ 1, 4, asn_IOS_RANfunctionIDcause_ItemIEs_1_rows }
@@ -144,7 +240,7 @@
 static const long asn_VAL_12_id_RANfunctionID = 5;
 static const long asn_VAL_12_reject = 0;
 static const long asn_VAL_12_mandatory = 2;
-static const long asn_VAL_13_id_RICactions_NotAdmitted = 18;
+static const long asn_VAL_13_id_Cause = 1;
 static const long asn_VAL_13_reject = 0;
 static const long asn_VAL_13_mandatory = 2;
 static const long asn_VAL_14_id_CriticalityDiagnostics = 2;
@@ -159,9 +255,9 @@
 	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_12_reject },
 	{ "&Value", aioc__type, &asn_DEF_RANfunctionID },
 	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_12_mandatory },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_13_id_RICactions_NotAdmitted },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_13_id_Cause },
 	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_13_reject },
-	{ "&Value", aioc__type, &asn_DEF_RICaction_NotAdmitted_List },
+	{ "&Value", aioc__type, &asn_DEF_Cause },
 	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_13_mandatory },
 	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_14_id_CriticalityDiagnostics },
 	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_14_ignore },
@@ -242,404 +338,578 @@
 static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteFailure_IEs_1[] = {
 	{ 4, 4, asn_IOS_RICsubscriptionDeleteFailure_IEs_1_rows }
 };
-static const long asn_VAL_23_id_RICrequestID = 29;
-static const long asn_VAL_23_reject = 0;
+static const long asn_VAL_23_id_RICsubscriptionToBeRemoved = 60;
+static const long asn_VAL_23_ignore = 1;
 static const long asn_VAL_23_mandatory = 2;
-static const long asn_VAL_24_id_RANfunctionID = 5;
-static const long asn_VAL_24_reject = 0;
-static const long asn_VAL_24_mandatory = 2;
-static const long asn_VAL_25_id_RICactionID = 15;
+static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteRequired_IEs_1_rows[] = {
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_23_id_RICsubscriptionToBeRemoved },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_23_ignore },
+	{ "&Value", aioc__type, &asn_DEF_RICsubscription_List_withCause },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_23_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteRequired_IEs_1[] = {
+	{ 1, 4, asn_IOS_RICsubscriptionDeleteRequired_IEs_1_rows }
+};
+static const long asn_VAL_25_id_RICrequestID = 29;
 static const long asn_VAL_25_reject = 0;
 static const long asn_VAL_25_mandatory = 2;
-static const long asn_VAL_26_id_RICindicationSN = 27;
+static const long asn_VAL_26_id_RANfunctionID = 5;
 static const long asn_VAL_26_reject = 0;
-static const long asn_VAL_26_optional = 0;
-static const long asn_VAL_27_id_RICindicationType = 28;
+static const long asn_VAL_26_mandatory = 2;
+static const long asn_VAL_27_id_RICactionID = 15;
 static const long asn_VAL_27_reject = 0;
 static const long asn_VAL_27_mandatory = 2;
-static const long asn_VAL_28_id_RICindicationHeader = 25;
+static const long asn_VAL_28_id_RICindicationSN = 27;
 static const long asn_VAL_28_reject = 0;
-static const long asn_VAL_28_mandatory = 2;
-static const long asn_VAL_29_id_RICindicationMessage = 26;
+static const long asn_VAL_28_optional = 0;
+static const long asn_VAL_29_id_RICindicationType = 28;
 static const long asn_VAL_29_reject = 0;
 static const long asn_VAL_29_mandatory = 2;
-static const long asn_VAL_30_id_RICcallProcessID = 20;
+static const long asn_VAL_30_id_RICindicationHeader = 25;
 static const long asn_VAL_30_reject = 0;
-static const long asn_VAL_30_optional = 0;
+static const long asn_VAL_30_mandatory = 2;
+static const long asn_VAL_31_id_RICindicationMessage = 26;
+static const long asn_VAL_31_reject = 0;
+static const long asn_VAL_31_mandatory = 2;
+static const long asn_VAL_32_id_RICcallProcessID = 20;
+static const long asn_VAL_32_reject = 0;
+static const long asn_VAL_32_optional = 0;
 static const asn_ioc_cell_t asn_IOS_RICindication_IEs_1_rows[] = {
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_23_id_RICrequestID },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_23_reject },
-	{ "&Value", aioc__type, &asn_DEF_RICrequestID },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_23_mandatory },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_24_id_RANfunctionID },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_24_reject },
-	{ "&Value", aioc__type, &asn_DEF_RANfunctionID },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_24_mandatory },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_25_id_RICactionID },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_25_id_RICrequestID },
 	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_25_reject },
-	{ "&Value", aioc__type, &asn_DEF_RICactionID },
+	{ "&Value", aioc__type, &asn_DEF_RICrequestID },
 	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_25_mandatory },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_26_id_RICindicationSN },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_26_id_RANfunctionID },
 	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_26_reject },
-	{ "&Value", aioc__type, &asn_DEF_RICindicationSN },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_26_optional },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_27_id_RICindicationType },
+	{ "&Value", aioc__type, &asn_DEF_RANfunctionID },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_26_mandatory },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_27_id_RICactionID },
 	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_27_reject },
-	{ "&Value", aioc__type, &asn_DEF_RICindicationType },
+	{ "&Value", aioc__type, &asn_DEF_RICactionID },
 	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_27_mandatory },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_28_id_RICindicationHeader },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_28_id_RICindicationSN },
 	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_28_reject },
-	{ "&Value", aioc__type, &asn_DEF_RICindicationHeader },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_28_mandatory },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_29_id_RICindicationMessage },
+	{ "&Value", aioc__type, &asn_DEF_RICindicationSN },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_28_optional },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_29_id_RICindicationType },
 	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_29_reject },
-	{ "&Value", aioc__type, &asn_DEF_RICindicationMessage },
+	{ "&Value", aioc__type, &asn_DEF_RICindicationType },
 	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_29_mandatory },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_30_id_RICcallProcessID },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_30_id_RICindicationHeader },
 	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_30_reject },
+	{ "&Value", aioc__type, &asn_DEF_RICindicationHeader },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_30_mandatory },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_31_id_RICindicationMessage },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_31_reject },
+	{ "&Value", aioc__type, &asn_DEF_RICindicationMessage },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_31_mandatory },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_32_id_RICcallProcessID },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_32_reject },
 	{ "&Value", aioc__type, &asn_DEF_RICcallProcessID },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_30_optional }
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_32_optional }
 };
 static const asn_ioc_set_t asn_IOS_RICindication_IEs_1[] = {
 	{ 8, 4, asn_IOS_RICindication_IEs_1_rows }
 };
-static const long asn_VAL_31_id_RICrequestID = 29;
-static const long asn_VAL_31_reject = 0;
-static const long asn_VAL_31_mandatory = 2;
-static const long asn_VAL_32_id_RANfunctionID = 5;
-static const long asn_VAL_32_reject = 0;
-static const long asn_VAL_32_mandatory = 2;
-static const long asn_VAL_33_id_RICcallProcessID = 20;
+static const long asn_VAL_33_id_RICrequestID = 29;
 static const long asn_VAL_33_reject = 0;
-static const long asn_VAL_33_optional = 0;
-static const long asn_VAL_34_id_RICcontrolHeader = 22;
+static const long asn_VAL_33_mandatory = 2;
+static const long asn_VAL_34_id_RANfunctionID = 5;
 static const long asn_VAL_34_reject = 0;
 static const long asn_VAL_34_mandatory = 2;
-static const long asn_VAL_35_id_RICcontrolMessage = 23;
+static const long asn_VAL_35_id_RICcallProcessID = 20;
 static const long asn_VAL_35_reject = 0;
-static const long asn_VAL_35_mandatory = 2;
-static const long asn_VAL_36_id_RICcontrolAckRequest = 21;
+static const long asn_VAL_35_optional = 0;
+static const long asn_VAL_36_id_RICcontrolHeader = 22;
 static const long asn_VAL_36_reject = 0;
-static const long asn_VAL_36_optional = 0;
+static const long asn_VAL_36_mandatory = 2;
+static const long asn_VAL_37_id_RICcontrolMessage = 23;
+static const long asn_VAL_37_reject = 0;
+static const long asn_VAL_37_mandatory = 2;
+static const long asn_VAL_38_id_RICcontrolAckRequest = 21;
+static const long asn_VAL_38_reject = 0;
+static const long asn_VAL_38_optional = 0;
 static const asn_ioc_cell_t asn_IOS_RICcontrolRequest_IEs_1_rows[] = {
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_31_id_RICrequestID },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_31_reject },
-	{ "&Value", aioc__type, &asn_DEF_RICrequestID },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_31_mandatory },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_32_id_RANfunctionID },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_32_reject },
-	{ "&Value", aioc__type, &asn_DEF_RANfunctionID },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_32_mandatory },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_33_id_RICcallProcessID },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_33_id_RICrequestID },
 	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_33_reject },
-	{ "&Value", aioc__type, &asn_DEF_RICcallProcessID },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_33_optional },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_34_id_RICcontrolHeader },
+	{ "&Value", aioc__type, &asn_DEF_RICrequestID },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_33_mandatory },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_34_id_RANfunctionID },
 	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_34_reject },
-	{ "&Value", aioc__type, &asn_DEF_RICcontrolHeader },
+	{ "&Value", aioc__type, &asn_DEF_RANfunctionID },
 	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_34_mandatory },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_35_id_RICcontrolMessage },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_35_id_RICcallProcessID },
 	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_35_reject },
-	{ "&Value", aioc__type, &asn_DEF_RICcontrolMessage },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_35_mandatory },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_36_id_RICcontrolAckRequest },
+	{ "&Value", aioc__type, &asn_DEF_RICcallProcessID },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_35_optional },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_36_id_RICcontrolHeader },
 	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_36_reject },
+	{ "&Value", aioc__type, &asn_DEF_RICcontrolHeader },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_36_mandatory },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_37_id_RICcontrolMessage },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_37_reject },
+	{ "&Value", aioc__type, &asn_DEF_RICcontrolMessage },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_37_mandatory },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_38_id_RICcontrolAckRequest },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_38_reject },
 	{ "&Value", aioc__type, &asn_DEF_RICcontrolAckRequest },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_36_optional }
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_38_optional }
 };
 static const asn_ioc_set_t asn_IOS_RICcontrolRequest_IEs_1[] = {
 	{ 6, 4, asn_IOS_RICcontrolRequest_IEs_1_rows }
 };
-static const long asn_VAL_37_id_RICrequestID = 29;
-static const long asn_VAL_37_reject = 0;
-static const long asn_VAL_37_mandatory = 2;
-static const long asn_VAL_38_id_RANfunctionID = 5;
-static const long asn_VAL_38_reject = 0;
-static const long asn_VAL_38_mandatory = 2;
-static const long asn_VAL_39_id_RICcallProcessID = 20;
+static const long asn_VAL_39_id_RICrequestID = 29;
 static const long asn_VAL_39_reject = 0;
-static const long asn_VAL_39_optional = 0;
-static const long asn_VAL_40_id_RICcontrolStatus = 24;
+static const long asn_VAL_39_mandatory = 2;
+static const long asn_VAL_40_id_RANfunctionID = 5;
 static const long asn_VAL_40_reject = 0;
 static const long asn_VAL_40_mandatory = 2;
-static const long asn_VAL_41_id_RICcontrolOutcome = 32;
+static const long asn_VAL_41_id_RICcallProcessID = 20;
 static const long asn_VAL_41_reject = 0;
 static const long asn_VAL_41_optional = 0;
+static const long asn_VAL_42_id_RICcontrolOutcome = 32;
+static const long asn_VAL_42_reject = 0;
+static const long asn_VAL_42_optional = 0;
 static const asn_ioc_cell_t asn_IOS_RICcontrolAcknowledge_IEs_1_rows[] = {
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_37_id_RICrequestID },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_37_reject },
-	{ "&Value", aioc__type, &asn_DEF_RICrequestID },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_37_mandatory },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_38_id_RANfunctionID },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_38_reject },
-	{ "&Value", aioc__type, &asn_DEF_RANfunctionID },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_38_mandatory },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_39_id_RICcallProcessID },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_39_id_RICrequestID },
 	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_39_reject },
-	{ "&Value", aioc__type, &asn_DEF_RICcallProcessID },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_39_optional },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_40_id_RICcontrolStatus },
+	{ "&Value", aioc__type, &asn_DEF_RICrequestID },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_39_mandatory },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_40_id_RANfunctionID },
 	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_40_reject },
-	{ "&Value", aioc__type, &asn_DEF_RICcontrolStatus },
+	{ "&Value", aioc__type, &asn_DEF_RANfunctionID },
 	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_40_mandatory },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_41_id_RICcontrolOutcome },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_41_id_RICcallProcessID },
 	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_41_reject },
+	{ "&Value", aioc__type, &asn_DEF_RICcallProcessID },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_41_optional },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_42_id_RICcontrolOutcome },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_42_reject },
 	{ "&Value", aioc__type, &asn_DEF_RICcontrolOutcome },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_41_optional }
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_42_optional }
 };
 static const asn_ioc_set_t asn_IOS_RICcontrolAcknowledge_IEs_1[] = {
-	{ 5, 4, asn_IOS_RICcontrolAcknowledge_IEs_1_rows }
+	{ 4, 4, asn_IOS_RICcontrolAcknowledge_IEs_1_rows }
 };
-static const long asn_VAL_42_id_RICrequestID = 29;
-static const long asn_VAL_42_reject = 0;
-static const long asn_VAL_42_mandatory = 2;
-static const long asn_VAL_43_id_RANfunctionID = 5;
+static const long asn_VAL_43_id_RICrequestID = 29;
 static const long asn_VAL_43_reject = 0;
 static const long asn_VAL_43_mandatory = 2;
-static const long asn_VAL_44_id_RICcallProcessID = 20;
+static const long asn_VAL_44_id_RANfunctionID = 5;
 static const long asn_VAL_44_reject = 0;
-static const long asn_VAL_44_optional = 0;
-static const long asn_VAL_45_id_Cause = 1;
-static const long asn_VAL_45_ignore = 1;
-static const long asn_VAL_45_mandatory = 2;
-static const long asn_VAL_46_id_RICcontrolOutcome = 32;
-static const long asn_VAL_46_reject = 0;
-static const long asn_VAL_46_optional = 0;
+static const long asn_VAL_44_mandatory = 2;
+static const long asn_VAL_45_id_RICcallProcessID = 20;
+static const long asn_VAL_45_reject = 0;
+static const long asn_VAL_45_optional = 0;
+static const long asn_VAL_46_id_Cause = 1;
+static const long asn_VAL_46_ignore = 1;
+static const long asn_VAL_46_mandatory = 2;
+static const long asn_VAL_47_id_RICcontrolOutcome = 32;
+static const long asn_VAL_47_reject = 0;
+static const long asn_VAL_47_optional = 0;
 static const asn_ioc_cell_t asn_IOS_RICcontrolFailure_IEs_1_rows[] = {
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_42_id_RICrequestID },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_42_reject },
-	{ "&Value", aioc__type, &asn_DEF_RICrequestID },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_42_mandatory },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_43_id_RANfunctionID },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_43_id_RICrequestID },
 	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_43_reject },
-	{ "&Value", aioc__type, &asn_DEF_RANfunctionID },
+	{ "&Value", aioc__type, &asn_DEF_RICrequestID },
 	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_43_mandatory },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_44_id_RICcallProcessID },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_44_id_RANfunctionID },
 	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_44_reject },
+	{ "&Value", aioc__type, &asn_DEF_RANfunctionID },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_44_mandatory },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_45_id_RICcallProcessID },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_45_reject },
 	{ "&Value", aioc__type, &asn_DEF_RICcallProcessID },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_44_optional },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_45_id_Cause },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_45_ignore },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_45_optional },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_46_id_Cause },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_46_ignore },
 	{ "&Value", aioc__type, &asn_DEF_Cause },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_45_mandatory },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_46_id_RICcontrolOutcome },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_46_reject },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_46_mandatory },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_47_id_RICcontrolOutcome },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_47_reject },
 	{ "&Value", aioc__type, &asn_DEF_RICcontrolOutcome },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_46_optional }
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_47_optional }
 };
 static const asn_ioc_set_t asn_IOS_RICcontrolFailure_IEs_1[] = {
 	{ 5, 4, asn_IOS_RICcontrolFailure_IEs_1_rows }
 };
-static const long asn_VAL_47_id_RICrequestID = 29;
-static const long asn_VAL_47_reject = 0;
-static const long asn_VAL_47_optional = 0;
-static const long asn_VAL_48_id_RANfunctionID = 5;
+static const long asn_VAL_48_id_TransactionID = 49;
 static const long asn_VAL_48_reject = 0;
 static const long asn_VAL_48_optional = 0;
-static const long asn_VAL_49_id_Cause = 1;
-static const long asn_VAL_49_ignore = 1;
+static const long asn_VAL_49_id_RICrequestID = 29;
+static const long asn_VAL_49_reject = 0;
 static const long asn_VAL_49_optional = 0;
-static const long asn_VAL_50_id_CriticalityDiagnostics = 2;
-static const long asn_VAL_50_ignore = 1;
+static const long asn_VAL_50_id_RANfunctionID = 5;
+static const long asn_VAL_50_reject = 0;
 static const long asn_VAL_50_optional = 0;
-static const asn_ioc_cell_t asn_IOS_ErrorIndication_IEs_1_rows[] = {
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_47_id_RICrequestID },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_47_reject },
-	{ "&Value", aioc__type, &asn_DEF_RICrequestID },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_47_optional },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_48_id_RANfunctionID },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_48_reject },
-	{ "&Value", aioc__type, &asn_DEF_RANfunctionID },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_48_optional },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_49_id_Cause },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_49_ignore },
-	{ "&Value", aioc__type, &asn_DEF_Cause },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_49_optional },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_50_id_CriticalityDiagnostics },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_50_ignore },
-	{ "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_50_optional }
-};
-static const asn_ioc_set_t asn_IOS_ErrorIndication_IEs_1[] = {
-	{ 4, 4, asn_IOS_ErrorIndication_IEs_1_rows }
-};
-static const long asn_VAL_51_id_GlobalE2node_ID = 3;
-static const long asn_VAL_51_reject = 0;
-static const long asn_VAL_51_mandatory = 2;
-static const long asn_VAL_52_id_RANfunctionsAdded = 10;
-static const long asn_VAL_52_reject = 0;
+static const long asn_VAL_51_id_Cause = 1;
+static const long asn_VAL_51_ignore = 1;
+static const long asn_VAL_51_optional = 0;
+static const long asn_VAL_52_id_CriticalityDiagnostics = 2;
+static const long asn_VAL_52_ignore = 1;
 static const long asn_VAL_52_optional = 0;
-static const asn_ioc_cell_t asn_IOS_E2setupRequestIEs_1_rows[] = {
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_51_id_GlobalE2node_ID },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_51_reject },
-	{ "&Value", aioc__type, &asn_DEF_GlobalE2node_ID },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_51_mandatory },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_52_id_RANfunctionsAdded },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_52_reject },
-	{ "&Value", aioc__type, &asn_DEF_RANfunctions_List },
+static const asn_ioc_cell_t asn_IOS_ErrorIndication_IEs_1_rows[] = {
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_48_id_TransactionID },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_48_reject },
+	{ "&Value", aioc__type, &asn_DEF_TransactionID },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_48_optional },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_49_id_RICrequestID },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_49_reject },
+	{ "&Value", aioc__type, &asn_DEF_RICrequestID },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_49_optional },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_50_id_RANfunctionID },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_50_reject },
+	{ "&Value", aioc__type, &asn_DEF_RANfunctionID },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_50_optional },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_51_id_Cause },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_51_ignore },
+	{ "&Value", aioc__type, &asn_DEF_Cause },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_51_optional },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_52_id_CriticalityDiagnostics },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_52_ignore },
+	{ "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
 	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_52_optional }
 };
-static const asn_ioc_set_t asn_IOS_E2setupRequestIEs_1[] = {
-	{ 2, 4, asn_IOS_E2setupRequestIEs_1_rows }
+static const asn_ioc_set_t asn_IOS_ErrorIndication_IEs_1[] = {
+	{ 5, 4, asn_IOS_ErrorIndication_IEs_1_rows }
 };
-static const long asn_VAL_53_id_GlobalRIC_ID = 4;
+static const long asn_VAL_53_id_TransactionID = 49;
 static const long asn_VAL_53_reject = 0;
 static const long asn_VAL_53_mandatory = 2;
-static const long asn_VAL_54_id_RANfunctionsAccepted = 9;
+static const long asn_VAL_54_id_GlobalE2node_ID = 3;
 static const long asn_VAL_54_reject = 0;
-static const long asn_VAL_54_optional = 0;
-static const long asn_VAL_55_id_RANfunctionsRejected = 13;
+static const long asn_VAL_54_mandatory = 2;
+static const long asn_VAL_55_id_RANfunctionsAdded = 10;
 static const long asn_VAL_55_reject = 0;
-static const long asn_VAL_55_optional = 0;
-static const asn_ioc_cell_t asn_IOS_E2setupResponseIEs_1_rows[] = {
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_53_id_GlobalRIC_ID },
+static const long asn_VAL_55_mandatory = 2;
+static const long asn_VAL_56_id_E2nodeComponentConfigAddition = 50;
+static const long asn_VAL_56_reject = 0;
+static const long asn_VAL_56_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E2setupRequestIEs_1_rows[] = {
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_53_id_TransactionID },
 	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_53_reject },
-	{ "&Value", aioc__type, &asn_DEF_GlobalRIC_ID },
+	{ "&Value", aioc__type, &asn_DEF_TransactionID },
 	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_53_mandatory },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_54_id_RANfunctionsAccepted },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_54_id_GlobalE2node_ID },
 	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_54_reject },
-	{ "&Value", aioc__type, &asn_DEF_RANfunctionsID_List },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_54_optional },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_55_id_RANfunctionsRejected },
+	{ "&Value", aioc__type, &asn_DEF_GlobalE2node_ID },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_54_mandatory },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_55_id_RANfunctionsAdded },
 	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_55_reject },
+	{ "&Value", aioc__type, &asn_DEF_RANfunctions_List },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_55_mandatory },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_56_id_E2nodeComponentConfigAddition },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_56_reject },
+	{ "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAddition_List },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_56_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E2setupRequestIEs_1[] = {
+	{ 4, 4, asn_IOS_E2setupRequestIEs_1_rows }
+};
+static const long asn_VAL_57_id_TransactionID = 49;
+static const long asn_VAL_57_reject = 0;
+static const long asn_VAL_57_mandatory = 2;
+static const long asn_VAL_58_id_GlobalRIC_ID = 4;
+static const long asn_VAL_58_reject = 0;
+static const long asn_VAL_58_mandatory = 2;
+static const long asn_VAL_59_id_RANfunctionsAccepted = 9;
+static const long asn_VAL_59_reject = 0;
+static const long asn_VAL_59_optional = 0;
+static const long asn_VAL_60_id_RANfunctionsRejected = 13;
+static const long asn_VAL_60_reject = 0;
+static const long asn_VAL_60_optional = 0;
+static const long asn_VAL_61_id_E2nodeComponentConfigAdditionAck = 52;
+static const long asn_VAL_61_reject = 0;
+static const long asn_VAL_61_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E2setupResponseIEs_1_rows[] = {
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_57_id_TransactionID },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_57_reject },
+	{ "&Value", aioc__type, &asn_DEF_TransactionID },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_57_mandatory },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_58_id_GlobalRIC_ID },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_58_reject },
+	{ "&Value", aioc__type, &asn_DEF_GlobalRIC_ID },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_58_mandatory },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_59_id_RANfunctionsAccepted },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_59_reject },
+	{ "&Value", aioc__type, &asn_DEF_RANfunctionsID_List },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_59_optional },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_60_id_RANfunctionsRejected },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_60_reject },
 	{ "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_55_optional }
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_60_optional },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_61_id_E2nodeComponentConfigAdditionAck },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_61_reject },
+	{ "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAdditionAck_List },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_61_mandatory }
 };
 static const asn_ioc_set_t asn_IOS_E2setupResponseIEs_1[] = {
-	{ 3, 4, asn_IOS_E2setupResponseIEs_1_rows }
+	{ 5, 4, asn_IOS_E2setupResponseIEs_1_rows }
 };
-static const long asn_VAL_56_id_Cause = 1;
-static const long asn_VAL_56_ignore = 1;
-static const long asn_VAL_56_mandatory = 2;
-static const long asn_VAL_57_id_TimeToWait = 31;
-static const long asn_VAL_57_ignore = 1;
-static const long asn_VAL_57_optional = 0;
-static const long asn_VAL_58_id_CriticalityDiagnostics = 2;
-static const long asn_VAL_58_ignore = 1;
-static const long asn_VAL_58_optional = 0;
+static const long asn_VAL_62_id_TransactionID = 49;
+static const long asn_VAL_62_reject = 0;
+static const long asn_VAL_62_mandatory = 2;
+static const long asn_VAL_63_id_Cause = 1;
+static const long asn_VAL_63_ignore = 1;
+static const long asn_VAL_63_mandatory = 2;
+static const long asn_VAL_64_id_TimeToWait = 31;
+static const long asn_VAL_64_ignore = 1;
+static const long asn_VAL_64_optional = 0;
+static const long asn_VAL_65_id_CriticalityDiagnostics = 2;
+static const long asn_VAL_65_ignore = 1;
+static const long asn_VAL_65_optional = 0;
+static const long asn_VAL_66_id_TNLinformation = 48;
+static const long asn_VAL_66_ignore = 1;
+static const long asn_VAL_66_optional = 0;
 static const asn_ioc_cell_t asn_IOS_E2setupFailureIEs_1_rows[] = {
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_56_id_Cause },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_56_ignore },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_62_id_TransactionID },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_62_reject },
+	{ "&Value", aioc__type, &asn_DEF_TransactionID },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_62_mandatory },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_63_id_Cause },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_63_ignore },
 	{ "&Value", aioc__type, &asn_DEF_Cause },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_56_mandatory },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_57_id_TimeToWait },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_57_ignore },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_63_mandatory },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_64_id_TimeToWait },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_64_ignore },
 	{ "&Value", aioc__type, &asn_DEF_TimeToWait },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_57_optional },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_58_id_CriticalityDiagnostics },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_58_ignore },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_64_optional },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_65_id_CriticalityDiagnostics },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_65_ignore },
 	{ "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_58_optional }
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_65_optional },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_66_id_TNLinformation },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_66_ignore },
+	{ "&Value", aioc__type, &asn_DEF_TNLinformation },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_66_optional }
 };
 static const asn_ioc_set_t asn_IOS_E2setupFailureIEs_1[] = {
-	{ 3, 4, asn_IOS_E2setupFailureIEs_1_rows }
+	{ 5, 4, asn_IOS_E2setupFailureIEs_1_rows }
 };
-static const long asn_VAL_59_id_Cause = 1;
-static const long asn_VAL_59_ignore = 1;
-static const long asn_VAL_59_mandatory = 2;
-static const asn_ioc_cell_t asn_IOS_ResetRequestIEs_1_rows[] = {
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_59_id_Cause },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_59_ignore },
-	{ "&Value", aioc__type, &asn_DEF_Cause },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_59_mandatory }
-};
-static const asn_ioc_set_t asn_IOS_ResetRequestIEs_1[] = {
-	{ 1, 4, asn_IOS_ResetRequestIEs_1_rows }
-};
-static const long asn_VAL_60_id_CriticalityDiagnostics = 2;
-static const long asn_VAL_60_ignore = 1;
-static const long asn_VAL_60_optional = 0;
-static const asn_ioc_cell_t asn_IOS_ResetResponseIEs_1_rows[] = {
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_60_id_CriticalityDiagnostics },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_60_ignore },
-	{ "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_60_optional }
-};
-static const asn_ioc_set_t asn_IOS_ResetResponseIEs_1[] = {
-	{ 1, 4, asn_IOS_ResetResponseIEs_1_rows }
-};
-static const long asn_VAL_61_id_RANfunctionsAdded = 10;
-static const long asn_VAL_61_reject = 0;
-static const long asn_VAL_61_optional = 0;
-static const long asn_VAL_62_id_RANfunctionsModified = 12;
-static const long asn_VAL_62_reject = 0;
-static const long asn_VAL_62_optional = 0;
-static const long asn_VAL_63_id_RANfunctionsDeleted = 11;
-static const long asn_VAL_63_reject = 0;
-static const long asn_VAL_63_optional = 0;
-static const asn_ioc_cell_t asn_IOS_RICserviceUpdate_IEs_1_rows[] = {
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_61_id_RANfunctionsAdded },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_61_reject },
-	{ "&Value", aioc__type, &asn_DEF_RANfunctions_List },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_61_optional },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_62_id_RANfunctionsModified },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_62_reject },
-	{ "&Value", aioc__type, &asn_DEF_RANfunctions_List },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_62_optional },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_63_id_RANfunctionsDeleted },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_63_reject },
-	{ "&Value", aioc__type, &asn_DEF_RANfunctionsID_List },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_63_optional }
-};
-static const asn_ioc_set_t asn_IOS_RICserviceUpdate_IEs_1[] = {
-	{ 3, 4, asn_IOS_RICserviceUpdate_IEs_1_rows }
-};
-static const long asn_VAL_66_id_RANfunctionsAccepted = 9;
-static const long asn_VAL_66_reject = 0;
-static const long asn_VAL_66_optional = 0;
-static const long asn_VAL_67_id_RANfunctionsRejected = 13;
+static const long asn_VAL_67_id_TransactionID = 49;
 static const long asn_VAL_67_reject = 0;
-static const long asn_VAL_67_optional = 0;
-static const asn_ioc_cell_t asn_IOS_RICserviceUpdateAcknowledge_IEs_1_rows[] = {
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_66_id_RANfunctionsAccepted },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_66_reject },
-	{ "&Value", aioc__type, &asn_DEF_RANfunctionsID_List },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_66_optional },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_67_id_RANfunctionsRejected },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_67_reject },
-	{ "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_67_optional }
-};
-static const asn_ioc_set_t asn_IOS_RICserviceUpdateAcknowledge_IEs_1[] = {
-	{ 2, 4, asn_IOS_RICserviceUpdateAcknowledge_IEs_1_rows }
-};
-static const long asn_VAL_69_id_RANfunctionsRejected = 13;
-static const long asn_VAL_69_ignore = 1;
+static const long asn_VAL_67_mandatory = 2;
+static const long asn_VAL_68_id_GlobalE2node_ID = 3;
+static const long asn_VAL_68_reject = 0;
+static const long asn_VAL_68_optional = 0;
+static const long asn_VAL_69_id_E2nodeComponentConfigAddition = 50;
+static const long asn_VAL_69_reject = 0;
 static const long asn_VAL_69_optional = 0;
-static const long asn_VAL_70_id_TimeToWait = 31;
-static const long asn_VAL_70_ignore = 1;
+static const long asn_VAL_70_id_E2nodeComponentConfigUpdate = 33;
+static const long asn_VAL_70_reject = 0;
 static const long asn_VAL_70_optional = 0;
-static const long asn_VAL_71_id_CriticalityDiagnostics = 2;
-static const long asn_VAL_71_ignore = 1;
+static const long asn_VAL_71_id_E2nodeComponentConfigRemoval = 54;
+static const long asn_VAL_71_reject = 0;
 static const long asn_VAL_71_optional = 0;
-static const asn_ioc_cell_t asn_IOS_RICserviceUpdateFailure_IEs_1_rows[] = {
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_69_id_RANfunctionsRejected },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_69_ignore },
-	{ "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_69_optional },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_70_id_TimeToWait },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_70_ignore },
-	{ "&Value", aioc__type, &asn_DEF_TimeToWait },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_70_optional },
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_71_id_CriticalityDiagnostics },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_71_ignore },
-	{ "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
-	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_71_optional }
-};
-static const asn_ioc_set_t asn_IOS_RICserviceUpdateFailure_IEs_1[] = {
-	{ 3, 4, asn_IOS_RICserviceUpdateFailure_IEs_1_rows }
-};
-static const long asn_VAL_72_id_RANfunctionsAccepted = 9;
+static const long asn_VAL_72_id_E2nodeTNLassociationRemoval = 58;
 static const long asn_VAL_72_reject = 0;
 static const long asn_VAL_72_optional = 0;
-static const asn_ioc_cell_t asn_IOS_RICserviceQuery_IEs_1_rows[] = {
-	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_72_id_RANfunctionsAccepted },
+static const asn_ioc_cell_t asn_IOS_E2nodeConfigurationUpdate_IEs_1_rows[] = {
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_67_id_TransactionID },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_67_reject },
+	{ "&Value", aioc__type, &asn_DEF_TransactionID },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_67_mandatory },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_68_id_GlobalE2node_ID },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_68_reject },
+	{ "&Value", aioc__type, &asn_DEF_GlobalE2node_ID },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_68_optional },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_69_id_E2nodeComponentConfigAddition },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_69_reject },
+	{ "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAddition_List },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_69_optional },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_70_id_E2nodeComponentConfigUpdate },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_70_reject },
+	{ "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdate_List },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_70_optional },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_71_id_E2nodeComponentConfigRemoval },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_71_reject },
+	{ "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigRemoval_List },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_71_optional },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_72_id_E2nodeTNLassociationRemoval },
 	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_72_reject },
-	{ "&Value", aioc__type, &asn_DEF_RANfunctionsID_List },
+	{ "&Value", aioc__type, &asn_DEF_E2nodeTNLassociationRemoval_List },
 	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_72_optional }
 };
+static const asn_ioc_set_t asn_IOS_E2nodeConfigurationUpdate_IEs_1[] = {
+	{ 6, 4, asn_IOS_E2nodeConfigurationUpdate_IEs_1_rows }
+};
+static const long asn_VAL_77_id_TransactionID = 49;
+static const long asn_VAL_77_reject = 0;
+static const long asn_VAL_77_mandatory = 2;
+static const long asn_VAL_78_id_E2nodeComponentConfigAdditionAck = 52;
+static const long asn_VAL_78_reject = 0;
+static const long asn_VAL_78_optional = 0;
+static const long asn_VAL_79_id_E2nodeComponentConfigUpdateAck = 35;
+static const long asn_VAL_79_reject = 0;
+static const long asn_VAL_79_optional = 0;
+static const long asn_VAL_80_id_E2nodeComponentConfigRemovalAck = 56;
+static const long asn_VAL_80_reject = 0;
+static const long asn_VAL_80_optional = 0;
+static const asn_ioc_cell_t asn_IOS_E2nodeConfigurationUpdateAcknowledge_IEs_1_rows[] = {
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_77_id_TransactionID },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_77_reject },
+	{ "&Value", aioc__type, &asn_DEF_TransactionID },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_77_mandatory },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_78_id_E2nodeComponentConfigAdditionAck },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_78_reject },
+	{ "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAdditionAck_List },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_78_optional },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_79_id_E2nodeComponentConfigUpdateAck },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_79_reject },
+	{ "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdateAck_List },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_79_optional },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_80_id_E2nodeComponentConfigRemovalAck },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_80_reject },
+	{ "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigRemovalAck_List },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_80_optional }
+};
+static const asn_ioc_set_t asn_IOS_E2nodeConfigurationUpdateAcknowledge_IEs_1[] = {
+	{ 4, 4, asn_IOS_E2nodeConfigurationUpdateAcknowledge_IEs_1_rows }
+};
+static const long asn_VAL_84_id_TransactionID = 49;
+static const long asn_VAL_84_reject = 0;
+static const long asn_VAL_84_mandatory = 2;
+static const long asn_VAL_85_id_Cause = 1;
+static const long asn_VAL_85_ignore = 1;
+static const long asn_VAL_85_mandatory = 2;
+static const long asn_VAL_86_id_TimeToWait = 31;
+static const long asn_VAL_86_ignore = 1;
+static const long asn_VAL_86_optional = 0;
+static const long asn_VAL_87_id_CriticalityDiagnostics = 2;
+static const long asn_VAL_87_ignore = 1;
+static const long asn_VAL_87_optional = 0;
+static const asn_ioc_cell_t asn_IOS_E2nodeConfigurationUpdateFailure_IEs_1_rows[] = {
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_84_id_TransactionID },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_84_reject },
+	{ "&Value", aioc__type, &asn_DEF_TransactionID },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_84_mandatory },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_85_id_Cause },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_85_ignore },
+	{ "&Value", aioc__type, &asn_DEF_Cause },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_85_mandatory },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_86_id_TimeToWait },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_86_ignore },
+	{ "&Value", aioc__type, &asn_DEF_TimeToWait },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_86_optional },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_87_id_CriticalityDiagnostics },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_87_ignore },
+	{ "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_87_optional }
+};
+static const asn_ioc_set_t asn_IOS_E2nodeConfigurationUpdateFailure_IEs_1[] = {
+	{ 4, 4, asn_IOS_E2nodeConfigurationUpdateFailure_IEs_1_rows }
+};
+static const long asn_VAL_88_id_TransactionID = 49;
+static const long asn_VAL_88_reject = 0;
+static const long asn_VAL_88_mandatory = 2;
+static const long asn_VAL_89_id_Cause = 1;
+static const long asn_VAL_89_ignore = 1;
+static const long asn_VAL_89_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_ResetRequestIEs_1_rows[] = {
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_88_id_TransactionID },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_88_reject },
+	{ "&Value", aioc__type, &asn_DEF_TransactionID },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_88_mandatory },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_89_id_Cause },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_89_ignore },
+	{ "&Value", aioc__type, &asn_DEF_Cause },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_89_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_ResetRequestIEs_1[] = {
+	{ 2, 4, asn_IOS_ResetRequestIEs_1_rows }
+};
+static const long asn_VAL_90_id_TransactionID = 49;
+static const long asn_VAL_90_reject = 0;
+static const long asn_VAL_90_mandatory = 2;
+static const long asn_VAL_91_id_CriticalityDiagnostics = 2;
+static const long asn_VAL_91_ignore = 1;
+static const long asn_VAL_91_optional = 0;
+static const asn_ioc_cell_t asn_IOS_ResetResponseIEs_1_rows[] = {
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_90_id_TransactionID },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_90_reject },
+	{ "&Value", aioc__type, &asn_DEF_TransactionID },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_90_mandatory },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_91_id_CriticalityDiagnostics },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_91_ignore },
+	{ "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_91_optional }
+};
+static const asn_ioc_set_t asn_IOS_ResetResponseIEs_1[] = {
+	{ 2, 4, asn_IOS_ResetResponseIEs_1_rows }
+};
+static const long asn_VAL_95_id_TransactionID = 49;
+static const long asn_VAL_95_reject = 0;
+static const long asn_VAL_95_mandatory = 2;
+static const long asn_VAL_96_id_RANfunctionsAccepted = 9;
+static const long asn_VAL_96_reject = 0;
+static const long asn_VAL_96_optional = 0;
+static const asn_ioc_cell_t asn_IOS_RICserviceQuery_IEs_1_rows[] = {
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_95_id_TransactionID },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_95_reject },
+	{ "&Value", aioc__type, &asn_DEF_TransactionID },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_95_mandatory },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_96_id_RANfunctionsAccepted },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_96_reject },
+	{ "&Value", aioc__type, &asn_DEF_RANfunctionsID_List },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_96_optional }
+};
 static const asn_ioc_set_t asn_IOS_RICserviceQuery_IEs_1[] = {
-	{ 1, 4, asn_IOS_RICserviceQuery_IEs_1_rows }
+	{ 2, 4, asn_IOS_RICserviceQuery_IEs_1_rows }
+};
+static const long asn_VAL_97_id_TransactionID = 49;
+static const long asn_VAL_97_reject = 0;
+static const long asn_VAL_97_mandatory = 2;
+static const asn_ioc_cell_t asn_IOS_E2RemovalRequestIEs_1_rows[] = {
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_97_id_TransactionID },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_97_reject },
+	{ "&Value", aioc__type, &asn_DEF_TransactionID },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_97_mandatory }
+};
+static const asn_ioc_set_t asn_IOS_E2RemovalRequestIEs_1[] = {
+	{ 1, 4, asn_IOS_E2RemovalRequestIEs_1_rows }
+};
+static const long asn_VAL_98_id_TransactionID = 49;
+static const long asn_VAL_98_reject = 0;
+static const long asn_VAL_98_mandatory = 2;
+static const long asn_VAL_99_id_CriticalityDiagnostics = 2;
+static const long asn_VAL_99_ignore = 1;
+static const long asn_VAL_99_optional = 0;
+static const asn_ioc_cell_t asn_IOS_E2RemovalResponseIEs_1_rows[] = {
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_98_id_TransactionID },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_98_reject },
+	{ "&Value", aioc__type, &asn_DEF_TransactionID },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_98_mandatory },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_99_id_CriticalityDiagnostics },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_99_ignore },
+	{ "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_99_optional }
+};
+static const asn_ioc_set_t asn_IOS_E2RemovalResponseIEs_1[] = {
+	{ 2, 4, asn_IOS_E2RemovalResponseIEs_1_rows }
+};
+static const long asn_VAL_100_id_TransactionID = 49;
+static const long asn_VAL_100_reject = 0;
+static const long asn_VAL_100_mandatory = 2;
+static const long asn_VAL_101_id_Cause = 1;
+static const long asn_VAL_101_ignore = 1;
+static const long asn_VAL_101_mandatory = 2;
+static const long asn_VAL_102_id_CriticalityDiagnostics = 2;
+static const long asn_VAL_102_ignore = 1;
+static const long asn_VAL_102_optional = 0;
+static const asn_ioc_cell_t asn_IOS_E2RemovalFailureIEs_1_rows[] = {
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_100_id_TransactionID },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_100_reject },
+	{ "&Value", aioc__type, &asn_DEF_TransactionID },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_100_mandatory },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_101_id_Cause },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_101_ignore },
+	{ "&Value", aioc__type, &asn_DEF_Cause },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_101_mandatory },
+	{ "&id", aioc__value, &asn_DEF_ProtocolIE_ID, &asn_VAL_102_id_CriticalityDiagnostics },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_102_ignore },
+	{ "&Value", aioc__type, &asn_DEF_CriticalityDiagnostics },
+	{ "&presence", aioc__value, &asn_DEF_Presence, &asn_VAL_102_optional }
+};
+static const asn_ioc_set_t asn_IOS_E2RemovalFailureIEs_1[] = {
+	{ 3, 4, asn_IOS_E2RemovalFailureIEs_1_rows }
 };
 static int
 memb_id_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
@@ -1018,13 +1288,13 @@
 }
 
 static asn_type_selector_result_t
-select_RANfunction_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_RICsubscription_withCause_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RANfunction_ItemIEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_RICsubscription_withCause_ItemIEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 1; /* &criticality */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunction_ItemIEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscription_withCause_ItemIEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -1064,13 +1334,13 @@
 }
 
 static asn_type_selector_result_t
-select_RANfunction_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_RICsubscription_withCause_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RANfunction_ItemIEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_RICsubscription_withCause_ItemIEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 2; /* &Value */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunction_ItemIEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscription_withCause_ItemIEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -1135,13 +1405,13 @@
 }
 
 static asn_type_selector_result_t
-select_RANfunctionID_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_E2nodeComponentConfigAddition_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RANfunctionID_ItemIEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigAddition_ItemIEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 1; /* &criticality */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionID_ItemIEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigAddition_ItemIEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -1181,13 +1451,13 @@
 }
 
 static asn_type_selector_result_t
-select_RANfunctionID_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_E2nodeComponentConfigAddition_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RANfunctionID_ItemIEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigAddition_ItemIEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 2; /* &Value */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionID_ItemIEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigAddition_ItemIEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -1252,13 +1522,13 @@
 }
 
 static asn_type_selector_result_t
-select_RANfunctionIDcause_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_E2nodeComponentConfigUpdate_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RANfunctionIDcause_ItemIEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigUpdate_ItemIEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 1; /* &criticality */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionIDcause_ItemIEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -1298,13 +1568,13 @@
 }
 
 static asn_type_selector_result_t
-select_RANfunctionIDcause_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_E2nodeComponentConfigUpdate_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RANfunctionIDcause_ItemIEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigUpdate_ItemIEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 2; /* &Value */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionIDcause_ItemIEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -1369,13 +1639,13 @@
 }
 
 static asn_type_selector_result_t
-select_RICsubscriptionRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_E2nodeComponentConfigRemoval_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionRequest_IEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigRemoval_ItemIEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 1; /* &criticality */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionRequest_IEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigRemoval_ItemIEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -1415,13 +1685,13 @@
 }
 
 static asn_type_selector_result_t
-select_RICsubscriptionRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_E2nodeComponentConfigRemoval_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionRequest_IEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigRemoval_ItemIEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 2; /* &Value */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionRequest_IEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigRemoval_ItemIEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -1486,13 +1756,13 @@
 }
 
 static asn_type_selector_result_t
-select_RICsubscriptionResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_E2nodeTNLassociationRemoval_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionResponse_IEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_E2nodeTNLassociationRemoval_ItemIEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 1; /* &criticality */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionResponse_IEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeTNLassociationRemoval_ItemIEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -1532,13 +1802,13 @@
 }
 
 static asn_type_selector_result_t
-select_RICsubscriptionResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_E2nodeTNLassociationRemoval_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionResponse_IEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_E2nodeTNLassociationRemoval_ItemIEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 2; /* &Value */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionResponse_IEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeTNLassociationRemoval_ItemIEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -1603,13 +1873,13 @@
 }
 
 static asn_type_selector_result_t
-select_RICsubscriptionFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_E2nodeComponentConfigAdditionAck_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionFailure_IEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigAdditionAck_ItemIEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 1; /* &criticality */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionFailure_IEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -1649,13 +1919,13 @@
 }
 
 static asn_type_selector_result_t
-select_RICsubscriptionFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_E2nodeComponentConfigAdditionAck_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionFailure_IEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigAdditionAck_ItemIEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 2; /* &Value */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionFailure_IEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -1720,13 +1990,13 @@
 }
 
 static asn_type_selector_result_t
-select_RICsubscriptionDeleteRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_E2nodeComponentConfigUpdateAck_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequest_IEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigUpdateAck_ItemIEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 1; /* &criticality */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequest_IEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -1766,13 +2036,13 @@
 }
 
 static asn_type_selector_result_t
-select_RICsubscriptionDeleteRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_E2nodeComponentConfigUpdateAck_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequest_IEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigUpdateAck_ItemIEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 2; /* &Value */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequest_IEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -1837,13 +2107,13 @@
 }
 
 static asn_type_selector_result_t
-select_RICsubscriptionDeleteResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_E2nodeComponentConfigRemovalAck_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteResponse_IEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigRemovalAck_ItemIEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 1; /* &criticality */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteResponse_IEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -1883,13 +2153,13 @@
 }
 
 static asn_type_selector_result_t
-select_RICsubscriptionDeleteResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_E2nodeComponentConfigRemovalAck_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteResponse_IEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigRemovalAck_ItemIEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 2; /* &Value */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteResponse_IEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -1954,13 +2224,13 @@
 }
 
 static asn_type_selector_result_t
-select_RICsubscriptionDeleteFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_RANfunction_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteFailure_IEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_RANfunction_ItemIEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 1; /* &criticality */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteFailure_IEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunction_ItemIEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -2000,13 +2270,13 @@
 }
 
 static asn_type_selector_result_t
-select_RICsubscriptionDeleteFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_RANfunction_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteFailure_IEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_RANfunction_ItemIEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 2; /* &Value */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteFailure_IEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunction_ItemIEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -2071,13 +2341,13 @@
 }
 
 static asn_type_selector_result_t
-select_RICindication_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_RANfunctionID_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RICindication_IEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_RANfunctionID_ItemIEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 1; /* &criticality */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICindication_IEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionID_ItemIEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -2117,13 +2387,13 @@
 }
 
 static asn_type_selector_result_t
-select_RICindication_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_RANfunctionID_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RICindication_IEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_RANfunctionID_ItemIEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 2; /* &Value */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICindication_IEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionID_ItemIEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -2188,13 +2458,13 @@
 }
 
 static asn_type_selector_result_t
-select_RICcontrolRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_RANfunctionIDcause_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RICcontrolRequest_IEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_RANfunctionIDcause_ItemIEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 1; /* &criticality */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolRequest_IEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionIDcause_ItemIEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -2234,13 +2504,13 @@
 }
 
 static asn_type_selector_result_t
-select_RICcontrolRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_RANfunctionIDcause_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RICcontrolRequest_IEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_RANfunctionIDcause_ItemIEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 2; /* &Value */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolRequest_IEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionIDcause_ItemIEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -2305,13 +2575,13 @@
 }
 
 static asn_type_selector_result_t
-select_RICcontrolAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_RICsubscriptionRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RICcontrolAcknowledge_IEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionRequest_IEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 1; /* &criticality */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolAcknowledge_IEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionRequest_IEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -2351,13 +2621,13 @@
 }
 
 static asn_type_selector_result_t
-select_RICcontrolAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_RICsubscriptionRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RICcontrolAcknowledge_IEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionRequest_IEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 2; /* &Value */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolAcknowledge_IEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionRequest_IEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -2422,13 +2692,13 @@
 }
 
 static asn_type_selector_result_t
-select_RICcontrolFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_RICsubscriptionResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RICcontrolFailure_IEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionResponse_IEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 1; /* &criticality */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolFailure_IEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionResponse_IEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -2468,13 +2738,13 @@
 }
 
 static asn_type_selector_result_t
-select_RICcontrolFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_RICsubscriptionResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RICcontrolFailure_IEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionResponse_IEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 2; /* &Value */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolFailure_IEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionResponse_IEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -2539,13 +2809,13 @@
 }
 
 static asn_type_selector_result_t
-select_ErrorIndication_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_RICsubscriptionFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_ErrorIndication_IEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionFailure_IEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 1; /* &criticality */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ErrorIndication_IEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionFailure_IEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -2585,13 +2855,13 @@
 }
 
 static asn_type_selector_result_t
-select_ErrorIndication_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_RICsubscriptionFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_ErrorIndication_IEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionFailure_IEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 2; /* &Value */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ErrorIndication_IEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionFailure_IEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -2656,13 +2926,13 @@
 }
 
 static asn_type_selector_result_t
-select_E2setupRequestIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_RICsubscriptionDeleteRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_E2setupRequestIEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequest_IEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 1; /* &criticality */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupRequestIEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequest_IEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -2702,13 +2972,13 @@
 }
 
 static asn_type_selector_result_t
-select_E2setupRequestIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_RICsubscriptionDeleteRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_E2setupRequestIEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequest_IEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 2; /* &Value */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupRequestIEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequest_IEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -2773,13 +3043,13 @@
 }
 
 static asn_type_selector_result_t
-select_E2setupResponseIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_RICsubscriptionDeleteResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_E2setupResponseIEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteResponse_IEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 1; /* &criticality */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupResponseIEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteResponse_IEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -2819,13 +3089,13 @@
 }
 
 static asn_type_selector_result_t
-select_E2setupResponseIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_RICsubscriptionDeleteResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_E2setupResponseIEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteResponse_IEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 2; /* &Value */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupResponseIEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteResponse_IEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -2890,13 +3160,13 @@
 }
 
 static asn_type_selector_result_t
-select_E2setupFailureIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_RICsubscriptionDeleteFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_E2setupFailureIEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteFailure_IEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 1; /* &criticality */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupFailureIEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteFailure_IEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -2936,13 +3206,13 @@
 }
 
 static asn_type_selector_result_t
-select_E2setupFailureIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_RICsubscriptionDeleteFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_E2setupFailureIEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteFailure_IEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 2; /* &Value */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupFailureIEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteFailure_IEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -3007,13 +3277,13 @@
 }
 
 static asn_type_selector_result_t
-select_ResetRequestIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_RICsubscriptionDeleteRequired_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_ResetRequestIEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequired_IEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 1; /* &criticality */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetRequestIEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequired_IEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -3053,13 +3323,13 @@
 }
 
 static asn_type_selector_result_t
-select_ResetRequestIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_RICsubscriptionDeleteRequired_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_ResetRequestIEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequired_IEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 2; /* &Value */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetRequestIEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequired_IEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -3124,13 +3394,13 @@
 }
 
 static asn_type_selector_result_t
-select_ResetResponseIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_RICindication_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_ResetResponseIEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_RICindication_IEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 1; /* &criticality */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetResponseIEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICindication_IEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -3170,13 +3440,13 @@
 }
 
 static asn_type_selector_result_t
-select_ResetResponseIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_RICindication_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_ResetResponseIEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_RICindication_IEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 2; /* &Value */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetResponseIEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICindication_IEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -3241,13 +3511,13 @@
 }
 
 static asn_type_selector_result_t
-select_RICserviceUpdate_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_RICcontrolRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdate_IEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_RICcontrolRequest_IEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 1; /* &criticality */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdate_IEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolRequest_IEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -3287,13 +3557,13 @@
 }
 
 static asn_type_selector_result_t
-select_RICserviceUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_RICcontrolRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdate_IEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_RICcontrolRequest_IEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 2; /* &Value */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdate_IEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolRequest_IEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -3358,13 +3628,13 @@
 }
 
 static asn_type_selector_result_t
-select_RICserviceUpdateAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_RICcontrolAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateAcknowledge_IEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_RICcontrolAcknowledge_IEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 1; /* &criticality */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateAcknowledge_IEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolAcknowledge_IEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -3404,13 +3674,13 @@
 }
 
 static asn_type_selector_result_t
-select_RICserviceUpdateAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_RICcontrolAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateAcknowledge_IEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_RICcontrolAcknowledge_IEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 2; /* &Value */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateAcknowledge_IEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolAcknowledge_IEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -3475,13 +3745,13 @@
 }
 
 static asn_type_selector_result_t
-select_RICserviceUpdateFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_RICcontrolFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateFailure_IEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_RICcontrolFailure_IEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 1; /* &criticality */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateFailure_IEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolFailure_IEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -3521,13 +3791,13 @@
 }
 
 static asn_type_selector_result_t
-select_RICserviceUpdateFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+select_RICcontrolFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
-	const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateFailure_IEs_1;
+	const asn_ioc_set_t *itable = asn_IOS_RICcontrolFailure_IEs_1;
 	size_t constraining_column = 0; /* &id */
 	size_t for_column = 2; /* &Value */
 	size_t row, presence_index = 0;
-	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateFailure_IEs, id));
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolFailure_IEs, id));
 	
 	for(row=0; row < itable->rows_count; row++) {
 	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -3592,6 +3862,1059 @@
 }
 
 static asn_type_selector_result_t
+select_ErrorIndication_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+	asn_type_selector_result_t result = {0, 0};
+	const asn_ioc_set_t *itable = asn_IOS_ErrorIndication_IEs_1;
+	size_t constraining_column = 0; /* &id */
+	size_t for_column = 1; /* &criticality */
+	size_t row, presence_index = 0;
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ErrorIndication_IEs, id));
+	
+	for(row=0; row < itable->rows_count; row++) {
+	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+	    const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+	
+	    if(type_cell->cell_kind == aioc__undefined)
+	        continue;
+	
+	    presence_index++;
+	    if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+	        result.type_descriptor = type_cell->type_descriptor;
+	        result.presence_index = presence_index;
+	        break;
+	    }
+	}
+	
+	return result;
+}
+
+static int
+memb_criticality_constraint_101(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	if(1 /* No applicable constraints whatsoever */) {
+		/* Nothing is here. See below */
+	}
+	
+	return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ErrorIndication_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+	asn_type_selector_result_t result = {0, 0};
+	const asn_ioc_set_t *itable = asn_IOS_ErrorIndication_IEs_1;
+	size_t constraining_column = 0; /* &id */
+	size_t for_column = 2; /* &Value */
+	size_t row, presence_index = 0;
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ErrorIndication_IEs, id));
+	
+	for(row=0; row < itable->rows_count; row++) {
+	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+	    const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+	
+	    if(type_cell->cell_kind == aioc__undefined)
+	        continue;
+	
+	    presence_index++;
+	    if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+	        result.type_descriptor = type_cell->type_descriptor;
+	        result.presence_index = presence_index;
+	        break;
+	    }
+	}
+	
+	return result;
+}
+
+static int
+memb_value_constraint_101(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	if(1 /* No applicable constraints whatsoever */) {
+		/* Nothing is here. See below */
+	}
+	
+	return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_105(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0 && value <= 65535)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_type_selector_result_t
+select_E2setupRequestIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+	asn_type_selector_result_t result = {0, 0};
+	const asn_ioc_set_t *itable = asn_IOS_E2setupRequestIEs_1;
+	size_t constraining_column = 0; /* &id */
+	size_t for_column = 1; /* &criticality */
+	size_t row, presence_index = 0;
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupRequestIEs, id));
+	
+	for(row=0; row < itable->rows_count; row++) {
+	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+	    const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+	
+	    if(type_cell->cell_kind == aioc__undefined)
+	        continue;
+	
+	    presence_index++;
+	    if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+	        result.type_descriptor = type_cell->type_descriptor;
+	        result.presence_index = presence_index;
+	        break;
+	    }
+	}
+	
+	return result;
+}
+
+static int
+memb_criticality_constraint_105(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	if(1 /* No applicable constraints whatsoever */) {
+		/* Nothing is here. See below */
+	}
+	
+	return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E2setupRequestIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+	asn_type_selector_result_t result = {0, 0};
+	const asn_ioc_set_t *itable = asn_IOS_E2setupRequestIEs_1;
+	size_t constraining_column = 0; /* &id */
+	size_t for_column = 2; /* &Value */
+	size_t row, presence_index = 0;
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupRequestIEs, id));
+	
+	for(row=0; row < itable->rows_count; row++) {
+	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+	    const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+	
+	    if(type_cell->cell_kind == aioc__undefined)
+	        continue;
+	
+	    presence_index++;
+	    if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+	        result.type_descriptor = type_cell->type_descriptor;
+	        result.presence_index = presence_index;
+	        break;
+	    }
+	}
+	
+	return result;
+}
+
+static int
+memb_value_constraint_105(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	if(1 /* No applicable constraints whatsoever */) {
+		/* Nothing is here. See below */
+	}
+	
+	return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_109(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0 && value <= 65535)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_type_selector_result_t
+select_E2setupResponseIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+	asn_type_selector_result_t result = {0, 0};
+	const asn_ioc_set_t *itable = asn_IOS_E2setupResponseIEs_1;
+	size_t constraining_column = 0; /* &id */
+	size_t for_column = 1; /* &criticality */
+	size_t row, presence_index = 0;
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupResponseIEs, id));
+	
+	for(row=0; row < itable->rows_count; row++) {
+	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+	    const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+	
+	    if(type_cell->cell_kind == aioc__undefined)
+	        continue;
+	
+	    presence_index++;
+	    if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+	        result.type_descriptor = type_cell->type_descriptor;
+	        result.presence_index = presence_index;
+	        break;
+	    }
+	}
+	
+	return result;
+}
+
+static int
+memb_criticality_constraint_109(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	if(1 /* No applicable constraints whatsoever */) {
+		/* Nothing is here. See below */
+	}
+	
+	return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E2setupResponseIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+	asn_type_selector_result_t result = {0, 0};
+	const asn_ioc_set_t *itable = asn_IOS_E2setupResponseIEs_1;
+	size_t constraining_column = 0; /* &id */
+	size_t for_column = 2; /* &Value */
+	size_t row, presence_index = 0;
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupResponseIEs, id));
+	
+	for(row=0; row < itable->rows_count; row++) {
+	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+	    const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+	
+	    if(type_cell->cell_kind == aioc__undefined)
+	        continue;
+	
+	    presence_index++;
+	    if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+	        result.type_descriptor = type_cell->type_descriptor;
+	        result.presence_index = presence_index;
+	        break;
+	    }
+	}
+	
+	return result;
+}
+
+static int
+memb_value_constraint_109(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	if(1 /* No applicable constraints whatsoever */) {
+		/* Nothing is here. See below */
+	}
+	
+	return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_113(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0 && value <= 65535)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_type_selector_result_t
+select_E2setupFailureIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+	asn_type_selector_result_t result = {0, 0};
+	const asn_ioc_set_t *itable = asn_IOS_E2setupFailureIEs_1;
+	size_t constraining_column = 0; /* &id */
+	size_t for_column = 1; /* &criticality */
+	size_t row, presence_index = 0;
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupFailureIEs, id));
+	
+	for(row=0; row < itable->rows_count; row++) {
+	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+	    const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+	
+	    if(type_cell->cell_kind == aioc__undefined)
+	        continue;
+	
+	    presence_index++;
+	    if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+	        result.type_descriptor = type_cell->type_descriptor;
+	        result.presence_index = presence_index;
+	        break;
+	    }
+	}
+	
+	return result;
+}
+
+static int
+memb_criticality_constraint_113(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	if(1 /* No applicable constraints whatsoever */) {
+		/* Nothing is here. See below */
+	}
+	
+	return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E2setupFailureIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+	asn_type_selector_result_t result = {0, 0};
+	const asn_ioc_set_t *itable = asn_IOS_E2setupFailureIEs_1;
+	size_t constraining_column = 0; /* &id */
+	size_t for_column = 2; /* &Value */
+	size_t row, presence_index = 0;
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupFailureIEs, id));
+	
+	for(row=0; row < itable->rows_count; row++) {
+	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+	    const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+	
+	    if(type_cell->cell_kind == aioc__undefined)
+	        continue;
+	
+	    presence_index++;
+	    if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+	        result.type_descriptor = type_cell->type_descriptor;
+	        result.presence_index = presence_index;
+	        break;
+	    }
+	}
+	
+	return result;
+}
+
+static int
+memb_value_constraint_113(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	if(1 /* No applicable constraints whatsoever */) {
+		/* Nothing is here. See below */
+	}
+	
+	return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_117(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0 && value <= 65535)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_type_selector_result_t
+select_E2nodeConfigurationUpdate_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+	asn_type_selector_result_t result = {0, 0};
+	const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdate_IEs_1;
+	size_t constraining_column = 0; /* &id */
+	size_t for_column = 1; /* &criticality */
+	size_t row, presence_index = 0;
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdate_IEs, id));
+	
+	for(row=0; row < itable->rows_count; row++) {
+	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+	    const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+	
+	    if(type_cell->cell_kind == aioc__undefined)
+	        continue;
+	
+	    presence_index++;
+	    if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+	        result.type_descriptor = type_cell->type_descriptor;
+	        result.presence_index = presence_index;
+	        break;
+	    }
+	}
+	
+	return result;
+}
+
+static int
+memb_criticality_constraint_117(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	if(1 /* No applicable constraints whatsoever */) {
+		/* Nothing is here. See below */
+	}
+	
+	return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E2nodeConfigurationUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+	asn_type_selector_result_t result = {0, 0};
+	const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdate_IEs_1;
+	size_t constraining_column = 0; /* &id */
+	size_t for_column = 2; /* &Value */
+	size_t row, presence_index = 0;
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdate_IEs, id));
+	
+	for(row=0; row < itable->rows_count; row++) {
+	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+	    const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+	
+	    if(type_cell->cell_kind == aioc__undefined)
+	        continue;
+	
+	    presence_index++;
+	    if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+	        result.type_descriptor = type_cell->type_descriptor;
+	        result.presence_index = presence_index;
+	        break;
+	    }
+	}
+	
+	return result;
+}
+
+static int
+memb_value_constraint_117(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	if(1 /* No applicable constraints whatsoever */) {
+		/* Nothing is here. See below */
+	}
+	
+	return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_121(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0 && value <= 65535)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_type_selector_result_t
+select_E2nodeConfigurationUpdateAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+	asn_type_selector_result_t result = {0, 0};
+	const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdateAcknowledge_IEs_1;
+	size_t constraining_column = 0; /* &id */
+	size_t for_column = 1; /* &criticality */
+	size_t row, presence_index = 0;
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, id));
+	
+	for(row=0; row < itable->rows_count; row++) {
+	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+	    const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+	
+	    if(type_cell->cell_kind == aioc__undefined)
+	        continue;
+	
+	    presence_index++;
+	    if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+	        result.type_descriptor = type_cell->type_descriptor;
+	        result.presence_index = presence_index;
+	        break;
+	    }
+	}
+	
+	return result;
+}
+
+static int
+memb_criticality_constraint_121(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	if(1 /* No applicable constraints whatsoever */) {
+		/* Nothing is here. See below */
+	}
+	
+	return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E2nodeConfigurationUpdateAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+	asn_type_selector_result_t result = {0, 0};
+	const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdateAcknowledge_IEs_1;
+	size_t constraining_column = 0; /* &id */
+	size_t for_column = 2; /* &Value */
+	size_t row, presence_index = 0;
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, id));
+	
+	for(row=0; row < itable->rows_count; row++) {
+	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+	    const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+	
+	    if(type_cell->cell_kind == aioc__undefined)
+	        continue;
+	
+	    presence_index++;
+	    if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+	        result.type_descriptor = type_cell->type_descriptor;
+	        result.presence_index = presence_index;
+	        break;
+	    }
+	}
+	
+	return result;
+}
+
+static int
+memb_value_constraint_121(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	if(1 /* No applicable constraints whatsoever */) {
+		/* Nothing is here. See below */
+	}
+	
+	return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_125(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0 && value <= 65535)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_type_selector_result_t
+select_E2nodeConfigurationUpdateFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+	asn_type_selector_result_t result = {0, 0};
+	const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdateFailure_IEs_1;
+	size_t constraining_column = 0; /* &id */
+	size_t for_column = 1; /* &criticality */
+	size_t row, presence_index = 0;
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdateFailure_IEs, id));
+	
+	for(row=0; row < itable->rows_count; row++) {
+	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+	    const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+	
+	    if(type_cell->cell_kind == aioc__undefined)
+	        continue;
+	
+	    presence_index++;
+	    if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+	        result.type_descriptor = type_cell->type_descriptor;
+	        result.presence_index = presence_index;
+	        break;
+	    }
+	}
+	
+	return result;
+}
+
+static int
+memb_criticality_constraint_125(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	if(1 /* No applicable constraints whatsoever */) {
+		/* Nothing is here. See below */
+	}
+	
+	return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E2nodeConfigurationUpdateFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+	asn_type_selector_result_t result = {0, 0};
+	const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdateFailure_IEs_1;
+	size_t constraining_column = 0; /* &id */
+	size_t for_column = 2; /* &Value */
+	size_t row, presence_index = 0;
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdateFailure_IEs, id));
+	
+	for(row=0; row < itable->rows_count; row++) {
+	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+	    const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+	
+	    if(type_cell->cell_kind == aioc__undefined)
+	        continue;
+	
+	    presence_index++;
+	    if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+	        result.type_descriptor = type_cell->type_descriptor;
+	        result.presence_index = presence_index;
+	        break;
+	    }
+	}
+	
+	return result;
+}
+
+static int
+memb_value_constraint_125(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	if(1 /* No applicable constraints whatsoever */) {
+		/* Nothing is here. See below */
+	}
+	
+	return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_129(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0 && value <= 65535)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_type_selector_result_t
+select_ResetRequestIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+	asn_type_selector_result_t result = {0, 0};
+	const asn_ioc_set_t *itable = asn_IOS_ResetRequestIEs_1;
+	size_t constraining_column = 0; /* &id */
+	size_t for_column = 1; /* &criticality */
+	size_t row, presence_index = 0;
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetRequestIEs, id));
+	
+	for(row=0; row < itable->rows_count; row++) {
+	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+	    const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+	
+	    if(type_cell->cell_kind == aioc__undefined)
+	        continue;
+	
+	    presence_index++;
+	    if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+	        result.type_descriptor = type_cell->type_descriptor;
+	        result.presence_index = presence_index;
+	        break;
+	    }
+	}
+	
+	return result;
+}
+
+static int
+memb_criticality_constraint_129(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	if(1 /* No applicable constraints whatsoever */) {
+		/* Nothing is here. See below */
+	}
+	
+	return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ResetRequestIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+	asn_type_selector_result_t result = {0, 0};
+	const asn_ioc_set_t *itable = asn_IOS_ResetRequestIEs_1;
+	size_t constraining_column = 0; /* &id */
+	size_t for_column = 2; /* &Value */
+	size_t row, presence_index = 0;
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetRequestIEs, id));
+	
+	for(row=0; row < itable->rows_count; row++) {
+	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+	    const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+	
+	    if(type_cell->cell_kind == aioc__undefined)
+	        continue;
+	
+	    presence_index++;
+	    if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+	        result.type_descriptor = type_cell->type_descriptor;
+	        result.presence_index = presence_index;
+	        break;
+	    }
+	}
+	
+	return result;
+}
+
+static int
+memb_value_constraint_129(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	if(1 /* No applicable constraints whatsoever */) {
+		/* Nothing is here. See below */
+	}
+	
+	return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_133(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0 && value <= 65535)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_type_selector_result_t
+select_ResetResponseIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+	asn_type_selector_result_t result = {0, 0};
+	const asn_ioc_set_t *itable = asn_IOS_ResetResponseIEs_1;
+	size_t constraining_column = 0; /* &id */
+	size_t for_column = 1; /* &criticality */
+	size_t row, presence_index = 0;
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetResponseIEs, id));
+	
+	for(row=0; row < itable->rows_count; row++) {
+	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+	    const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+	
+	    if(type_cell->cell_kind == aioc__undefined)
+	        continue;
+	
+	    presence_index++;
+	    if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+	        result.type_descriptor = type_cell->type_descriptor;
+	        result.presence_index = presence_index;
+	        break;
+	    }
+	}
+	
+	return result;
+}
+
+static int
+memb_criticality_constraint_133(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	if(1 /* No applicable constraints whatsoever */) {
+		/* Nothing is here. See below */
+	}
+	
+	return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_ResetResponseIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+	asn_type_selector_result_t result = {0, 0};
+	const asn_ioc_set_t *itable = asn_IOS_ResetResponseIEs_1;
+	size_t constraining_column = 0; /* &id */
+	size_t for_column = 2; /* &Value */
+	size_t row, presence_index = 0;
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetResponseIEs, id));
+	
+	for(row=0; row < itable->rows_count; row++) {
+	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+	    const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+	
+	    if(type_cell->cell_kind == aioc__undefined)
+	        continue;
+	
+	    presence_index++;
+	    if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+	        result.type_descriptor = type_cell->type_descriptor;
+	        result.presence_index = presence_index;
+	        break;
+	    }
+	}
+	
+	return result;
+}
+
+static int
+memb_value_constraint_133(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	if(1 /* No applicable constraints whatsoever */) {
+		/* Nothing is here. See below */
+	}
+	
+	return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_137(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0 && value <= 65535)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_type_selector_result_t
 select_RICserviceQuery_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
 	asn_type_selector_result_t result = {0, 0};
 	const asn_ioc_set_t *itable = asn_IOS_RICserviceQuery_IEs_1;
@@ -3619,7 +4942,7 @@
 }
 
 static int
-memb_criticality_constraint_101(const asn_TYPE_descriptor_t *td, const void *sptr,
+memb_criticality_constraint_137(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	
 	if(!sptr) {
@@ -3665,7 +4988,358 @@
 }
 
 static int
-memb_value_constraint_101(const asn_TYPE_descriptor_t *td, const void *sptr,
+memb_value_constraint_137(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	if(1 /* No applicable constraints whatsoever */) {
+		/* Nothing is here. See below */
+	}
+	
+	return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_141(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0 && value <= 65535)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_type_selector_result_t
+select_E2RemovalRequestIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+	asn_type_selector_result_t result = {0, 0};
+	const asn_ioc_set_t *itable = asn_IOS_E2RemovalRequestIEs_1;
+	size_t constraining_column = 0; /* &id */
+	size_t for_column = 1; /* &criticality */
+	size_t row, presence_index = 0;
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2RemovalRequestIEs, id));
+	
+	for(row=0; row < itable->rows_count; row++) {
+	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+	    const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+	
+	    if(type_cell->cell_kind == aioc__undefined)
+	        continue;
+	
+	    presence_index++;
+	    if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+	        result.type_descriptor = type_cell->type_descriptor;
+	        result.presence_index = presence_index;
+	        break;
+	    }
+	}
+	
+	return result;
+}
+
+static int
+memb_criticality_constraint_141(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	if(1 /* No applicable constraints whatsoever */) {
+		/* Nothing is here. See below */
+	}
+	
+	return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E2RemovalRequestIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+	asn_type_selector_result_t result = {0, 0};
+	const asn_ioc_set_t *itable = asn_IOS_E2RemovalRequestIEs_1;
+	size_t constraining_column = 0; /* &id */
+	size_t for_column = 2; /* &Value */
+	size_t row, presence_index = 0;
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2RemovalRequestIEs, id));
+	
+	for(row=0; row < itable->rows_count; row++) {
+	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+	    const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+	
+	    if(type_cell->cell_kind == aioc__undefined)
+	        continue;
+	
+	    presence_index++;
+	    if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+	        result.type_descriptor = type_cell->type_descriptor;
+	        result.presence_index = presence_index;
+	        break;
+	    }
+	}
+	
+	return result;
+}
+
+static int
+memb_value_constraint_141(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	if(1 /* No applicable constraints whatsoever */) {
+		/* Nothing is here. See below */
+	}
+	
+	return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_145(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0 && value <= 65535)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_type_selector_result_t
+select_E2RemovalResponseIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+	asn_type_selector_result_t result = {0, 0};
+	const asn_ioc_set_t *itable = asn_IOS_E2RemovalResponseIEs_1;
+	size_t constraining_column = 0; /* &id */
+	size_t for_column = 1; /* &criticality */
+	size_t row, presence_index = 0;
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2RemovalResponseIEs, id));
+	
+	for(row=0; row < itable->rows_count; row++) {
+	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+	    const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+	
+	    if(type_cell->cell_kind == aioc__undefined)
+	        continue;
+	
+	    presence_index++;
+	    if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+	        result.type_descriptor = type_cell->type_descriptor;
+	        result.presence_index = presence_index;
+	        break;
+	    }
+	}
+	
+	return result;
+}
+
+static int
+memb_criticality_constraint_145(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	if(1 /* No applicable constraints whatsoever */) {
+		/* Nothing is here. See below */
+	}
+	
+	return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E2RemovalResponseIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+	asn_type_selector_result_t result = {0, 0};
+	const asn_ioc_set_t *itable = asn_IOS_E2RemovalResponseIEs_1;
+	size_t constraining_column = 0; /* &id */
+	size_t for_column = 2; /* &Value */
+	size_t row, presence_index = 0;
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2RemovalResponseIEs, id));
+	
+	for(row=0; row < itable->rows_count; row++) {
+	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+	    const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+	
+	    if(type_cell->cell_kind == aioc__undefined)
+	        continue;
+	
+	    presence_index++;
+	    if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+	        result.type_descriptor = type_cell->type_descriptor;
+	        result.presence_index = presence_index;
+	        break;
+	    }
+	}
+	
+	return result;
+}
+
+static int
+memb_value_constraint_145(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	if(1 /* No applicable constraints whatsoever */) {
+		/* Nothing is here. See below */
+	}
+	
+	return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static int
+memb_id_constraint_149(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0 && value <= 65535)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static asn_type_selector_result_t
+select_E2RemovalFailureIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+	asn_type_selector_result_t result = {0, 0};
+	const asn_ioc_set_t *itable = asn_IOS_E2RemovalFailureIEs_1;
+	size_t constraining_column = 0; /* &id */
+	size_t for_column = 1; /* &criticality */
+	size_t row, presence_index = 0;
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2RemovalFailureIEs, id));
+	
+	for(row=0; row < itable->rows_count; row++) {
+	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+	    const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+	
+	    if(type_cell->cell_kind == aioc__undefined)
+	        continue;
+	
+	    presence_index++;
+	    if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+	        result.type_descriptor = type_cell->type_descriptor;
+	        result.presence_index = presence_index;
+	        break;
+	    }
+	}
+	
+	return result;
+}
+
+static int
+memb_criticality_constraint_149(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	if(1 /* No applicable constraints whatsoever */) {
+		/* Nothing is here. See below */
+	}
+	
+	return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
+}
+
+static asn_type_selector_result_t
+select_E2RemovalFailureIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) {
+	asn_type_selector_result_t result = {0, 0};
+	const asn_ioc_set_t *itable = asn_IOS_E2RemovalFailureIEs_1;
+	size_t constraining_column = 0; /* &id */
+	size_t for_column = 2; /* &Value */
+	size_t row, presence_index = 0;
+	const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2RemovalFailureIEs, id));
+	
+	for(row=0; row < itable->rows_count; row++) {
+	    const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
+	    const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column];
+	
+	    if(type_cell->cell_kind == aioc__undefined)
+	        continue;
+	
+	    presence_index++;
+	    if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
+	        result.type_descriptor = type_cell->type_descriptor;
+	        result.presence_index = presence_index;
+	        break;
+	    }
+	}
+	
+	return result;
+}
+
+static int
+memb_value_constraint_149(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	
 	if(!sptr) {
@@ -4307,6 +5981,294 @@
 	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
 	0, 0	/* No PER value map */
 };
+static asn_oer_constraints_t asn_OER_memb_id_constr_106 CC_NOTUSED = {
+	{ 2, 1 }	/* (0..65535) */,
+	-1};
+static asn_per_constraints_t asn_PER_memb_id_constr_106 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 16,  16,  0,  65535 }	/* (0..65535) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_107 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_107 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 2,  2,  0,  2 }	/* (0..2) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_108 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_memb_value_constr_108 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_110 CC_NOTUSED = {
+	{ 2, 1 }	/* (0..65535) */,
+	-1};
+static asn_per_constraints_t asn_PER_memb_id_constr_110 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 16,  16,  0,  65535 }	/* (0..65535) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_111 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_111 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 2,  2,  0,  2 }	/* (0..2) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_112 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_memb_value_constr_112 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_114 CC_NOTUSED = {
+	{ 2, 1 }	/* (0..65535) */,
+	-1};
+static asn_per_constraints_t asn_PER_memb_id_constr_114 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 16,  16,  0,  65535 }	/* (0..65535) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_115 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_115 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 2,  2,  0,  2 }	/* (0..2) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_116 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_memb_value_constr_116 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_118 CC_NOTUSED = {
+	{ 2, 1 }	/* (0..65535) */,
+	-1};
+static asn_per_constraints_t asn_PER_memb_id_constr_118 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 16,  16,  0,  65535 }	/* (0..65535) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_119 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_119 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 2,  2,  0,  2 }	/* (0..2) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_120 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_memb_value_constr_120 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_122 CC_NOTUSED = {
+	{ 2, 1 }	/* (0..65535) */,
+	-1};
+static asn_per_constraints_t asn_PER_memb_id_constr_122 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 16,  16,  0,  65535 }	/* (0..65535) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_123 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_123 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 2,  2,  0,  2 }	/* (0..2) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_124 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_memb_value_constr_124 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_126 CC_NOTUSED = {
+	{ 2, 1 }	/* (0..65535) */,
+	-1};
+static asn_per_constraints_t asn_PER_memb_id_constr_126 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 16,  16,  0,  65535 }	/* (0..65535) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_127 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_127 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 2,  2,  0,  2 }	/* (0..2) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_128 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_memb_value_constr_128 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_130 CC_NOTUSED = {
+	{ 2, 1 }	/* (0..65535) */,
+	-1};
+static asn_per_constraints_t asn_PER_memb_id_constr_130 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 16,  16,  0,  65535 }	/* (0..65535) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_131 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_131 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 2,  2,  0,  2 }	/* (0..2) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_132 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_memb_value_constr_132 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_134 CC_NOTUSED = {
+	{ 2, 1 }	/* (0..65535) */,
+	-1};
+static asn_per_constraints_t asn_PER_memb_id_constr_134 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 16,  16,  0,  65535 }	/* (0..65535) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_135 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_135 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 2,  2,  0,  2 }	/* (0..2) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_136 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_memb_value_constr_136 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_138 CC_NOTUSED = {
+	{ 2, 1 }	/* (0..65535) */,
+	-1};
+static asn_per_constraints_t asn_PER_memb_id_constr_138 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 16,  16,  0,  65535 }	/* (0..65535) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_139 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_139 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 2,  2,  0,  2 }	/* (0..2) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_140 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_memb_value_constr_140 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_142 CC_NOTUSED = {
+	{ 2, 1 }	/* (0..65535) */,
+	-1};
+static asn_per_constraints_t asn_PER_memb_id_constr_142 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 16,  16,  0,  65535 }	/* (0..65535) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_143 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_143 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 2,  2,  0,  2 }	/* (0..2) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_144 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_memb_value_constr_144 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_146 CC_NOTUSED = {
+	{ 2, 1 }	/* (0..65535) */,
+	-1};
+static asn_per_constraints_t asn_PER_memb_id_constr_146 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 16,  16,  0,  65535 }	/* (0..65535) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_147 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_147 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 2,  2,  0,  2 }	/* (0..2) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_148 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_memb_value_constr_148 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_id_constr_150 CC_NOTUSED = {
+	{ 2, 1 }	/* (0..65535) */,
+	-1};
+static asn_per_constraints_t asn_PER_memb_id_constr_150 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 16,  16,  0,  65535 }	/* (0..65535) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_criticality_constr_151 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_memb_criticality_constr_151 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 2,  2,  0,  2 }	/* (0..2) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_value_constr_152 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_memb_value_constr_152 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
 static asn_TYPE_member_t asn_MBR_value_4[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs__value, choice.RICaction_ToBeSetup_Item),
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
@@ -4348,8 +6310,8 @@
 
 asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_ItemIEs_1[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, id),
-		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_ProtocolIE_ID,
 		0,
 		{ &asn_OER_memb_id_constr_2, &asn_PER_memb_id_constr_2,  memb_id_constraint_1 },
@@ -4357,8 +6319,8 @@
 		"id"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, criticality),
-		(ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_Criticality,
 		select_RICaction_ToBeSetup_ItemIEs_criticality_type,
 		{ &asn_OER_memb_criticality_constr_3, &asn_PER_memb_criticality_constr_3,  memb_criticality_constraint_1 },
@@ -4366,8 +6328,8 @@
 		"criticality"
 		},
 	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, value),
-		-1 /* Ambiguous tag (ANY?) */,
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
 		&asn_DEF_value_4,
 		select_RICaction_ToBeSetup_ItemIEs_value_type,
 		{ &asn_OER_memb_value_constr_4, &asn_PER_memb_value_constr_4,  memb_value_constraint_1 },
@@ -4379,14 +6341,15 @@
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
 static const asn_TYPE_tag2member_t asn_MAP_RICaction_ToBeSetup_ItemIEs_tag2el_1[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */
-    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
 };
 asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1 = {
 	sizeof(struct RICaction_ToBeSetup_ItemIEs),
 	offsetof(struct RICaction_ToBeSetup_ItemIEs, _asn_ctx),
 	asn_MAP_RICaction_ToBeSetup_ItemIEs_tag2el_1,
-	2,	/* Count of tags in the map */
+	3,	/* Count of tags in the map */
 	0, 0, 0,	/* Optional elements (not needed) */
 	-1,	/* First extension addition */
 };
@@ -4447,8 +6410,8 @@
 
 asn_TYPE_member_t asn_MBR_RICaction_Admitted_ItemIEs_5[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, id),
-		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_ProtocolIE_ID,
 		0,
 		{ &asn_OER_memb_id_constr_6, &asn_PER_memb_id_constr_6,  memb_id_constraint_5 },
@@ -4456,8 +6419,8 @@
 		"id"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, criticality),
-		(ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_Criticality,
 		select_RICaction_Admitted_ItemIEs_criticality_type,
 		{ &asn_OER_memb_criticality_constr_7, &asn_PER_memb_criticality_constr_7,  memb_criticality_constraint_5 },
@@ -4465,8 +6428,8 @@
 		"criticality"
 		},
 	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, value),
-		-1 /* Ambiguous tag (ANY?) */,
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
 		&asn_DEF_value_8,
 		select_RICaction_Admitted_ItemIEs_value_type,
 		{ &asn_OER_memb_value_constr_8, &asn_PER_memb_value_constr_8,  memb_value_constraint_5 },
@@ -4478,14 +6441,15 @@
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
 static const asn_TYPE_tag2member_t asn_MAP_RICaction_Admitted_ItemIEs_tag2el_5[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */
-    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
 };
 asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_ItemIEs_specs_5 = {
 	sizeof(struct RICaction_Admitted_ItemIEs),
 	offsetof(struct RICaction_Admitted_ItemIEs, _asn_ctx),
 	asn_MAP_RICaction_Admitted_ItemIEs_tag2el_5,
-	2,	/* Count of tags in the map */
+	3,	/* Count of tags in the map */
 	0, 0, 0,	/* Optional elements (not needed) */
 	-1,	/* First extension addition */
 };
@@ -4546,8 +6510,8 @@
 
 asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_ItemIEs_9[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, id),
-		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_ProtocolIE_ID,
 		0,
 		{ &asn_OER_memb_id_constr_10, &asn_PER_memb_id_constr_10,  memb_id_constraint_9 },
@@ -4555,8 +6519,8 @@
 		"id"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, criticality),
-		(ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_Criticality,
 		select_RICaction_NotAdmitted_ItemIEs_criticality_type,
 		{ &asn_OER_memb_criticality_constr_11, &asn_PER_memb_criticality_constr_11,  memb_criticality_constraint_9 },
@@ -4564,8 +6528,8 @@
 		"criticality"
 		},
 	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, value),
-		-1 /* Ambiguous tag (ANY?) */,
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
 		&asn_DEF_value_12,
 		select_RICaction_NotAdmitted_ItemIEs_value_type,
 		{ &asn_OER_memb_value_constr_12, &asn_PER_memb_value_constr_12,  memb_value_constraint_9 },
@@ -4577,14 +6541,15 @@
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
 static const asn_TYPE_tag2member_t asn_MAP_RICaction_NotAdmitted_ItemIEs_tag2el_9[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */
-    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
 };
 asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9 = {
 	sizeof(struct RICaction_NotAdmitted_ItemIEs),
 	offsetof(struct RICaction_NotAdmitted_ItemIEs, _asn_ctx),
 	asn_MAP_RICaction_NotAdmitted_ItemIEs_tag2el_9,
-	2,	/* Count of tags in the map */
+	3,	/* Count of tags in the map */
 	0, 0, 0,	/* Optional elements (not needed) */
 	-1,	/* First extension addition */
 };
@@ -4605,24 +6570,24 @@
 };
 
 static asn_TYPE_member_t asn_MBR_value_16[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs__value, choice.RANfunction_Item),
+	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscription_withCause_ItemIEs__value, choice.RICsubscription_withCause_Item),
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
-		&asn_DEF_RANfunction_Item,
+		&asn_DEF_RICsubscription_withCause_Item,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
-		"RANfunction-Item"
+		"RICsubscription-withCause-Item"
 		},
 };
 static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_16[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunction-Item */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICsubscription-withCause-Item */
 };
 static asn_CHOICE_specifics_t asn_SPC_value_specs_16 = {
-	sizeof(struct RANfunction_ItemIEs__value),
-	offsetof(struct RANfunction_ItemIEs__value, _asn_ctx),
-	offsetof(struct RANfunction_ItemIEs__value, present),
-	sizeof(((struct RANfunction_ItemIEs__value *)0)->present),
+	sizeof(struct RICsubscription_withCause_ItemIEs__value),
+	offsetof(struct RICsubscription_withCause_ItemIEs__value, _asn_ctx),
+	offsetof(struct RICsubscription_withCause_ItemIEs__value, present),
+	sizeof(((struct RICsubscription_withCause_ItemIEs__value *)0)->present),
 	asn_MAP_value_tag2el_16,
 	1,	/* Count of tags in the map */
 	0, 0,
@@ -4643,85 +6608,86 @@
 	&asn_SPC_value_specs_16	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_RANfunction_ItemIEs_13[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, id),
-		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
-		0,
+asn_TYPE_member_t asn_MBR_RICsubscription_withCause_ItemIEs_13[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscription_withCause_ItemIEs, id),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_ProtocolIE_ID,
 		0,
 		{ &asn_OER_memb_id_constr_14, &asn_PER_memb_id_constr_14,  memb_id_constraint_13 },
 		0, 0, /* No default value */
 		"id"
 		},
-	{ ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, criticality),
-		(ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
-		0,
+	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscription_withCause_ItemIEs, criticality),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_Criticality,
-		select_RANfunction_ItemIEs_criticality_type,
+		select_RICsubscription_withCause_ItemIEs_criticality_type,
 		{ &asn_OER_memb_criticality_constr_15, &asn_PER_memb_criticality_constr_15,  memb_criticality_constraint_13 },
 		0, 0, /* No default value */
 		"criticality"
 		},
-	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, value),
-		-1 /* Ambiguous tag (ANY?) */,
-		0,
+	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscription_withCause_ItemIEs, value),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
 		&asn_DEF_value_16,
-		select_RANfunction_ItemIEs_value_type,
+		select_RICsubscription_withCause_ItemIEs_value_type,
 		{ &asn_OER_memb_value_constr_16, &asn_PER_memb_value_constr_16,  memb_value_constraint_13 },
 		0, 0, /* No default value */
 		"value"
 		},
 };
-static const ber_tlv_tag_t asn_DEF_RANfunction_ItemIEs_tags_13[] = {
+static const ber_tlv_tag_t asn_DEF_RICsubscription_withCause_ItemIEs_tags_13[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-static const asn_TYPE_tag2member_t asn_MAP_RANfunction_ItemIEs_tag2el_13[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */
-    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */
+static const asn_TYPE_tag2member_t asn_MAP_RICsubscription_withCause_ItemIEs_tag2el_13[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
 };
-asn_SEQUENCE_specifics_t asn_SPC_RANfunction_ItemIEs_specs_13 = {
-	sizeof(struct RANfunction_ItemIEs),
-	offsetof(struct RANfunction_ItemIEs, _asn_ctx),
-	asn_MAP_RANfunction_ItemIEs_tag2el_13,
-	2,	/* Count of tags in the map */
+asn_SEQUENCE_specifics_t asn_SPC_RICsubscription_withCause_ItemIEs_specs_13 = {
+	sizeof(struct RICsubscription_withCause_ItemIEs),
+	offsetof(struct RICsubscription_withCause_ItemIEs, _asn_ctx),
+	asn_MAP_RICsubscription_withCause_ItemIEs_tag2el_13,
+	3,	/* Count of tags in the map */
 	0, 0, 0,	/* Optional elements (not needed) */
 	-1,	/* First extension addition */
 };
-asn_TYPE_descriptor_t asn_DEF_RANfunction_ItemIEs = {
-	"RANfunction-ItemIEs",
-	"RANfunction-ItemIEs",
+asn_TYPE_descriptor_t asn_DEF_RICsubscription_withCause_ItemIEs = {
+	"RICsubscription-withCause-ItemIEs",
+	"RICsubscription-withCause-ItemIEs",
 	&asn_OP_SEQUENCE,
-	asn_DEF_RANfunction_ItemIEs_tags_13,
-	sizeof(asn_DEF_RANfunction_ItemIEs_tags_13)
-		/sizeof(asn_DEF_RANfunction_ItemIEs_tags_13[0]), /* 1 */
-	asn_DEF_RANfunction_ItemIEs_tags_13,	/* Same as above */
-	sizeof(asn_DEF_RANfunction_ItemIEs_tags_13)
-		/sizeof(asn_DEF_RANfunction_ItemIEs_tags_13[0]), /* 1 */
+	asn_DEF_RICsubscription_withCause_ItemIEs_tags_13,
+	sizeof(asn_DEF_RICsubscription_withCause_ItemIEs_tags_13)
+		/sizeof(asn_DEF_RICsubscription_withCause_ItemIEs_tags_13[0]), /* 1 */
+	asn_DEF_RICsubscription_withCause_ItemIEs_tags_13,	/* Same as above */
+	sizeof(asn_DEF_RICsubscription_withCause_ItemIEs_tags_13)
+		/sizeof(asn_DEF_RICsubscription_withCause_ItemIEs_tags_13[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_RANfunction_ItemIEs_13,
+	asn_MBR_RICsubscription_withCause_ItemIEs_13,
 	3,	/* Elements count */
-	&asn_SPC_RANfunction_ItemIEs_specs_13	/* Additional specs */
+	&asn_SPC_RICsubscription_withCause_ItemIEs_specs_13	/* Additional specs */
 };
 
 static asn_TYPE_member_t asn_MBR_value_20[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs__value, choice.RANfunctionID_Item),
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_ItemIEs__value, choice.E2nodeComponentConfigAddition_Item),
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
-		&asn_DEF_RANfunctionID_Item,
+		&asn_DEF_E2nodeComponentConfigAddition_Item,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
-		"RANfunctionID-Item"
+		"E2nodeComponentConfigAddition-Item"
 		},
 };
 static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_20[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionID-Item */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigAddition-Item */
 };
 static asn_CHOICE_specifics_t asn_SPC_value_specs_20 = {
-	sizeof(struct RANfunctionID_ItemIEs__value),
-	offsetof(struct RANfunctionID_ItemIEs__value, _asn_ctx),
-	offsetof(struct RANfunctionID_ItemIEs__value, present),
-	sizeof(((struct RANfunctionID_ItemIEs__value *)0)->present),
+	sizeof(struct E2nodeComponentConfigAddition_ItemIEs__value),
+	offsetof(struct E2nodeComponentConfigAddition_ItemIEs__value, _asn_ctx),
+	offsetof(struct E2nodeComponentConfigAddition_ItemIEs__value, present),
+	sizeof(((struct E2nodeComponentConfigAddition_ItemIEs__value *)0)->present),
 	asn_MAP_value_tag2el_20,
 	1,	/* Count of tags in the map */
 	0, 0,
@@ -4742,85 +6708,86 @@
 	&asn_SPC_value_specs_20	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_RANfunctionID_ItemIEs_17[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, id),
-		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
-		0,
+asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAddition_ItemIEs_17[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_ItemIEs, id),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_ProtocolIE_ID,
 		0,
 		{ &asn_OER_memb_id_constr_18, &asn_PER_memb_id_constr_18,  memb_id_constraint_17 },
 		0, 0, /* No default value */
 		"id"
 		},
-	{ ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, criticality),
-		(ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
-		0,
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_ItemIEs, criticality),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_Criticality,
-		select_RANfunctionID_ItemIEs_criticality_type,
+		select_E2nodeComponentConfigAddition_ItemIEs_criticality_type,
 		{ &asn_OER_memb_criticality_constr_19, &asn_PER_memb_criticality_constr_19,  memb_criticality_constraint_17 },
 		0, 0, /* No default value */
 		"criticality"
 		},
-	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, value),
-		-1 /* Ambiguous tag (ANY?) */,
-		0,
+	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_ItemIEs, value),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
 		&asn_DEF_value_20,
-		select_RANfunctionID_ItemIEs_value_type,
+		select_E2nodeComponentConfigAddition_ItemIEs_value_type,
 		{ &asn_OER_memb_value_constr_20, &asn_PER_memb_value_constr_20,  memb_value_constraint_17 },
 		0, 0, /* No default value */
 		"value"
 		},
 };
-static const ber_tlv_tag_t asn_DEF_RANfunctionID_ItemIEs_tags_17[] = {
+static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_17[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-static const asn_TYPE_tag2member_t asn_MAP_RANfunctionID_ItemIEs_tag2el_17[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */
-    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */
+static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigAddition_ItemIEs_tag2el_17[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
 };
-asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_ItemIEs_specs_17 = {
-	sizeof(struct RANfunctionID_ItemIEs),
-	offsetof(struct RANfunctionID_ItemIEs, _asn_ctx),
-	asn_MAP_RANfunctionID_ItemIEs_tag2el_17,
-	2,	/* Count of tags in the map */
+asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAddition_ItemIEs_specs_17 = {
+	sizeof(struct E2nodeComponentConfigAddition_ItemIEs),
+	offsetof(struct E2nodeComponentConfigAddition_ItemIEs, _asn_ctx),
+	asn_MAP_E2nodeComponentConfigAddition_ItemIEs_tag2el_17,
+	3,	/* Count of tags in the map */
 	0, 0, 0,	/* Optional elements (not needed) */
 	-1,	/* First extension addition */
 };
-asn_TYPE_descriptor_t asn_DEF_RANfunctionID_ItemIEs = {
-	"RANfunctionID-ItemIEs",
-	"RANfunctionID-ItemIEs",
+asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAddition_ItemIEs = {
+	"E2nodeComponentConfigAddition-ItemIEs",
+	"E2nodeComponentConfigAddition-ItemIEs",
 	&asn_OP_SEQUENCE,
-	asn_DEF_RANfunctionID_ItemIEs_tags_17,
-	sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_17)
-		/sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_17[0]), /* 1 */
-	asn_DEF_RANfunctionID_ItemIEs_tags_17,	/* Same as above */
-	sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_17)
-		/sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_17[0]), /* 1 */
+	asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_17,
+	sizeof(asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_17)
+		/sizeof(asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_17[0]), /* 1 */
+	asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_17,	/* Same as above */
+	sizeof(asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_17)
+		/sizeof(asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_17[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_RANfunctionID_ItemIEs_17,
+	asn_MBR_E2nodeComponentConfigAddition_ItemIEs_17,
 	3,	/* Elements count */
-	&asn_SPC_RANfunctionID_ItemIEs_specs_17	/* Additional specs */
+	&asn_SPC_E2nodeComponentConfigAddition_ItemIEs_specs_17	/* Additional specs */
 };
 
 static asn_TYPE_member_t asn_MBR_value_24[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs__value, choice.RANfunctionIDcause_Item),
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_ItemIEs__value, choice.E2nodeComponentConfigUpdate_Item),
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
-		&asn_DEF_RANfunctionIDcause_Item,
+		&asn_DEF_E2nodeComponentConfigUpdate_Item,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
-		"RANfunctionIDcause-Item"
+		"E2nodeComponentConfigUpdate-Item"
 		},
 };
 static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_24[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionIDcause-Item */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigUpdate-Item */
 };
 static asn_CHOICE_specifics_t asn_SPC_value_specs_24 = {
-	sizeof(struct RANfunctionIDcause_ItemIEs__value),
-	offsetof(struct RANfunctionIDcause_ItemIEs__value, _asn_ctx),
-	offsetof(struct RANfunctionIDcause_ItemIEs__value, present),
-	sizeof(((struct RANfunctionIDcause_ItemIEs__value *)0)->present),
+	sizeof(struct E2nodeComponentConfigUpdate_ItemIEs__value),
+	offsetof(struct E2nodeComponentConfigUpdate_ItemIEs__value, _asn_ctx),
+	offsetof(struct E2nodeComponentConfigUpdate_ItemIEs__value, present),
+	sizeof(((struct E2nodeComponentConfigUpdate_ItemIEs__value *)0)->present),
 	asn_MAP_value_tag2el_24,
 	1,	/* Count of tags in the map */
 	0, 0,
@@ -4841,47 +6808,848 @@
 	&asn_SPC_value_specs_24	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_RANfunctionIDcause_ItemIEs_21[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, id),
-		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
-		0,
+asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_ItemIEs_21[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, id),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_ProtocolIE_ID,
 		0,
 		{ &asn_OER_memb_id_constr_22, &asn_PER_memb_id_constr_22,  memb_id_constraint_21 },
 		0, 0, /* No default value */
 		"id"
 		},
-	{ ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, criticality),
-		(ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
-		0,
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, criticality),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_Criticality,
-		select_RANfunctionIDcause_ItemIEs_criticality_type,
+		select_E2nodeComponentConfigUpdate_ItemIEs_criticality_type,
 		{ &asn_OER_memb_criticality_constr_23, &asn_PER_memb_criticality_constr_23,  memb_criticality_constraint_21 },
 		0, 0, /* No default value */
 		"criticality"
 		},
-	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, value),
-		-1 /* Ambiguous tag (ANY?) */,
-		0,
+	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, value),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
 		&asn_DEF_value_24,
-		select_RANfunctionIDcause_ItemIEs_value_type,
+		select_E2nodeComponentConfigUpdate_ItemIEs_value_type,
 		{ &asn_OER_memb_value_constr_24, &asn_PER_memb_value_constr_24,  memb_value_constraint_21 },
 		0, 0, /* No default value */
 		"value"
 		},
 };
-static const ber_tlv_tag_t asn_DEF_RANfunctionIDcause_ItemIEs_tags_21[] = {
+static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_21[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-static const asn_TYPE_tag2member_t asn_MAP_RANfunctionIDcause_ItemIEs_tag2el_21[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */
-    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */
+static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdate_ItemIEs_tag2el_21[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
 };
-asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_ItemIEs_specs_21 = {
+asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdate_ItemIEs_specs_21 = {
+	sizeof(struct E2nodeComponentConfigUpdate_ItemIEs),
+	offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, _asn_ctx),
+	asn_MAP_E2nodeComponentConfigUpdate_ItemIEs_tag2el_21,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	-1,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdate_ItemIEs = {
+	"E2nodeComponentConfigUpdate-ItemIEs",
+	"E2nodeComponentConfigUpdate-ItemIEs",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_21,
+	sizeof(asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_21)
+		/sizeof(asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_21[0]), /* 1 */
+	asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_21,	/* Same as above */
+	sizeof(asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_21)
+		/sizeof(asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_21[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeComponentConfigUpdate_ItemIEs_21,
+	3,	/* Elements count */
+	&asn_SPC_E2nodeComponentConfigUpdate_ItemIEs_specs_21	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_28[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemoval_ItemIEs__value, choice.E2nodeComponentConfigRemoval_Item),
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2nodeComponentConfigRemoval_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"E2nodeComponentConfigRemoval-Item"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_28[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigRemoval-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_28 = {
+	sizeof(struct E2nodeComponentConfigRemoval_ItemIEs__value),
+	offsetof(struct E2nodeComponentConfigRemoval_ItemIEs__value, _asn_ctx),
+	offsetof(struct E2nodeComponentConfigRemoval_ItemIEs__value, present),
+	sizeof(((struct E2nodeComponentConfigRemoval_ItemIEs__value *)0)->present),
+	asn_MAP_value_tag2el_28,
+	1,	/* Count of tags in the map */
+	0, 0,
+	-1	/* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_28 = {
+	"value",
+	"value",
+	&asn_OP_OPEN_TYPE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ 0, 0, OPEN_TYPE_constraint },
+	asn_MBR_value_28,
+	1,	/* Elements count */
+	&asn_SPC_value_specs_28	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemoval_ItemIEs_25[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemoval_ItemIEs, id),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_ProtocolIE_ID,
+		0,
+		{ &asn_OER_memb_id_constr_26, &asn_PER_memb_id_constr_26,  memb_id_constraint_25 },
+		0, 0, /* No default value */
+		"id"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemoval_ItemIEs, criticality),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_Criticality,
+		select_E2nodeComponentConfigRemoval_ItemIEs_criticality_type,
+		{ &asn_OER_memb_criticality_constr_27, &asn_PER_memb_criticality_constr_27,  memb_criticality_constraint_25 },
+		0, 0, /* No default value */
+		"criticality"
+		},
+	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemoval_ItemIEs, value),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_28,
+		select_E2nodeComponentConfigRemoval_ItemIEs_value_type,
+		{ &asn_OER_memb_value_constr_28, &asn_PER_memb_value_constr_28,  memb_value_constraint_25 },
+		0, 0, /* No default value */
+		"value"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_25[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigRemoval_ItemIEs_tag2el_25[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemoval_ItemIEs_specs_25 = {
+	sizeof(struct E2nodeComponentConfigRemoval_ItemIEs),
+	offsetof(struct E2nodeComponentConfigRemoval_ItemIEs, _asn_ctx),
+	asn_MAP_E2nodeComponentConfigRemoval_ItemIEs_tag2el_25,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	-1,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemoval_ItemIEs = {
+	"E2nodeComponentConfigRemoval-ItemIEs",
+	"E2nodeComponentConfigRemoval-ItemIEs",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_25,
+	sizeof(asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_25)
+		/sizeof(asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_25[0]), /* 1 */
+	asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_25,	/* Same as above */
+	sizeof(asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_25)
+		/sizeof(asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_25[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeComponentConfigRemoval_ItemIEs_25,
+	3,	/* Elements count */
+	&asn_SPC_E2nodeComponentConfigRemoval_ItemIEs_specs_25	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_32[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeTNLassociationRemoval_ItemIEs__value, choice.E2nodeTNLassociationRemoval_Item),
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2nodeTNLassociationRemoval_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"E2nodeTNLassociationRemoval-Item"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_32[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeTNLassociationRemoval-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_32 = {
+	sizeof(struct E2nodeTNLassociationRemoval_ItemIEs__value),
+	offsetof(struct E2nodeTNLassociationRemoval_ItemIEs__value, _asn_ctx),
+	offsetof(struct E2nodeTNLassociationRemoval_ItemIEs__value, present),
+	sizeof(((struct E2nodeTNLassociationRemoval_ItemIEs__value *)0)->present),
+	asn_MAP_value_tag2el_32,
+	1,	/* Count of tags in the map */
+	0, 0,
+	-1	/* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_32 = {
+	"value",
+	"value",
+	&asn_OP_OPEN_TYPE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ 0, 0, OPEN_TYPE_constraint },
+	asn_MBR_value_32,
+	1,	/* Elements count */
+	&asn_SPC_value_specs_32	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2nodeTNLassociationRemoval_ItemIEs_29[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeTNLassociationRemoval_ItemIEs, id),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_ProtocolIE_ID,
+		0,
+		{ &asn_OER_memb_id_constr_30, &asn_PER_memb_id_constr_30,  memb_id_constraint_29 },
+		0, 0, /* No default value */
+		"id"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeTNLassociationRemoval_ItemIEs, criticality),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_Criticality,
+		select_E2nodeTNLassociationRemoval_ItemIEs_criticality_type,
+		{ &asn_OER_memb_criticality_constr_31, &asn_PER_memb_criticality_constr_31,  memb_criticality_constraint_29 },
+		0, 0, /* No default value */
+		"criticality"
+		},
+	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeTNLassociationRemoval_ItemIEs, value),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_32,
+		select_E2nodeTNLassociationRemoval_ItemIEs_value_type,
+		{ &asn_OER_memb_value_constr_32, &asn_PER_memb_value_constr_32,  memb_value_constraint_29 },
+		0, 0, /* No default value */
+		"value"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_29[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2nodeTNLassociationRemoval_ItemIEs_tag2el_29[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2nodeTNLassociationRemoval_ItemIEs_specs_29 = {
+	sizeof(struct E2nodeTNLassociationRemoval_ItemIEs),
+	offsetof(struct E2nodeTNLassociationRemoval_ItemIEs, _asn_ctx),
+	asn_MAP_E2nodeTNLassociationRemoval_ItemIEs_tag2el_29,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	-1,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2nodeTNLassociationRemoval_ItemIEs = {
+	"E2nodeTNLassociationRemoval-ItemIEs",
+	"E2nodeTNLassociationRemoval-ItemIEs",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_29,
+	sizeof(asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_29)
+		/sizeof(asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_29[0]), /* 1 */
+	asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_29,	/* Same as above */
+	sizeof(asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_29)
+		/sizeof(asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_29[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeTNLassociationRemoval_ItemIEs_29,
+	3,	/* Elements count */
+	&asn_SPC_E2nodeTNLassociationRemoval_ItemIEs_specs_29	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_36[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs__value, choice.E2nodeComponentConfigAdditionAck_Item),
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2nodeComponentConfigAdditionAck_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"E2nodeComponentConfigAdditionAck-Item"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_36[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigAdditionAck-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_36 = {
+	sizeof(struct E2nodeComponentConfigAdditionAck_ItemIEs__value),
+	offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs__value, _asn_ctx),
+	offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs__value, present),
+	sizeof(((struct E2nodeComponentConfigAdditionAck_ItemIEs__value *)0)->present),
+	asn_MAP_value_tag2el_36,
+	1,	/* Count of tags in the map */
+	0, 0,
+	-1	/* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_36 = {
+	"value",
+	"value",
+	&asn_OP_OPEN_TYPE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ 0, 0, OPEN_TYPE_constraint },
+	asn_MBR_value_36,
+	1,	/* Elements count */
+	&asn_SPC_value_specs_36	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAdditionAck_ItemIEs_33[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs, id),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_ProtocolIE_ID,
+		0,
+		{ &asn_OER_memb_id_constr_34, &asn_PER_memb_id_constr_34,  memb_id_constraint_33 },
+		0, 0, /* No default value */
+		"id"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs, criticality),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_Criticality,
+		select_E2nodeComponentConfigAdditionAck_ItemIEs_criticality_type,
+		{ &asn_OER_memb_criticality_constr_35, &asn_PER_memb_criticality_constr_35,  memb_criticality_constraint_33 },
+		0, 0, /* No default value */
+		"criticality"
+		},
+	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs, value),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_36,
+		select_E2nodeComponentConfigAdditionAck_ItemIEs_value_type,
+		{ &asn_OER_memb_value_constr_36, &asn_PER_memb_value_constr_36,  memb_value_constraint_33 },
+		0, 0, /* No default value */
+		"value"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_33[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigAdditionAck_ItemIEs_tag2el_33[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAdditionAck_ItemIEs_specs_33 = {
+	sizeof(struct E2nodeComponentConfigAdditionAck_ItemIEs),
+	offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs, _asn_ctx),
+	asn_MAP_E2nodeComponentConfigAdditionAck_ItemIEs_tag2el_33,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	-1,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs = {
+	"E2nodeComponentConfigAdditionAck-ItemIEs",
+	"E2nodeComponentConfigAdditionAck-ItemIEs",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_33,
+	sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_33)
+		/sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_33[0]), /* 1 */
+	asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_33,	/* Same as above */
+	sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_33)
+		/sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_33[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeComponentConfigAdditionAck_ItemIEs_33,
+	3,	/* Elements count */
+	&asn_SPC_E2nodeComponentConfigAdditionAck_ItemIEs_specs_33	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_40[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs__value, choice.E2nodeComponentConfigUpdateAck_Item),
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2nodeComponentConfigUpdateAck_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"E2nodeComponentConfigUpdateAck-Item"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_40[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigUpdateAck-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_40 = {
+	sizeof(struct E2nodeComponentConfigUpdateAck_ItemIEs__value),
+	offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs__value, _asn_ctx),
+	offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs__value, present),
+	sizeof(((struct E2nodeComponentConfigUpdateAck_ItemIEs__value *)0)->present),
+	asn_MAP_value_tag2el_40,
+	1,	/* Count of tags in the map */
+	0, 0,
+	-1	/* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_40 = {
+	"value",
+	"value",
+	&asn_OP_OPEN_TYPE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ 0, 0, OPEN_TYPE_constraint },
+	asn_MBR_value_40,
+	1,	/* Elements count */
+	&asn_SPC_value_specs_40	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_ItemIEs_37[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, id),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_ProtocolIE_ID,
+		0,
+		{ &asn_OER_memb_id_constr_38, &asn_PER_memb_id_constr_38,  memb_id_constraint_37 },
+		0, 0, /* No default value */
+		"id"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, criticality),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_Criticality,
+		select_E2nodeComponentConfigUpdateAck_ItemIEs_criticality_type,
+		{ &asn_OER_memb_criticality_constr_39, &asn_PER_memb_criticality_constr_39,  memb_criticality_constraint_37 },
+		0, 0, /* No default value */
+		"criticality"
+		},
+	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, value),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_40,
+		select_E2nodeComponentConfigUpdateAck_ItemIEs_value_type,
+		{ &asn_OER_memb_value_constr_40, &asn_PER_memb_value_constr_40,  memb_value_constraint_37 },
+		0, 0, /* No default value */
+		"value"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_37[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdateAck_ItemIEs_tag2el_37[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_ItemIEs_specs_37 = {
+	sizeof(struct E2nodeComponentConfigUpdateAck_ItemIEs),
+	offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, _asn_ctx),
+	asn_MAP_E2nodeComponentConfigUpdateAck_ItemIEs_tag2el_37,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	-1,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs = {
+	"E2nodeComponentConfigUpdateAck-ItemIEs",
+	"E2nodeComponentConfigUpdateAck-ItemIEs",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_37,
+	sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_37)
+		/sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_37[0]), /* 1 */
+	asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_37,	/* Same as above */
+	sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_37)
+		/sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_37[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeComponentConfigUpdateAck_ItemIEs_37,
+	3,	/* Elements count */
+	&asn_SPC_E2nodeComponentConfigUpdateAck_ItemIEs_specs_37	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_44[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs__value, choice.E2nodeComponentConfigRemovalAck_Item),
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2nodeComponentConfigRemovalAck_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"E2nodeComponentConfigRemovalAck-Item"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_44[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigRemovalAck-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_44 = {
+	sizeof(struct E2nodeComponentConfigRemovalAck_ItemIEs__value),
+	offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs__value, _asn_ctx),
+	offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs__value, present),
+	sizeof(((struct E2nodeComponentConfigRemovalAck_ItemIEs__value *)0)->present),
+	asn_MAP_value_tag2el_44,
+	1,	/* Count of tags in the map */
+	0, 0,
+	-1	/* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_44 = {
+	"value",
+	"value",
+	&asn_OP_OPEN_TYPE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ 0, 0, OPEN_TYPE_constraint },
+	asn_MBR_value_44,
+	1,	/* Elements count */
+	&asn_SPC_value_specs_44	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemovalAck_ItemIEs_41[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs, id),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_ProtocolIE_ID,
+		0,
+		{ &asn_OER_memb_id_constr_42, &asn_PER_memb_id_constr_42,  memb_id_constraint_41 },
+		0, 0, /* No default value */
+		"id"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs, criticality),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_Criticality,
+		select_E2nodeComponentConfigRemovalAck_ItemIEs_criticality_type,
+		{ &asn_OER_memb_criticality_constr_43, &asn_PER_memb_criticality_constr_43,  memb_criticality_constraint_41 },
+		0, 0, /* No default value */
+		"criticality"
+		},
+	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs, value),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_44,
+		select_E2nodeComponentConfigRemovalAck_ItemIEs_value_type,
+		{ &asn_OER_memb_value_constr_44, &asn_PER_memb_value_constr_44,  memb_value_constraint_41 },
+		0, 0, /* No default value */
+		"value"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_41[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigRemovalAck_ItemIEs_tag2el_41[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemovalAck_ItemIEs_specs_41 = {
+	sizeof(struct E2nodeComponentConfigRemovalAck_ItemIEs),
+	offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs, _asn_ctx),
+	asn_MAP_E2nodeComponentConfigRemovalAck_ItemIEs_tag2el_41,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	-1,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs = {
+	"E2nodeComponentConfigRemovalAck-ItemIEs",
+	"E2nodeComponentConfigRemovalAck-ItemIEs",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_41,
+	sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_41)
+		/sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_41[0]), /* 1 */
+	asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_41,	/* Same as above */
+	sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_41)
+		/sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_41[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeComponentConfigRemovalAck_ItemIEs_41,
+	3,	/* Elements count */
+	&asn_SPC_E2nodeComponentConfigRemovalAck_ItemIEs_specs_41	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_48[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs__value, choice.RANfunction_Item),
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_RANfunction_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"RANfunction-Item"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_48[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunction-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_48 = {
+	sizeof(struct RANfunction_ItemIEs__value),
+	offsetof(struct RANfunction_ItemIEs__value, _asn_ctx),
+	offsetof(struct RANfunction_ItemIEs__value, present),
+	sizeof(((struct RANfunction_ItemIEs__value *)0)->present),
+	asn_MAP_value_tag2el_48,
+	1,	/* Count of tags in the map */
+	0, 0,
+	-1	/* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_48 = {
+	"value",
+	"value",
+	&asn_OP_OPEN_TYPE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ 0, 0, OPEN_TYPE_constraint },
+	asn_MBR_value_48,
+	1,	/* Elements count */
+	&asn_SPC_value_specs_48	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RANfunction_ItemIEs_45[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, id),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_ProtocolIE_ID,
+		0,
+		{ &asn_OER_memb_id_constr_46, &asn_PER_memb_id_constr_46,  memb_id_constraint_45 },
+		0, 0, /* No default value */
+		"id"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, criticality),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_Criticality,
+		select_RANfunction_ItemIEs_criticality_type,
+		{ &asn_OER_memb_criticality_constr_47, &asn_PER_memb_criticality_constr_47,  memb_criticality_constraint_45 },
+		0, 0, /* No default value */
+		"criticality"
+		},
+	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, value),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_48,
+		select_RANfunction_ItemIEs_value_type,
+		{ &asn_OER_memb_value_constr_48, &asn_PER_memb_value_constr_48,  memb_value_constraint_45 },
+		0, 0, /* No default value */
+		"value"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANfunction_ItemIEs_tags_45[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANfunction_ItemIEs_tag2el_45[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANfunction_ItemIEs_specs_45 = {
+	sizeof(struct RANfunction_ItemIEs),
+	offsetof(struct RANfunction_ItemIEs, _asn_ctx),
+	asn_MAP_RANfunction_ItemIEs_tag2el_45,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	-1,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RANfunction_ItemIEs = {
+	"RANfunction-ItemIEs",
+	"RANfunction-ItemIEs",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANfunction_ItemIEs_tags_45,
+	sizeof(asn_DEF_RANfunction_ItemIEs_tags_45)
+		/sizeof(asn_DEF_RANfunction_ItemIEs_tags_45[0]), /* 1 */
+	asn_DEF_RANfunction_ItemIEs_tags_45,	/* Same as above */
+	sizeof(asn_DEF_RANfunction_ItemIEs_tags_45)
+		/sizeof(asn_DEF_RANfunction_ItemIEs_tags_45[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANfunction_ItemIEs_45,
+	3,	/* Elements count */
+	&asn_SPC_RANfunction_ItemIEs_specs_45	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_52[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs__value, choice.RANfunctionID_Item),
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_RANfunctionID_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"RANfunctionID-Item"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_52[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionID-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_52 = {
+	sizeof(struct RANfunctionID_ItemIEs__value),
+	offsetof(struct RANfunctionID_ItemIEs__value, _asn_ctx),
+	offsetof(struct RANfunctionID_ItemIEs__value, present),
+	sizeof(((struct RANfunctionID_ItemIEs__value *)0)->present),
+	asn_MAP_value_tag2el_52,
+	1,	/* Count of tags in the map */
+	0, 0,
+	-1	/* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_52 = {
+	"value",
+	"value",
+	&asn_OP_OPEN_TYPE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ 0, 0, OPEN_TYPE_constraint },
+	asn_MBR_value_52,
+	1,	/* Elements count */
+	&asn_SPC_value_specs_52	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RANfunctionID_ItemIEs_49[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, id),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_ProtocolIE_ID,
+		0,
+		{ &asn_OER_memb_id_constr_50, &asn_PER_memb_id_constr_50,  memb_id_constraint_49 },
+		0, 0, /* No default value */
+		"id"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, criticality),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_Criticality,
+		select_RANfunctionID_ItemIEs_criticality_type,
+		{ &asn_OER_memb_criticality_constr_51, &asn_PER_memb_criticality_constr_51,  memb_criticality_constraint_49 },
+		0, 0, /* No default value */
+		"criticality"
+		},
+	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, value),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_52,
+		select_RANfunctionID_ItemIEs_value_type,
+		{ &asn_OER_memb_value_constr_52, &asn_PER_memb_value_constr_52,  memb_value_constraint_49 },
+		0, 0, /* No default value */
+		"value"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANfunctionID_ItemIEs_tags_49[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANfunctionID_ItemIEs_tag2el_49[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_ItemIEs_specs_49 = {
+	sizeof(struct RANfunctionID_ItemIEs),
+	offsetof(struct RANfunctionID_ItemIEs, _asn_ctx),
+	asn_MAP_RANfunctionID_ItemIEs_tag2el_49,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	-1,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RANfunctionID_ItemIEs = {
+	"RANfunctionID-ItemIEs",
+	"RANfunctionID-ItemIEs",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANfunctionID_ItemIEs_tags_49,
+	sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_49)
+		/sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_49[0]), /* 1 */
+	asn_DEF_RANfunctionID_ItemIEs_tags_49,	/* Same as above */
+	sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_49)
+		/sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_49[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANfunctionID_ItemIEs_49,
+	3,	/* Elements count */
+	&asn_SPC_RANfunctionID_ItemIEs_specs_49	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_56[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs__value, choice.RANfunctionIDcause_Item),
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_RANfunctionIDcause_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"RANfunctionIDcause-Item"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_56[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionIDcause-Item */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_56 = {
+	sizeof(struct RANfunctionIDcause_ItemIEs__value),
+	offsetof(struct RANfunctionIDcause_ItemIEs__value, _asn_ctx),
+	offsetof(struct RANfunctionIDcause_ItemIEs__value, present),
+	sizeof(((struct RANfunctionIDcause_ItemIEs__value *)0)->present),
+	asn_MAP_value_tag2el_56,
+	1,	/* Count of tags in the map */
+	0, 0,
+	-1	/* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_56 = {
+	"value",
+	"value",
+	&asn_OP_OPEN_TYPE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ 0, 0, OPEN_TYPE_constraint },
+	asn_MBR_value_56,
+	1,	/* Elements count */
+	&asn_SPC_value_specs_56	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RANfunctionIDcause_ItemIEs_53[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, id),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_ProtocolIE_ID,
+		0,
+		{ &asn_OER_memb_id_constr_54, &asn_PER_memb_id_constr_54,  memb_id_constraint_53 },
+		0, 0, /* No default value */
+		"id"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, criticality),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_Criticality,
+		select_RANfunctionIDcause_ItemIEs_criticality_type,
+		{ &asn_OER_memb_criticality_constr_55, &asn_PER_memb_criticality_constr_55,  memb_criticality_constraint_53 },
+		0, 0, /* No default value */
+		"criticality"
+		},
+	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, value),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_56,
+		select_RANfunctionIDcause_ItemIEs_value_type,
+		{ &asn_OER_memb_value_constr_56, &asn_PER_memb_value_constr_56,  memb_value_constraint_53 },
+		0, 0, /* No default value */
+		"value"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANfunctionIDcause_ItemIEs_tags_53[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANfunctionIDcause_ItemIEs_tag2el_53[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_ItemIEs_specs_53 = {
 	sizeof(struct RANfunctionIDcause_ItemIEs),
 	offsetof(struct RANfunctionIDcause_ItemIEs, _asn_ctx),
-	asn_MAP_RANfunctionIDcause_ItemIEs_tag2el_21,
-	2,	/* Count of tags in the map */
+	asn_MAP_RANfunctionIDcause_ItemIEs_tag2el_53,
+	3,	/* Count of tags in the map */
 	0, 0, 0,	/* Optional elements (not needed) */
 	-1,	/* First extension addition */
 };
@@ -4889,19 +7657,19 @@
 	"RANfunctionIDcause-ItemIEs",
 	"RANfunctionIDcause-ItemIEs",
 	&asn_OP_SEQUENCE,
-	asn_DEF_RANfunctionIDcause_ItemIEs_tags_21,
-	sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_21)
-		/sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_21[0]), /* 1 */
-	asn_DEF_RANfunctionIDcause_ItemIEs_tags_21,	/* Same as above */
-	sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_21)
-		/sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_21[0]), /* 1 */
+	asn_DEF_RANfunctionIDcause_ItemIEs_tags_53,
+	sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_53)
+		/sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_53[0]), /* 1 */
+	asn_DEF_RANfunctionIDcause_ItemIEs_tags_53,	/* Same as above */
+	sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_53)
+		/sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_53[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_RANfunctionIDcause_ItemIEs_21,
+	asn_MBR_RANfunctionIDcause_ItemIEs_53,
 	3,	/* Elements count */
-	&asn_SPC_RANfunctionIDcause_ItemIEs_specs_21	/* Additional specs */
+	&asn_SPC_RANfunctionIDcause_ItemIEs_specs_53	/* Additional specs */
 };
 
-static asn_TYPE_member_t asn_MBR_value_28[] = {
+static asn_TYPE_member_t asn_MBR_value_60[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs__value, choice.RICrequestID),
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -4930,26 +7698,26 @@
 		"RICsubscriptionDetails"
 		},
 };
-static const unsigned asn_MAP_value_to_canonical_28[] = { 1, 0, 2 };
-static const unsigned asn_MAP_value_from_canonical_28[] = { 1, 0, 2 };
-static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_28[] = {
+static const unsigned asn_MAP_value_to_canonical_60[] = { 1, 0, 2 };
+static const unsigned asn_MAP_value_from_canonical_60[] = { 1, 0, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_60[] = {
     { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */
     { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */
     { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* RICsubscriptionDetails */
 };
-static asn_CHOICE_specifics_t asn_SPC_value_specs_28 = {
+static asn_CHOICE_specifics_t asn_SPC_value_specs_60 = {
 	sizeof(struct RICsubscriptionRequest_IEs__value),
 	offsetof(struct RICsubscriptionRequest_IEs__value, _asn_ctx),
 	offsetof(struct RICsubscriptionRequest_IEs__value, present),
 	sizeof(((struct RICsubscriptionRequest_IEs__value *)0)->present),
-	asn_MAP_value_tag2el_28,
+	asn_MAP_value_tag2el_60,
 	3,	/* Count of tags in the map */
-	asn_MAP_value_to_canonical_28,
-	asn_MAP_value_from_canonical_28,
+	asn_MAP_value_to_canonical_60,
+	asn_MAP_value_from_canonical_60,
 	-1	/* Extensions start */
 };
 static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_value_28 = {
+asn_TYPE_descriptor_t asn_DEF_value_60 = {
 	"value",
 	"value",
 	&asn_OP_OPEN_TYPE,
@@ -4958,52 +7726,53 @@
 	0,	/* No tags (pointer) */
 	0,	/* No tags (count) */
 	{ 0, 0, OPEN_TYPE_constraint },
-	asn_MBR_value_28,
+	asn_MBR_value_60,
 	3,	/* Elements count */
-	&asn_SPC_value_specs_28	/* Additional specs */
+	&asn_SPC_value_specs_60	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_IEs_25[] = {
+asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_IEs_57[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, id),
-		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_ProtocolIE_ID,
 		0,
-		{ &asn_OER_memb_id_constr_26, &asn_PER_memb_id_constr_26,  memb_id_constraint_25 },
+		{ &asn_OER_memb_id_constr_58, &asn_PER_memb_id_constr_58,  memb_id_constraint_57 },
 		0, 0, /* No default value */
 		"id"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, criticality),
-		(ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_Criticality,
 		select_RICsubscriptionRequest_IEs_criticality_type,
-		{ &asn_OER_memb_criticality_constr_27, &asn_PER_memb_criticality_constr_27,  memb_criticality_constraint_25 },
+		{ &asn_OER_memb_criticality_constr_59, &asn_PER_memb_criticality_constr_59,  memb_criticality_constraint_57 },
 		0, 0, /* No default value */
 		"criticality"
 		},
 	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, value),
-		-1 /* Ambiguous tag (ANY?) */,
-		0,
-		&asn_DEF_value_28,
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_60,
 		select_RICsubscriptionRequest_IEs_value_type,
-		{ &asn_OER_memb_value_constr_28, &asn_PER_memb_value_constr_28,  memb_value_constraint_25 },
+		{ &asn_OER_memb_value_constr_60, &asn_PER_memb_value_constr_60,  memb_value_constraint_57 },
 		0, 0, /* No default value */
 		"value"
 		},
 };
-static const ber_tlv_tag_t asn_DEF_RICsubscriptionRequest_IEs_tags_25[] = {
+static const ber_tlv_tag_t asn_DEF_RICsubscriptionRequest_IEs_tags_57[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionRequest_IEs_tag2el_25[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */
-    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */
+static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionRequest_IEs_tag2el_57[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
 };
-asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_IEs_specs_25 = {
+asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_IEs_specs_57 = {
 	sizeof(struct RICsubscriptionRequest_IEs),
 	offsetof(struct RICsubscriptionRequest_IEs, _asn_ctx),
-	asn_MAP_RICsubscriptionRequest_IEs_tag2el_25,
-	2,	/* Count of tags in the map */
+	asn_MAP_RICsubscriptionRequest_IEs_tag2el_57,
+	3,	/* Count of tags in the map */
 	0, 0, 0,	/* Optional elements (not needed) */
 	-1,	/* First extension addition */
 };
@@ -5011,19 +7780,19 @@
 	"RICsubscriptionRequest-IEs",
 	"RICsubscriptionRequest-IEs",
 	&asn_OP_SEQUENCE,
-	asn_DEF_RICsubscriptionRequest_IEs_tags_25,
-	sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_25)
-		/sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_25[0]), /* 1 */
-	asn_DEF_RICsubscriptionRequest_IEs_tags_25,	/* Same as above */
-	sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_25)
-		/sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_25[0]), /* 1 */
+	asn_DEF_RICsubscriptionRequest_IEs_tags_57,
+	sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_57)
+		/sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_57[0]), /* 1 */
+	asn_DEF_RICsubscriptionRequest_IEs_tags_57,	/* Same as above */
+	sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_57)
+		/sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_57[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_RICsubscriptionRequest_IEs_25,
+	asn_MBR_RICsubscriptionRequest_IEs_57,
 	3,	/* Elements count */
-	&asn_SPC_RICsubscriptionRequest_IEs_specs_25	/* Additional specs */
+	&asn_SPC_RICsubscriptionRequest_IEs_specs_57	/* Additional specs */
 };
 
-static asn_TYPE_member_t asn_MBR_value_32[] = {
+static asn_TYPE_member_t asn_MBR_value_64[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RICrequestID),
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -5061,27 +7830,27 @@
 		"RICaction-NotAdmitted-List"
 		},
 };
-static const unsigned asn_MAP_value_to_canonical_32[] = { 1, 0, 2, 3 };
-static const unsigned asn_MAP_value_from_canonical_32[] = { 1, 0, 2, 3 };
-static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_32[] = {
+static const unsigned asn_MAP_value_to_canonical_64[] = { 1, 0, 2, 3 };
+static const unsigned asn_MAP_value_from_canonical_64[] = { 1, 0, 2, 3 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_64[] = {
     { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */
     { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* RICrequestID */
     { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* RICaction-Admitted-List */
     { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 } /* RICaction-NotAdmitted-List */
 };
-static asn_CHOICE_specifics_t asn_SPC_value_specs_32 = {
+static asn_CHOICE_specifics_t asn_SPC_value_specs_64 = {
 	sizeof(struct RICsubscriptionResponse_IEs__value),
 	offsetof(struct RICsubscriptionResponse_IEs__value, _asn_ctx),
 	offsetof(struct RICsubscriptionResponse_IEs__value, present),
 	sizeof(((struct RICsubscriptionResponse_IEs__value *)0)->present),
-	asn_MAP_value_tag2el_32,
+	asn_MAP_value_tag2el_64,
 	4,	/* Count of tags in the map */
-	asn_MAP_value_to_canonical_32,
-	asn_MAP_value_from_canonical_32,
+	asn_MAP_value_to_canonical_64,
+	asn_MAP_value_from_canonical_64,
 	-1	/* Extensions start */
 };
 static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_value_32 = {
+asn_TYPE_descriptor_t asn_DEF_value_64 = {
 	"value",
 	"value",
 	&asn_OP_OPEN_TYPE,
@@ -5090,52 +7859,53 @@
 	0,	/* No tags (pointer) */
 	0,	/* No tags (count) */
 	{ 0, 0, OPEN_TYPE_constraint },
-	asn_MBR_value_32,
+	asn_MBR_value_64,
 	4,	/* Elements count */
-	&asn_SPC_value_specs_32	/* Additional specs */
+	&asn_SPC_value_specs_64	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_IEs_29[] = {
+asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_IEs_61[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, id),
-		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_ProtocolIE_ID,
 		0,
-		{ &asn_OER_memb_id_constr_30, &asn_PER_memb_id_constr_30,  memb_id_constraint_29 },
+		{ &asn_OER_memb_id_constr_62, &asn_PER_memb_id_constr_62,  memb_id_constraint_61 },
 		0, 0, /* No default value */
 		"id"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, criticality),
-		(ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_Criticality,
 		select_RICsubscriptionResponse_IEs_criticality_type,
-		{ &asn_OER_memb_criticality_constr_31, &asn_PER_memb_criticality_constr_31,  memb_criticality_constraint_29 },
+		{ &asn_OER_memb_criticality_constr_63, &asn_PER_memb_criticality_constr_63,  memb_criticality_constraint_61 },
 		0, 0, /* No default value */
 		"criticality"
 		},
 	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, value),
-		-1 /* Ambiguous tag (ANY?) */,
-		0,
-		&asn_DEF_value_32,
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_64,
 		select_RICsubscriptionResponse_IEs_value_type,
-		{ &asn_OER_memb_value_constr_32, &asn_PER_memb_value_constr_32,  memb_value_constraint_29 },
+		{ &asn_OER_memb_value_constr_64, &asn_PER_memb_value_constr_64,  memb_value_constraint_61 },
 		0, 0, /* No default value */
 		"value"
 		},
 };
-static const ber_tlv_tag_t asn_DEF_RICsubscriptionResponse_IEs_tags_29[] = {
+static const ber_tlv_tag_t asn_DEF_RICsubscriptionResponse_IEs_tags_61[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionResponse_IEs_tag2el_29[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */
-    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */
+static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionResponse_IEs_tag2el_61[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
 };
-asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_IEs_specs_29 = {
+asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_IEs_specs_61 = {
 	sizeof(struct RICsubscriptionResponse_IEs),
 	offsetof(struct RICsubscriptionResponse_IEs, _asn_ctx),
-	asn_MAP_RICsubscriptionResponse_IEs_tag2el_29,
-	2,	/* Count of tags in the map */
+	asn_MAP_RICsubscriptionResponse_IEs_tag2el_61,
+	3,	/* Count of tags in the map */
 	0, 0, 0,	/* Optional elements (not needed) */
 	-1,	/* First extension addition */
 };
@@ -5143,19 +7913,19 @@
 	"RICsubscriptionResponse-IEs",
 	"RICsubscriptionResponse-IEs",
 	&asn_OP_SEQUENCE,
-	asn_DEF_RICsubscriptionResponse_IEs_tags_29,
-	sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_29)
-		/sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_29[0]), /* 1 */
-	asn_DEF_RICsubscriptionResponse_IEs_tags_29,	/* Same as above */
-	sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_29)
-		/sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_29[0]), /* 1 */
+	asn_DEF_RICsubscriptionResponse_IEs_tags_61,
+	sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_61)
+		/sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_61[0]), /* 1 */
+	asn_DEF_RICsubscriptionResponse_IEs_tags_61,	/* Same as above */
+	sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_61)
+		/sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_61[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_RICsubscriptionResponse_IEs_29,
+	asn_MBR_RICsubscriptionResponse_IEs_61,
 	3,	/* Elements count */
-	&asn_SPC_RICsubscriptionResponse_IEs_specs_29	/* Additional specs */
+	&asn_SPC_RICsubscriptionResponse_IEs_specs_61	/* Additional specs */
 };
 
-static asn_TYPE_member_t asn_MBR_value_36[] = {
+static asn_TYPE_member_t asn_MBR_value_68[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.RICrequestID),
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -5174,14 +7944,14 @@
 		0, 0, /* No default value */
 		"RANfunctionID"
 		},
-	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.RICaction_NotAdmitted_List),
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.Cause),
+		-1 /* Ambiguous tag (CHOICE?) */,
 		0,
-		&asn_DEF_RICaction_NotAdmitted_List,
+		&asn_DEF_Cause,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
-		"RICaction-NotAdmitted-List"
+		"Cause"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.CriticalityDiagnostics),
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
@@ -5193,27 +7963,32 @@
 		"CriticalityDiagnostics"
 		},
 };
-static const unsigned asn_MAP_value_to_canonical_36[] = { 1, 0, 2, 3 };
-static const unsigned asn_MAP_value_from_canonical_36[] = { 1, 0, 2, 3 };
-static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_36[] = {
+static const unsigned asn_MAP_value_to_canonical_68[] = { 1, 0, 3, 2 };
+static const unsigned asn_MAP_value_from_canonical_68[] = { 1, 0, 3, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_68[] = {
     { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* RICrequestID */
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* RICaction-NotAdmitted-List */
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 } /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* ricRequest */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* ricService */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* e2Node */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 2, 0, 0 } /* misc */
 };
-static asn_CHOICE_specifics_t asn_SPC_value_specs_36 = {
+static asn_CHOICE_specifics_t asn_SPC_value_specs_68 = {
 	sizeof(struct RICsubscriptionFailure_IEs__value),
 	offsetof(struct RICsubscriptionFailure_IEs__value, _asn_ctx),
 	offsetof(struct RICsubscriptionFailure_IEs__value, present),
 	sizeof(((struct RICsubscriptionFailure_IEs__value *)0)->present),
-	asn_MAP_value_tag2el_36,
-	4,	/* Count of tags in the map */
-	asn_MAP_value_to_canonical_36,
-	asn_MAP_value_from_canonical_36,
+	asn_MAP_value_tag2el_68,
+	9,	/* Count of tags in the map */
+	asn_MAP_value_to_canonical_68,
+	asn_MAP_value_from_canonical_68,
 	-1	/* Extensions start */
 };
 static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_value_36 = {
+asn_TYPE_descriptor_t asn_DEF_value_68 = {
 	"value",
 	"value",
 	&asn_OP_OPEN_TYPE,
@@ -5222,52 +7997,53 @@
 	0,	/* No tags (pointer) */
 	0,	/* No tags (count) */
 	{ 0, 0, OPEN_TYPE_constraint },
-	asn_MBR_value_36,
+	asn_MBR_value_68,
 	4,	/* Elements count */
-	&asn_SPC_value_specs_36	/* Additional specs */
+	&asn_SPC_value_specs_68	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_IEs_33[] = {
+asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_IEs_65[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, id),
-		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_ProtocolIE_ID,
 		0,
-		{ &asn_OER_memb_id_constr_34, &asn_PER_memb_id_constr_34,  memb_id_constraint_33 },
+		{ &asn_OER_memb_id_constr_66, &asn_PER_memb_id_constr_66,  memb_id_constraint_65 },
 		0, 0, /* No default value */
 		"id"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, criticality),
-		(ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_Criticality,
 		select_RICsubscriptionFailure_IEs_criticality_type,
-		{ &asn_OER_memb_criticality_constr_35, &asn_PER_memb_criticality_constr_35,  memb_criticality_constraint_33 },
+		{ &asn_OER_memb_criticality_constr_67, &asn_PER_memb_criticality_constr_67,  memb_criticality_constraint_65 },
 		0, 0, /* No default value */
 		"criticality"
 		},
 	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, value),
-		-1 /* Ambiguous tag (ANY?) */,
-		0,
-		&asn_DEF_value_36,
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_68,
 		select_RICsubscriptionFailure_IEs_value_type,
-		{ &asn_OER_memb_value_constr_36, &asn_PER_memb_value_constr_36,  memb_value_constraint_33 },
+		{ &asn_OER_memb_value_constr_68, &asn_PER_memb_value_constr_68,  memb_value_constraint_65 },
 		0, 0, /* No default value */
 		"value"
 		},
 };
-static const ber_tlv_tag_t asn_DEF_RICsubscriptionFailure_IEs_tags_33[] = {
+static const ber_tlv_tag_t asn_DEF_RICsubscriptionFailure_IEs_tags_65[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionFailure_IEs_tag2el_33[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */
-    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */
+static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionFailure_IEs_tag2el_65[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
 };
-asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_IEs_specs_33 = {
+asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_IEs_specs_65 = {
 	sizeof(struct RICsubscriptionFailure_IEs),
 	offsetof(struct RICsubscriptionFailure_IEs, _asn_ctx),
-	asn_MAP_RICsubscriptionFailure_IEs_tag2el_33,
-	2,	/* Count of tags in the map */
+	asn_MAP_RICsubscriptionFailure_IEs_tag2el_65,
+	3,	/* Count of tags in the map */
 	0, 0, 0,	/* Optional elements (not needed) */
 	-1,	/* First extension addition */
 };
@@ -5275,19 +8051,19 @@
 	"RICsubscriptionFailure-IEs",
 	"RICsubscriptionFailure-IEs",
 	&asn_OP_SEQUENCE,
-	asn_DEF_RICsubscriptionFailure_IEs_tags_33,
-	sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_33)
-		/sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_33[0]), /* 1 */
-	asn_DEF_RICsubscriptionFailure_IEs_tags_33,	/* Same as above */
-	sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_33)
-		/sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_33[0]), /* 1 */
+	asn_DEF_RICsubscriptionFailure_IEs_tags_65,
+	sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_65)
+		/sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_65[0]), /* 1 */
+	asn_DEF_RICsubscriptionFailure_IEs_tags_65,	/* Same as above */
+	sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_65)
+		/sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_65[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_RICsubscriptionFailure_IEs_33,
+	asn_MBR_RICsubscriptionFailure_IEs_65,
 	3,	/* Elements count */
-	&asn_SPC_RICsubscriptionFailure_IEs_specs_33	/* Additional specs */
+	&asn_SPC_RICsubscriptionFailure_IEs_specs_65	/* Additional specs */
 };
 
-static asn_TYPE_member_t asn_MBR_value_40[] = {
+static asn_TYPE_member_t asn_MBR_value_72[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs__value, choice.RICrequestID),
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -5307,25 +8083,25 @@
 		"RANfunctionID"
 		},
 };
-static const unsigned asn_MAP_value_to_canonical_40[] = { 1, 0 };
-static const unsigned asn_MAP_value_from_canonical_40[] = { 1, 0 };
-static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_40[] = {
+static const unsigned asn_MAP_value_to_canonical_72[] = { 1, 0 };
+static const unsigned asn_MAP_value_from_canonical_72[] = { 1, 0 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_72[] = {
     { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */
     { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */
 };
-static asn_CHOICE_specifics_t asn_SPC_value_specs_40 = {
+static asn_CHOICE_specifics_t asn_SPC_value_specs_72 = {
 	sizeof(struct RICsubscriptionDeleteRequest_IEs__value),
 	offsetof(struct RICsubscriptionDeleteRequest_IEs__value, _asn_ctx),
 	offsetof(struct RICsubscriptionDeleteRequest_IEs__value, present),
 	sizeof(((struct RICsubscriptionDeleteRequest_IEs__value *)0)->present),
-	asn_MAP_value_tag2el_40,
+	asn_MAP_value_tag2el_72,
 	2,	/* Count of tags in the map */
-	asn_MAP_value_to_canonical_40,
-	asn_MAP_value_from_canonical_40,
+	asn_MAP_value_to_canonical_72,
+	asn_MAP_value_from_canonical_72,
 	-1	/* Extensions start */
 };
 static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_value_40 = {
+asn_TYPE_descriptor_t asn_DEF_value_72 = {
 	"value",
 	"value",
 	&asn_OP_OPEN_TYPE,
@@ -5334,52 +8110,53 @@
 	0,	/* No tags (pointer) */
 	0,	/* No tags (count) */
 	{ 0, 0, OPEN_TYPE_constraint },
-	asn_MBR_value_40,
+	asn_MBR_value_72,
 	2,	/* Elements count */
-	&asn_SPC_value_specs_40	/* Additional specs */
+	&asn_SPC_value_specs_72	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_IEs_37[] = {
+asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_IEs_69[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, id),
-		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_ProtocolIE_ID,
 		0,
-		{ &asn_OER_memb_id_constr_38, &asn_PER_memb_id_constr_38,  memb_id_constraint_37 },
+		{ &asn_OER_memb_id_constr_70, &asn_PER_memb_id_constr_70,  memb_id_constraint_69 },
 		0, 0, /* No default value */
 		"id"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, criticality),
-		(ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_Criticality,
 		select_RICsubscriptionDeleteRequest_IEs_criticality_type,
-		{ &asn_OER_memb_criticality_constr_39, &asn_PER_memb_criticality_constr_39,  memb_criticality_constraint_37 },
+		{ &asn_OER_memb_criticality_constr_71, &asn_PER_memb_criticality_constr_71,  memb_criticality_constraint_69 },
 		0, 0, /* No default value */
 		"criticality"
 		},
 	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, value),
-		-1 /* Ambiguous tag (ANY?) */,
-		0,
-		&asn_DEF_value_40,
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_72,
 		select_RICsubscriptionDeleteRequest_IEs_value_type,
-		{ &asn_OER_memb_value_constr_40, &asn_PER_memb_value_constr_40,  memb_value_constraint_37 },
+		{ &asn_OER_memb_value_constr_72, &asn_PER_memb_value_constr_72,  memb_value_constraint_69 },
 		0, 0, /* No default value */
 		"value"
 		},
 };
-static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37[] = {
+static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_69[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequest_IEs_tag2el_37[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */
-    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */
+static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequest_IEs_tag2el_69[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
 };
-asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_37 = {
+asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_69 = {
 	sizeof(struct RICsubscriptionDeleteRequest_IEs),
 	offsetof(struct RICsubscriptionDeleteRequest_IEs, _asn_ctx),
-	asn_MAP_RICsubscriptionDeleteRequest_IEs_tag2el_37,
-	2,	/* Count of tags in the map */
+	asn_MAP_RICsubscriptionDeleteRequest_IEs_tag2el_69,
+	3,	/* Count of tags in the map */
 	0, 0, 0,	/* Optional elements (not needed) */
 	-1,	/* First extension addition */
 };
@@ -5387,19 +8164,19 @@
 	"RICsubscriptionDeleteRequest-IEs",
 	"RICsubscriptionDeleteRequest-IEs",
 	&asn_OP_SEQUENCE,
-	asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37,
-	sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37)
-		/sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37[0]), /* 1 */
-	asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37,	/* Same as above */
-	sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37)
-		/sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37[0]), /* 1 */
+	asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_69,
+	sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_69)
+		/sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_69[0]), /* 1 */
+	asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_69,	/* Same as above */
+	sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_69)
+		/sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_69[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_RICsubscriptionDeleteRequest_IEs_37,
+	asn_MBR_RICsubscriptionDeleteRequest_IEs_69,
 	3,	/* Elements count */
-	&asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_37	/* Additional specs */
+	&asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_69	/* Additional specs */
 };
 
-static asn_TYPE_member_t asn_MBR_value_44[] = {
+static asn_TYPE_member_t asn_MBR_value_76[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs__value, choice.RICrequestID),
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -5419,25 +8196,25 @@
 		"RANfunctionID"
 		},
 };
-static const unsigned asn_MAP_value_to_canonical_44[] = { 1, 0 };
-static const unsigned asn_MAP_value_from_canonical_44[] = { 1, 0 };
-static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_44[] = {
+static const unsigned asn_MAP_value_to_canonical_76[] = { 1, 0 };
+static const unsigned asn_MAP_value_from_canonical_76[] = { 1, 0 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_76[] = {
     { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */
     { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */
 };
-static asn_CHOICE_specifics_t asn_SPC_value_specs_44 = {
+static asn_CHOICE_specifics_t asn_SPC_value_specs_76 = {
 	sizeof(struct RICsubscriptionDeleteResponse_IEs__value),
 	offsetof(struct RICsubscriptionDeleteResponse_IEs__value, _asn_ctx),
 	offsetof(struct RICsubscriptionDeleteResponse_IEs__value, present),
 	sizeof(((struct RICsubscriptionDeleteResponse_IEs__value *)0)->present),
-	asn_MAP_value_tag2el_44,
+	asn_MAP_value_tag2el_76,
 	2,	/* Count of tags in the map */
-	asn_MAP_value_to_canonical_44,
-	asn_MAP_value_from_canonical_44,
+	asn_MAP_value_to_canonical_76,
+	asn_MAP_value_from_canonical_76,
 	-1	/* Extensions start */
 };
 static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_value_44 = {
+asn_TYPE_descriptor_t asn_DEF_value_76 = {
 	"value",
 	"value",
 	&asn_OP_OPEN_TYPE,
@@ -5446,52 +8223,53 @@
 	0,	/* No tags (pointer) */
 	0,	/* No tags (count) */
 	{ 0, 0, OPEN_TYPE_constraint },
-	asn_MBR_value_44,
+	asn_MBR_value_76,
 	2,	/* Elements count */
-	&asn_SPC_value_specs_44	/* Additional specs */
+	&asn_SPC_value_specs_76	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_IEs_41[] = {
+asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_IEs_73[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, id),
-		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_ProtocolIE_ID,
 		0,
-		{ &asn_OER_memb_id_constr_42, &asn_PER_memb_id_constr_42,  memb_id_constraint_41 },
+		{ &asn_OER_memb_id_constr_74, &asn_PER_memb_id_constr_74,  memb_id_constraint_73 },
 		0, 0, /* No default value */
 		"id"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, criticality),
-		(ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_Criticality,
 		select_RICsubscriptionDeleteResponse_IEs_criticality_type,
-		{ &asn_OER_memb_criticality_constr_43, &asn_PER_memb_criticality_constr_43,  memb_criticality_constraint_41 },
+		{ &asn_OER_memb_criticality_constr_75, &asn_PER_memb_criticality_constr_75,  memb_criticality_constraint_73 },
 		0, 0, /* No default value */
 		"criticality"
 		},
 	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, value),
-		-1 /* Ambiguous tag (ANY?) */,
-		0,
-		&asn_DEF_value_44,
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_76,
 		select_RICsubscriptionDeleteResponse_IEs_value_type,
-		{ &asn_OER_memb_value_constr_44, &asn_PER_memb_value_constr_44,  memb_value_constraint_41 },
+		{ &asn_OER_memb_value_constr_76, &asn_PER_memb_value_constr_76,  memb_value_constraint_73 },
 		0, 0, /* No default value */
 		"value"
 		},
 };
-static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41[] = {
+static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_73[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteResponse_IEs_tag2el_41[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */
-    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */
+static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteResponse_IEs_tag2el_73[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
 };
-asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_41 = {
+asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_73 = {
 	sizeof(struct RICsubscriptionDeleteResponse_IEs),
 	offsetof(struct RICsubscriptionDeleteResponse_IEs, _asn_ctx),
-	asn_MAP_RICsubscriptionDeleteResponse_IEs_tag2el_41,
-	2,	/* Count of tags in the map */
+	asn_MAP_RICsubscriptionDeleteResponse_IEs_tag2el_73,
+	3,	/* Count of tags in the map */
 	0, 0, 0,	/* Optional elements (not needed) */
 	-1,	/* First extension addition */
 };
@@ -5499,19 +8277,19 @@
 	"RICsubscriptionDeleteResponse-IEs",
 	"RICsubscriptionDeleteResponse-IEs",
 	&asn_OP_SEQUENCE,
-	asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41,
-	sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41)
-		/sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41[0]), /* 1 */
-	asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41,	/* Same as above */
-	sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41)
-		/sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41[0]), /* 1 */
+	asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_73,
+	sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_73)
+		/sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_73[0]), /* 1 */
+	asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_73,	/* Same as above */
+	sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_73)
+		/sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_73[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_RICsubscriptionDeleteResponse_IEs_41,
+	asn_MBR_RICsubscriptionDeleteResponse_IEs_73,
 	3,	/* Elements count */
-	&asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_41	/* Additional specs */
+	&asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_73	/* Additional specs */
 };
 
-static asn_TYPE_member_t asn_MBR_value_48[] = {
+static asn_TYPE_member_t asn_MBR_value_80[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.RICrequestID),
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -5549,31 +8327,32 @@
 		"CriticalityDiagnostics"
 		},
 };
-static const unsigned asn_MAP_value_to_canonical_48[] = { 1, 0, 3, 2 };
-static const unsigned asn_MAP_value_from_canonical_48[] = { 1, 0, 3, 2 };
-static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_48[] = {
+static const unsigned asn_MAP_value_to_canonical_80[] = { 1, 0, 3, 2 };
+static const unsigned asn_MAP_value_from_canonical_80[] = { 1, 0, 3, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_80[] = {
     { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */
     { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */
     { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* CriticalityDiagnostics */
     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* ricRequest */
     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* ricService */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* transport */
-    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* protocol */
-    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 } /* misc */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* e2Node */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 2, 0, 0 } /* misc */
 };
-static asn_CHOICE_specifics_t asn_SPC_value_specs_48 = {
+static asn_CHOICE_specifics_t asn_SPC_value_specs_80 = {
 	sizeof(struct RICsubscriptionDeleteFailure_IEs__value),
 	offsetof(struct RICsubscriptionDeleteFailure_IEs__value, _asn_ctx),
 	offsetof(struct RICsubscriptionDeleteFailure_IEs__value, present),
 	sizeof(((struct RICsubscriptionDeleteFailure_IEs__value *)0)->present),
-	asn_MAP_value_tag2el_48,
-	8,	/* Count of tags in the map */
-	asn_MAP_value_to_canonical_48,
-	asn_MAP_value_from_canonical_48,
+	asn_MAP_value_tag2el_80,
+	9,	/* Count of tags in the map */
+	asn_MAP_value_to_canonical_80,
+	asn_MAP_value_from_canonical_80,
 	-1	/* Extensions start */
 };
 static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_value_48 = {
+asn_TYPE_descriptor_t asn_DEF_value_80 = {
 	"value",
 	"value",
 	&asn_OP_OPEN_TYPE,
@@ -5582,52 +8361,53 @@
 	0,	/* No tags (pointer) */
 	0,	/* No tags (count) */
 	{ 0, 0, OPEN_TYPE_constraint },
-	asn_MBR_value_48,
+	asn_MBR_value_80,
 	4,	/* Elements count */
-	&asn_SPC_value_specs_48	/* Additional specs */
+	&asn_SPC_value_specs_80	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_IEs_45[] = {
+asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_IEs_77[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, id),
-		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_ProtocolIE_ID,
 		0,
-		{ &asn_OER_memb_id_constr_46, &asn_PER_memb_id_constr_46,  memb_id_constraint_45 },
+		{ &asn_OER_memb_id_constr_78, &asn_PER_memb_id_constr_78,  memb_id_constraint_77 },
 		0, 0, /* No default value */
 		"id"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, criticality),
-		(ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_Criticality,
 		select_RICsubscriptionDeleteFailure_IEs_criticality_type,
-		{ &asn_OER_memb_criticality_constr_47, &asn_PER_memb_criticality_constr_47,  memb_criticality_constraint_45 },
+		{ &asn_OER_memb_criticality_constr_79, &asn_PER_memb_criticality_constr_79,  memb_criticality_constraint_77 },
 		0, 0, /* No default value */
 		"criticality"
 		},
 	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, value),
-		-1 /* Ambiguous tag (ANY?) */,
-		0,
-		&asn_DEF_value_48,
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_80,
 		select_RICsubscriptionDeleteFailure_IEs_value_type,
-		{ &asn_OER_memb_value_constr_48, &asn_PER_memb_value_constr_48,  memb_value_constraint_45 },
+		{ &asn_OER_memb_value_constr_80, &asn_PER_memb_value_constr_80,  memb_value_constraint_77 },
 		0, 0, /* No default value */
 		"value"
 		},
 };
-static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45[] = {
+static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_77[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteFailure_IEs_tag2el_45[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */
-    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */
+static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteFailure_IEs_tag2el_77[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
 };
-asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_45 = {
+asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_77 = {
 	sizeof(struct RICsubscriptionDeleteFailure_IEs),
 	offsetof(struct RICsubscriptionDeleteFailure_IEs, _asn_ctx),
-	asn_MAP_RICsubscriptionDeleteFailure_IEs_tag2el_45,
-	2,	/* Count of tags in the map */
+	asn_MAP_RICsubscriptionDeleteFailure_IEs_tag2el_77,
+	3,	/* Count of tags in the map */
 	0, 0, 0,	/* Optional elements (not needed) */
 	-1,	/* First extension addition */
 };
@@ -5635,19 +8415,119 @@
 	"RICsubscriptionDeleteFailure-IEs",
 	"RICsubscriptionDeleteFailure-IEs",
 	&asn_OP_SEQUENCE,
-	asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45,
-	sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45)
-		/sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45[0]), /* 1 */
-	asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45,	/* Same as above */
-	sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45)
-		/sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45[0]), /* 1 */
+	asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_77,
+	sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_77)
+		/sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_77[0]), /* 1 */
+	asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_77,	/* Same as above */
+	sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_77)
+		/sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_77[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_RICsubscriptionDeleteFailure_IEs_45,
+	asn_MBR_RICsubscriptionDeleteFailure_IEs_77,
 	3,	/* Elements count */
-	&asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_45	/* Additional specs */
+	&asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_77	/* Additional specs */
 };
 
-static asn_TYPE_member_t asn_MBR_value_52[] = {
+static asn_TYPE_member_t asn_MBR_value_84[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequired_IEs__value, choice.RICsubscription_List_withCause),
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_RICsubscription_List_withCause,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"RICsubscription-List-withCause"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_84[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICsubscription-List-withCause */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_84 = {
+	sizeof(struct RICsubscriptionDeleteRequired_IEs__value),
+	offsetof(struct RICsubscriptionDeleteRequired_IEs__value, _asn_ctx),
+	offsetof(struct RICsubscriptionDeleteRequired_IEs__value, present),
+	sizeof(((struct RICsubscriptionDeleteRequired_IEs__value *)0)->present),
+	asn_MAP_value_tag2el_84,
+	1,	/* Count of tags in the map */
+	0, 0,
+	-1	/* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_84 = {
+	"value",
+	"value",
+	&asn_OP_OPEN_TYPE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ 0, 0, OPEN_TYPE_constraint },
+	asn_MBR_value_84,
+	1,	/* Elements count */
+	&asn_SPC_value_specs_84	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequired_IEs_81[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequired_IEs, id),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_ProtocolIE_ID,
+		0,
+		{ &asn_OER_memb_id_constr_82, &asn_PER_memb_id_constr_82,  memb_id_constraint_81 },
+		0, 0, /* No default value */
+		"id"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequired_IEs, criticality),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_Criticality,
+		select_RICsubscriptionDeleteRequired_IEs_criticality_type,
+		{ &asn_OER_memb_criticality_constr_83, &asn_PER_memb_criticality_constr_83,  memb_criticality_constraint_81 },
+		0, 0, /* No default value */
+		"criticality"
+		},
+	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequired_IEs, value),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_84,
+		select_RICsubscriptionDeleteRequired_IEs_value_type,
+		{ &asn_OER_memb_value_constr_84, &asn_PER_memb_value_constr_84,  memb_value_constraint_81 },
+		0, 0, /* No default value */
+		"value"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_81[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequired_IEs_tag2el_81[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequired_IEs_specs_81 = {
+	sizeof(struct RICsubscriptionDeleteRequired_IEs),
+	offsetof(struct RICsubscriptionDeleteRequired_IEs, _asn_ctx),
+	asn_MAP_RICsubscriptionDeleteRequired_IEs_tag2el_81,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	-1,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequired_IEs = {
+	"RICsubscriptionDeleteRequired-IEs",
+	"RICsubscriptionDeleteRequired-IEs",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_81,
+	sizeof(asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_81)
+		/sizeof(asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_81[0]), /* 1 */
+	asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_81,	/* Same as above */
+	sizeof(asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_81)
+		/sizeof(asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_81[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RICsubscriptionDeleteRequired_IEs_81,
+	3,	/* Elements count */
+	&asn_SPC_RICsubscriptionDeleteRequired_IEs_specs_81	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_88[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICrequestID),
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -5721,9 +8601,9 @@
 		"RICcallProcessID"
 		},
 };
-static const unsigned asn_MAP_value_to_canonical_52[] = { 1, 2, 3, 5, 6, 7, 4, 0 };
-static const unsigned asn_MAP_value_from_canonical_52[] = { 7, 0, 1, 2, 6, 3, 4, 5 };
-static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_52[] = {
+static const unsigned asn_MAP_value_to_canonical_88[] = { 1, 2, 3, 5, 6, 7, 4, 0 };
+static const unsigned asn_MAP_value_from_canonical_88[] = { 7, 0, 1, 2, 6, 3, 4, 5 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_88[] = {
     { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 2 }, /* RANfunctionID */
     { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -1, 1 }, /* RICactionID */
     { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -2, 0 }, /* RICindicationSN */
@@ -5733,19 +8613,19 @@
     { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 4, 0, 0 }, /* RICindicationType */
     { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */
 };
-static asn_CHOICE_specifics_t asn_SPC_value_specs_52 = {
+static asn_CHOICE_specifics_t asn_SPC_value_specs_88 = {
 	sizeof(struct RICindication_IEs__value),
 	offsetof(struct RICindication_IEs__value, _asn_ctx),
 	offsetof(struct RICindication_IEs__value, present),
 	sizeof(((struct RICindication_IEs__value *)0)->present),
-	asn_MAP_value_tag2el_52,
+	asn_MAP_value_tag2el_88,
 	8,	/* Count of tags in the map */
-	asn_MAP_value_to_canonical_52,
-	asn_MAP_value_from_canonical_52,
+	asn_MAP_value_to_canonical_88,
+	asn_MAP_value_from_canonical_88,
 	-1	/* Extensions start */
 };
 static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_value_52 = {
+asn_TYPE_descriptor_t asn_DEF_value_88 = {
 	"value",
 	"value",
 	&asn_OP_OPEN_TYPE,
@@ -5754,52 +8634,53 @@
 	0,	/* No tags (pointer) */
 	0,	/* No tags (count) */
 	{ 0, 0, OPEN_TYPE_constraint },
-	asn_MBR_value_52,
+	asn_MBR_value_88,
 	8,	/* Elements count */
-	&asn_SPC_value_specs_52	/* Additional specs */
+	&asn_SPC_value_specs_88	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_RICindication_IEs_49[] = {
+asn_TYPE_member_t asn_MBR_RICindication_IEs_85[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, id),
-		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_ProtocolIE_ID,
 		0,
-		{ &asn_OER_memb_id_constr_50, &asn_PER_memb_id_constr_50,  memb_id_constraint_49 },
+		{ &asn_OER_memb_id_constr_86, &asn_PER_memb_id_constr_86,  memb_id_constraint_85 },
 		0, 0, /* No default value */
 		"id"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, criticality),
-		(ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_Criticality,
 		select_RICindication_IEs_criticality_type,
-		{ &asn_OER_memb_criticality_constr_51, &asn_PER_memb_criticality_constr_51,  memb_criticality_constraint_49 },
+		{ &asn_OER_memb_criticality_constr_87, &asn_PER_memb_criticality_constr_87,  memb_criticality_constraint_85 },
 		0, 0, /* No default value */
 		"criticality"
 		},
 	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, value),
-		-1 /* Ambiguous tag (ANY?) */,
-		0,
-		&asn_DEF_value_52,
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_88,
 		select_RICindication_IEs_value_type,
-		{ &asn_OER_memb_value_constr_52, &asn_PER_memb_value_constr_52,  memb_value_constraint_49 },
+		{ &asn_OER_memb_value_constr_88, &asn_PER_memb_value_constr_88,  memb_value_constraint_85 },
 		0, 0, /* No default value */
 		"value"
 		},
 };
-static const ber_tlv_tag_t asn_DEF_RICindication_IEs_tags_49[] = {
+static const ber_tlv_tag_t asn_DEF_RICindication_IEs_tags_85[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-static const asn_TYPE_tag2member_t asn_MAP_RICindication_IEs_tag2el_49[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */
-    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */
+static const asn_TYPE_tag2member_t asn_MAP_RICindication_IEs_tag2el_85[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
 };
-asn_SEQUENCE_specifics_t asn_SPC_RICindication_IEs_specs_49 = {
+asn_SEQUENCE_specifics_t asn_SPC_RICindication_IEs_specs_85 = {
 	sizeof(struct RICindication_IEs),
 	offsetof(struct RICindication_IEs, _asn_ctx),
-	asn_MAP_RICindication_IEs_tag2el_49,
-	2,	/* Count of tags in the map */
+	asn_MAP_RICindication_IEs_tag2el_85,
+	3,	/* Count of tags in the map */
 	0, 0, 0,	/* Optional elements (not needed) */
 	-1,	/* First extension addition */
 };
@@ -5807,19 +8688,19 @@
 	"RICindication-IEs",
 	"RICindication-IEs",
 	&asn_OP_SEQUENCE,
-	asn_DEF_RICindication_IEs_tags_49,
-	sizeof(asn_DEF_RICindication_IEs_tags_49)
-		/sizeof(asn_DEF_RICindication_IEs_tags_49[0]), /* 1 */
-	asn_DEF_RICindication_IEs_tags_49,	/* Same as above */
-	sizeof(asn_DEF_RICindication_IEs_tags_49)
-		/sizeof(asn_DEF_RICindication_IEs_tags_49[0]), /* 1 */
+	asn_DEF_RICindication_IEs_tags_85,
+	sizeof(asn_DEF_RICindication_IEs_tags_85)
+		/sizeof(asn_DEF_RICindication_IEs_tags_85[0]), /* 1 */
+	asn_DEF_RICindication_IEs_tags_85,	/* Same as above */
+	sizeof(asn_DEF_RICindication_IEs_tags_85)
+		/sizeof(asn_DEF_RICindication_IEs_tags_85[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_RICindication_IEs_49,
+	asn_MBR_RICindication_IEs_85,
 	3,	/* Elements count */
-	&asn_SPC_RICindication_IEs_specs_49	/* Additional specs */
+	&asn_SPC_RICindication_IEs_specs_85	/* Additional specs */
 };
 
-static asn_TYPE_member_t asn_MBR_value_56[] = {
+static asn_TYPE_member_t asn_MBR_value_92[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICrequestID),
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -5875,9 +8756,9 @@
 		"RICcontrolAckRequest"
 		},
 };
-static const unsigned asn_MAP_value_to_canonical_56[] = { 1, 2, 3, 4, 5, 0 };
-static const unsigned asn_MAP_value_from_canonical_56[] = { 5, 0, 1, 2, 3, 4 };
-static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_56[] = {
+static const unsigned asn_MAP_value_to_canonical_92[] = { 1, 2, 3, 4, 5, 0 };
+static const unsigned asn_MAP_value_from_canonical_92[] = { 5, 0, 1, 2, 3, 4 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_92[] = {
     { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */
     { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 2 }, /* RICcallProcessID */
     { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, -1, 1 }, /* RICcontrolHeader */
@@ -5885,19 +8766,19 @@
     { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, 0, 0 }, /* RICcontrolAckRequest */
     { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */
 };
-static asn_CHOICE_specifics_t asn_SPC_value_specs_56 = {
+static asn_CHOICE_specifics_t asn_SPC_value_specs_92 = {
 	sizeof(struct RICcontrolRequest_IEs__value),
 	offsetof(struct RICcontrolRequest_IEs__value, _asn_ctx),
 	offsetof(struct RICcontrolRequest_IEs__value, present),
 	sizeof(((struct RICcontrolRequest_IEs__value *)0)->present),
-	asn_MAP_value_tag2el_56,
+	asn_MAP_value_tag2el_92,
 	6,	/* Count of tags in the map */
-	asn_MAP_value_to_canonical_56,
-	asn_MAP_value_from_canonical_56,
+	asn_MAP_value_to_canonical_92,
+	asn_MAP_value_from_canonical_92,
 	-1	/* Extensions start */
 };
 static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_value_56 = {
+asn_TYPE_descriptor_t asn_DEF_value_92 = {
 	"value",
 	"value",
 	&asn_OP_OPEN_TYPE,
@@ -5906,52 +8787,53 @@
 	0,	/* No tags (pointer) */
 	0,	/* No tags (count) */
 	{ 0, 0, OPEN_TYPE_constraint },
-	asn_MBR_value_56,
+	asn_MBR_value_92,
 	6,	/* Elements count */
-	&asn_SPC_value_specs_56	/* Additional specs */
+	&asn_SPC_value_specs_92	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_RICcontrolRequest_IEs_53[] = {
+asn_TYPE_member_t asn_MBR_RICcontrolRequest_IEs_89[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, id),
-		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_ProtocolIE_ID,
 		0,
-		{ &asn_OER_memb_id_constr_54, &asn_PER_memb_id_constr_54,  memb_id_constraint_53 },
+		{ &asn_OER_memb_id_constr_90, &asn_PER_memb_id_constr_90,  memb_id_constraint_89 },
 		0, 0, /* No default value */
 		"id"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, criticality),
-		(ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_Criticality,
 		select_RICcontrolRequest_IEs_criticality_type,
-		{ &asn_OER_memb_criticality_constr_55, &asn_PER_memb_criticality_constr_55,  memb_criticality_constraint_53 },
+		{ &asn_OER_memb_criticality_constr_91, &asn_PER_memb_criticality_constr_91,  memb_criticality_constraint_89 },
 		0, 0, /* No default value */
 		"criticality"
 		},
 	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, value),
-		-1 /* Ambiguous tag (ANY?) */,
-		0,
-		&asn_DEF_value_56,
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_92,
 		select_RICcontrolRequest_IEs_value_type,
-		{ &asn_OER_memb_value_constr_56, &asn_PER_memb_value_constr_56,  memb_value_constraint_53 },
+		{ &asn_OER_memb_value_constr_92, &asn_PER_memb_value_constr_92,  memb_value_constraint_89 },
 		0, 0, /* No default value */
 		"value"
 		},
 };
-static const ber_tlv_tag_t asn_DEF_RICcontrolRequest_IEs_tags_53[] = {
+static const ber_tlv_tag_t asn_DEF_RICcontrolRequest_IEs_tags_89[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-static const asn_TYPE_tag2member_t asn_MAP_RICcontrolRequest_IEs_tag2el_53[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */
-    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */
+static const asn_TYPE_tag2member_t asn_MAP_RICcontrolRequest_IEs_tag2el_89[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
 };
-asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_IEs_specs_53 = {
+asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_IEs_specs_89 = {
 	sizeof(struct RICcontrolRequest_IEs),
 	offsetof(struct RICcontrolRequest_IEs, _asn_ctx),
-	asn_MAP_RICcontrolRequest_IEs_tag2el_53,
-	2,	/* Count of tags in the map */
+	asn_MAP_RICcontrolRequest_IEs_tag2el_89,
+	3,	/* Count of tags in the map */
 	0, 0, 0,	/* Optional elements (not needed) */
 	-1,	/* First extension addition */
 };
@@ -5959,19 +8841,19 @@
 	"RICcontrolRequest-IEs",
 	"RICcontrolRequest-IEs",
 	&asn_OP_SEQUENCE,
-	asn_DEF_RICcontrolRequest_IEs_tags_53,
-	sizeof(asn_DEF_RICcontrolRequest_IEs_tags_53)
-		/sizeof(asn_DEF_RICcontrolRequest_IEs_tags_53[0]), /* 1 */
-	asn_DEF_RICcontrolRequest_IEs_tags_53,	/* Same as above */
-	sizeof(asn_DEF_RICcontrolRequest_IEs_tags_53)
-		/sizeof(asn_DEF_RICcontrolRequest_IEs_tags_53[0]), /* 1 */
+	asn_DEF_RICcontrolRequest_IEs_tags_89,
+	sizeof(asn_DEF_RICcontrolRequest_IEs_tags_89)
+		/sizeof(asn_DEF_RICcontrolRequest_IEs_tags_89[0]), /* 1 */
+	asn_DEF_RICcontrolRequest_IEs_tags_89,	/* Same as above */
+	sizeof(asn_DEF_RICcontrolRequest_IEs_tags_89)
+		/sizeof(asn_DEF_RICcontrolRequest_IEs_tags_89[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_RICcontrolRequest_IEs_53,
+	asn_MBR_RICcontrolRequest_IEs_89,
 	3,	/* Elements count */
-	&asn_SPC_RICcontrolRequest_IEs_specs_53	/* Additional specs */
+	&asn_SPC_RICcontrolRequest_IEs_specs_89	/* Additional specs */
 };
 
-static asn_TYPE_member_t asn_MBR_value_60[] = {
+static asn_TYPE_member_t asn_MBR_value_96[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICrequestID),
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -5999,15 +8881,6 @@
 		0, 0, /* No default value */
 		"RICcallProcessID"
 		},
-	{ ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICcontrolStatus),
-		(ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
-		0,
-		&asn_DEF_RICcontrolStatus,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"RICcontrolStatus"
-		},
 	{ ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICcontrolOutcome),
 		(ASN_TAG_CLASS_UNIVERSAL | (4 << 2)),
 		0,
@@ -6018,28 +8891,27 @@
 		"RICcontrolOutcome"
 		},
 };
-static const unsigned asn_MAP_value_to_canonical_60[] = { 1, 2, 4, 3, 0 };
-static const unsigned asn_MAP_value_from_canonical_60[] = { 4, 0, 1, 3, 2 };
-static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_60[] = {
+static const unsigned asn_MAP_value_to_canonical_96[] = { 1, 2, 3, 0 };
+static const unsigned asn_MAP_value_from_canonical_96[] = { 3, 0, 1, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_96[] = {
     { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */
     { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 1 }, /* RICcallProcessID */
-    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, -1, 0 }, /* RICcontrolOutcome */
-    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 3, 0, 0 }, /* RICcontrolStatus */
+    { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, -1, 0 }, /* RICcontrolOutcome */
     { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */
 };
-static asn_CHOICE_specifics_t asn_SPC_value_specs_60 = {
+static asn_CHOICE_specifics_t asn_SPC_value_specs_96 = {
 	sizeof(struct RICcontrolAcknowledge_IEs__value),
 	offsetof(struct RICcontrolAcknowledge_IEs__value, _asn_ctx),
 	offsetof(struct RICcontrolAcknowledge_IEs__value, present),
 	sizeof(((struct RICcontrolAcknowledge_IEs__value *)0)->present),
-	asn_MAP_value_tag2el_60,
-	5,	/* Count of tags in the map */
-	asn_MAP_value_to_canonical_60,
-	asn_MAP_value_from_canonical_60,
+	asn_MAP_value_tag2el_96,
+	4,	/* Count of tags in the map */
+	asn_MAP_value_to_canonical_96,
+	asn_MAP_value_from_canonical_96,
 	-1	/* Extensions start */
 };
 static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_value_60 = {
+asn_TYPE_descriptor_t asn_DEF_value_96 = {
 	"value",
 	"value",
 	&asn_OP_OPEN_TYPE,
@@ -6048,52 +8920,53 @@
 	0,	/* No tags (pointer) */
 	0,	/* No tags (count) */
 	{ 0, 0, OPEN_TYPE_constraint },
-	asn_MBR_value_60,
-	5,	/* Elements count */
-	&asn_SPC_value_specs_60	/* Additional specs */
+	asn_MBR_value_96,
+	4,	/* Elements count */
+	&asn_SPC_value_specs_96	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_IEs_57[] = {
+asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_IEs_93[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, id),
-		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_ProtocolIE_ID,
 		0,
-		{ &asn_OER_memb_id_constr_58, &asn_PER_memb_id_constr_58,  memb_id_constraint_57 },
+		{ &asn_OER_memb_id_constr_94, &asn_PER_memb_id_constr_94,  memb_id_constraint_93 },
 		0, 0, /* No default value */
 		"id"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, criticality),
-		(ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_Criticality,
 		select_RICcontrolAcknowledge_IEs_criticality_type,
-		{ &asn_OER_memb_criticality_constr_59, &asn_PER_memb_criticality_constr_59,  memb_criticality_constraint_57 },
+		{ &asn_OER_memb_criticality_constr_95, &asn_PER_memb_criticality_constr_95,  memb_criticality_constraint_93 },
 		0, 0, /* No default value */
 		"criticality"
 		},
 	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, value),
-		-1 /* Ambiguous tag (ANY?) */,
-		0,
-		&asn_DEF_value_60,
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_96,
 		select_RICcontrolAcknowledge_IEs_value_type,
-		{ &asn_OER_memb_value_constr_60, &asn_PER_memb_value_constr_60,  memb_value_constraint_57 },
+		{ &asn_OER_memb_value_constr_96, &asn_PER_memb_value_constr_96,  memb_value_constraint_93 },
 		0, 0, /* No default value */
 		"value"
 		},
 };
-static const ber_tlv_tag_t asn_DEF_RICcontrolAcknowledge_IEs_tags_57[] = {
+static const ber_tlv_tag_t asn_DEF_RICcontrolAcknowledge_IEs_tags_93[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-static const asn_TYPE_tag2member_t asn_MAP_RICcontrolAcknowledge_IEs_tag2el_57[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */
-    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */
+static const asn_TYPE_tag2member_t asn_MAP_RICcontrolAcknowledge_IEs_tag2el_93[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
 };
-asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_IEs_specs_57 = {
+asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_IEs_specs_93 = {
 	sizeof(struct RICcontrolAcknowledge_IEs),
 	offsetof(struct RICcontrolAcknowledge_IEs, _asn_ctx),
-	asn_MAP_RICcontrolAcknowledge_IEs_tag2el_57,
-	2,	/* Count of tags in the map */
+	asn_MAP_RICcontrolAcknowledge_IEs_tag2el_93,
+	3,	/* Count of tags in the map */
 	0, 0, 0,	/* Optional elements (not needed) */
 	-1,	/* First extension addition */
 };
@@ -6101,19 +8974,19 @@
 	"RICcontrolAcknowledge-IEs",
 	"RICcontrolAcknowledge-IEs",
 	&asn_OP_SEQUENCE,
-	asn_DEF_RICcontrolAcknowledge_IEs_tags_57,
-	sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_57)
-		/sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_57[0]), /* 1 */
-	asn_DEF_RICcontrolAcknowledge_IEs_tags_57,	/* Same as above */
-	sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_57)
-		/sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_57[0]), /* 1 */
+	asn_DEF_RICcontrolAcknowledge_IEs_tags_93,
+	sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_93)
+		/sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_93[0]), /* 1 */
+	asn_DEF_RICcontrolAcknowledge_IEs_tags_93,	/* Same as above */
+	sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_93)
+		/sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_93[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_RICcontrolAcknowledge_IEs_57,
+	asn_MBR_RICcontrolAcknowledge_IEs_93,
 	3,	/* Elements count */
-	&asn_SPC_RICcontrolAcknowledge_IEs_specs_57	/* Additional specs */
+	&asn_SPC_RICcontrolAcknowledge_IEs_specs_93	/* Additional specs */
 };
 
-static asn_TYPE_member_t asn_MBR_value_64[] = {
+static asn_TYPE_member_t asn_MBR_value_100[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RICrequestID),
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -6160,32 +9033,33 @@
 		"RICcontrolOutcome"
 		},
 };
-static const unsigned asn_MAP_value_to_canonical_64[] = { 1, 2, 4, 0, 3 };
-static const unsigned asn_MAP_value_from_canonical_64[] = { 3, 0, 1, 4, 2 };
-static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_64[] = {
+static const unsigned asn_MAP_value_to_canonical_100[] = { 1, 2, 4, 0, 3 };
+static const unsigned asn_MAP_value_from_canonical_100[] = { 3, 0, 1, 4, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_100[] = {
     { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */
     { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 1 }, /* RICcallProcessID */
     { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, -1, 0 }, /* RICcontrolOutcome */
     { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 }, /* RICrequestID */
     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 3, 0, 0 }, /* ricRequest */
     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 3, 0, 0 }, /* ricService */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 }, /* transport */
-    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protocol */
-    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 3, 0, 0 } /* misc */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 }, /* e2Node */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 3, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 3, 0, 0 } /* misc */
 };
-static asn_CHOICE_specifics_t asn_SPC_value_specs_64 = {
+static asn_CHOICE_specifics_t asn_SPC_value_specs_100 = {
 	sizeof(struct RICcontrolFailure_IEs__value),
 	offsetof(struct RICcontrolFailure_IEs__value, _asn_ctx),
 	offsetof(struct RICcontrolFailure_IEs__value, present),
 	sizeof(((struct RICcontrolFailure_IEs__value *)0)->present),
-	asn_MAP_value_tag2el_64,
-	9,	/* Count of tags in the map */
-	asn_MAP_value_to_canonical_64,
-	asn_MAP_value_from_canonical_64,
+	asn_MAP_value_tag2el_100,
+	10,	/* Count of tags in the map */
+	asn_MAP_value_to_canonical_100,
+	asn_MAP_value_from_canonical_100,
 	-1	/* Extensions start */
 };
 static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_value_64 = {
+asn_TYPE_descriptor_t asn_DEF_value_100 = {
 	"value",
 	"value",
 	&asn_OP_OPEN_TYPE,
@@ -6194,52 +9068,53 @@
 	0,	/* No tags (pointer) */
 	0,	/* No tags (count) */
 	{ 0, 0, OPEN_TYPE_constraint },
-	asn_MBR_value_64,
+	asn_MBR_value_100,
 	5,	/* Elements count */
-	&asn_SPC_value_specs_64	/* Additional specs */
+	&asn_SPC_value_specs_100	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_61[] = {
+asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_97[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, id),
-		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_ProtocolIE_ID,
 		0,
-		{ &asn_OER_memb_id_constr_62, &asn_PER_memb_id_constr_62,  memb_id_constraint_61 },
+		{ &asn_OER_memb_id_constr_98, &asn_PER_memb_id_constr_98,  memb_id_constraint_97 },
 		0, 0, /* No default value */
 		"id"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, criticality),
-		(ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_Criticality,
 		select_RICcontrolFailure_IEs_criticality_type,
-		{ &asn_OER_memb_criticality_constr_63, &asn_PER_memb_criticality_constr_63,  memb_criticality_constraint_61 },
+		{ &asn_OER_memb_criticality_constr_99, &asn_PER_memb_criticality_constr_99,  memb_criticality_constraint_97 },
 		0, 0, /* No default value */
 		"criticality"
 		},
 	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, value),
-		-1 /* Ambiguous tag (ANY?) */,
-		0,
-		&asn_DEF_value_64,
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_100,
 		select_RICcontrolFailure_IEs_value_type,
-		{ &asn_OER_memb_value_constr_64, &asn_PER_memb_value_constr_64,  memb_value_constraint_61 },
+		{ &asn_OER_memb_value_constr_100, &asn_PER_memb_value_constr_100,  memb_value_constraint_97 },
 		0, 0, /* No default value */
 		"value"
 		},
 };
-static const ber_tlv_tag_t asn_DEF_RICcontrolFailure_IEs_tags_61[] = {
+static const ber_tlv_tag_t asn_DEF_RICcontrolFailure_IEs_tags_97[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-static const asn_TYPE_tag2member_t asn_MAP_RICcontrolFailure_IEs_tag2el_61[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */
-    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */
+static const asn_TYPE_tag2member_t asn_MAP_RICcontrolFailure_IEs_tag2el_97[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
 };
-asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_IEs_specs_61 = {
+asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_IEs_specs_97 = {
 	sizeof(struct RICcontrolFailure_IEs),
 	offsetof(struct RICcontrolFailure_IEs, _asn_ctx),
-	asn_MAP_RICcontrolFailure_IEs_tag2el_61,
-	2,	/* Count of tags in the map */
+	asn_MAP_RICcontrolFailure_IEs_tag2el_97,
+	3,	/* Count of tags in the map */
 	0, 0, 0,	/* Optional elements (not needed) */
 	-1,	/* First extension addition */
 };
@@ -6247,19 +9122,28 @@
 	"RICcontrolFailure-IEs",
 	"RICcontrolFailure-IEs",
 	&asn_OP_SEQUENCE,
-	asn_DEF_RICcontrolFailure_IEs_tags_61,
-	sizeof(asn_DEF_RICcontrolFailure_IEs_tags_61)
-		/sizeof(asn_DEF_RICcontrolFailure_IEs_tags_61[0]), /* 1 */
-	asn_DEF_RICcontrolFailure_IEs_tags_61,	/* Same as above */
-	sizeof(asn_DEF_RICcontrolFailure_IEs_tags_61)
-		/sizeof(asn_DEF_RICcontrolFailure_IEs_tags_61[0]), /* 1 */
+	asn_DEF_RICcontrolFailure_IEs_tags_97,
+	sizeof(asn_DEF_RICcontrolFailure_IEs_tags_97)
+		/sizeof(asn_DEF_RICcontrolFailure_IEs_tags_97[0]), /* 1 */
+	asn_DEF_RICcontrolFailure_IEs_tags_97,	/* Same as above */
+	sizeof(asn_DEF_RICcontrolFailure_IEs_tags_97)
+		/sizeof(asn_DEF_RICcontrolFailure_IEs_tags_97[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_RICcontrolFailure_IEs_61,
+	asn_MBR_RICcontrolFailure_IEs_97,
 	3,	/* Elements count */
-	&asn_SPC_RICcontrolFailure_IEs_specs_61	/* Additional specs */
+	&asn_SPC_RICcontrolFailure_IEs_specs_97	/* Additional specs */
 };
 
-static asn_TYPE_member_t asn_MBR_value_68[] = {
+static asn_TYPE_member_t asn_MBR_value_104[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.TransactionID),
+		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+		0,
+		&asn_DEF_TransactionID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"TransactionID"
+		},
 	{ ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs__value, choice.RICrequestID),
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -6297,31 +9181,33 @@
 		"CriticalityDiagnostics"
 		},
 };
-static const unsigned asn_MAP_value_to_canonical_68[] = { 1, 0, 3, 2 };
-static const unsigned asn_MAP_value_from_canonical_68[] = { 1, 0, 3, 2 };
-static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_68[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* CriticalityDiagnostics */
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* ricRequest */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* ricService */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* transport */
-    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* protocol */
-    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 } /* misc */
+static const unsigned asn_MAP_value_to_canonical_104[] = { 0, 2, 1, 4, 3 };
+static const unsigned asn_MAP_value_from_canonical_104[] = { 0, 2, 1, 4, 3 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_104[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* TransactionID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -1, 0 }, /* RANfunctionID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* RICrequestID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -1, 0 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 3, 0, 0 }, /* ricRequest */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 3, 0, 0 }, /* ricService */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 }, /* e2Node */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 3, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 3, 0, 0 } /* misc */
 };
-static asn_CHOICE_specifics_t asn_SPC_value_specs_68 = {
+static asn_CHOICE_specifics_t asn_SPC_value_specs_104 = {
 	sizeof(struct ErrorIndication_IEs__value),
 	offsetof(struct ErrorIndication_IEs__value, _asn_ctx),
 	offsetof(struct ErrorIndication_IEs__value, present),
 	sizeof(((struct ErrorIndication_IEs__value *)0)->present),
-	asn_MAP_value_tag2el_68,
-	8,	/* Count of tags in the map */
-	asn_MAP_value_to_canonical_68,
-	asn_MAP_value_from_canonical_68,
+	asn_MAP_value_tag2el_104,
+	10,	/* Count of tags in the map */
+	asn_MAP_value_to_canonical_104,
+	asn_MAP_value_from_canonical_104,
 	-1	/* Extensions start */
 };
 static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_value_68 = {
+asn_TYPE_descriptor_t asn_DEF_value_104 = {
 	"value",
 	"value",
 	&asn_OP_OPEN_TYPE,
@@ -6330,52 +9216,53 @@
 	0,	/* No tags (pointer) */
 	0,	/* No tags (count) */
 	{ 0, 0, OPEN_TYPE_constraint },
-	asn_MBR_value_68,
-	4,	/* Elements count */
-	&asn_SPC_value_specs_68	/* Additional specs */
+	asn_MBR_value_104,
+	5,	/* Elements count */
+	&asn_SPC_value_specs_104	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_65[] = {
+asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_101[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, id),
-		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_ProtocolIE_ID,
 		0,
-		{ &asn_OER_memb_id_constr_66, &asn_PER_memb_id_constr_66,  memb_id_constraint_65 },
+		{ &asn_OER_memb_id_constr_102, &asn_PER_memb_id_constr_102,  memb_id_constraint_101 },
 		0, 0, /* No default value */
 		"id"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, criticality),
-		(ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_Criticality,
 		select_ErrorIndication_IEs_criticality_type,
-		{ &asn_OER_memb_criticality_constr_67, &asn_PER_memb_criticality_constr_67,  memb_criticality_constraint_65 },
+		{ &asn_OER_memb_criticality_constr_103, &asn_PER_memb_criticality_constr_103,  memb_criticality_constraint_101 },
 		0, 0, /* No default value */
 		"criticality"
 		},
 	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ErrorIndication_IEs, value),
-		-1 /* Ambiguous tag (ANY?) */,
-		0,
-		&asn_DEF_value_68,
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_104,
 		select_ErrorIndication_IEs_value_type,
-		{ &asn_OER_memb_value_constr_68, &asn_PER_memb_value_constr_68,  memb_value_constraint_65 },
+		{ &asn_OER_memb_value_constr_104, &asn_PER_memb_value_constr_104,  memb_value_constraint_101 },
 		0, 0, /* No default value */
 		"value"
 		},
 };
-static const ber_tlv_tag_t asn_DEF_ErrorIndication_IEs_tags_65[] = {
+static const ber_tlv_tag_t asn_DEF_ErrorIndication_IEs_tags_101[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-static const asn_TYPE_tag2member_t asn_MAP_ErrorIndication_IEs_tag2el_65[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */
-    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */
+static const asn_TYPE_tag2member_t asn_MAP_ErrorIndication_IEs_tag2el_101[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
 };
-asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_IEs_specs_65 = {
+asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_IEs_specs_101 = {
 	sizeof(struct ErrorIndication_IEs),
 	offsetof(struct ErrorIndication_IEs, _asn_ctx),
-	asn_MAP_ErrorIndication_IEs_tag2el_65,
-	2,	/* Count of tags in the map */
+	asn_MAP_ErrorIndication_IEs_tag2el_101,
+	3,	/* Count of tags in the map */
 	0, 0, 0,	/* Optional elements (not needed) */
 	-1,	/* First extension addition */
 };
@@ -6383,19 +9270,28 @@
 	"ErrorIndication-IEs",
 	"ErrorIndication-IEs",
 	&asn_OP_SEQUENCE,
-	asn_DEF_ErrorIndication_IEs_tags_65,
-	sizeof(asn_DEF_ErrorIndication_IEs_tags_65)
-		/sizeof(asn_DEF_ErrorIndication_IEs_tags_65[0]), /* 1 */
-	asn_DEF_ErrorIndication_IEs_tags_65,	/* Same as above */
-	sizeof(asn_DEF_ErrorIndication_IEs_tags_65)
-		/sizeof(asn_DEF_ErrorIndication_IEs_tags_65[0]), /* 1 */
+	asn_DEF_ErrorIndication_IEs_tags_101,
+	sizeof(asn_DEF_ErrorIndication_IEs_tags_101)
+		/sizeof(asn_DEF_ErrorIndication_IEs_tags_101[0]), /* 1 */
+	asn_DEF_ErrorIndication_IEs_tags_101,	/* Same as above */
+	sizeof(asn_DEF_ErrorIndication_IEs_tags_101)
+		/sizeof(asn_DEF_ErrorIndication_IEs_tags_101[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_ErrorIndication_IEs_65,
+	asn_MBR_ErrorIndication_IEs_101,
 	3,	/* Elements count */
-	&asn_SPC_ErrorIndication_IEs_specs_65	/* Additional specs */
+	&asn_SPC_ErrorIndication_IEs_specs_101	/* Additional specs */
 };
 
-static asn_TYPE_member_t asn_MBR_value_72[] = {
+static asn_TYPE_member_t asn_MBR_value_108[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.TransactionID),
+		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+		0,
+		&asn_DEF_TransactionID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"TransactionID"
+		},
 	{ ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.GlobalE2node_ID),
 		-1 /* Ambiguous tag (CHOICE?) */,
 		0,
@@ -6414,29 +9310,40 @@
 		0, 0, /* No default value */
 		"RANfunctions-List"
 		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.E2nodeComponentConfigAddition_List),
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2nodeComponentConfigAddition_List,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"E2nodeComponentConfigAddition-List"
+		},
 };
-static const unsigned asn_MAP_value_to_canonical_72[] = { 1, 0 };
-static const unsigned asn_MAP_value_from_canonical_72[] = { 1, 0 };
-static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_72[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 }, /* RANfunctions-List */
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* en-gNB */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* ng-eNB */
-    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 } /* eNB */
+static const unsigned asn_MAP_value_to_canonical_108[] = { 0, 2, 3, 1 };
+static const unsigned asn_MAP_value_from_canonical_108[] = { 0, 3, 1, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_108[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 1 }, /* RANfunctions-List */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* E2nodeComponentConfigAddition-List */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* gNB */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-gNB */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* ng-eNB */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* eNB */
 };
-static asn_CHOICE_specifics_t asn_SPC_value_specs_72 = {
+static asn_CHOICE_specifics_t asn_SPC_value_specs_108 = {
 	sizeof(struct E2setupRequestIEs__value),
 	offsetof(struct E2setupRequestIEs__value, _asn_ctx),
 	offsetof(struct E2setupRequestIEs__value, present),
 	sizeof(((struct E2setupRequestIEs__value *)0)->present),
-	asn_MAP_value_tag2el_72,
-	5,	/* Count of tags in the map */
-	asn_MAP_value_to_canonical_72,
-	asn_MAP_value_from_canonical_72,
+	asn_MAP_value_tag2el_108,
+	7,	/* Count of tags in the map */
+	asn_MAP_value_to_canonical_108,
+	asn_MAP_value_from_canonical_108,
 	-1	/* Extensions start */
 };
 static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_value_72 = {
+asn_TYPE_descriptor_t asn_DEF_value_108 = {
 	"value",
 	"value",
 	&asn_OP_OPEN_TYPE,
@@ -6445,52 +9352,53 @@
 	0,	/* No tags (pointer) */
 	0,	/* No tags (count) */
 	{ 0, 0, OPEN_TYPE_constraint },
-	asn_MBR_value_72,
-	2,	/* Elements count */
-	&asn_SPC_value_specs_72	/* Additional specs */
+	asn_MBR_value_108,
+	4,	/* Elements count */
+	&asn_SPC_value_specs_108	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_E2setupRequestIEs_69[] = {
+asn_TYPE_member_t asn_MBR_E2setupRequestIEs_105[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs, id),
-		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_ProtocolIE_ID,
 		0,
-		{ &asn_OER_memb_id_constr_70, &asn_PER_memb_id_constr_70,  memb_id_constraint_69 },
+		{ &asn_OER_memb_id_constr_106, &asn_PER_memb_id_constr_106,  memb_id_constraint_105 },
 		0, 0, /* No default value */
 		"id"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs, criticality),
-		(ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_Criticality,
 		select_E2setupRequestIEs_criticality_type,
-		{ &asn_OER_memb_criticality_constr_71, &asn_PER_memb_criticality_constr_71,  memb_criticality_constraint_69 },
+		{ &asn_OER_memb_criticality_constr_107, &asn_PER_memb_criticality_constr_107,  memb_criticality_constraint_105 },
 		0, 0, /* No default value */
 		"criticality"
 		},
 	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs, value),
-		-1 /* Ambiguous tag (ANY?) */,
-		0,
-		&asn_DEF_value_72,
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_108,
 		select_E2setupRequestIEs_value_type,
-		{ &asn_OER_memb_value_constr_72, &asn_PER_memb_value_constr_72,  memb_value_constraint_69 },
+		{ &asn_OER_memb_value_constr_108, &asn_PER_memb_value_constr_108,  memb_value_constraint_105 },
 		0, 0, /* No default value */
 		"value"
 		},
 };
-static const ber_tlv_tag_t asn_DEF_E2setupRequestIEs_tags_69[] = {
+static const ber_tlv_tag_t asn_DEF_E2setupRequestIEs_tags_105[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-static const asn_TYPE_tag2member_t asn_MAP_E2setupRequestIEs_tag2el_69[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */
-    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */
+static const asn_TYPE_tag2member_t asn_MAP_E2setupRequestIEs_tag2el_105[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
 };
-asn_SEQUENCE_specifics_t asn_SPC_E2setupRequestIEs_specs_69 = {
+asn_SEQUENCE_specifics_t asn_SPC_E2setupRequestIEs_specs_105 = {
 	sizeof(struct E2setupRequestIEs),
 	offsetof(struct E2setupRequestIEs, _asn_ctx),
-	asn_MAP_E2setupRequestIEs_tag2el_69,
-	2,	/* Count of tags in the map */
+	asn_MAP_E2setupRequestIEs_tag2el_105,
+	3,	/* Count of tags in the map */
 	0, 0, 0,	/* Optional elements (not needed) */
 	-1,	/* First extension addition */
 };
@@ -6498,19 +9406,28 @@
 	"E2setupRequestIEs",
 	"E2setupRequestIEs",
 	&asn_OP_SEQUENCE,
-	asn_DEF_E2setupRequestIEs_tags_69,
-	sizeof(asn_DEF_E2setupRequestIEs_tags_69)
-		/sizeof(asn_DEF_E2setupRequestIEs_tags_69[0]), /* 1 */
-	asn_DEF_E2setupRequestIEs_tags_69,	/* Same as above */
-	sizeof(asn_DEF_E2setupRequestIEs_tags_69)
-		/sizeof(asn_DEF_E2setupRequestIEs_tags_69[0]), /* 1 */
+	asn_DEF_E2setupRequestIEs_tags_105,
+	sizeof(asn_DEF_E2setupRequestIEs_tags_105)
+		/sizeof(asn_DEF_E2setupRequestIEs_tags_105[0]), /* 1 */
+	asn_DEF_E2setupRequestIEs_tags_105,	/* Same as above */
+	sizeof(asn_DEF_E2setupRequestIEs_tags_105)
+		/sizeof(asn_DEF_E2setupRequestIEs_tags_105[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_E2setupRequestIEs_69,
+	asn_MBR_E2setupRequestIEs_105,
 	3,	/* Elements count */
-	&asn_SPC_E2setupRequestIEs_specs_69	/* Additional specs */
+	&asn_SPC_E2setupRequestIEs_specs_105	/* Additional specs */
 };
 
-static asn_TYPE_member_t asn_MBR_value_76[] = {
+static asn_TYPE_member_t asn_MBR_value_112[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.TransactionID),
+		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+		0,
+		&asn_DEF_TransactionID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"TransactionID"
+		},
 	{ ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.GlobalRIC_ID),
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -6538,24 +9455,35 @@
 		0, 0, /* No default value */
 		"RANfunctionsIDcause-List"
 		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.E2nodeComponentConfigAdditionAck_List),
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2nodeComponentConfigAdditionAck_List,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"E2nodeComponentConfigAdditionAck-List"
+		},
 };
-static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_76[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* GlobalRIC-ID */
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 1 }, /* RANfunctionsID-List */
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 0 } /* RANfunctionsIDcause-List */
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_112[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 3 }, /* GlobalRIC-ID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 2 }, /* RANfunctionsID-List */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 1 }, /* RANfunctionsIDcause-List */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -3, 0 } /* E2nodeComponentConfigAdditionAck-List */
 };
-static asn_CHOICE_specifics_t asn_SPC_value_specs_76 = {
+static asn_CHOICE_specifics_t asn_SPC_value_specs_112 = {
 	sizeof(struct E2setupResponseIEs__value),
 	offsetof(struct E2setupResponseIEs__value, _asn_ctx),
 	offsetof(struct E2setupResponseIEs__value, present),
 	sizeof(((struct E2setupResponseIEs__value *)0)->present),
-	asn_MAP_value_tag2el_76,
-	3,	/* Count of tags in the map */
+	asn_MAP_value_tag2el_112,
+	5,	/* Count of tags in the map */
 	0, 0,
 	-1	/* Extensions start */
 };
 static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_value_76 = {
+asn_TYPE_descriptor_t asn_DEF_value_112 = {
 	"value",
 	"value",
 	&asn_OP_OPEN_TYPE,
@@ -6564,52 +9492,53 @@
 	0,	/* No tags (pointer) */
 	0,	/* No tags (count) */
 	{ 0, 0, OPEN_TYPE_constraint },
-	asn_MBR_value_76,
-	3,	/* Elements count */
-	&asn_SPC_value_specs_76	/* Additional specs */
+	asn_MBR_value_112,
+	5,	/* Elements count */
+	&asn_SPC_value_specs_112	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_E2setupResponseIEs_73[] = {
+asn_TYPE_member_t asn_MBR_E2setupResponseIEs_109[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs, id),
-		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_ProtocolIE_ID,
 		0,
-		{ &asn_OER_memb_id_constr_74, &asn_PER_memb_id_constr_74,  memb_id_constraint_73 },
+		{ &asn_OER_memb_id_constr_110, &asn_PER_memb_id_constr_110,  memb_id_constraint_109 },
 		0, 0, /* No default value */
 		"id"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs, criticality),
-		(ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_Criticality,
 		select_E2setupResponseIEs_criticality_type,
-		{ &asn_OER_memb_criticality_constr_75, &asn_PER_memb_criticality_constr_75,  memb_criticality_constraint_73 },
+		{ &asn_OER_memb_criticality_constr_111, &asn_PER_memb_criticality_constr_111,  memb_criticality_constraint_109 },
 		0, 0, /* No default value */
 		"criticality"
 		},
 	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs, value),
-		-1 /* Ambiguous tag (ANY?) */,
-		0,
-		&asn_DEF_value_76,
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_112,
 		select_E2setupResponseIEs_value_type,
-		{ &asn_OER_memb_value_constr_76, &asn_PER_memb_value_constr_76,  memb_value_constraint_73 },
+		{ &asn_OER_memb_value_constr_112, &asn_PER_memb_value_constr_112,  memb_value_constraint_109 },
 		0, 0, /* No default value */
 		"value"
 		},
 };
-static const ber_tlv_tag_t asn_DEF_E2setupResponseIEs_tags_73[] = {
+static const ber_tlv_tag_t asn_DEF_E2setupResponseIEs_tags_109[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-static const asn_TYPE_tag2member_t asn_MAP_E2setupResponseIEs_tag2el_73[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */
-    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */
+static const asn_TYPE_tag2member_t asn_MAP_E2setupResponseIEs_tag2el_109[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
 };
-asn_SEQUENCE_specifics_t asn_SPC_E2setupResponseIEs_specs_73 = {
+asn_SEQUENCE_specifics_t asn_SPC_E2setupResponseIEs_specs_109 = {
 	sizeof(struct E2setupResponseIEs),
 	offsetof(struct E2setupResponseIEs, _asn_ctx),
-	asn_MAP_E2setupResponseIEs_tag2el_73,
-	2,	/* Count of tags in the map */
+	asn_MAP_E2setupResponseIEs_tag2el_109,
+	3,	/* Count of tags in the map */
 	0, 0, 0,	/* Optional elements (not needed) */
 	-1,	/* First extension addition */
 };
@@ -6617,19 +9546,28 @@
 	"E2setupResponseIEs",
 	"E2setupResponseIEs",
 	&asn_OP_SEQUENCE,
-	asn_DEF_E2setupResponseIEs_tags_73,
-	sizeof(asn_DEF_E2setupResponseIEs_tags_73)
-		/sizeof(asn_DEF_E2setupResponseIEs_tags_73[0]), /* 1 */
-	asn_DEF_E2setupResponseIEs_tags_73,	/* Same as above */
-	sizeof(asn_DEF_E2setupResponseIEs_tags_73)
-		/sizeof(asn_DEF_E2setupResponseIEs_tags_73[0]), /* 1 */
+	asn_DEF_E2setupResponseIEs_tags_109,
+	sizeof(asn_DEF_E2setupResponseIEs_tags_109)
+		/sizeof(asn_DEF_E2setupResponseIEs_tags_109[0]), /* 1 */
+	asn_DEF_E2setupResponseIEs_tags_109,	/* Same as above */
+	sizeof(asn_DEF_E2setupResponseIEs_tags_109)
+		/sizeof(asn_DEF_E2setupResponseIEs_tags_109[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_E2setupResponseIEs_73,
+	asn_MBR_E2setupResponseIEs_109,
 	3,	/* Elements count */
-	&asn_SPC_E2setupResponseIEs_specs_73	/* Additional specs */
+	&asn_SPC_E2setupResponseIEs_specs_109	/* Additional specs */
 };
 
-static asn_TYPE_member_t asn_MBR_value_80[] = {
+static asn_TYPE_member_t asn_MBR_value_116[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.TransactionID),
+		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+		0,
+		&asn_DEF_TransactionID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"TransactionID"
+		},
 	{ ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.Cause),
 		-1 /* Ambiguous tag (CHOICE?) */,
 		0,
@@ -6657,31 +9595,43 @@
 		0, 0, /* No default value */
 		"CriticalityDiagnostics"
 		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.TNLinformation),
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_TNLinformation,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"TNLinformation"
+		},
 };
-static const unsigned asn_MAP_value_to_canonical_80[] = { 1, 2, 0 };
-static const unsigned asn_MAP_value_from_canonical_80[] = { 2, 0, 1 };
-static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_80[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* TimeToWait */
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* CriticalityDiagnostics */
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequest */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* ricService */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* transport */
-    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 }, /* protocol */
-    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 0, 0, 0 } /* misc */
+static const unsigned asn_MAP_value_to_canonical_116[] = { 0, 2, 3, 4, 1 };
+static const unsigned asn_MAP_value_from_canonical_116[] = { 0, 4, 1, 2, 3 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_116[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* TimeToWait */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 1 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -1, 0 }, /* TNLinformation */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* ricRequest */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricService */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* e2Node */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 1, 0, 0 } /* misc */
 };
-static asn_CHOICE_specifics_t asn_SPC_value_specs_80 = {
+static asn_CHOICE_specifics_t asn_SPC_value_specs_116 = {
 	sizeof(struct E2setupFailureIEs__value),
 	offsetof(struct E2setupFailureIEs__value, _asn_ctx),
 	offsetof(struct E2setupFailureIEs__value, present),
 	sizeof(((struct E2setupFailureIEs__value *)0)->present),
-	asn_MAP_value_tag2el_80,
-	7,	/* Count of tags in the map */
-	asn_MAP_value_to_canonical_80,
-	asn_MAP_value_from_canonical_80,
+	asn_MAP_value_tag2el_116,
+	10,	/* Count of tags in the map */
+	asn_MAP_value_to_canonical_116,
+	asn_MAP_value_from_canonical_116,
 	-1	/* Extensions start */
 };
 static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_value_80 = {
+asn_TYPE_descriptor_t asn_DEF_value_116 = {
 	"value",
 	"value",
 	&asn_OP_OPEN_TYPE,
@@ -6690,52 +9640,53 @@
 	0,	/* No tags (pointer) */
 	0,	/* No tags (count) */
 	{ 0, 0, OPEN_TYPE_constraint },
-	asn_MBR_value_80,
-	3,	/* Elements count */
-	&asn_SPC_value_specs_80	/* Additional specs */
+	asn_MBR_value_116,
+	5,	/* Elements count */
+	&asn_SPC_value_specs_116	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_E2setupFailureIEs_77[] = {
+asn_TYPE_member_t asn_MBR_E2setupFailureIEs_113[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs, id),
-		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_ProtocolIE_ID,
 		0,
-		{ &asn_OER_memb_id_constr_78, &asn_PER_memb_id_constr_78,  memb_id_constraint_77 },
+		{ &asn_OER_memb_id_constr_114, &asn_PER_memb_id_constr_114,  memb_id_constraint_113 },
 		0, 0, /* No default value */
 		"id"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs, criticality),
-		(ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_Criticality,
 		select_E2setupFailureIEs_criticality_type,
-		{ &asn_OER_memb_criticality_constr_79, &asn_PER_memb_criticality_constr_79,  memb_criticality_constraint_77 },
+		{ &asn_OER_memb_criticality_constr_115, &asn_PER_memb_criticality_constr_115,  memb_criticality_constraint_113 },
 		0, 0, /* No default value */
 		"criticality"
 		},
 	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs, value),
-		-1 /* Ambiguous tag (ANY?) */,
-		0,
-		&asn_DEF_value_80,
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_116,
 		select_E2setupFailureIEs_value_type,
-		{ &asn_OER_memb_value_constr_80, &asn_PER_memb_value_constr_80,  memb_value_constraint_77 },
+		{ &asn_OER_memb_value_constr_116, &asn_PER_memb_value_constr_116,  memb_value_constraint_113 },
 		0, 0, /* No default value */
 		"value"
 		},
 };
-static const ber_tlv_tag_t asn_DEF_E2setupFailureIEs_tags_77[] = {
+static const ber_tlv_tag_t asn_DEF_E2setupFailureIEs_tags_113[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-static const asn_TYPE_tag2member_t asn_MAP_E2setupFailureIEs_tag2el_77[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */
-    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */
+static const asn_TYPE_tag2member_t asn_MAP_E2setupFailureIEs_tag2el_113[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
 };
-asn_SEQUENCE_specifics_t asn_SPC_E2setupFailureIEs_specs_77 = {
+asn_SEQUENCE_specifics_t asn_SPC_E2setupFailureIEs_specs_113 = {
 	sizeof(struct E2setupFailureIEs),
 	offsetof(struct E2setupFailureIEs, _asn_ctx),
-	asn_MAP_E2setupFailureIEs_tag2el_77,
-	2,	/* Count of tags in the map */
+	asn_MAP_E2setupFailureIEs_tag2el_113,
+	3,	/* Count of tags in the map */
 	0, 0, 0,	/* Optional elements (not needed) */
 	-1,	/* First extension addition */
 };
@@ -6743,19 +9694,452 @@
 	"E2setupFailureIEs",
 	"E2setupFailureIEs",
 	&asn_OP_SEQUENCE,
-	asn_DEF_E2setupFailureIEs_tags_77,
-	sizeof(asn_DEF_E2setupFailureIEs_tags_77)
-		/sizeof(asn_DEF_E2setupFailureIEs_tags_77[0]), /* 1 */
-	asn_DEF_E2setupFailureIEs_tags_77,	/* Same as above */
-	sizeof(asn_DEF_E2setupFailureIEs_tags_77)
-		/sizeof(asn_DEF_E2setupFailureIEs_tags_77[0]), /* 1 */
+	asn_DEF_E2setupFailureIEs_tags_113,
+	sizeof(asn_DEF_E2setupFailureIEs_tags_113)
+		/sizeof(asn_DEF_E2setupFailureIEs_tags_113[0]), /* 1 */
+	asn_DEF_E2setupFailureIEs_tags_113,	/* Same as above */
+	sizeof(asn_DEF_E2setupFailureIEs_tags_113)
+		/sizeof(asn_DEF_E2setupFailureIEs_tags_113[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_E2setupFailureIEs_77,
+	asn_MBR_E2setupFailureIEs_113,
 	3,	/* Elements count */
-	&asn_SPC_E2setupFailureIEs_specs_77	/* Additional specs */
+	&asn_SPC_E2setupFailureIEs_specs_113	/* Additional specs */
 };
 
-static asn_TYPE_member_t asn_MBR_value_84[] = {
+static asn_TYPE_member_t asn_MBR_value_120[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs__value, choice.TransactionID),
+		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+		0,
+		&asn_DEF_TransactionID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"TransactionID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs__value, choice.GlobalE2node_ID),
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_GlobalE2node_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"GlobalE2node-ID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs__value, choice.E2nodeComponentConfigAddition_List),
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2nodeComponentConfigAddition_List,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"E2nodeComponentConfigAddition-List"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs__value, choice.E2nodeComponentConfigUpdate_List),
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2nodeComponentConfigUpdate_List,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"E2nodeComponentConfigUpdate-List"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs__value, choice.E2nodeComponentConfigRemoval_List),
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2nodeComponentConfigRemoval_List,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"E2nodeComponentConfigRemoval-List"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs__value, choice.E2nodeTNLassociationRemoval_List),
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2nodeTNLassociationRemoval_List,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"E2nodeTNLassociationRemoval-List"
+		},
+};
+static const unsigned asn_MAP_value_to_canonical_120[] = { 0, 2, 3, 4, 5, 1 };
+static const unsigned asn_MAP_value_from_canonical_120[] = { 0, 5, 1, 2, 3, 4 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_120[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 3 }, /* E2nodeComponentConfigAddition-List */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 2 }, /* E2nodeComponentConfigUpdate-List */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -2, 1 }, /* E2nodeComponentConfigRemoval-List */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -3, 0 }, /* E2nodeTNLassociationRemoval-List */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* gNB */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-gNB */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* ng-eNB */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* eNB */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_120 = {
+	sizeof(struct E2nodeConfigurationUpdate_IEs__value),
+	offsetof(struct E2nodeConfigurationUpdate_IEs__value, _asn_ctx),
+	offsetof(struct E2nodeConfigurationUpdate_IEs__value, present),
+	sizeof(((struct E2nodeConfigurationUpdate_IEs__value *)0)->present),
+	asn_MAP_value_tag2el_120,
+	9,	/* Count of tags in the map */
+	asn_MAP_value_to_canonical_120,
+	asn_MAP_value_from_canonical_120,
+	-1	/* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_120 = {
+	"value",
+	"value",
+	&asn_OP_OPEN_TYPE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ 0, 0, OPEN_TYPE_constraint },
+	asn_MBR_value_120,
+	6,	/* Elements count */
+	&asn_SPC_value_specs_120	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdate_IEs_117[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs, id),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_ProtocolIE_ID,
+		0,
+		{ &asn_OER_memb_id_constr_118, &asn_PER_memb_id_constr_118,  memb_id_constraint_117 },
+		0, 0, /* No default value */
+		"id"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs, criticality),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_Criticality,
+		select_E2nodeConfigurationUpdate_IEs_criticality_type,
+		{ &asn_OER_memb_criticality_constr_119, &asn_PER_memb_criticality_constr_119,  memb_criticality_constraint_117 },
+		0, 0, /* No default value */
+		"criticality"
+		},
+	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs, value),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_120,
+		select_E2nodeConfigurationUpdate_IEs_value_type,
+		{ &asn_OER_memb_value_constr_120, &asn_PER_memb_value_constr_120,  memb_value_constraint_117 },
+		0, 0, /* No default value */
+		"value"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeConfigurationUpdate_IEs_tags_117[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2nodeConfigurationUpdate_IEs_tag2el_117[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdate_IEs_specs_117 = {
+	sizeof(struct E2nodeConfigurationUpdate_IEs),
+	offsetof(struct E2nodeConfigurationUpdate_IEs, _asn_ctx),
+	asn_MAP_E2nodeConfigurationUpdate_IEs_tag2el_117,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	-1,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdate_IEs = {
+	"E2nodeConfigurationUpdate-IEs",
+	"E2nodeConfigurationUpdate-IEs",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2nodeConfigurationUpdate_IEs_tags_117,
+	sizeof(asn_DEF_E2nodeConfigurationUpdate_IEs_tags_117)
+		/sizeof(asn_DEF_E2nodeConfigurationUpdate_IEs_tags_117[0]), /* 1 */
+	asn_DEF_E2nodeConfigurationUpdate_IEs_tags_117,	/* Same as above */
+	sizeof(asn_DEF_E2nodeConfigurationUpdate_IEs_tags_117)
+		/sizeof(asn_DEF_E2nodeConfigurationUpdate_IEs_tags_117[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeConfigurationUpdate_IEs_117,
+	3,	/* Elements count */
+	&asn_SPC_E2nodeConfigurationUpdate_IEs_specs_117	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_124[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value, choice.TransactionID),
+		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+		0,
+		&asn_DEF_TransactionID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"TransactionID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value, choice.E2nodeComponentConfigAdditionAck_List),
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2nodeComponentConfigAdditionAck_List,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"E2nodeComponentConfigAdditionAck-List"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value, choice.E2nodeComponentConfigUpdateAck_List),
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2nodeComponentConfigUpdateAck_List,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"E2nodeComponentConfigUpdateAck-List"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value, choice.E2nodeComponentConfigRemovalAck_List),
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2nodeComponentConfigRemovalAck_List,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"E2nodeComponentConfigRemovalAck-List"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_124[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 2 }, /* E2nodeComponentConfigAdditionAck-List */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* E2nodeComponentConfigUpdateAck-List */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 } /* E2nodeComponentConfigRemovalAck-List */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_124 = {
+	sizeof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value),
+	offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value, _asn_ctx),
+	offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value, present),
+	sizeof(((struct E2nodeConfigurationUpdateAcknowledge_IEs__value *)0)->present),
+	asn_MAP_value_tag2el_124,
+	4,	/* Count of tags in the map */
+	0, 0,
+	-1	/* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_124 = {
+	"value",
+	"value",
+	&asn_OP_OPEN_TYPE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ 0, 0, OPEN_TYPE_constraint },
+	asn_MBR_value_124,
+	4,	/* Elements count */
+	&asn_SPC_value_specs_124	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateAcknowledge_IEs_121[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, id),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_ProtocolIE_ID,
+		0,
+		{ &asn_OER_memb_id_constr_122, &asn_PER_memb_id_constr_122,  memb_id_constraint_121 },
+		0, 0, /* No default value */
+		"id"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, criticality),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_Criticality,
+		select_E2nodeConfigurationUpdateAcknowledge_IEs_criticality_type,
+		{ &asn_OER_memb_criticality_constr_123, &asn_PER_memb_criticality_constr_123,  memb_criticality_constraint_121 },
+		0, 0, /* No default value */
+		"criticality"
+		},
+	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, value),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_124,
+		select_E2nodeConfigurationUpdateAcknowledge_IEs_value_type,
+		{ &asn_OER_memb_value_constr_124, &asn_PER_memb_value_constr_124,  memb_value_constraint_121 },
+		0, 0, /* No default value */
+		"value"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_121[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2nodeConfigurationUpdateAcknowledge_IEs_tag2el_121[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateAcknowledge_IEs_specs_121 = {
+	sizeof(struct E2nodeConfigurationUpdateAcknowledge_IEs),
+	offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, _asn_ctx),
+	asn_MAP_E2nodeConfigurationUpdateAcknowledge_IEs_tag2el_121,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	-1,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs = {
+	"E2nodeConfigurationUpdateAcknowledge-IEs",
+	"E2nodeConfigurationUpdateAcknowledge-IEs",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_121,
+	sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_121)
+		/sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_121[0]), /* 1 */
+	asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_121,	/* Same as above */
+	sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_121)
+		/sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_121[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeConfigurationUpdateAcknowledge_IEs_121,
+	3,	/* Elements count */
+	&asn_SPC_E2nodeConfigurationUpdateAcknowledge_IEs_specs_121	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_128[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs__value, choice.TransactionID),
+		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+		0,
+		&asn_DEF_TransactionID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"TransactionID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs__value, choice.Cause),
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_Cause,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"Cause"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs__value, choice.TimeToWait),
+		(ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+		0,
+		&asn_DEF_TimeToWait,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"TimeToWait"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs__value, choice.CriticalityDiagnostics),
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_CriticalityDiagnostics,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"CriticalityDiagnostics"
+		},
+};
+static const unsigned asn_MAP_value_to_canonical_128[] = { 0, 2, 3, 1 };
+static const unsigned asn_MAP_value_from_canonical_128[] = { 0, 3, 1, 2 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_128[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* TimeToWait */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* ricRequest */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricService */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* e2Node */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 1, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_128 = {
+	sizeof(struct E2nodeConfigurationUpdateFailure_IEs__value),
+	offsetof(struct E2nodeConfigurationUpdateFailure_IEs__value, _asn_ctx),
+	offsetof(struct E2nodeConfigurationUpdateFailure_IEs__value, present),
+	sizeof(((struct E2nodeConfigurationUpdateFailure_IEs__value *)0)->present),
+	asn_MAP_value_tag2el_128,
+	9,	/* Count of tags in the map */
+	asn_MAP_value_to_canonical_128,
+	asn_MAP_value_from_canonical_128,
+	-1	/* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_128 = {
+	"value",
+	"value",
+	&asn_OP_OPEN_TYPE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ 0, 0, OPEN_TYPE_constraint },
+	asn_MBR_value_128,
+	4,	/* Elements count */
+	&asn_SPC_value_specs_128	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateFailure_IEs_125[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs, id),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_ProtocolIE_ID,
+		0,
+		{ &asn_OER_memb_id_constr_126, &asn_PER_memb_id_constr_126,  memb_id_constraint_125 },
+		0, 0, /* No default value */
+		"id"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs, criticality),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_Criticality,
+		select_E2nodeConfigurationUpdateFailure_IEs_criticality_type,
+		{ &asn_OER_memb_criticality_constr_127, &asn_PER_memb_criticality_constr_127,  memb_criticality_constraint_125 },
+		0, 0, /* No default value */
+		"criticality"
+		},
+	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs, value),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_128,
+		select_E2nodeConfigurationUpdateFailure_IEs_value_type,
+		{ &asn_OER_memb_value_constr_128, &asn_PER_memb_value_constr_128,  memb_value_constraint_125 },
+		0, 0, /* No default value */
+		"value"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_125[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2nodeConfigurationUpdateFailure_IEs_tag2el_125[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateFailure_IEs_specs_125 = {
+	sizeof(struct E2nodeConfigurationUpdateFailure_IEs),
+	offsetof(struct E2nodeConfigurationUpdateFailure_IEs, _asn_ctx),
+	asn_MAP_E2nodeConfigurationUpdateFailure_IEs_tag2el_125,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	-1,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdateFailure_IEs = {
+	"E2nodeConfigurationUpdateFailure-IEs",
+	"E2nodeConfigurationUpdateFailure-IEs",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_125,
+	sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_125)
+		/sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_125[0]), /* 1 */
+	asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_125,	/* Same as above */
+	sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_125)
+		/sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_125[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeConfigurationUpdateFailure_IEs_125,
+	3,	/* Elements count */
+	&asn_SPC_E2nodeConfigurationUpdateFailure_IEs_specs_125	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_132[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs__value, choice.TransactionID),
+		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+		0,
+		&asn_DEF_TransactionID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"TransactionID"
+		},
 	{ ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs__value, choice.Cause),
 		-1 /* Ambiguous tag (CHOICE?) */,
 		0,
@@ -6766,25 +10150,27 @@
 		"Cause"
 		},
 };
-static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_84[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequest */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* ricService */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* transport */
-    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 }, /* protocol */
-    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 0, 0, 0 } /* misc */
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_132[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* ricRequest */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricService */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* e2Node */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 1, 0, 0 } /* misc */
 };
-static asn_CHOICE_specifics_t asn_SPC_value_specs_84 = {
+static asn_CHOICE_specifics_t asn_SPC_value_specs_132 = {
 	sizeof(struct ResetRequestIEs__value),
 	offsetof(struct ResetRequestIEs__value, _asn_ctx),
 	offsetof(struct ResetRequestIEs__value, present),
 	sizeof(((struct ResetRequestIEs__value *)0)->present),
-	asn_MAP_value_tag2el_84,
-	5,	/* Count of tags in the map */
+	asn_MAP_value_tag2el_132,
+	7,	/* Count of tags in the map */
 	0, 0,
 	-1	/* Extensions start */
 };
 static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_value_84 = {
+asn_TYPE_descriptor_t asn_DEF_value_132 = {
 	"value",
 	"value",
 	&asn_OP_OPEN_TYPE,
@@ -6793,52 +10179,53 @@
 	0,	/* No tags (pointer) */
 	0,	/* No tags (count) */
 	{ 0, 0, OPEN_TYPE_constraint },
-	asn_MBR_value_84,
-	1,	/* Elements count */
-	&asn_SPC_value_specs_84	/* Additional specs */
+	asn_MBR_value_132,
+	2,	/* Elements count */
+	&asn_SPC_value_specs_132	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_ResetRequestIEs_81[] = {
+asn_TYPE_member_t asn_MBR_ResetRequestIEs_129[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs, id),
-		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_ProtocolIE_ID,
 		0,
-		{ &asn_OER_memb_id_constr_82, &asn_PER_memb_id_constr_82,  memb_id_constraint_81 },
+		{ &asn_OER_memb_id_constr_130, &asn_PER_memb_id_constr_130,  memb_id_constraint_129 },
 		0, 0, /* No default value */
 		"id"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs, criticality),
-		(ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_Criticality,
 		select_ResetRequestIEs_criticality_type,
-		{ &asn_OER_memb_criticality_constr_83, &asn_PER_memb_criticality_constr_83,  memb_criticality_constraint_81 },
+		{ &asn_OER_memb_criticality_constr_131, &asn_PER_memb_criticality_constr_131,  memb_criticality_constraint_129 },
 		0, 0, /* No default value */
 		"criticality"
 		},
 	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs, value),
-		-1 /* Ambiguous tag (ANY?) */,
-		0,
-		&asn_DEF_value_84,
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_132,
 		select_ResetRequestIEs_value_type,
-		{ &asn_OER_memb_value_constr_84, &asn_PER_memb_value_constr_84,  memb_value_constraint_81 },
+		{ &asn_OER_memb_value_constr_132, &asn_PER_memb_value_constr_132,  memb_value_constraint_129 },
 		0, 0, /* No default value */
 		"value"
 		},
 };
-static const ber_tlv_tag_t asn_DEF_ResetRequestIEs_tags_81[] = {
+static const ber_tlv_tag_t asn_DEF_ResetRequestIEs_tags_129[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-static const asn_TYPE_tag2member_t asn_MAP_ResetRequestIEs_tag2el_81[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */
-    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */
+static const asn_TYPE_tag2member_t asn_MAP_ResetRequestIEs_tag2el_129[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
 };
-asn_SEQUENCE_specifics_t asn_SPC_ResetRequestIEs_specs_81 = {
+asn_SEQUENCE_specifics_t asn_SPC_ResetRequestIEs_specs_129 = {
 	sizeof(struct ResetRequestIEs),
 	offsetof(struct ResetRequestIEs, _asn_ctx),
-	asn_MAP_ResetRequestIEs_tag2el_81,
-	2,	/* Count of tags in the map */
+	asn_MAP_ResetRequestIEs_tag2el_129,
+	3,	/* Count of tags in the map */
 	0, 0, 0,	/* Optional elements (not needed) */
 	-1,	/* First extension addition */
 };
@@ -6846,19 +10233,28 @@
 	"ResetRequestIEs",
 	"ResetRequestIEs",
 	&asn_OP_SEQUENCE,
-	asn_DEF_ResetRequestIEs_tags_81,
-	sizeof(asn_DEF_ResetRequestIEs_tags_81)
-		/sizeof(asn_DEF_ResetRequestIEs_tags_81[0]), /* 1 */
-	asn_DEF_ResetRequestIEs_tags_81,	/* Same as above */
-	sizeof(asn_DEF_ResetRequestIEs_tags_81)
-		/sizeof(asn_DEF_ResetRequestIEs_tags_81[0]), /* 1 */
+	asn_DEF_ResetRequestIEs_tags_129,
+	sizeof(asn_DEF_ResetRequestIEs_tags_129)
+		/sizeof(asn_DEF_ResetRequestIEs_tags_129[0]), /* 1 */
+	asn_DEF_ResetRequestIEs_tags_129,	/* Same as above */
+	sizeof(asn_DEF_ResetRequestIEs_tags_129)
+		/sizeof(asn_DEF_ResetRequestIEs_tags_129[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_ResetRequestIEs_81,
+	asn_MBR_ResetRequestIEs_129,
 	3,	/* Elements count */
-	&asn_SPC_ResetRequestIEs_specs_81	/* Additional specs */
+	&asn_SPC_ResetRequestIEs_specs_129	/* Additional specs */
 };
 
-static asn_TYPE_member_t asn_MBR_value_88[] = {
+static asn_TYPE_member_t asn_MBR_value_136[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs__value, choice.TransactionID),
+		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+		0,
+		&asn_DEF_TransactionID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"TransactionID"
+		},
 	{ ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs__value, choice.CriticalityDiagnostics),
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -6869,21 +10265,22 @@
 		"CriticalityDiagnostics"
 		},
 };
-static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_88[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* CriticalityDiagnostics */
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_136[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 } /* CriticalityDiagnostics */
 };
-static asn_CHOICE_specifics_t asn_SPC_value_specs_88 = {
+static asn_CHOICE_specifics_t asn_SPC_value_specs_136 = {
 	sizeof(struct ResetResponseIEs__value),
 	offsetof(struct ResetResponseIEs__value, _asn_ctx),
 	offsetof(struct ResetResponseIEs__value, present),
 	sizeof(((struct ResetResponseIEs__value *)0)->present),
-	asn_MAP_value_tag2el_88,
-	1,	/* Count of tags in the map */
+	asn_MAP_value_tag2el_136,
+	2,	/* Count of tags in the map */
 	0, 0,
 	-1	/* Extensions start */
 };
 static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_value_88 = {
+asn_TYPE_descriptor_t asn_DEF_value_136 = {
 	"value",
 	"value",
 	&asn_OP_OPEN_TYPE,
@@ -6892,52 +10289,53 @@
 	0,	/* No tags (pointer) */
 	0,	/* No tags (count) */
 	{ 0, 0, OPEN_TYPE_constraint },
-	asn_MBR_value_88,
-	1,	/* Elements count */
-	&asn_SPC_value_specs_88	/* Additional specs */
+	asn_MBR_value_136,
+	2,	/* Elements count */
+	&asn_SPC_value_specs_136	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_ResetResponseIEs_85[] = {
+asn_TYPE_member_t asn_MBR_ResetResponseIEs_133[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs, id),
-		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_ProtocolIE_ID,
 		0,
-		{ &asn_OER_memb_id_constr_86, &asn_PER_memb_id_constr_86,  memb_id_constraint_85 },
+		{ &asn_OER_memb_id_constr_134, &asn_PER_memb_id_constr_134,  memb_id_constraint_133 },
 		0, 0, /* No default value */
 		"id"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs, criticality),
-		(ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_Criticality,
 		select_ResetResponseIEs_criticality_type,
-		{ &asn_OER_memb_criticality_constr_87, &asn_PER_memb_criticality_constr_87,  memb_criticality_constraint_85 },
+		{ &asn_OER_memb_criticality_constr_135, &asn_PER_memb_criticality_constr_135,  memb_criticality_constraint_133 },
 		0, 0, /* No default value */
 		"criticality"
 		},
 	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs, value),
-		-1 /* Ambiguous tag (ANY?) */,
-		0,
-		&asn_DEF_value_88,
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_136,
 		select_ResetResponseIEs_value_type,
-		{ &asn_OER_memb_value_constr_88, &asn_PER_memb_value_constr_88,  memb_value_constraint_85 },
+		{ &asn_OER_memb_value_constr_136, &asn_PER_memb_value_constr_136,  memb_value_constraint_133 },
 		0, 0, /* No default value */
 		"value"
 		},
 };
-static const ber_tlv_tag_t asn_DEF_ResetResponseIEs_tags_85[] = {
+static const ber_tlv_tag_t asn_DEF_ResetResponseIEs_tags_133[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-static const asn_TYPE_tag2member_t asn_MAP_ResetResponseIEs_tag2el_85[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */
-    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */
+static const asn_TYPE_tag2member_t asn_MAP_ResetResponseIEs_tag2el_133[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
 };
-asn_SEQUENCE_specifics_t asn_SPC_ResetResponseIEs_specs_85 = {
+asn_SEQUENCE_specifics_t asn_SPC_ResetResponseIEs_specs_133 = {
 	sizeof(struct ResetResponseIEs),
 	offsetof(struct ResetResponseIEs, _asn_ctx),
-	asn_MAP_ResetResponseIEs_tag2el_85,
-	2,	/* Count of tags in the map */
+	asn_MAP_ResetResponseIEs_tag2el_133,
+	3,	/* Count of tags in the map */
 	0, 0, 0,	/* Optional elements (not needed) */
 	-1,	/* First extension addition */
 };
@@ -6945,359 +10343,28 @@
 	"ResetResponseIEs",
 	"ResetResponseIEs",
 	&asn_OP_SEQUENCE,
-	asn_DEF_ResetResponseIEs_tags_85,
-	sizeof(asn_DEF_ResetResponseIEs_tags_85)
-		/sizeof(asn_DEF_ResetResponseIEs_tags_85[0]), /* 1 */
-	asn_DEF_ResetResponseIEs_tags_85,	/* Same as above */
-	sizeof(asn_DEF_ResetResponseIEs_tags_85)
-		/sizeof(asn_DEF_ResetResponseIEs_tags_85[0]), /* 1 */
+	asn_DEF_ResetResponseIEs_tags_133,
+	sizeof(asn_DEF_ResetResponseIEs_tags_133)
+		/sizeof(asn_DEF_ResetResponseIEs_tags_133[0]), /* 1 */
+	asn_DEF_ResetResponseIEs_tags_133,	/* Same as above */
+	sizeof(asn_DEF_ResetResponseIEs_tags_133)
+		/sizeof(asn_DEF_ResetResponseIEs_tags_133[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_ResetResponseIEs_85,
+	asn_MBR_ResetResponseIEs_133,
 	3,	/* Elements count */
-	&asn_SPC_ResetResponseIEs_specs_85	/* Additional specs */
+	&asn_SPC_ResetResponseIEs_specs_133	/* Additional specs */
 };
 
-static asn_TYPE_member_t asn_MBR_value_92[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs__value, choice.RANfunctions_List),
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_RANfunctions_List,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"RANfunctions-List"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs__value, choice.RANfunctionsID_List),
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_RANfunctionsID_List,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"RANfunctionsID-List"
-		},
-};
-static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_92[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RANfunctions-List */
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* RANfunctionsID-List */
-};
-static asn_CHOICE_specifics_t asn_SPC_value_specs_92 = {
-	sizeof(struct RICserviceUpdate_IEs__value),
-	offsetof(struct RICserviceUpdate_IEs__value, _asn_ctx),
-	offsetof(struct RICserviceUpdate_IEs__value, present),
-	sizeof(((struct RICserviceUpdate_IEs__value *)0)->present),
-	asn_MAP_value_tag2el_92,
-	2,	/* Count of tags in the map */
-	0, 0,
-	-1	/* Extensions start */
-};
-static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_value_92 = {
-	"value",
-	"value",
-	&asn_OP_OPEN_TYPE,
-	0,	/* No effective tags (pointer) */
-	0,	/* No effective tags (count) */
-	0,	/* No tags (pointer) */
-	0,	/* No tags (count) */
-	{ 0, 0, OPEN_TYPE_constraint },
-	asn_MBR_value_92,
-	2,	/* Elements count */
-	&asn_SPC_value_specs_92	/* Additional specs */
-};
-
-asn_TYPE_member_t asn_MBR_RICserviceUpdate_IEs_89[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, id),
+static asn_TYPE_member_t asn_MBR_value_140[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs__value, choice.TransactionID),
 		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
 		0,
-		&asn_DEF_ProtocolIE_ID,
-		0,
-		{ &asn_OER_memb_id_constr_90, &asn_PER_memb_id_constr_90,  memb_id_constraint_89 },
-		0, 0, /* No default value */
-		"id"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, criticality),
-		(ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
-		0,
-		&asn_DEF_Criticality,
-		select_RICserviceUpdate_IEs_criticality_type,
-		{ &asn_OER_memb_criticality_constr_91, &asn_PER_memb_criticality_constr_91,  memb_criticality_constraint_89 },
-		0, 0, /* No default value */
-		"criticality"
-		},
-	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, value),
-		-1 /* Ambiguous tag (ANY?) */,
-		0,
-		&asn_DEF_value_92,
-		select_RICserviceUpdate_IEs_value_type,
-		{ &asn_OER_memb_value_constr_92, &asn_PER_memb_value_constr_92,  memb_value_constraint_89 },
-		0, 0, /* No default value */
-		"value"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_RICserviceUpdate_IEs_tags_89[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdate_IEs_tag2el_89[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */
-    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */
-};
-asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_IEs_specs_89 = {
-	sizeof(struct RICserviceUpdate_IEs),
-	offsetof(struct RICserviceUpdate_IEs, _asn_ctx),
-	asn_MAP_RICserviceUpdate_IEs_tag2el_89,
-	2,	/* Count of tags in the map */
-	0, 0, 0,	/* Optional elements (not needed) */
-	-1,	/* First extension addition */
-};
-asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate_IEs = {
-	"RICserviceUpdate-IEs",
-	"RICserviceUpdate-IEs",
-	&asn_OP_SEQUENCE,
-	asn_DEF_RICserviceUpdate_IEs_tags_89,
-	sizeof(asn_DEF_RICserviceUpdate_IEs_tags_89)
-		/sizeof(asn_DEF_RICserviceUpdate_IEs_tags_89[0]), /* 1 */
-	asn_DEF_RICserviceUpdate_IEs_tags_89,	/* Same as above */
-	sizeof(asn_DEF_RICserviceUpdate_IEs_tags_89)
-		/sizeof(asn_DEF_RICserviceUpdate_IEs_tags_89[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_RICserviceUpdate_IEs_89,
-	3,	/* Elements count */
-	&asn_SPC_RICserviceUpdate_IEs_specs_89	/* Additional specs */
-};
-
-static asn_TYPE_member_t asn_MBR_value_96[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs__value, choice.RANfunctionsID_List),
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_RANfunctionsID_List,
+		&asn_DEF_TransactionID,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
-		"RANfunctionsID-List"
+		"TransactionID"
 		},
-	{ ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs__value, choice.RANfunctionsIDcause_List),
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_RANfunctionsIDcause_List,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"RANfunctionsIDcause-List"
-		},
-};
-static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_96[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RANfunctionsID-List */
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* RANfunctionsIDcause-List */
-};
-static asn_CHOICE_specifics_t asn_SPC_value_specs_96 = {
-	sizeof(struct RICserviceUpdateAcknowledge_IEs__value),
-	offsetof(struct RICserviceUpdateAcknowledge_IEs__value, _asn_ctx),
-	offsetof(struct RICserviceUpdateAcknowledge_IEs__value, present),
-	sizeof(((struct RICserviceUpdateAcknowledge_IEs__value *)0)->present),
-	asn_MAP_value_tag2el_96,
-	2,	/* Count of tags in the map */
-	0, 0,
-	-1	/* Extensions start */
-};
-static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_value_96 = {
-	"value",
-	"value",
-	&asn_OP_OPEN_TYPE,
-	0,	/* No effective tags (pointer) */
-	0,	/* No effective tags (count) */
-	0,	/* No tags (pointer) */
-	0,	/* No tags (count) */
-	{ 0, 0, OPEN_TYPE_constraint },
-	asn_MBR_value_96,
-	2,	/* Elements count */
-	&asn_SPC_value_specs_96	/* Additional specs */
-};
-
-asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_IEs_93[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, id),
-		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
-		0,
-		&asn_DEF_ProtocolIE_ID,
-		0,
-		{ &asn_OER_memb_id_constr_94, &asn_PER_memb_id_constr_94,  memb_id_constraint_93 },
-		0, 0, /* No default value */
-		"id"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, criticality),
-		(ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
-		0,
-		&asn_DEF_Criticality,
-		select_RICserviceUpdateAcknowledge_IEs_criticality_type,
-		{ &asn_OER_memb_criticality_constr_95, &asn_PER_memb_criticality_constr_95,  memb_criticality_constraint_93 },
-		0, 0, /* No default value */
-		"criticality"
-		},
-	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, value),
-		-1 /* Ambiguous tag (ANY?) */,
-		0,
-		&asn_DEF_value_96,
-		select_RICserviceUpdateAcknowledge_IEs_value_type,
-		{ &asn_OER_memb_value_constr_96, &asn_PER_memb_value_constr_96,  memb_value_constraint_93 },
-		0, 0, /* No default value */
-		"value"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateAcknowledge_IEs_tag2el_93[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */
-    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */
-};
-asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_93 = {
-	sizeof(struct RICserviceUpdateAcknowledge_IEs),
-	offsetof(struct RICserviceUpdateAcknowledge_IEs, _asn_ctx),
-	asn_MAP_RICserviceUpdateAcknowledge_IEs_tag2el_93,
-	2,	/* Count of tags in the map */
-	0, 0, 0,	/* Optional elements (not needed) */
-	-1,	/* First extension addition */
-};
-asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge_IEs = {
-	"RICserviceUpdateAcknowledge-IEs",
-	"RICserviceUpdateAcknowledge-IEs",
-	&asn_OP_SEQUENCE,
-	asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93,
-	sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93)
-		/sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93[0]), /* 1 */
-	asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93,	/* Same as above */
-	sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93)
-		/sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_RICserviceUpdateAcknowledge_IEs_93,
-	3,	/* Elements count */
-	&asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_93	/* Additional specs */
-};
-
-static asn_TYPE_member_t asn_MBR_value_100[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.RANfunctionsIDcause_List),
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_RANfunctionsIDcause_List,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"RANfunctionsIDcause-List"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.TimeToWait),
-		(ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
-		0,
-		&asn_DEF_TimeToWait,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"TimeToWait"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.CriticalityDiagnostics),
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_CriticalityDiagnostics,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"CriticalityDiagnostics"
-		},
-};
-static const unsigned asn_MAP_value_to_canonical_100[] = { 1, 0, 2 };
-static const unsigned asn_MAP_value_from_canonical_100[] = { 1, 0, 2 };
-static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_100[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* TimeToWait */
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RANfunctionsIDcause-List */
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* CriticalityDiagnostics */
-};
-static asn_CHOICE_specifics_t asn_SPC_value_specs_100 = {
-	sizeof(struct RICserviceUpdateFailure_IEs__value),
-	offsetof(struct RICserviceUpdateFailure_IEs__value, _asn_ctx),
-	offsetof(struct RICserviceUpdateFailure_IEs__value, present),
-	sizeof(((struct RICserviceUpdateFailure_IEs__value *)0)->present),
-	asn_MAP_value_tag2el_100,
-	3,	/* Count of tags in the map */
-	asn_MAP_value_to_canonical_100,
-	asn_MAP_value_from_canonical_100,
-	-1	/* Extensions start */
-};
-static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_value_100 = {
-	"value",
-	"value",
-	&asn_OP_OPEN_TYPE,
-	0,	/* No effective tags (pointer) */
-	0,	/* No effective tags (count) */
-	0,	/* No tags (pointer) */
-	0,	/* No tags (count) */
-	{ 0, 0, OPEN_TYPE_constraint },
-	asn_MBR_value_100,
-	3,	/* Elements count */
-	&asn_SPC_value_specs_100	/* Additional specs */
-};
-
-asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_IEs_97[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, id),
-		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
-		0,
-		&asn_DEF_ProtocolIE_ID,
-		0,
-		{ &asn_OER_memb_id_constr_98, &asn_PER_memb_id_constr_98,  memb_id_constraint_97 },
-		0, 0, /* No default value */
-		"id"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, criticality),
-		(ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
-		0,
-		&asn_DEF_Criticality,
-		select_RICserviceUpdateFailure_IEs_criticality_type,
-		{ &asn_OER_memb_criticality_constr_99, &asn_PER_memb_criticality_constr_99,  memb_criticality_constraint_97 },
-		0, 0, /* No default value */
-		"criticality"
-		},
-	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, value),
-		-1 /* Ambiguous tag (ANY?) */,
-		0,
-		&asn_DEF_value_100,
-		select_RICserviceUpdateFailure_IEs_value_type,
-		{ &asn_OER_memb_value_constr_100, &asn_PER_memb_value_constr_100,  memb_value_constraint_97 },
-		0, 0, /* No default value */
-		"value"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_RICserviceUpdateFailure_IEs_tags_97[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateFailure_IEs_tag2el_97[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */
-    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */
-};
-asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_IEs_specs_97 = {
-	sizeof(struct RICserviceUpdateFailure_IEs),
-	offsetof(struct RICserviceUpdateFailure_IEs, _asn_ctx),
-	asn_MAP_RICserviceUpdateFailure_IEs_tag2el_97,
-	2,	/* Count of tags in the map */
-	0, 0, 0,	/* Optional elements (not needed) */
-	-1,	/* First extension addition */
-};
-asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure_IEs = {
-	"RICserviceUpdateFailure-IEs",
-	"RICserviceUpdateFailure-IEs",
-	&asn_OP_SEQUENCE,
-	asn_DEF_RICserviceUpdateFailure_IEs_tags_97,
-	sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_97)
-		/sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_97[0]), /* 1 */
-	asn_DEF_RICserviceUpdateFailure_IEs_tags_97,	/* Same as above */
-	sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_97)
-		/sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_97[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_RICserviceUpdateFailure_IEs_97,
-	3,	/* Elements count */
-	&asn_SPC_RICserviceUpdateFailure_IEs_specs_97	/* Additional specs */
-};
-
-static asn_TYPE_member_t asn_MBR_value_104[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs__value, choice.RANfunctionsID_List),
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -7308,21 +10375,22 @@
 		"RANfunctionsID-List"
 		},
 };
-static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_104[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionsID-List */
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_140[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 } /* RANfunctionsID-List */
 };
-static asn_CHOICE_specifics_t asn_SPC_value_specs_104 = {
+static asn_CHOICE_specifics_t asn_SPC_value_specs_140 = {
 	sizeof(struct RICserviceQuery_IEs__value),
 	offsetof(struct RICserviceQuery_IEs__value, _asn_ctx),
 	offsetof(struct RICserviceQuery_IEs__value, present),
 	sizeof(((struct RICserviceQuery_IEs__value *)0)->present),
-	asn_MAP_value_tag2el_104,
-	1,	/* Count of tags in the map */
+	asn_MAP_value_tag2el_140,
+	2,	/* Count of tags in the map */
 	0, 0,
 	-1	/* Extensions start */
 };
 static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_value_104 = {
+asn_TYPE_descriptor_t asn_DEF_value_140 = {
 	"value",
 	"value",
 	&asn_OP_OPEN_TYPE,
@@ -7331,52 +10399,53 @@
 	0,	/* No tags (pointer) */
 	0,	/* No tags (count) */
 	{ 0, 0, OPEN_TYPE_constraint },
-	asn_MBR_value_104,
-	1,	/* Elements count */
-	&asn_SPC_value_specs_104	/* Additional specs */
+	asn_MBR_value_140,
+	2,	/* Elements count */
+	&asn_SPC_value_specs_140	/* Additional specs */
 };
 
-asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_101[] = {
+asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_137[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, id),
-		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_ProtocolIE_ID,
 		0,
-		{ &asn_OER_memb_id_constr_102, &asn_PER_memb_id_constr_102,  memb_id_constraint_101 },
+		{ &asn_OER_memb_id_constr_138, &asn_PER_memb_id_constr_138,  memb_id_constraint_137 },
 		0, 0, /* No default value */
 		"id"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, criticality),
-		(ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
-		0,
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_Criticality,
 		select_RICserviceQuery_IEs_criticality_type,
-		{ &asn_OER_memb_criticality_constr_103, &asn_PER_memb_criticality_constr_103,  memb_criticality_constraint_101 },
+		{ &asn_OER_memb_criticality_constr_139, &asn_PER_memb_criticality_constr_139,  memb_criticality_constraint_137 },
 		0, 0, /* No default value */
 		"criticality"
 		},
 	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, value),
-		-1 /* Ambiguous tag (ANY?) */,
-		0,
-		&asn_DEF_value_104,
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_140,
 		select_RICserviceQuery_IEs_value_type,
-		{ &asn_OER_memb_value_constr_104, &asn_PER_memb_value_constr_104,  memb_value_constraint_101 },
+		{ &asn_OER_memb_value_constr_140, &asn_PER_memb_value_constr_140,  memb_value_constraint_137 },
 		0, 0, /* No default value */
 		"value"
 		},
 };
-static const ber_tlv_tag_t asn_DEF_RICserviceQuery_IEs_tags_101[] = {
+static const ber_tlv_tag_t asn_DEF_RICserviceQuery_IEs_tags_137[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-static const asn_TYPE_tag2member_t asn_MAP_RICserviceQuery_IEs_tag2el_101[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */
-    { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */
+static const asn_TYPE_tag2member_t asn_MAP_RICserviceQuery_IEs_tag2el_137[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
 };
-asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_IEs_specs_101 = {
+asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_IEs_specs_137 = {
 	sizeof(struct RICserviceQuery_IEs),
 	offsetof(struct RICserviceQuery_IEs, _asn_ctx),
-	asn_MAP_RICserviceQuery_IEs_tag2el_101,
-	2,	/* Count of tags in the map */
+	asn_MAP_RICserviceQuery_IEs_tag2el_137,
+	3,	/* Count of tags in the map */
 	0, 0, 0,	/* Optional elements (not needed) */
 	-1,	/* First extension addition */
 };
@@ -7384,15 +10453,353 @@
 	"RICserviceQuery-IEs",
 	"RICserviceQuery-IEs",
 	&asn_OP_SEQUENCE,
-	asn_DEF_RICserviceQuery_IEs_tags_101,
-	sizeof(asn_DEF_RICserviceQuery_IEs_tags_101)
-		/sizeof(asn_DEF_RICserviceQuery_IEs_tags_101[0]), /* 1 */
-	asn_DEF_RICserviceQuery_IEs_tags_101,	/* Same as above */
-	sizeof(asn_DEF_RICserviceQuery_IEs_tags_101)
-		/sizeof(asn_DEF_RICserviceQuery_IEs_tags_101[0]), /* 1 */
+	asn_DEF_RICserviceQuery_IEs_tags_137,
+	sizeof(asn_DEF_RICserviceQuery_IEs_tags_137)
+		/sizeof(asn_DEF_RICserviceQuery_IEs_tags_137[0]), /* 1 */
+	asn_DEF_RICserviceQuery_IEs_tags_137,	/* Same as above */
+	sizeof(asn_DEF_RICserviceQuery_IEs_tags_137)
+		/sizeof(asn_DEF_RICserviceQuery_IEs_tags_137[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_RICserviceQuery_IEs_101,
+	asn_MBR_RICserviceQuery_IEs_137,
 	3,	/* Elements count */
-	&asn_SPC_RICserviceQuery_IEs_specs_101	/* Additional specs */
+	&asn_SPC_RICserviceQuery_IEs_specs_137	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_144[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2RemovalRequestIEs__value, choice.TransactionID),
+		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+		0,
+		&asn_DEF_TransactionID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"TransactionID"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_144[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* TransactionID */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_144 = {
+	sizeof(struct E2RemovalRequestIEs__value),
+	offsetof(struct E2RemovalRequestIEs__value, _asn_ctx),
+	offsetof(struct E2RemovalRequestIEs__value, present),
+	sizeof(((struct E2RemovalRequestIEs__value *)0)->present),
+	asn_MAP_value_tag2el_144,
+	1,	/* Count of tags in the map */
+	0, 0,
+	-1	/* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_144 = {
+	"value",
+	"value",
+	&asn_OP_OPEN_TYPE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ 0, 0, OPEN_TYPE_constraint },
+	asn_MBR_value_144,
+	1,	/* Elements count */
+	&asn_SPC_value_specs_144	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2RemovalRequestIEs_141[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2RemovalRequestIEs, id),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_ProtocolIE_ID,
+		0,
+		{ &asn_OER_memb_id_constr_142, &asn_PER_memb_id_constr_142,  memb_id_constraint_141 },
+		0, 0, /* No default value */
+		"id"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2RemovalRequestIEs, criticality),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_Criticality,
+		select_E2RemovalRequestIEs_criticality_type,
+		{ &asn_OER_memb_criticality_constr_143, &asn_PER_memb_criticality_constr_143,  memb_criticality_constraint_141 },
+		0, 0, /* No default value */
+		"criticality"
+		},
+	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2RemovalRequestIEs, value),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_144,
+		select_E2RemovalRequestIEs_value_type,
+		{ &asn_OER_memb_value_constr_144, &asn_PER_memb_value_constr_144,  memb_value_constraint_141 },
+		0, 0, /* No default value */
+		"value"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2RemovalRequestIEs_tags_141[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2RemovalRequestIEs_tag2el_141[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2RemovalRequestIEs_specs_141 = {
+	sizeof(struct E2RemovalRequestIEs),
+	offsetof(struct E2RemovalRequestIEs, _asn_ctx),
+	asn_MAP_E2RemovalRequestIEs_tag2el_141,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	-1,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2RemovalRequestIEs = {
+	"E2RemovalRequestIEs",
+	"E2RemovalRequestIEs",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2RemovalRequestIEs_tags_141,
+	sizeof(asn_DEF_E2RemovalRequestIEs_tags_141)
+		/sizeof(asn_DEF_E2RemovalRequestIEs_tags_141[0]), /* 1 */
+	asn_DEF_E2RemovalRequestIEs_tags_141,	/* Same as above */
+	sizeof(asn_DEF_E2RemovalRequestIEs_tags_141)
+		/sizeof(asn_DEF_E2RemovalRequestIEs_tags_141[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2RemovalRequestIEs_141,
+	3,	/* Elements count */
+	&asn_SPC_E2RemovalRequestIEs_specs_141	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_148[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2RemovalResponseIEs__value, choice.TransactionID),
+		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+		0,
+		&asn_DEF_TransactionID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"TransactionID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2RemovalResponseIEs__value, choice.CriticalityDiagnostics),
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_CriticalityDiagnostics,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"CriticalityDiagnostics"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_148[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 } /* CriticalityDiagnostics */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_148 = {
+	sizeof(struct E2RemovalResponseIEs__value),
+	offsetof(struct E2RemovalResponseIEs__value, _asn_ctx),
+	offsetof(struct E2RemovalResponseIEs__value, present),
+	sizeof(((struct E2RemovalResponseIEs__value *)0)->present),
+	asn_MAP_value_tag2el_148,
+	2,	/* Count of tags in the map */
+	0, 0,
+	-1	/* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_148 = {
+	"value",
+	"value",
+	&asn_OP_OPEN_TYPE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ 0, 0, OPEN_TYPE_constraint },
+	asn_MBR_value_148,
+	2,	/* Elements count */
+	&asn_SPC_value_specs_148	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2RemovalResponseIEs_145[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2RemovalResponseIEs, id),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_ProtocolIE_ID,
+		0,
+		{ &asn_OER_memb_id_constr_146, &asn_PER_memb_id_constr_146,  memb_id_constraint_145 },
+		0, 0, /* No default value */
+		"id"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2RemovalResponseIEs, criticality),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_Criticality,
+		select_E2RemovalResponseIEs_criticality_type,
+		{ &asn_OER_memb_criticality_constr_147, &asn_PER_memb_criticality_constr_147,  memb_criticality_constraint_145 },
+		0, 0, /* No default value */
+		"criticality"
+		},
+	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2RemovalResponseIEs, value),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_148,
+		select_E2RemovalResponseIEs_value_type,
+		{ &asn_OER_memb_value_constr_148, &asn_PER_memb_value_constr_148,  memb_value_constraint_145 },
+		0, 0, /* No default value */
+		"value"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2RemovalResponseIEs_tags_145[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2RemovalResponseIEs_tag2el_145[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2RemovalResponseIEs_specs_145 = {
+	sizeof(struct E2RemovalResponseIEs),
+	offsetof(struct E2RemovalResponseIEs, _asn_ctx),
+	asn_MAP_E2RemovalResponseIEs_tag2el_145,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	-1,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2RemovalResponseIEs = {
+	"E2RemovalResponseIEs",
+	"E2RemovalResponseIEs",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2RemovalResponseIEs_tags_145,
+	sizeof(asn_DEF_E2RemovalResponseIEs_tags_145)
+		/sizeof(asn_DEF_E2RemovalResponseIEs_tags_145[0]), /* 1 */
+	asn_DEF_E2RemovalResponseIEs_tags_145,	/* Same as above */
+	sizeof(asn_DEF_E2RemovalResponseIEs_tags_145)
+		/sizeof(asn_DEF_E2RemovalResponseIEs_tags_145[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2RemovalResponseIEs_145,
+	3,	/* Elements count */
+	&asn_SPC_E2RemovalResponseIEs_specs_145	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_value_152[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2RemovalFailureIEs__value, choice.TransactionID),
+		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
+		0,
+		&asn_DEF_TransactionID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"TransactionID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2RemovalFailureIEs__value, choice.Cause),
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_Cause,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"Cause"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2RemovalFailureIEs__value, choice.CriticalityDiagnostics),
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_CriticalityDiagnostics,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"CriticalityDiagnostics"
+		},
+};
+static const unsigned asn_MAP_value_to_canonical_152[] = { 0, 2, 1 };
+static const unsigned asn_MAP_value_from_canonical_152[] = { 0, 2, 1 };
+static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_152[] = {
+    { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* CriticalityDiagnostics */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* ricRequest */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricService */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* e2Node */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 }, /* transport */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 }, /* protocol */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 1, 0, 0 } /* misc */
+};
+static asn_CHOICE_specifics_t asn_SPC_value_specs_152 = {
+	sizeof(struct E2RemovalFailureIEs__value),
+	offsetof(struct E2RemovalFailureIEs__value, _asn_ctx),
+	offsetof(struct E2RemovalFailureIEs__value, present),
+	sizeof(((struct E2RemovalFailureIEs__value *)0)->present),
+	asn_MAP_value_tag2el_152,
+	8,	/* Count of tags in the map */
+	asn_MAP_value_to_canonical_152,
+	asn_MAP_value_from_canonical_152,
+	-1	/* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_value_152 = {
+	"value",
+	"value",
+	&asn_OP_OPEN_TYPE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ 0, 0, OPEN_TYPE_constraint },
+	asn_MBR_value_152,
+	3,	/* Elements count */
+	&asn_SPC_value_specs_152	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2RemovalFailureIEs_149[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2RemovalFailureIEs, id),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_ProtocolIE_ID,
+		0,
+		{ &asn_OER_memb_id_constr_150, &asn_PER_memb_id_constr_150,  memb_id_constraint_149 },
+		0, 0, /* No default value */
+		"id"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2RemovalFailureIEs, criticality),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_Criticality,
+		select_E2RemovalFailureIEs_criticality_type,
+		{ &asn_OER_memb_criticality_constr_151, &asn_PER_memb_criticality_constr_151,  memb_criticality_constraint_149 },
+		0, 0, /* No default value */
+		"criticality"
+		},
+	{ ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2RemovalFailureIEs, value),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_value_152,
+		select_E2RemovalFailureIEs_value_type,
+		{ &asn_OER_memb_value_constr_152, &asn_PER_memb_value_constr_152,  memb_value_constraint_149 },
+		0, 0, /* No default value */
+		"value"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2RemovalFailureIEs_tags_149[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2RemovalFailureIEs_tag2el_149[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2RemovalFailureIEs_specs_149 = {
+	sizeof(struct E2RemovalFailureIEs),
+	offsetof(struct E2RemovalFailureIEs, _asn_ctx),
+	asn_MAP_E2RemovalFailureIEs_tag2el_149,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	-1,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2RemovalFailureIEs = {
+	"E2RemovalFailureIEs",
+	"E2RemovalFailureIEs",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2RemovalFailureIEs_tags_149,
+	sizeof(asn_DEF_E2RemovalFailureIEs_tags_149)
+		/sizeof(asn_DEF_E2RemovalFailureIEs_tags_149[0]), /* 1 */
+	asn_DEF_E2RemovalFailureIEs_tags_149,	/* Same as above */
+	sizeof(asn_DEF_E2RemovalFailureIEs_tags_149)
+		/sizeof(asn_DEF_E2RemovalFailureIEs_tags_149[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2RemovalFailureIEs_149,
+	3,	/* Elements count */
+	&asn_SPC_E2RemovalFailureIEs_specs_149	/* Additional specs */
 };
 
diff --git a/e2ap/lib/ProtocolIE-FieldPair.c b/e2ap/lib/ProtocolIE-FieldPair.c
index fa909ca..3f08748 100644
--- a/e2ap/lib/ProtocolIE-FieldPair.c
+++ b/e2ap/lib/ProtocolIE-FieldPair.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-Containers"
- * 	found in "E2AP-Containers-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "ProtocolIE-FieldPair.h"
diff --git a/e2ap/lib/ProtocolIE-ID.c b/e2ap/lib/ProtocolIE-ID.c
index b0e56de..4f18ffd 100644
--- a/e2ap/lib/ProtocolIE-ID.c
+++ b/e2ap/lib/ProtocolIE-ID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2AP-CommonDataTypes"
- * 	found in "E2AP-CommonDataTypes-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "ProtocolIE-ID.h"
diff --git a/e2ap/lib/ProtocolIE-SingleContainer.c b/e2ap/lib/ProtocolIE-SingleContainer.c
index 5b06b80..0954fe0 100644
--- a/e2ap/lib/ProtocolIE-SingleContainer.c
+++ b/e2ap/lib/ProtocolIE-SingleContainer.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-Containers"
- * 	found in "E2AP-Containers-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "ProtocolIE-SingleContainer.h"
@@ -20,6 +20,38 @@
  * so here we adjust the DEF accordingly.
  */
 /*
+ * This type is implemented using RICsubscription_withCause_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E2nodeComponentConfigAddition_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E2nodeComponentConfigUpdate_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E2nodeComponentConfigRemoval_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E2nodeTNLassociationRemoval_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E2nodeComponentConfigAdditionAck_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E2nodeComponentConfigUpdateAck_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using E2nodeComponentConfigRemovalAck_ItemIEs,
+ * so here we adjust the DEF accordingly.
+ */
+/*
  * This type is implemented using RANfunction_ItemIEs,
  * so here we adjust the DEF accordingly.
  */
@@ -31,117 +63,269 @@
  * This type is implemented using RANfunctionIDcause_ItemIEs,
  * so here we adjust the DEF accordingly.
  */
-static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_90P0_tags_1[] = {
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_188P0_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_90P0 = {
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_188P0 = {
 	"ProtocolIE-SingleContainer",
 	"ProtocolIE-SingleContainer",
 	&asn_OP_SEQUENCE,
-	asn_DEF_ProtocolIE_SingleContainer_90P0_tags_1,
-	sizeof(asn_DEF_ProtocolIE_SingleContainer_90P0_tags_1)
-		/sizeof(asn_DEF_ProtocolIE_SingleContainer_90P0_tags_1[0]), /* 1 */
-	asn_DEF_ProtocolIE_SingleContainer_90P0_tags_1,	/* Same as above */
-	sizeof(asn_DEF_ProtocolIE_SingleContainer_90P0_tags_1)
-		/sizeof(asn_DEF_ProtocolIE_SingleContainer_90P0_tags_1[0]), /* 1 */
+	asn_DEF_ProtocolIE_SingleContainer_188P0_tags_1,
+	sizeof(asn_DEF_ProtocolIE_SingleContainer_188P0_tags_1)
+		/sizeof(asn_DEF_ProtocolIE_SingleContainer_188P0_tags_1[0]), /* 1 */
+	asn_DEF_ProtocolIE_SingleContainer_188P0_tags_1,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_SingleContainer_188P0_tags_1)
+		/sizeof(asn_DEF_ProtocolIE_SingleContainer_188P0_tags_1[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
 	asn_MBR_RICaction_ToBeSetup_ItemIEs_1,
 	3,	/* Elements count */
 	&asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1	/* Additional specs */
 };
 
-static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_90P1_tags_2[] = {
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_188P1_tags_2[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_90P1 = {
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_188P1 = {
 	"ProtocolIE-SingleContainer",
 	"ProtocolIE-SingleContainer",
 	&asn_OP_SEQUENCE,
-	asn_DEF_ProtocolIE_SingleContainer_90P1_tags_2,
-	sizeof(asn_DEF_ProtocolIE_SingleContainer_90P1_tags_2)
-		/sizeof(asn_DEF_ProtocolIE_SingleContainer_90P1_tags_2[0]), /* 1 */
-	asn_DEF_ProtocolIE_SingleContainer_90P1_tags_2,	/* Same as above */
-	sizeof(asn_DEF_ProtocolIE_SingleContainer_90P1_tags_2)
-		/sizeof(asn_DEF_ProtocolIE_SingleContainer_90P1_tags_2[0]), /* 1 */
+	asn_DEF_ProtocolIE_SingleContainer_188P1_tags_2,
+	sizeof(asn_DEF_ProtocolIE_SingleContainer_188P1_tags_2)
+		/sizeof(asn_DEF_ProtocolIE_SingleContainer_188P1_tags_2[0]), /* 1 */
+	asn_DEF_ProtocolIE_SingleContainer_188P1_tags_2,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_SingleContainer_188P1_tags_2)
+		/sizeof(asn_DEF_ProtocolIE_SingleContainer_188P1_tags_2[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
 	asn_MBR_RICaction_Admitted_ItemIEs_5,
 	3,	/* Elements count */
 	&asn_SPC_RICaction_Admitted_ItemIEs_specs_5	/* Additional specs */
 };
 
-static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_90P2_tags_3[] = {
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_188P2_tags_3[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_90P2 = {
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_188P2 = {
 	"ProtocolIE-SingleContainer",
 	"ProtocolIE-SingleContainer",
 	&asn_OP_SEQUENCE,
-	asn_DEF_ProtocolIE_SingleContainer_90P2_tags_3,
-	sizeof(asn_DEF_ProtocolIE_SingleContainer_90P2_tags_3)
-		/sizeof(asn_DEF_ProtocolIE_SingleContainer_90P2_tags_3[0]), /* 1 */
-	asn_DEF_ProtocolIE_SingleContainer_90P2_tags_3,	/* Same as above */
-	sizeof(asn_DEF_ProtocolIE_SingleContainer_90P2_tags_3)
-		/sizeof(asn_DEF_ProtocolIE_SingleContainer_90P2_tags_3[0]), /* 1 */
+	asn_DEF_ProtocolIE_SingleContainer_188P2_tags_3,
+	sizeof(asn_DEF_ProtocolIE_SingleContainer_188P2_tags_3)
+		/sizeof(asn_DEF_ProtocolIE_SingleContainer_188P2_tags_3[0]), /* 1 */
+	asn_DEF_ProtocolIE_SingleContainer_188P2_tags_3,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_SingleContainer_188P2_tags_3)
+		/sizeof(asn_DEF_ProtocolIE_SingleContainer_188P2_tags_3[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
 	asn_MBR_RICaction_NotAdmitted_ItemIEs_9,
 	3,	/* Elements count */
 	&asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9	/* Additional specs */
 };
 
-static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_90P3_tags_4[] = {
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_188P3_tags_4[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_90P3 = {
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_188P3 = {
 	"ProtocolIE-SingleContainer",
 	"ProtocolIE-SingleContainer",
 	&asn_OP_SEQUENCE,
-	asn_DEF_ProtocolIE_SingleContainer_90P3_tags_4,
-	sizeof(asn_DEF_ProtocolIE_SingleContainer_90P3_tags_4)
-		/sizeof(asn_DEF_ProtocolIE_SingleContainer_90P3_tags_4[0]), /* 1 */
-	asn_DEF_ProtocolIE_SingleContainer_90P3_tags_4,	/* Same as above */
-	sizeof(asn_DEF_ProtocolIE_SingleContainer_90P3_tags_4)
-		/sizeof(asn_DEF_ProtocolIE_SingleContainer_90P3_tags_4[0]), /* 1 */
+	asn_DEF_ProtocolIE_SingleContainer_188P3_tags_4,
+	sizeof(asn_DEF_ProtocolIE_SingleContainer_188P3_tags_4)
+		/sizeof(asn_DEF_ProtocolIE_SingleContainer_188P3_tags_4[0]), /* 1 */
+	asn_DEF_ProtocolIE_SingleContainer_188P3_tags_4,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_SingleContainer_188P3_tags_4)
+		/sizeof(asn_DEF_ProtocolIE_SingleContainer_188P3_tags_4[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_RANfunction_ItemIEs_13,
+	asn_MBR_RICsubscription_withCause_ItemIEs_13,
 	3,	/* Elements count */
-	&asn_SPC_RANfunction_ItemIEs_specs_13	/* Additional specs */
+	&asn_SPC_RICsubscription_withCause_ItemIEs_specs_13	/* Additional specs */
 };
 
-static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_90P4_tags_5[] = {
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_188P4_tags_5[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_90P4 = {
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_188P4 = {
 	"ProtocolIE-SingleContainer",
 	"ProtocolIE-SingleContainer",
 	&asn_OP_SEQUENCE,
-	asn_DEF_ProtocolIE_SingleContainer_90P4_tags_5,
-	sizeof(asn_DEF_ProtocolIE_SingleContainer_90P4_tags_5)
-		/sizeof(asn_DEF_ProtocolIE_SingleContainer_90P4_tags_5[0]), /* 1 */
-	asn_DEF_ProtocolIE_SingleContainer_90P4_tags_5,	/* Same as above */
-	sizeof(asn_DEF_ProtocolIE_SingleContainer_90P4_tags_5)
-		/sizeof(asn_DEF_ProtocolIE_SingleContainer_90P4_tags_5[0]), /* 1 */
+	asn_DEF_ProtocolIE_SingleContainer_188P4_tags_5,
+	sizeof(asn_DEF_ProtocolIE_SingleContainer_188P4_tags_5)
+		/sizeof(asn_DEF_ProtocolIE_SingleContainer_188P4_tags_5[0]), /* 1 */
+	asn_DEF_ProtocolIE_SingleContainer_188P4_tags_5,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_SingleContainer_188P4_tags_5)
+		/sizeof(asn_DEF_ProtocolIE_SingleContainer_188P4_tags_5[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_RANfunctionID_ItemIEs_17,
+	asn_MBR_E2nodeComponentConfigAddition_ItemIEs_17,
 	3,	/* Elements count */
-	&asn_SPC_RANfunctionID_ItemIEs_specs_17	/* Additional specs */
+	&asn_SPC_E2nodeComponentConfigAddition_ItemIEs_specs_17	/* Additional specs */
 };
 
-static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_90P5_tags_6[] = {
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_188P5_tags_6[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_90P5 = {
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_188P5 = {
 	"ProtocolIE-SingleContainer",
 	"ProtocolIE-SingleContainer",
 	&asn_OP_SEQUENCE,
-	asn_DEF_ProtocolIE_SingleContainer_90P5_tags_6,
-	sizeof(asn_DEF_ProtocolIE_SingleContainer_90P5_tags_6)
-		/sizeof(asn_DEF_ProtocolIE_SingleContainer_90P5_tags_6[0]), /* 1 */
-	asn_DEF_ProtocolIE_SingleContainer_90P5_tags_6,	/* Same as above */
-	sizeof(asn_DEF_ProtocolIE_SingleContainer_90P5_tags_6)
-		/sizeof(asn_DEF_ProtocolIE_SingleContainer_90P5_tags_6[0]), /* 1 */
+	asn_DEF_ProtocolIE_SingleContainer_188P5_tags_6,
+	sizeof(asn_DEF_ProtocolIE_SingleContainer_188P5_tags_6)
+		/sizeof(asn_DEF_ProtocolIE_SingleContainer_188P5_tags_6[0]), /* 1 */
+	asn_DEF_ProtocolIE_SingleContainer_188P5_tags_6,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_SingleContainer_188P5_tags_6)
+		/sizeof(asn_DEF_ProtocolIE_SingleContainer_188P5_tags_6[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_RANfunctionIDcause_ItemIEs_21,
+	asn_MBR_E2nodeComponentConfigUpdate_ItemIEs_21,
 	3,	/* Elements count */
-	&asn_SPC_RANfunctionIDcause_ItemIEs_specs_21	/* Additional specs */
+	&asn_SPC_E2nodeComponentConfigUpdate_ItemIEs_specs_21	/* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_188P6_tags_7[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_188P6 = {
+	"ProtocolIE-SingleContainer",
+	"ProtocolIE-SingleContainer",
+	&asn_OP_SEQUENCE,
+	asn_DEF_ProtocolIE_SingleContainer_188P6_tags_7,
+	sizeof(asn_DEF_ProtocolIE_SingleContainer_188P6_tags_7)
+		/sizeof(asn_DEF_ProtocolIE_SingleContainer_188P6_tags_7[0]), /* 1 */
+	asn_DEF_ProtocolIE_SingleContainer_188P6_tags_7,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_SingleContainer_188P6_tags_7)
+		/sizeof(asn_DEF_ProtocolIE_SingleContainer_188P6_tags_7[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeComponentConfigRemoval_ItemIEs_25,
+	3,	/* Elements count */
+	&asn_SPC_E2nodeComponentConfigRemoval_ItemIEs_specs_25	/* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_188P7_tags_8[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_188P7 = {
+	"ProtocolIE-SingleContainer",
+	"ProtocolIE-SingleContainer",
+	&asn_OP_SEQUENCE,
+	asn_DEF_ProtocolIE_SingleContainer_188P7_tags_8,
+	sizeof(asn_DEF_ProtocolIE_SingleContainer_188P7_tags_8)
+		/sizeof(asn_DEF_ProtocolIE_SingleContainer_188P7_tags_8[0]), /* 1 */
+	asn_DEF_ProtocolIE_SingleContainer_188P7_tags_8,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_SingleContainer_188P7_tags_8)
+		/sizeof(asn_DEF_ProtocolIE_SingleContainer_188P7_tags_8[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeTNLassociationRemoval_ItemIEs_29,
+	3,	/* Elements count */
+	&asn_SPC_E2nodeTNLassociationRemoval_ItemIEs_specs_29	/* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_188P8_tags_9[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_188P8 = {
+	"ProtocolIE-SingleContainer",
+	"ProtocolIE-SingleContainer",
+	&asn_OP_SEQUENCE,
+	asn_DEF_ProtocolIE_SingleContainer_188P8_tags_9,
+	sizeof(asn_DEF_ProtocolIE_SingleContainer_188P8_tags_9)
+		/sizeof(asn_DEF_ProtocolIE_SingleContainer_188P8_tags_9[0]), /* 1 */
+	asn_DEF_ProtocolIE_SingleContainer_188P8_tags_9,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_SingleContainer_188P8_tags_9)
+		/sizeof(asn_DEF_ProtocolIE_SingleContainer_188P8_tags_9[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeComponentConfigAdditionAck_ItemIEs_33,
+	3,	/* Elements count */
+	&asn_SPC_E2nodeComponentConfigAdditionAck_ItemIEs_specs_33	/* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_188P9_tags_10[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_188P9 = {
+	"ProtocolIE-SingleContainer",
+	"ProtocolIE-SingleContainer",
+	&asn_OP_SEQUENCE,
+	asn_DEF_ProtocolIE_SingleContainer_188P9_tags_10,
+	sizeof(asn_DEF_ProtocolIE_SingleContainer_188P9_tags_10)
+		/sizeof(asn_DEF_ProtocolIE_SingleContainer_188P9_tags_10[0]), /* 1 */
+	asn_DEF_ProtocolIE_SingleContainer_188P9_tags_10,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_SingleContainer_188P9_tags_10)
+		/sizeof(asn_DEF_ProtocolIE_SingleContainer_188P9_tags_10[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeComponentConfigUpdateAck_ItemIEs_37,
+	3,	/* Elements count */
+	&asn_SPC_E2nodeComponentConfigUpdateAck_ItemIEs_specs_37	/* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_188P10_tags_11[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_188P10 = {
+	"ProtocolIE-SingleContainer",
+	"ProtocolIE-SingleContainer",
+	&asn_OP_SEQUENCE,
+	asn_DEF_ProtocolIE_SingleContainer_188P10_tags_11,
+	sizeof(asn_DEF_ProtocolIE_SingleContainer_188P10_tags_11)
+		/sizeof(asn_DEF_ProtocolIE_SingleContainer_188P10_tags_11[0]), /* 1 */
+	asn_DEF_ProtocolIE_SingleContainer_188P10_tags_11,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_SingleContainer_188P10_tags_11)
+		/sizeof(asn_DEF_ProtocolIE_SingleContainer_188P10_tags_11[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2nodeComponentConfigRemovalAck_ItemIEs_41,
+	3,	/* Elements count */
+	&asn_SPC_E2nodeComponentConfigRemovalAck_ItemIEs_specs_41	/* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_188P11_tags_12[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_188P11 = {
+	"ProtocolIE-SingleContainer",
+	"ProtocolIE-SingleContainer",
+	&asn_OP_SEQUENCE,
+	asn_DEF_ProtocolIE_SingleContainer_188P11_tags_12,
+	sizeof(asn_DEF_ProtocolIE_SingleContainer_188P11_tags_12)
+		/sizeof(asn_DEF_ProtocolIE_SingleContainer_188P11_tags_12[0]), /* 1 */
+	asn_DEF_ProtocolIE_SingleContainer_188P11_tags_12,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_SingleContainer_188P11_tags_12)
+		/sizeof(asn_DEF_ProtocolIE_SingleContainer_188P11_tags_12[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANfunction_ItemIEs_45,
+	3,	/* Elements count */
+	&asn_SPC_RANfunction_ItemIEs_specs_45	/* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_188P12_tags_13[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_188P12 = {
+	"ProtocolIE-SingleContainer",
+	"ProtocolIE-SingleContainer",
+	&asn_OP_SEQUENCE,
+	asn_DEF_ProtocolIE_SingleContainer_188P12_tags_13,
+	sizeof(asn_DEF_ProtocolIE_SingleContainer_188P12_tags_13)
+		/sizeof(asn_DEF_ProtocolIE_SingleContainer_188P12_tags_13[0]), /* 1 */
+	asn_DEF_ProtocolIE_SingleContainer_188P12_tags_13,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_SingleContainer_188P12_tags_13)
+		/sizeof(asn_DEF_ProtocolIE_SingleContainer_188P12_tags_13[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANfunctionID_ItemIEs_49,
+	3,	/* Elements count */
+	&asn_SPC_RANfunctionID_ItemIEs_specs_49	/* Additional specs */
+};
+
+static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainer_188P13_tags_14[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainer_188P13 = {
+	"ProtocolIE-SingleContainer",
+	"ProtocolIE-SingleContainer",
+	&asn_OP_SEQUENCE,
+	asn_DEF_ProtocolIE_SingleContainer_188P13_tags_14,
+	sizeof(asn_DEF_ProtocolIE_SingleContainer_188P13_tags_14)
+		/sizeof(asn_DEF_ProtocolIE_SingleContainer_188P13_tags_14[0]), /* 1 */
+	asn_DEF_ProtocolIE_SingleContainer_188P13_tags_14,	/* Same as above */
+	sizeof(asn_DEF_ProtocolIE_SingleContainer_188P13_tags_14)
+		/sizeof(asn_DEF_ProtocolIE_SingleContainer_188P13_tags_14[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANfunctionIDcause_ItemIEs_53,
+	3,	/* Elements count */
+	&asn_SPC_RANfunctionIDcause_ItemIEs_specs_53	/* Additional specs */
 };
 
diff --git a/e2ap/lib/RANfunction-Item.c b/e2ap/lib/RANfunction-Item.c
index f80753b..61e1b68 100644
--- a/e2ap/lib/RANfunction-Item.c
+++ b/e2ap/lib/RANfunction-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RANfunction-Item.h"
@@ -35,6 +35,15 @@
 		0, 0, /* No default value */
 		"ranFunctionRevision"
 		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANfunction_Item, ranFunctionOID),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANfunctionOID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranFunctionOID"
+		},
 };
 static const ber_tlv_tag_t asn_DEF_RANfunction_Item_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
@@ -42,15 +51,16 @@
 static const asn_TYPE_tag2member_t asn_MAP_RANfunction_Item_tag2el_1[] = {
     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunctionID */
     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ranFunctionDefinition */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ranFunctionRevision */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ranFunctionRevision */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ranFunctionOID */
 };
 asn_SEQUENCE_specifics_t asn_SPC_RANfunction_Item_specs_1 = {
 	sizeof(struct RANfunction_Item),
 	offsetof(struct RANfunction_Item, _asn_ctx),
 	asn_MAP_RANfunction_Item_tag2el_1,
-	3,	/* Count of tags in the map */
+	4,	/* Count of tags in the map */
 	0, 0, 0,	/* Optional elements (not needed) */
-	3,	/* First extension addition */
+	4,	/* First extension addition */
 };
 asn_TYPE_descriptor_t asn_DEF_RANfunction_Item = {
 	"RANfunction-Item",
@@ -64,7 +74,7 @@
 		/sizeof(asn_DEF_RANfunction_Item_tags_1[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
 	asn_MBR_RANfunction_Item_1,
-	3,	/* Elements count */
+	4,	/* Elements count */
 	&asn_SPC_RANfunction_Item_specs_1	/* Additional specs */
 };
 
diff --git a/e2ap/lib/RANfunctionDefinition.c b/e2ap/lib/RANfunctionDefinition.c
index 49c090f..f75adb9 100644
--- a/e2ap/lib/RANfunctionDefinition.c
+++ b/e2ap/lib/RANfunctionDefinition.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RANfunctionDefinition.h"
diff --git a/e2ap/lib/RANfunctionID-Item.c b/e2ap/lib/RANfunctionID-Item.c
index fb2b6fc..b4af182 100644
--- a/e2ap/lib/RANfunctionID-Item.c
+++ b/e2ap/lib/RANfunctionID-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RANfunctionID-Item.h"
diff --git a/e2ap/lib/RANfunctionID.c b/e2ap/lib/RANfunctionID.c
index d79a9d6..22eeb79 100644
--- a/e2ap/lib/RANfunctionID.c
+++ b/e2ap/lib/RANfunctionID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RANfunctionID.h"
diff --git a/e2ap/lib/RANfunctionIDcause-Item.c b/e2ap/lib/RANfunctionIDcause-Item.c
index b74eb64..7f1ecf9 100644
--- a/e2ap/lib/RANfunctionIDcause-Item.c
+++ b/e2ap/lib/RANfunctionIDcause-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RANfunctionIDcause-Item.h"
diff --git a/e2ap/lib/RANfunctionOID.c b/e2ap/lib/RANfunctionOID.c
new file mode 100644
index 0000000..53cc874
--- /dev/null
+++ b/e2ap/lib/RANfunctionOID.c
@@ -0,0 +1,109 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANfunctionOID.h"
+
+static const int permitted_alphabet_table_1[256] = {
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/*                  */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/*                  */
+ 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9,	/* .      '() +,-./ */
+10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22,	/* 0123456789:  = ? */
+ 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,	/*  ABCDEFGHIJKLMNO */
+38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0,	/* PQRSTUVWXYZ      */
+ 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,	/*  abcdefghijklmno */
+64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0,	/* pqrstuvwxyz      */
+};
+static const int permitted_alphabet_code2value_1[74] = {
+32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54,
+55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74,
+75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,
+97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,
+113,114,115,116,117,118,119,120,121,122,};
+
+
+static int check_permitted_alphabet_1(const void *sptr) {
+	const int *table = permitted_alphabet_table_1;
+	/* The underlying type is PrintableString */
+	const PrintableString_t *st = (const PrintableString_t *)sptr;
+	const uint8_t *ch = st->buf;
+	const uint8_t *end = ch + st->size;
+	
+	for(; ch < end; ch++) {
+		uint8_t cv = *ch;
+		if(!table[cv]) return -1;
+	}
+	return 0;
+}
+
+int
+RANfunctionOID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const PrintableString_t *st = (const PrintableString_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size >= 1 && size <= 1000)
+		 && !check_permitted_alphabet_1(st)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static int asn_PER_MAP_RANfunctionOID_1_v2c(unsigned int value) {
+	if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0]))
+		return -1;
+	return permitted_alphabet_table_1[value] - 1;
+}
+static int asn_PER_MAP_RANfunctionOID_1_c2v(unsigned int code) {
+	if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0]))
+		return -1;
+	return permitted_alphabet_code2value_1[code];
+}
+/*
+ * This type is implemented using PrintableString,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_RANfunctionOID_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(0..MAX)) */};
+asn_per_constraints_t asn_PER_type_RANfunctionOID_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 7,  7,  32,  122 }	/* (32..122) */,
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  10,  10,  1,  1000 }	/* (SIZE(1..1000,...)) */,
+	asn_PER_MAP_RANfunctionOID_1_v2c,	/* Value to PER code map */
+	asn_PER_MAP_RANfunctionOID_1_c2v	/* PER code to value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANfunctionOID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (19 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANfunctionOID = {
+	"RANfunctionOID",
+	"RANfunctionOID",
+	&asn_OP_PrintableString,
+	asn_DEF_RANfunctionOID_tags_1,
+	sizeof(asn_DEF_RANfunctionOID_tags_1)
+		/sizeof(asn_DEF_RANfunctionOID_tags_1[0]), /* 1 */
+	asn_DEF_RANfunctionOID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANfunctionOID_tags_1)
+		/sizeof(asn_DEF_RANfunctionOID_tags_1[0]), /* 1 */
+	{ &asn_OER_type_RANfunctionOID_constr_1, &asn_PER_type_RANfunctionOID_constr_1, RANfunctionOID_constraint },
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/e2ap/lib/RANfunctionRevision.c b/e2ap/lib/RANfunctionRevision.c
index 32cc4a5..dd84aaf 100644
--- a/e2ap/lib/RANfunctionRevision.c
+++ b/e2ap/lib/RANfunctionRevision.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RANfunctionRevision.h"
diff --git a/e2ap/lib/RANfunctions-List.c b/e2ap/lib/RANfunctions-List.c
index cf01054..2d648d3 100644
--- a/e2ap/lib/RANfunctions-List.c
+++ b/e2ap/lib/RANfunctions-List.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RANfunctions-List.h"
@@ -10,17 +10,17 @@
 #include "ProtocolIE-SingleContainer.h"
 static asn_oer_constraints_t asn_OER_type_RANfunctions_List_constr_1 CC_NOTUSED = {
 	{ 0, 0 },
-	-1	/* (SIZE(0..256)) */};
+	-1	/* (SIZE(1..256)) */};
 asn_per_constraints_t asn_PER_type_RANfunctions_List_constr_1 CC_NOTUSED = {
 	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 9,  9,  0,  256 }	/* (SIZE(0..256)) */,
+	{ APC_CONSTRAINED,	 8,  8,  1,  256 }	/* (SIZE(1..256)) */,
 	0, 0	/* No PER value map */
 };
 asn_TYPE_member_t asn_MBR_RANfunctions_List_1[] = {
 	{ ATF_POINTER, 0, 0,
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
-		&asn_DEF_ProtocolIE_SingleContainer_90P3,
+		&asn_DEF_ProtocolIE_SingleContainer_188P11,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
diff --git a/e2ap/lib/RANfunctionsID-List.c b/e2ap/lib/RANfunctionsID-List.c
index b888995..d3712eb 100644
--- a/e2ap/lib/RANfunctionsID-List.c
+++ b/e2ap/lib/RANfunctionsID-List.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RANfunctionsID-List.h"
@@ -10,17 +10,17 @@
 #include "ProtocolIE-SingleContainer.h"
 static asn_oer_constraints_t asn_OER_type_RANfunctionsID_List_constr_1 CC_NOTUSED = {
 	{ 0, 0 },
-	-1	/* (SIZE(0..256)) */};
+	-1	/* (SIZE(1..256)) */};
 asn_per_constraints_t asn_PER_type_RANfunctionsID_List_constr_1 CC_NOTUSED = {
 	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 9,  9,  0,  256 }	/* (SIZE(0..256)) */,
+	{ APC_CONSTRAINED,	 8,  8,  1,  256 }	/* (SIZE(1..256)) */,
 	0, 0	/* No PER value map */
 };
 asn_TYPE_member_t asn_MBR_RANfunctionsID_List_1[] = {
 	{ ATF_POINTER, 0, 0,
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
-		&asn_DEF_ProtocolIE_SingleContainer_90P4,
+		&asn_DEF_ProtocolIE_SingleContainer_188P12,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
diff --git a/e2ap/lib/RANfunctionsIDcause-List.c b/e2ap/lib/RANfunctionsIDcause-List.c
index e1ae0d2..5d90502 100644
--- a/e2ap/lib/RANfunctionsIDcause-List.c
+++ b/e2ap/lib/RANfunctionsIDcause-List.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RANfunctionsIDcause-List.h"
@@ -10,17 +10,17 @@
 #include "ProtocolIE-SingleContainer.h"
 static asn_oer_constraints_t asn_OER_type_RANfunctionsIDcause_List_constr_1 CC_NOTUSED = {
 	{ 0, 0 },
-	-1	/* (SIZE(0..256)) */};
+	-1	/* (SIZE(1..256)) */};
 asn_per_constraints_t asn_PER_type_RANfunctionsIDcause_List_constr_1 CC_NOTUSED = {
 	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 9,  9,  0,  256 }	/* (SIZE(0..256)) */,
+	{ APC_CONSTRAINED,	 8,  8,  1,  256 }	/* (SIZE(1..256)) */,
 	0, 0	/* No PER value map */
 };
 asn_TYPE_member_t asn_MBR_RANfunctionsIDcause_List_1[] = {
 	{ ATF_POINTER, 0, 0,
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
-		&asn_DEF_ProtocolIE_SingleContainer_90P5,
+		&asn_DEF_ProtocolIE_SingleContainer_188P13,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
diff --git a/e2ap/lib/RICaction-Admitted-Item.c b/e2ap/lib/RICaction-Admitted-Item.c
index 27e741d..cb1efd3 100644
--- a/e2ap/lib/RICaction-Admitted-Item.c
+++ b/e2ap/lib/RICaction-Admitted-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICaction-Admitted-Item.h"
diff --git a/e2ap/lib/RICaction-Admitted-List.c b/e2ap/lib/RICaction-Admitted-List.c
index e9e8a5b..581859d 100644
--- a/e2ap/lib/RICaction-Admitted-List.c
+++ b/e2ap/lib/RICaction-Admitted-List.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICaction-Admitted-List.h"
@@ -20,7 +20,7 @@
 	{ ATF_POINTER, 0, 0,
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
-		&asn_DEF_ProtocolIE_SingleContainer_90P1,
+		&asn_DEF_ProtocolIE_SingleContainer_188P1,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
diff --git a/e2ap/lib/RICaction-NotAdmitted-Item.c b/e2ap/lib/RICaction-NotAdmitted-Item.c
index 86212ed..5947c32 100644
--- a/e2ap/lib/RICaction-NotAdmitted-Item.c
+++ b/e2ap/lib/RICaction-NotAdmitted-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICaction-NotAdmitted-Item.h"
diff --git a/e2ap/lib/RICaction-NotAdmitted-List.c b/e2ap/lib/RICaction-NotAdmitted-List.c
index 7c7f6e2..fe3e04d 100644
--- a/e2ap/lib/RICaction-NotAdmitted-List.c
+++ b/e2ap/lib/RICaction-NotAdmitted-List.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICaction-NotAdmitted-List.h"
@@ -20,7 +20,7 @@
 	{ ATF_POINTER, 0, 0,
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
-		&asn_DEF_ProtocolIE_SingleContainer_90P2,
+		&asn_DEF_ProtocolIE_SingleContainer_188P2,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
diff --git a/e2ap/lib/RICaction-ToBeSetup-Item.c b/e2ap/lib/RICaction-ToBeSetup-Item.c
index 1e78073..d597565 100644
--- a/e2ap/lib/RICaction-ToBeSetup-Item.c
+++ b/e2ap/lib/RICaction-ToBeSetup-Item.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICaction-ToBeSetup-Item.h"
diff --git a/e2ap/lib/RICactionDefinition.c b/e2ap/lib/RICactionDefinition.c
index 3f157ba..672f679 100644
--- a/e2ap/lib/RICactionDefinition.c
+++ b/e2ap/lib/RICactionDefinition.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICactionDefinition.h"
diff --git a/e2ap/lib/RICactionID.c b/e2ap/lib/RICactionID.c
index 73658f5..e4beeab 100644
--- a/e2ap/lib/RICactionID.c
+++ b/e2ap/lib/RICactionID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICactionID.h"
diff --git a/e2ap/lib/RICactionType.c b/e2ap/lib/RICactionType.c
index bfd33d5..b37a0af 100644
--- a/e2ap/lib/RICactionType.c
+++ b/e2ap/lib/RICactionType.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICactionType.h"
diff --git a/e2ap/lib/RICactions-ToBeSetup-List.c b/e2ap/lib/RICactions-ToBeSetup-List.c
index 93905c3..52718f5 100644
--- a/e2ap/lib/RICactions-ToBeSetup-List.c
+++ b/e2ap/lib/RICactions-ToBeSetup-List.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICactions-ToBeSetup-List.h"
@@ -20,7 +20,7 @@
 	{ ATF_POINTER, 0, 0,
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
-		&asn_DEF_ProtocolIE_SingleContainer_90P0,
+		&asn_DEF_ProtocolIE_SingleContainer_188P0,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
diff --git a/e2ap/lib/RICcallProcessID.c b/e2ap/lib/RICcallProcessID.c
index fd2d0eb..676490c 100644
--- a/e2ap/lib/RICcallProcessID.c
+++ b/e2ap/lib/RICcallProcessID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICcallProcessID.h"
diff --git a/e2ap/lib/RICcontrolAckRequest.c b/e2ap/lib/RICcontrolAckRequest.c
index 1db6bee..d29515d 100644
--- a/e2ap/lib/RICcontrolAckRequest.c
+++ b/e2ap/lib/RICcontrolAckRequest.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICcontrolAckRequest.h"
@@ -15,27 +15,25 @@
 	{ 0, 0 },
 	-1};
 asn_per_constraints_t asn_PER_type_RICcontrolAckRequest_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }	/* (0..2,...) */,
+	{ 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_RICcontrolAckRequest_value2enum_1[] = {
 	{ 0,	5,	"noAck" },
-	{ 1,	3,	"ack" },
-	{ 2,	4,	"nAck" }
+	{ 1,	3,	"ack" }
 	/* This list is extensible */
 };
 static const unsigned int asn_MAP_RICcontrolAckRequest_enum2value_1[] = {
 	1,	/* ack(1) */
-	2,	/* nAck(2) */
 	0	/* noAck(0) */
 	/* This list is extensible */
 };
 const asn_INTEGER_specifics_t asn_SPC_RICcontrolAckRequest_specs_1 = {
 	asn_MAP_RICcontrolAckRequest_value2enum_1,	/* "tag" => N; sorted by tag */
 	asn_MAP_RICcontrolAckRequest_enum2value_1,	/* N => "tag"; sorted by N */
-	3,	/* Number of elements in the maps */
-	4,	/* Extensions before this member */
+	2,	/* Number of elements in the maps */
+	3,	/* Extensions before this member */
 	1,	/* Strict enumeration */
 	0,	/* Native long size */
 	0
diff --git a/e2ap/lib/RICcontrolAcknowledge.c b/e2ap/lib/RICcontrolAcknowledge.c
index 85011b6..ba86509 100644
--- a/e2ap/lib/RICcontrolAcknowledge.c
+++ b/e2ap/lib/RICcontrolAcknowledge.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICcontrolAcknowledge.h"
@@ -11,7 +11,7 @@
 	{ ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge, protocolIEs),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_ProtocolIE_Container_87P8,
+		&asn_DEF_ProtocolIE_Container_185P9,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
diff --git a/e2ap/lib/RICcontrolFailure.c b/e2ap/lib/RICcontrolFailure.c
index a847f9f..cfcab05 100644
--- a/e2ap/lib/RICcontrolFailure.c
+++ b/e2ap/lib/RICcontrolFailure.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICcontrolFailure.h"
@@ -11,7 +11,7 @@
 	{ ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure, protocolIEs),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_ProtocolIE_Container_87P9,
+		&asn_DEF_ProtocolIE_Container_185P10,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
diff --git a/e2ap/lib/RICcontrolHeader.c b/e2ap/lib/RICcontrolHeader.c
index 3accabb..3c5b52d 100644
--- a/e2ap/lib/RICcontrolHeader.c
+++ b/e2ap/lib/RICcontrolHeader.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICcontrolHeader.h"
diff --git a/e2ap/lib/RICcontrolMessage.c b/e2ap/lib/RICcontrolMessage.c
index d865706..b2b670f 100644
--- a/e2ap/lib/RICcontrolMessage.c
+++ b/e2ap/lib/RICcontrolMessage.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICcontrolMessage.h"
diff --git a/e2ap/lib/RICcontrolOutcome.c b/e2ap/lib/RICcontrolOutcome.c
index 806038d..871d3a5 100644
--- a/e2ap/lib/RICcontrolOutcome.c
+++ b/e2ap/lib/RICcontrolOutcome.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICcontrolOutcome.h"
diff --git a/e2ap/lib/RICcontrolRequest.c b/e2ap/lib/RICcontrolRequest.c
index 43a04e2..ed96331 100644
--- a/e2ap/lib/RICcontrolRequest.c
+++ b/e2ap/lib/RICcontrolRequest.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICcontrolRequest.h"
@@ -11,7 +11,7 @@
 	{ ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest, protocolIEs),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_ProtocolIE_Container_87P7,
+		&asn_DEF_ProtocolIE_Container_185P8,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
diff --git a/e2ap/lib/RICcontrolStatus.c b/e2ap/lib/RICcontrolStatus.c
deleted file mode 100644
index d2873fc..0000000
--- a/e2ap/lib/RICcontrolStatus.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
- */
-
-#include "RICcontrolStatus.h"
-
-/*
- * This type is implemented using NativeEnumerated,
- * so here we adjust the DEF accordingly.
- */
-static asn_oer_constraints_t asn_OER_type_RICcontrolStatus_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	-1};
-asn_per_constraints_t asn_PER_type_RICcontrolStatus_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }	/* (0..2,...) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static const asn_INTEGER_enum_map_t asn_MAP_RICcontrolStatus_value2enum_1[] = {
-	{ 0,	7,	"success" },
-	{ 1,	8,	"rejected" },
-	{ 2,	6,	"failed" }
-	/* This list is extensible */
-};
-static const unsigned int asn_MAP_RICcontrolStatus_enum2value_1[] = {
-	2,	/* failed(2) */
-	1,	/* rejected(1) */
-	0	/* success(0) */
-	/* This list is extensible */
-};
-const asn_INTEGER_specifics_t asn_SPC_RICcontrolStatus_specs_1 = {
-	asn_MAP_RICcontrolStatus_value2enum_1,	/* "tag" => N; sorted by tag */
-	asn_MAP_RICcontrolStatus_enum2value_1,	/* N => "tag"; sorted by N */
-	3,	/* Number of elements in the maps */
-	4,	/* Extensions before this member */
-	1,	/* Strict enumeration */
-	0,	/* Native long size */
-	0
-};
-static const ber_tlv_tag_t asn_DEF_RICcontrolStatus_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
-};
-asn_TYPE_descriptor_t asn_DEF_RICcontrolStatus = {
-	"RICcontrolStatus",
-	"RICcontrolStatus",
-	&asn_OP_NativeEnumerated,
-	asn_DEF_RICcontrolStatus_tags_1,
-	sizeof(asn_DEF_RICcontrolStatus_tags_1)
-		/sizeof(asn_DEF_RICcontrolStatus_tags_1[0]), /* 1 */
-	asn_DEF_RICcontrolStatus_tags_1,	/* Same as above */
-	sizeof(asn_DEF_RICcontrolStatus_tags_1)
-		/sizeof(asn_DEF_RICcontrolStatus_tags_1[0]), /* 1 */
-	{ &asn_OER_type_RICcontrolStatus_constr_1, &asn_PER_type_RICcontrolStatus_constr_1, NativeEnumerated_constraint },
-	0, 0,	/* Defined elsewhere */
-	&asn_SPC_RICcontrolStatus_specs_1	/* Additional specs */
-};
-
diff --git a/e2ap/lib/RICeventTriggerDefinition.c b/e2ap/lib/RICeventTriggerDefinition.c
index a13ddbd..7ddc77e 100644
--- a/e2ap/lib/RICeventTriggerDefinition.c
+++ b/e2ap/lib/RICeventTriggerDefinition.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICeventTriggerDefinition.h"
diff --git a/e2ap/lib/RICindication.c b/e2ap/lib/RICindication.c
index 5c40aa5..dfa4a62 100644
--- a/e2ap/lib/RICindication.c
+++ b/e2ap/lib/RICindication.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICindication.h"
@@ -11,7 +11,7 @@
 	{ ATF_NOFLAGS, 0, offsetof(struct RICindication, protocolIEs),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_ProtocolIE_Container_87P6,
+		&asn_DEF_ProtocolIE_Container_185P7,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
diff --git a/e2ap/lib/RICindicationHeader.c b/e2ap/lib/RICindicationHeader.c
index d252382..d5c04c7 100644
--- a/e2ap/lib/RICindicationHeader.c
+++ b/e2ap/lib/RICindicationHeader.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICindicationHeader.h"
diff --git a/e2ap/lib/RICindicationMessage.c b/e2ap/lib/RICindicationMessage.c
index bd0ac0f..d934db4 100644
--- a/e2ap/lib/RICindicationMessage.c
+++ b/e2ap/lib/RICindicationMessage.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICindicationMessage.h"
diff --git a/e2ap/lib/RICindicationSN.c b/e2ap/lib/RICindicationSN.c
index efd2d48..f361be3 100644
--- a/e2ap/lib/RICindicationSN.c
+++ b/e2ap/lib/RICindicationSN.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICindicationSN.h"
diff --git a/e2ap/lib/RICindicationType.c b/e2ap/lib/RICindicationType.c
index 58935bb..3f59b37 100644
--- a/e2ap/lib/RICindicationType.c
+++ b/e2ap/lib/RICindicationType.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICindicationType.h"
diff --git a/e2ap/lib/RICrequestID.c b/e2ap/lib/RICrequestID.c
index 1422a31..9c0f3c7 100644
--- a/e2ap/lib/RICrequestID.c
+++ b/e2ap/lib/RICrequestID.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICrequestID.h"
diff --git a/e2ap/lib/RICserviceQuery.c b/e2ap/lib/RICserviceQuery.c
index a7d452e..63aa6ea 100644
--- a/e2ap/lib/RICserviceQuery.c
+++ b/e2ap/lib/RICserviceQuery.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICserviceQuery.h"
@@ -11,7 +11,7 @@
 	{ ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery, protocolIEs),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_ProtocolIE_Container_87P19,
+		&asn_DEF_ProtocolIE_Container_185P20,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
diff --git a/e2ap/lib/RICserviceUpdate.c b/e2ap/lib/RICserviceUpdate.c
deleted file mode 100644
index a562e2f..0000000
--- a/e2ap/lib/RICserviceUpdate.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
- */
-
-#include "RICserviceUpdate.h"
-
-static asn_TYPE_member_t asn_MBR_RICserviceUpdate_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate, protocolIEs),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_ProtocolIE_Container_87P16,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"protocolIEs"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_RICserviceUpdate_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdate_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
-};
-static asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_specs_1 = {
-	sizeof(struct RICserviceUpdate),
-	offsetof(struct RICserviceUpdate, _asn_ctx),
-	asn_MAP_RICserviceUpdate_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_RICserviceUpdate = {
-	"RICserviceUpdate",
-	"RICserviceUpdate",
-	&asn_OP_SEQUENCE,
-	asn_DEF_RICserviceUpdate_tags_1,
-	sizeof(asn_DEF_RICserviceUpdate_tags_1)
-		/sizeof(asn_DEF_RICserviceUpdate_tags_1[0]), /* 1 */
-	asn_DEF_RICserviceUpdate_tags_1,	/* Same as above */
-	sizeof(asn_DEF_RICserviceUpdate_tags_1)
-		/sizeof(asn_DEF_RICserviceUpdate_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_RICserviceUpdate_1,
-	1,	/* Elements count */
-	&asn_SPC_RICserviceUpdate_specs_1	/* Additional specs */
-};
-
diff --git a/e2ap/lib/RICserviceUpdateAcknowledge.c b/e2ap/lib/RICserviceUpdateAcknowledge.c
deleted file mode 100644
index 845acb2..0000000
--- a/e2ap/lib/RICserviceUpdateAcknowledge.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
- */
-
-#include "RICserviceUpdateAcknowledge.h"
-
-static asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge, protocolIEs),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_ProtocolIE_Container_87P17,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"protocolIEs"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_RICserviceUpdateAcknowledge_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateAcknowledge_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
-};
-static asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_specs_1 = {
-	sizeof(struct RICserviceUpdateAcknowledge),
-	offsetof(struct RICserviceUpdateAcknowledge, _asn_ctx),
-	asn_MAP_RICserviceUpdateAcknowledge_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_RICserviceUpdateAcknowledge = {
-	"RICserviceUpdateAcknowledge",
-	"RICserviceUpdateAcknowledge",
-	&asn_OP_SEQUENCE,
-	asn_DEF_RICserviceUpdateAcknowledge_tags_1,
-	sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1)
-		/sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1[0]), /* 1 */
-	asn_DEF_RICserviceUpdateAcknowledge_tags_1,	/* Same as above */
-	sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1)
-		/sizeof(asn_DEF_RICserviceUpdateAcknowledge_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_RICserviceUpdateAcknowledge_1,
-	1,	/* Elements count */
-	&asn_SPC_RICserviceUpdateAcknowledge_specs_1	/* Additional specs */
-};
-
diff --git a/e2ap/lib/RICserviceUpdateFailure.c b/e2ap/lib/RICserviceUpdateFailure.c
deleted file mode 100644
index f54da69..0000000
--- a/e2ap/lib/RICserviceUpdateFailure.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
- */
-
-#include "RICserviceUpdateFailure.h"
-
-static asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure, protocolIEs),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_ProtocolIE_Container_87P18,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"protocolIEs"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_RICserviceUpdateFailure_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateFailure_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
-};
-static asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_specs_1 = {
-	sizeof(struct RICserviceUpdateFailure),
-	offsetof(struct RICserviceUpdateFailure, _asn_ctx),
-	asn_MAP_RICserviceUpdateFailure_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_RICserviceUpdateFailure = {
-	"RICserviceUpdateFailure",
-	"RICserviceUpdateFailure",
-	&asn_OP_SEQUENCE,
-	asn_DEF_RICserviceUpdateFailure_tags_1,
-	sizeof(asn_DEF_RICserviceUpdateFailure_tags_1)
-		/sizeof(asn_DEF_RICserviceUpdateFailure_tags_1[0]), /* 1 */
-	asn_DEF_RICserviceUpdateFailure_tags_1,	/* Same as above */
-	sizeof(asn_DEF_RICserviceUpdateFailure_tags_1)
-		/sizeof(asn_DEF_RICserviceUpdateFailure_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_RICserviceUpdateFailure_1,
-	1,	/* Elements count */
-	&asn_SPC_RICserviceUpdateFailure_specs_1	/* Additional specs */
-};
-
diff --git a/e2ap/lib/RICsubscription-List-withCause.c b/e2ap/lib/RICsubscription-List-withCause.c
new file mode 100644
index 0000000..7667e5f
--- /dev/null
+++ b/e2ap/lib/RICsubscription-List-withCause.c
@@ -0,0 +1,53 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RICsubscription-List-withCause.h"
+
+#include "ProtocolIE-SingleContainer.h"
+static asn_oer_constraints_t asn_OER_type_RICsubscription_List_withCause_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..4294967295)) */};
+asn_per_constraints_t asn_PER_type_RICsubscription_List_withCause_constr_1 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 32, -1,  1,  4294967295 }	/* (SIZE(1..4294967295)) */,
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_RICsubscription_List_withCause_1[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_ProtocolIE_SingleContainer_188P3,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RICsubscription_List_withCause_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_RICsubscription_List_withCause_specs_1 = {
+	sizeof(struct RICsubscription_List_withCause),
+	offsetof(struct RICsubscription_List_withCause, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RICsubscription_List_withCause = {
+	"RICsubscription-List-withCause",
+	"RICsubscription-List-withCause",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_RICsubscription_List_withCause_tags_1,
+	sizeof(asn_DEF_RICsubscription_List_withCause_tags_1)
+		/sizeof(asn_DEF_RICsubscription_List_withCause_tags_1[0]), /* 1 */
+	asn_DEF_RICsubscription_List_withCause_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RICsubscription_List_withCause_tags_1)
+		/sizeof(asn_DEF_RICsubscription_List_withCause_tags_1[0]), /* 1 */
+	{ &asn_OER_type_RICsubscription_List_withCause_constr_1, &asn_PER_type_RICsubscription_List_withCause_constr_1, SEQUENCE_OF_constraint },
+	asn_MBR_RICsubscription_List_withCause_1,
+	1,	/* Single element */
+	&asn_SPC_RICsubscription_List_withCause_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/RICsubscription-withCause-Item.c b/e2ap/lib/RICsubscription-withCause-Item.c
new file mode 100644
index 0000000..4d5fcaa
--- /dev/null
+++ b/e2ap/lib/RICsubscription-withCause-Item.c
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RICsubscription-withCause-Item.h"
+
+asn_TYPE_member_t asn_MBR_RICsubscription_withCause_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscription_withCause_Item, ricRequestID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RICrequestID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ricRequestID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscription_withCause_Item, ranFunctionID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANfunctionID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranFunctionID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscription_withCause_Item, cause),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_Cause,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"cause"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RICsubscription_withCause_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICsubscription_withCause_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequestID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ranFunctionID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* cause */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RICsubscription_withCause_Item_specs_1 = {
+	sizeof(struct RICsubscription_withCause_Item),
+	offsetof(struct RICsubscription_withCause_Item, _asn_ctx),
+	asn_MAP_RICsubscription_withCause_Item_tag2el_1,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	3,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RICsubscription_withCause_Item = {
+	"RICsubscription-withCause-Item",
+	"RICsubscription-withCause-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RICsubscription_withCause_Item_tags_1,
+	sizeof(asn_DEF_RICsubscription_withCause_Item_tags_1)
+		/sizeof(asn_DEF_RICsubscription_withCause_Item_tags_1[0]), /* 1 */
+	asn_DEF_RICsubscription_withCause_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RICsubscription_withCause_Item_tags_1)
+		/sizeof(asn_DEF_RICsubscription_withCause_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RICsubscription_withCause_Item_1,
+	3,	/* Elements count */
+	&asn_SPC_RICsubscription_withCause_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/RICsubscriptionDeleteFailure.c b/e2ap/lib/RICsubscriptionDeleteFailure.c
index 88a9836..de13c57 100644
--- a/e2ap/lib/RICsubscriptionDeleteFailure.c
+++ b/e2ap/lib/RICsubscriptionDeleteFailure.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICsubscriptionDeleteFailure.h"
@@ -11,7 +11,7 @@
 	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure, protocolIEs),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_ProtocolIE_Container_87P5,
+		&asn_DEF_ProtocolIE_Container_185P5,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
diff --git a/e2ap/lib/RICsubscriptionDeleteRequest.c b/e2ap/lib/RICsubscriptionDeleteRequest.c
index 627f516..a16ea24 100644
--- a/e2ap/lib/RICsubscriptionDeleteRequest.c
+++ b/e2ap/lib/RICsubscriptionDeleteRequest.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICsubscriptionDeleteRequest.h"
@@ -11,7 +11,7 @@
 	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest, protocolIEs),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_ProtocolIE_Container_87P3,
+		&asn_DEF_ProtocolIE_Container_185P3,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
diff --git a/e2ap/lib/RICsubscriptionDeleteRequired.c b/e2ap/lib/RICsubscriptionDeleteRequired.c
new file mode 100644
index 0000000..d5f03b3
--- /dev/null
+++ b/e2ap/lib/RICsubscriptionDeleteRequired.c
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RICsubscriptionDeleteRequired.h"
+
+static asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequired_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequired, protocolIEs),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_ProtocolIE_Container_185P6,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"protocolIEs"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequired_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequired_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequired_specs_1 = {
+	sizeof(struct RICsubscriptionDeleteRequired),
+	offsetof(struct RICsubscriptionDeleteRequired, _asn_ctx),
+	asn_MAP_RICsubscriptionDeleteRequired_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_RICsubscriptionDeleteRequired = {
+	"RICsubscriptionDeleteRequired",
+	"RICsubscriptionDeleteRequired",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RICsubscriptionDeleteRequired_tags_1,
+	sizeof(asn_DEF_RICsubscriptionDeleteRequired_tags_1)
+		/sizeof(asn_DEF_RICsubscriptionDeleteRequired_tags_1[0]), /* 1 */
+	asn_DEF_RICsubscriptionDeleteRequired_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RICsubscriptionDeleteRequired_tags_1)
+		/sizeof(asn_DEF_RICsubscriptionDeleteRequired_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RICsubscriptionDeleteRequired_1,
+	1,	/* Elements count */
+	&asn_SPC_RICsubscriptionDeleteRequired_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/RICsubscriptionDeleteResponse.c b/e2ap/lib/RICsubscriptionDeleteResponse.c
index fc0f72d..6b8278d 100644
--- a/e2ap/lib/RICsubscriptionDeleteResponse.c
+++ b/e2ap/lib/RICsubscriptionDeleteResponse.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICsubscriptionDeleteResponse.h"
@@ -11,7 +11,7 @@
 	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse, protocolIEs),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_ProtocolIE_Container_87P4,
+		&asn_DEF_ProtocolIE_Container_185P4,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
diff --git a/e2ap/lib/RICsubscriptionDetails.c b/e2ap/lib/RICsubscriptionDetails.c
index 9033dc2..974ab3e 100644
--- a/e2ap/lib/RICsubscriptionDetails.c
+++ b/e2ap/lib/RICsubscriptionDetails.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICsubscriptionDetails.h"
diff --git a/e2ap/lib/RICsubscriptionFailure.c b/e2ap/lib/RICsubscriptionFailure.c
index f765319..035603c 100644
--- a/e2ap/lib/RICsubscriptionFailure.c
+++ b/e2ap/lib/RICsubscriptionFailure.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICsubscriptionFailure.h"
@@ -11,7 +11,7 @@
 	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure, protocolIEs),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_ProtocolIE_Container_87P2,
+		&asn_DEF_ProtocolIE_Container_185P2,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
diff --git a/e2ap/lib/RICsubscriptionRequest.c b/e2ap/lib/RICsubscriptionRequest.c
index 46c4fe8..10ced39 100644
--- a/e2ap/lib/RICsubscriptionRequest.c
+++ b/e2ap/lib/RICsubscriptionRequest.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICsubscriptionRequest.h"
@@ -11,7 +11,7 @@
 	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest, protocolIEs),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_ProtocolIE_Container_87P0,
+		&asn_DEF_ProtocolIE_Container_185P0,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
diff --git a/e2ap/lib/RICsubscriptionResponse.c b/e2ap/lib/RICsubscriptionResponse.c
index 56c92ae..8b615e2 100644
--- a/e2ap/lib/RICsubscriptionResponse.c
+++ b/e2ap/lib/RICsubscriptionResponse.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICsubscriptionResponse.h"
@@ -11,7 +11,7 @@
 	{ ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse, protocolIEs),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_ProtocolIE_Container_87P1,
+		&asn_DEF_ProtocolIE_Container_185P1,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
diff --git a/e2ap/lib/RICsubsequentAction.c b/e2ap/lib/RICsubsequentAction.c
index 8b3248c..4730601 100644
--- a/e2ap/lib/RICsubsequentAction.c
+++ b/e2ap/lib/RICsubsequentAction.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICsubsequentAction.h"
diff --git a/e2ap/lib/RICsubsequentActionType.c b/e2ap/lib/RICsubsequentActionType.c
index f88a331..a9c8bcf 100644
--- a/e2ap/lib/RICsubsequentActionType.c
+++ b/e2ap/lib/RICsubsequentActionType.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICsubsequentActionType.h"
diff --git a/e2ap/lib/RICtimeToWait.c b/e2ap/lib/RICtimeToWait.c
index 94fc184..b7c5574 100644
--- a/e2ap/lib/RICtimeToWait.c
+++ b/e2ap/lib/RICtimeToWait.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RICtimeToWait.h"
@@ -15,57 +15,55 @@
 	{ 0, 0 },
 	-1};
 asn_per_constraints_t asn_PER_type_RICtimeToWait_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  5,  5,  0,  17 }	/* (0..17,...) */,
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  5,  5,  0,  16 }	/* (0..16,...) */,
 	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
 	0, 0	/* No PER value map */
 };
 static const asn_INTEGER_enum_map_t asn_MAP_RICtimeToWait_value2enum_1[] = {
-	{ 0,	4,	"zero" },
-	{ 1,	4,	"w1ms" },
-	{ 2,	4,	"w2ms" },
-	{ 3,	4,	"w5ms" },
-	{ 4,	5,	"w10ms" },
-	{ 5,	5,	"w20ms" },
-	{ 6,	5,	"w30ms" },
-	{ 7,	5,	"w40ms" },
-	{ 8,	5,	"w50ms" },
-	{ 9,	6,	"w100ms" },
-	{ 10,	6,	"w200ms" },
-	{ 11,	6,	"w500ms" },
-	{ 12,	3,	"w1s" },
-	{ 13,	3,	"w2s" },
-	{ 14,	3,	"w5s" },
-	{ 15,	4,	"w10s" },
-	{ 16,	4,	"w20s" },
-	{ 17,	4,	"w60s" }
+	{ 0,	4,	"w1ms" },
+	{ 1,	4,	"w2ms" },
+	{ 2,	4,	"w5ms" },
+	{ 3,	5,	"w10ms" },
+	{ 4,	5,	"w20ms" },
+	{ 5,	5,	"w30ms" },
+	{ 6,	5,	"w40ms" },
+	{ 7,	5,	"w50ms" },
+	{ 8,	6,	"w100ms" },
+	{ 9,	6,	"w200ms" },
+	{ 10,	6,	"w500ms" },
+	{ 11,	3,	"w1s" },
+	{ 12,	3,	"w2s" },
+	{ 13,	3,	"w5s" },
+	{ 14,	4,	"w10s" },
+	{ 15,	4,	"w20s" },
+	{ 16,	4,	"w60s" }
 	/* This list is extensible */
 };
 static const unsigned int asn_MAP_RICtimeToWait_enum2value_1[] = {
-	9,	/* w100ms(9) */
-	4,	/* w10ms(4) */
-	15,	/* w10s(15) */
-	1,	/* w1ms(1) */
-	12,	/* w1s(12) */
-	10,	/* w200ms(10) */
-	5,	/* w20ms(5) */
-	16,	/* w20s(16) */
-	2,	/* w2ms(2) */
-	13,	/* w2s(13) */
-	6,	/* w30ms(6) */
-	7,	/* w40ms(7) */
-	11,	/* w500ms(11) */
-	8,	/* w50ms(8) */
-	3,	/* w5ms(3) */
-	14,	/* w5s(14) */
-	17,	/* w60s(17) */
-	0	/* zero(0) */
+	8,	/* w100ms(8) */
+	3,	/* w10ms(3) */
+	14,	/* w10s(14) */
+	0,	/* w1ms(0) */
+	11,	/* w1s(11) */
+	9,	/* w200ms(9) */
+	4,	/* w20ms(4) */
+	15,	/* w20s(15) */
+	1,	/* w2ms(1) */
+	12,	/* w2s(12) */
+	5,	/* w30ms(5) */
+	6,	/* w40ms(6) */
+	10,	/* w500ms(10) */
+	7,	/* w50ms(7) */
+	2,	/* w5ms(2) */
+	13,	/* w5s(13) */
+	16	/* w60s(16) */
 	/* This list is extensible */
 };
 const asn_INTEGER_specifics_t asn_SPC_RICtimeToWait_specs_1 = {
 	asn_MAP_RICtimeToWait_value2enum_1,	/* "tag" => N; sorted by tag */
 	asn_MAP_RICtimeToWait_enum2value_1,	/* N => "tag"; sorted by N */
-	18,	/* Number of elements in the maps */
-	19,	/* Extensions before this member */
+	17,	/* Number of elements in the maps */
+	18,	/* Extensions before this member */
 	1,	/* Strict enumeration */
 	0,	/* Native long size */
 	0
diff --git a/e2ap/lib/ResetRequest.c b/e2ap/lib/ResetRequest.c
index f40779f..fd0d659 100644
--- a/e2ap/lib/ResetRequest.c
+++ b/e2ap/lib/ResetRequest.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "ResetRequest.h"
@@ -11,7 +11,7 @@
 	{ ATF_NOFLAGS, 0, offsetof(struct ResetRequest, protocolIEs),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_ProtocolIE_Container_87P14,
+		&asn_DEF_ProtocolIE_Container_185P18,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
diff --git a/e2ap/lib/ResetResponse.c b/e2ap/lib/ResetResponse.c
index 47c433a..f6eeb56 100644
--- a/e2ap/lib/ResetResponse.c
+++ b/e2ap/lib/ResetResponse.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Contents"
- * 	found in "E2AP-PDU-Contents-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "ResetResponse.h"
@@ -11,7 +11,7 @@
 	{ ATF_NOFLAGS, 0, offsetof(struct ResetResponse, protocolIEs),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_ProtocolIE_Container_87P15,
+		&asn_DEF_ProtocolIE_Container_185P19,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
diff --git a/e2ap/lib/SuccessfulOutcome.c b/e2ap/lib/SuccessfulOutcome.c
index 7328b32..7a31285 100644
--- a/e2ap/lib/SuccessfulOutcome.c
+++ b/e2ap/lib/SuccessfulOutcome.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Descriptions"
- * 	found in "E2AP-PDU-Descriptions-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "SuccessfulOutcome.h"
@@ -11,20 +11,24 @@
 static const long asn_VAL_1_reject = 0;
 static const long asn_VAL_2_id_RICsubscriptionDelete = 9;
 static const long asn_VAL_2_reject = 0;
-static const long asn_VAL_3_id_RICserviceUpdate = 7;
+static const long asn_VAL_3_id_RICcontrol = 4;
 static const long asn_VAL_3_reject = 0;
-static const long asn_VAL_4_id_RICcontrol = 4;
+static const long asn_VAL_4_id_E2setup = 1;
 static const long asn_VAL_4_reject = 0;
-static const long asn_VAL_5_id_E2setup = 1;
+static const long asn_VAL_5_id_E2nodeConfigurationUpdate = 10;
 static const long asn_VAL_5_reject = 0;
 static const long asn_VAL_6_id_Reset = 3;
 static const long asn_VAL_6_reject = 0;
-static const long asn_VAL_7_id_RICindication = 5;
-static const long asn_VAL_7_ignore = 1;
-static const long asn_VAL_8_id_RICserviceQuery = 6;
+static const long asn_VAL_7_id_E2removal = 13;
+static const long asn_VAL_7_reject = 0;
+static const long asn_VAL_8_id_RICindication = 5;
 static const long asn_VAL_8_ignore = 1;
-static const long asn_VAL_9_id_ErrorIndication = 2;
+static const long asn_VAL_9_id_RICserviceQuery = 6;
 static const long asn_VAL_9_ignore = 1;
+static const long asn_VAL_10_id_ErrorIndication = 2;
+static const long asn_VAL_10_ignore = 1;
+static const long asn_VAL_11_id_RICsubscriptionDeleteRequired = 12;
+static const long asn_VAL_11_ignore = 1;
 static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = {
 	{ "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest },
 	{ "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse },
@@ -36,44 +40,54 @@
 	{ "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteFailure },
 	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_RICsubscriptionDelete },
 	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject },
-	{ "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceUpdate },
-	{ "&SuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateAcknowledge },
-	{ "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateFailure },
-	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_RICserviceUpdate },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject },
 	{ "&InitiatingMessage", aioc__type, &asn_DEF_RICcontrolRequest },
 	{ "&SuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolAcknowledge },
 	{ "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolFailure },
-	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_RICcontrol },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject },
+	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_RICcontrol },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject },
 	{ "&InitiatingMessage", aioc__type, &asn_DEF_E2setupRequest },
 	{ "&SuccessfulOutcome", aioc__type, &asn_DEF_E2setupResponse },
 	{ "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2setupFailure },
-	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_E2setup },
+	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_E2setup },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject },
+	{ "&InitiatingMessage", aioc__type, &asn_DEF_E2nodeConfigurationUpdate },
+	{ "&SuccessfulOutcome", aioc__type, &asn_DEF_E2nodeConfigurationUpdateAcknowledge },
+	{ "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2nodeConfigurationUpdateFailure },
+	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_E2nodeConfigurationUpdate },
 	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject },
 	{ "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest },
 	{ "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse },
 	{ "&UnsuccessfulOutcome",  },
 	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_Reset },
 	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject },
+	{ "&InitiatingMessage", aioc__type, &asn_DEF_E2RemovalRequest },
+	{ "&SuccessfulOutcome", aioc__type, &asn_DEF_E2RemovalResponse },
+	{ "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2RemovalFailure },
+	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_E2removal },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_reject },
 	{ "&InitiatingMessage", aioc__type, &asn_DEF_RICindication },
 	{ "&SuccessfulOutcome",  },
 	{ "&UnsuccessfulOutcome",  },
-	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_RICindication },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_ignore },
+	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_RICindication },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_ignore },
 	{ "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery },
 	{ "&SuccessfulOutcome",  },
 	{ "&UnsuccessfulOutcome",  },
-	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_RICserviceQuery },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_ignore },
+	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_RICserviceQuery },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore },
 	{ "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication },
 	{ "&SuccessfulOutcome",  },
 	{ "&UnsuccessfulOutcome",  },
-	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_ErrorIndication },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore }
+	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_10_id_ErrorIndication },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_ignore },
+	{ "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequired },
+	{ "&SuccessfulOutcome",  },
+	{ "&UnsuccessfulOutcome",  },
+	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_RICsubscriptionDeleteRequired },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore }
 };
 static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = {
-	{ 9, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows }
+	{ 11, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows }
 };
 static int
 memb_procedureCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
@@ -235,15 +249,6 @@
 		0, 0, /* No default value */
 		"RICsubscriptionDeleteResponse"
 		},
-	{ ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICserviceUpdateAcknowledge),
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_RICserviceUpdateAcknowledge,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"RICserviceUpdateAcknowledge"
-		},
 	{ ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.RICcontrolAcknowledge),
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -262,6 +267,15 @@
 		0, 0, /* No default value */
 		"E2setupResponse"
 		},
+	{ ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.E2nodeConfigurationUpdateAcknowledge),
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2nodeConfigurationUpdateAcknowledge,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"E2nodeConfigurationUpdateAcknowledge"
+		},
 	{ ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.ResetResponse),
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -271,14 +285,24 @@
 		0, 0, /* No default value */
 		"ResetResponse"
 		},
+	{ ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcome__value, choice.E2RemovalResponse),
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2RemovalResponse,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"E2RemovalResponse"
+		},
 };
 static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 5 }, /* RICsubscriptionResponse */
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 4 }, /* RICsubscriptionDeleteResponse */
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 3 }, /* RICserviceUpdateAcknowledge */
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 2 }, /* RICcontrolAcknowledge */
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 1 }, /* E2setupResponse */
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 0 } /* ResetResponse */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 6 }, /* RICsubscriptionResponse */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 5 }, /* RICsubscriptionDeleteResponse */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 4 }, /* RICcontrolAcknowledge */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 3 }, /* E2setupResponse */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 2 }, /* E2nodeConfigurationUpdateAcknowledge */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 1 }, /* ResetResponse */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 0 } /* E2RemovalResponse */
 };
 static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = {
 	sizeof(struct SuccessfulOutcome__value),
@@ -286,7 +310,7 @@
 	offsetof(struct SuccessfulOutcome__value, present),
 	sizeof(((struct SuccessfulOutcome__value *)0)->present),
 	asn_MAP_value_tag2el_4,
-	6,	/* Count of tags in the map */
+	7,	/* Count of tags in the map */
 	0, 0,
 	-1	/* Extensions start */
 };
@@ -301,7 +325,7 @@
 	0,	/* No tags (count) */
 	{ 0, 0, OPEN_TYPE_constraint },
 	asn_MBR_value_4,
-	6,	/* Elements count */
+	7,	/* Elements count */
 	&asn_SPC_value_specs_4	/* Additional specs */
 };
 
diff --git a/e2ap/lib/TNLinformation.c b/e2ap/lib/TNLinformation.c
new file mode 100644
index 0000000..4fcb86f
--- /dev/null
+++ b/e2ap/lib/TNLinformation.c
@@ -0,0 +1,140 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "TNLinformation.h"
+
+static int
+memb_tnlAddress_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size >= 1 && size <= 160)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static int
+memb_tnlPort_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size == 16)) {
+		/* Constraint check succeeded */
+		return 0;
+	} 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_memb_tnlAddress_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(0..MAX)) */};
+static asn_per_constraints_t asn_PER_memb_tnlAddress_constr_2 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  8,  8,  1,  160 }	/* (SIZE(1..160,...)) */,
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_tnlPort_constr_3 CC_NOTUSED = {
+	{ 0, 0 },
+	16	/* (SIZE(16..16)) */};
+static asn_per_constraints_t asn_PER_memb_tnlPort_constr_3 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  16,  16 }	/* (SIZE(16..16)) */,
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_TNLinformation_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct TNLinformation, tnlAddress),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_BIT_STRING,
+		0,
+		{ &asn_OER_memb_tnlAddress_constr_2, &asn_PER_memb_tnlAddress_constr_2,  memb_tnlAddress_constraint_1 },
+		0, 0, /* No default value */
+		"tnlAddress"
+		},
+	{ ATF_POINTER, 1, offsetof(struct TNLinformation, tnlPort),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_BIT_STRING,
+		0,
+		{ &asn_OER_memb_tnlPort_constr_3, &asn_PER_memb_tnlPort_constr_3,  memb_tnlPort_constraint_1 },
+		0, 0, /* No default value */
+		"tnlPort"
+		},
+};
+static const int asn_MAP_TNLinformation_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_TNLinformation_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_TNLinformation_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tnlAddress */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* tnlPort */
+};
+asn_SEQUENCE_specifics_t asn_SPC_TNLinformation_specs_1 = {
+	sizeof(struct TNLinformation),
+	offsetof(struct TNLinformation, _asn_ctx),
+	asn_MAP_TNLinformation_tag2el_1,
+	2,	/* Count of tags in the map */
+	asn_MAP_TNLinformation_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_TNLinformation = {
+	"TNLinformation",
+	"TNLinformation",
+	&asn_OP_SEQUENCE,
+	asn_DEF_TNLinformation_tags_1,
+	sizeof(asn_DEF_TNLinformation_tags_1)
+		/sizeof(asn_DEF_TNLinformation_tags_1[0]), /* 1 */
+	asn_DEF_TNLinformation_tags_1,	/* Same as above */
+	sizeof(asn_DEF_TNLinformation_tags_1)
+		/sizeof(asn_DEF_TNLinformation_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_TNLinformation_1,
+	2,	/* Elements count */
+	&asn_SPC_TNLinformation_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/TNLusage.c b/e2ap/lib/TNLusage.c
new file mode 100644
index 0000000..f26200a
--- /dev/null
+++ b/e2ap/lib/TNLusage.c
@@ -0,0 +1,60 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "TNLusage.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_TNLusage_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_type_TNLusage_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }	/* (0..2,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_TNLusage_value2enum_1[] = {
+	{ 0,	11,	"ric-service" },
+	{ 1,	16,	"support-function" },
+	{ 2,	4,	"both" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_TNLusage_enum2value_1[] = {
+	2,	/* both(2) */
+	0,	/* ric-service(0) */
+	1	/* support-function(1) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_TNLusage_specs_1 = {
+	asn_MAP_TNLusage_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_TNLusage_enum2value_1,	/* N => "tag"; sorted by N */
+	3,	/* Number of elements in the maps */
+	4,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_TNLusage_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_TNLusage = {
+	"TNLusage",
+	"TNLusage",
+	&asn_OP_NativeEnumerated,
+	asn_DEF_TNLusage_tags_1,
+	sizeof(asn_DEF_TNLusage_tags_1)
+		/sizeof(asn_DEF_TNLusage_tags_1[0]), /* 1 */
+	asn_DEF_TNLusage_tags_1,	/* Same as above */
+	sizeof(asn_DEF_TNLusage_tags_1)
+		/sizeof(asn_DEF_TNLusage_tags_1[0]), /* 1 */
+	{ &asn_OER_type_TNLusage_constr_1, &asn_PER_type_TNLusage_constr_1, NativeEnumerated_constraint },
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_TNLusage_specs_1	/* Additional specs */
+};
+
diff --git a/e2ap/lib/TimeToWait.c b/e2ap/lib/TimeToWait.c
index a969d55..4c82197 100644
--- a/e2ap/lib/TimeToWait.c
+++ b/e2ap/lib/TimeToWait.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "TimeToWait.h"
diff --git a/e2ap/lib/TransactionID.c b/e2ap/lib/TransactionID.c
new file mode 100644
index 0000000..88af0a2
--- /dev/null
+++ b/e2ap/lib/TransactionID.c
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "TransactionID.h"
+
+int
+TransactionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0 && value <= 255)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_TransactionID_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_TransactionID_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  8,  8,  0,  255 }	/* (0..255,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_TransactionID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_TransactionID = {
+	"TransactionID",
+	"TransactionID",
+	&asn_OP_NativeInteger,
+	asn_DEF_TransactionID_tags_1,
+	sizeof(asn_DEF_TransactionID_tags_1)
+		/sizeof(asn_DEF_TransactionID_tags_1[0]), /* 1 */
+	asn_DEF_TransactionID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_TransactionID_tags_1)
+		/sizeof(asn_DEF_TransactionID_tags_1[0]), /* 1 */
+	{ &asn_OER_type_TransactionID_constr_1, &asn_PER_type_TransactionID_constr_1, TransactionID_constraint },
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/e2ap/lib/TriggeringMessage.c b/e2ap/lib/TriggeringMessage.c
index 7d1dbe8..bffc17b 100644
--- a/e2ap/lib/TriggeringMessage.c
+++ b/e2ap/lib/TriggeringMessage.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "E2AP-CommonDataTypes"
- * 	found in "E2AP-CommonDataTypes-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "TriggeringMessage.h"
diff --git a/e2ap/lib/TypeOfError.c b/e2ap/lib/TypeOfError.c
index e37ab6b..dca810d 100644
--- a/e2ap/lib/TypeOfError.c
+++ b/e2ap/lib/TypeOfError.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-IEs"
- * 	found in "E2AP-IEs-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "TypeOfError.h"
diff --git a/e2ap/lib/UnsuccessfulOutcome.c b/e2ap/lib/UnsuccessfulOutcome.c
index 5c85aa8..2bd4abf 100644
--- a/e2ap/lib/UnsuccessfulOutcome.c
+++ b/e2ap/lib/UnsuccessfulOutcome.c
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2AP-PDU-Descriptions"
- * 	found in "E2AP-PDU-Descriptions-v01.00.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
+ * From ASN.1 module "E2AP-CommonDataTypes"
+ * 	found in "e2ap.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "UnsuccessfulOutcome.h"
@@ -11,20 +11,24 @@
 static const long asn_VAL_1_reject = 0;
 static const long asn_VAL_2_id_RICsubscriptionDelete = 9;
 static const long asn_VAL_2_reject = 0;
-static const long asn_VAL_3_id_RICserviceUpdate = 7;
+static const long asn_VAL_3_id_RICcontrol = 4;
 static const long asn_VAL_3_reject = 0;
-static const long asn_VAL_4_id_RICcontrol = 4;
+static const long asn_VAL_4_id_E2setup = 1;
 static const long asn_VAL_4_reject = 0;
-static const long asn_VAL_5_id_E2setup = 1;
+static const long asn_VAL_5_id_E2nodeConfigurationUpdate = 10;
 static const long asn_VAL_5_reject = 0;
 static const long asn_VAL_6_id_Reset = 3;
 static const long asn_VAL_6_reject = 0;
-static const long asn_VAL_7_id_RICindication = 5;
-static const long asn_VAL_7_ignore = 1;
-static const long asn_VAL_8_id_RICserviceQuery = 6;
+static const long asn_VAL_7_id_E2removal = 13;
+static const long asn_VAL_7_reject = 0;
+static const long asn_VAL_8_id_RICindication = 5;
 static const long asn_VAL_8_ignore = 1;
-static const long asn_VAL_9_id_ErrorIndication = 2;
+static const long asn_VAL_9_id_RICserviceQuery = 6;
 static const long asn_VAL_9_ignore = 1;
+static const long asn_VAL_10_id_ErrorIndication = 2;
+static const long asn_VAL_10_ignore = 1;
+static const long asn_VAL_11_id_RICsubscriptionDeleteRequired = 12;
+static const long asn_VAL_11_ignore = 1;
 static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = {
 	{ "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionRequest },
 	{ "&SuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionResponse },
@@ -36,44 +40,54 @@
 	{ "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICsubscriptionDeleteFailure },
 	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_2_id_RICsubscriptionDelete },
 	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_2_reject },
-	{ "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceUpdate },
-	{ "&SuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateAcknowledge },
-	{ "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICserviceUpdateFailure },
-	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_RICserviceUpdate },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject },
 	{ "&InitiatingMessage", aioc__type, &asn_DEF_RICcontrolRequest },
 	{ "&SuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolAcknowledge },
 	{ "&UnsuccessfulOutcome", aioc__type, &asn_DEF_RICcontrolFailure },
-	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_RICcontrol },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject },
+	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_3_id_RICcontrol },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_3_reject },
 	{ "&InitiatingMessage", aioc__type, &asn_DEF_E2setupRequest },
 	{ "&SuccessfulOutcome", aioc__type, &asn_DEF_E2setupResponse },
 	{ "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2setupFailure },
-	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_E2setup },
+	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_4_id_E2setup },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_4_reject },
+	{ "&InitiatingMessage", aioc__type, &asn_DEF_E2nodeConfigurationUpdate },
+	{ "&SuccessfulOutcome", aioc__type, &asn_DEF_E2nodeConfigurationUpdateAcknowledge },
+	{ "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2nodeConfigurationUpdateFailure },
+	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_5_id_E2nodeConfigurationUpdate },
 	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_5_reject },
 	{ "&InitiatingMessage", aioc__type, &asn_DEF_ResetRequest },
 	{ "&SuccessfulOutcome", aioc__type, &asn_DEF_ResetResponse },
 	{ "&UnsuccessfulOutcome",  },
 	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_6_id_Reset },
 	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_6_reject },
+	{ "&InitiatingMessage", aioc__type, &asn_DEF_E2RemovalRequest },
+	{ "&SuccessfulOutcome", aioc__type, &asn_DEF_E2RemovalResponse },
+	{ "&UnsuccessfulOutcome", aioc__type, &asn_DEF_E2RemovalFailure },
+	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_E2removal },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_reject },
 	{ "&InitiatingMessage", aioc__type, &asn_DEF_RICindication },
 	{ "&SuccessfulOutcome",  },
 	{ "&UnsuccessfulOutcome",  },
-	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_7_id_RICindication },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_7_ignore },
+	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_RICindication },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_ignore },
 	{ "&InitiatingMessage", aioc__type, &asn_DEF_RICserviceQuery },
 	{ "&SuccessfulOutcome",  },
 	{ "&UnsuccessfulOutcome",  },
-	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_8_id_RICserviceQuery },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_8_ignore },
+	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_RICserviceQuery },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore },
 	{ "&InitiatingMessage", aioc__type, &asn_DEF_ErrorIndication },
 	{ "&SuccessfulOutcome",  },
 	{ "&UnsuccessfulOutcome",  },
-	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_9_id_ErrorIndication },
-	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_9_ignore }
+	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_10_id_ErrorIndication },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_10_ignore },
+	{ "&InitiatingMessage", aioc__type, &asn_DEF_RICsubscriptionDeleteRequired },
+	{ "&SuccessfulOutcome",  },
+	{ "&UnsuccessfulOutcome",  },
+	{ "&procedureCode", aioc__value, &asn_DEF_ProcedureCode, &asn_VAL_11_id_RICsubscriptionDeleteRequired },
+	{ "&criticality", aioc__value, &asn_DEF_Criticality, &asn_VAL_11_ignore }
 };
 static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = {
-	{ 9, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows }
+	{ 11, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows }
 };
 static int
 memb_procedureCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
@@ -235,15 +249,6 @@
 		0, 0, /* No default value */
 		"RICsubscriptionDeleteFailure"
 		},
-	{ ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICserviceUpdateFailure),
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_RICserviceUpdateFailure,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"RICserviceUpdateFailure"
-		},
 	{ ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.RICcontrolFailure),
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -262,13 +267,32 @@
 		0, 0, /* No default value */
 		"E2setupFailure"
 		},
+	{ ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.E2nodeConfigurationUpdateFailure),
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2nodeConfigurationUpdateFailure,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"E2nodeConfigurationUpdateFailure"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcome__value, choice.E2RemovalFailure),
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2RemovalFailure,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"E2RemovalFailure"
+		},
 };
 static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = {
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 4 }, /* RICsubscriptionFailure */
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 3 }, /* RICsubscriptionDeleteFailure */
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 2 }, /* RICserviceUpdateFailure */
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 1 }, /* RICcontrolFailure */
-    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 0 } /* E2setupFailure */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 5 }, /* RICsubscriptionFailure */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 4 }, /* RICsubscriptionDeleteFailure */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 3 }, /* RICcontrolFailure */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 2 }, /* E2setupFailure */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 1 }, /* E2nodeConfigurationUpdateFailure */
+    { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 0 } /* E2RemovalFailure */
 };
 static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = {
 	sizeof(struct UnsuccessfulOutcome__value),
@@ -276,7 +300,7 @@
 	offsetof(struct UnsuccessfulOutcome__value, present),
 	sizeof(((struct UnsuccessfulOutcome__value *)0)->present),
 	asn_MAP_value_tag2el_4,
-	5,	/* Count of tags in the map */
+	6,	/* Count of tags in the map */
 	0, 0,
 	-1	/* Extensions start */
 };
@@ -291,7 +315,7 @@
 	0,	/* No tags (count) */
 	{ 0, 0, OPEN_TYPE_constraint },
 	asn_MBR_value_4,
-	5,	/* Elements count */
+	6,	/* Elements count */
 	&asn_SPC_value_specs_4	/* Additional specs */
 };
 
diff --git a/e2ap/lib/asn_internal.c b/e2ap/lib/asn_internal.c
index 1aff95f..004660b 100644
--- a/e2ap/lib/asn_internal.c
+++ b/e2ap/lib/asn_internal.c
@@ -26,11 +26,12 @@
         buf_size <<= 1;
         if(buf == scratch) {
             buf = MALLOC(buf_size);
-            if(!buf) return -1;
+            if(!buf) { va_end(args); return -1; }
         } else {
             void *p = REALLOC(buf, buf_size);
             if(!p) {
                 FREEMEM(buf);
+		va_end(args);
                 return -1;
             }
             buf = p;
diff --git a/e2ap/lib/asn_random_fill.c b/e2ap/lib/asn_random_fill.c
index eb8ed8f..819cf70 100644
--- a/e2ap/lib/asn_random_fill.c
+++ b/e2ap/lib/asn_random_fill.c
@@ -48,11 +48,7 @@
 
         for(; got_entropy < range;) {
             got_entropy = (got_entropy << 24) | 0xffffff;
-#ifdef WIN32    //MCHECK
-            value = (value << 24) | (rand() % 0xffffff); 
-#else
             value = (value << 24) | (random() % 0xffffff);
-#endif
         }
 
         return lb + (intmax_t)(value % (range + 1));
diff --git a/e2ap/lib/per_support.c b/e2ap/lib/per_support.c
index 2285677..2c87a76 100644
--- a/e2ap/lib/per_support.c
+++ b/e2ap/lib/per_support.c
@@ -310,9 +310,12 @@
 
 	*repeat = 0;
 
-	if (range <= 65536 && range >= 0)
-		return aper_get_nsnnwn(pd, range);
-
+	// First check effective_bits parameter.
+	if (ebits >= 0) {
+	  if (range <= 65536 && range >= 0)
+	    return aper_get_nsnnwn(pd, range);
+	}
+	
 	if (aper_get_align(pd) < 0)
 		return -1;
 
diff --git a/e2ap/wrapper.c b/e2ap/wrapper.c
index 1e38f0f..7dad60c 100644
--- a/e2ap/wrapper.c
+++ b/e2ap/wrapper.c
@@ -139,4 +139,76 @@
     return encode_E2AP_PDU(init, buffer, buf_size);
 }
 
-                                            
+RICControlAcknowledge* e2ap_decode_ric_control_acknowledge_message(void *buffer, size_t buf_size)
+{
+    E2AP_PDU_t *pdu = decode_E2AP_PDU(buffer, buf_size);
+    if ( pdu != NULL && pdu->present == E2AP_PDU_PR_successfulOutcome)
+    {
+        SuccessfulOutcome_t* successfulOutcome = pdu->choice.successfulOutcome;
+        if ( successfulOutcome->procedureCode == ProcedureCode_id_RICcontrol
+            && successfulOutcome->value.present == SuccessfulOutcome__value_PR_RICcontrolAcknowledge)
+        {
+		RICcontrolAcknowledge_t *controlAck = &(successfulOutcome->value.choice.RICcontrolAcknowledge);
+            	RICControlAcknowledge *msg = (RICControlAcknowledge *)calloc(1, sizeof(RICControlAcknowledge));
+		int i = 0;
+		 for (i; i < controlAck->protocolIEs.list.count; ++i )
+            {
+		if(controlAck->protocolIEs.list.array[i]->id == ProtocolIE_ID_id_RICrequestID)
+		{
+                    msg->requestorID = controlAck->protocolIEs.list.array[i]->value.choice.RICrequestID.ricRequestorID;
+                    msg->instanceID = controlAck->protocolIEs.list.array[i]->value.choice.RICrequestID.ricInstanceID;
+                }
+                else if (controlAck->protocolIEs.list.array[i]->id == ProtocolIE_ID_id_RANfunctionID) {
+                    msg->ranfunctionID = controlAck->protocolIEs.list.array[i]->value.choice.RANfunctionID;
+                }
+		else if(controlAck->protocolIEs.list.array[i]->id == ProtocolIE_ID_id_RICcallProcessID) {
+                    size_t callProcessIDSize = controlAck->protocolIEs.list.array[i]->value.choice.RICcallProcessID.size;
+                    msg->callProcessID = calloc(1, callProcessIDSize);
+                    if (!msg->callProcessID) {
+                        fprintf(stderr, "alloc RICcallProcessID failed\n");
+                        e2ap_free_decoded_ric_control_ack(msg);
+                        ASN_STRUCT_FREE(asn_DEF_E2AP_PDU, pdu);
+                        return NULL;
+                    }
+
+                    memcpy(msg->callProcessID, controlAck->protocolIEs.list.array[i]->value.choice.RICcallProcessID.buf, callProcessIDSize);
+                    msg->callProcessIDSize = callProcessIDSize;
+                }
+		else if(controlAck->protocolIEs.list.array[i]->id == ProtocolIE_ID_id_RICcontrolOutcome) {
+                    size_t ricControlOutComeSize = controlAck->protocolIEs.list.array[i]->value.choice.RICcontrolOutcome.size;
+                    msg->ricControlOutCome = calloc(1, ricControlOutComeSize);
+                    if (!msg->ricControlOutCome) {
+                        fprintf(stderr, "alloc ricControlOutCome failed\n");
+                        e2ap_free_decoded_ric_control_ack(msg);
+                        ASN_STRUCT_FREE(asn_DEF_E2AP_PDU, pdu);
+                        return NULL;
+                    }
+
+                    memcpy(msg->ricControlOutCome, controlAck->protocolIEs.list.array[i]->value.choice.RICcontrolOutcome.buf, ricControlOutComeSize);
+                    msg->ricControlOutComeSize = ricControlOutComeSize;
+                }
+	}
+		return msg;
+	}
+        }
+
+    if(pdu != NULL)
+        ASN_STRUCT_FREE(asn_DEF_E2AP_PDU, pdu);
+    return NULL;
+}
+ 
+void e2ap_free_decoded_ric_control_ack(RICControlAcknowledge* msg) {
+    if(msg == NULL) {
+        return;
+    }
+    if(msg->callProcessID != NULL) {
+        free(msg->callProcessID);
+        msg->callProcessID = NULL;
+    }
+    if(msg->ricControlOutCome != NULL) {
+        free(msg->ricControlOutCome);
+        msg->ricControlOutCome = NULL;
+    }
+        free(msg);
+    msg = NULL;
+}
diff --git a/e2ap/wrapper.h b/e2ap/wrapper.h
index af1ec2e..e8dbadb 100644
--- a/e2ap/wrapper.h
+++ b/e2ap/wrapper.h
@@ -10,11 +10,24 @@
 #include "ProtocolIE-Field.h"
 #include "RICactionDefinition.h"
 #include "RICsubsequentAction.h"
-#include "CauseRIC.h"
+//#include "CauseRIC.h"
+
+typedef struct RICControlAcknowledgeMsg {
+        long requestorID;
+        long instanceID;
+        long ranfunctionID;
+        uint8_t *callProcessID;
+        size_t callProcessIDSize;
+        uint8_t *ricControlOutCome;
+        size_t ricControlOutComeSize;
+}RICControlAcknowledge;
 
 size_t encode_E2AP_PDU(E2AP_PDU_t* pdu, void* buffer, size_t buf_size);
 E2AP_PDU_t* decode_E2AP_PDU(const void* buffer, size_t buf_size);
 
 /* RICcontrol */
 ssize_t e2ap_encode_ric_control_request_message(void *buffer, size_t buf_size, long ricRequestorID, long ricRequestSequenceNumber, long ranFunctionID, void *ricControlHdr, size_t ricControlHdrSize, void *ricControlMsg, size_t ricControlMsgSize);
+
+RICControlAcknowledge* e2ap_decode_ric_control_acknowledge_message(void *buffer, size_t buf_size);
+void e2ap_free_decoded_ric_control_ack(RICControlAcknowledge* msg);
 #endif /* _WRAPPER_H_ */
diff --git a/e2ap/wrapper.o b/e2ap/wrapper.o
new file mode 100644
index 0000000..59246c9
--- /dev/null
+++ b/e2ap/wrapper.o
Binary files differ
diff --git a/e2sm/.wrapper.c.swm b/e2sm/.wrapper.c.swm
new file mode 100644
index 0000000..bfd8d98
--- /dev/null
+++ b/e2sm/.wrapper.c.swm
Binary files differ
diff --git a/e2sm/.wrapper.c.swn b/e2sm/.wrapper.c.swn
new file mode 100644
index 0000000..c897c7f
--- /dev/null
+++ b/e2sm/.wrapper.c.swn
Binary files differ
diff --git a/e2sm/.wrapper.c.swo b/e2sm/.wrapper.c.swo
new file mode 100644
index 0000000..2a127fa
--- /dev/null
+++ b/e2sm/.wrapper.c.swo
Binary files differ
diff --git a/e2sm/e2sm-rc-nov2021.asn b/e2sm/e2sm-rc-nov2021.asn
new file mode 100644
index 0000000..8660e76
--- /dev/null
+++ b/e2sm/e2sm-rc-nov2021.asn
@@ -0,0 +1,1551 @@
+-- ASN1START
+-- **************************************************************
+-- E2SM-RC Information Element Definitions
+-- **************************************************************
+
+E2SM-RC-IEs {
+iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) oran(53148) e2(1) version1(1) e2sm(2) e2sm-RC-IEs (3)}
+
+
+DEFINITIONS AUTOMATIC TAGS ::= 
+
+BEGIN
+
+
+-- **************************************************************
+-- E2SM Common IEs
+-- **************************************************************
+
+-- --------------------------------------------------
+-- Constants
+-- --------------------------------------------------
+
+maxE1APid				INTEGER ::= 65535
+maxF1APid				INTEGER ::= 4
+
+-- IEs derived from 3GPP 36.423 (X2AP)
+maxEARFCN				INTEGER ::= 65535
+
+-- IEs derived from 3GPP 38.473 (F1AP)
+maxNRARFCN				INTEGER ::= 3279165
+maxnoofNrCellBands		INTEGER ::= 32
+
+
+-- --------------------------------------------------
+-- E2SM Commmon IEs
+-- --------------------------------------------------
+
+CGI ::= CHOICE {
+	nR-CGI					NR-CGI,
+	eUTRA-CGI				EUTRA-CGI,
+	...
+}
+
+CoreCPID ::= CHOICE {
+	fiveGC					GUAMI,
+	ePC						GUMMEI,
+	...
+}
+
+InterfaceIdentifier ::= CHOICE {
+	nG					InterfaceID-NG,
+	xN					InterfaceID-Xn,
+	f1					InterfaceID-F1,
+	e1					InterfaceID-E1,
+	s1					InterfaceID-S1,
+	x2					InterfaceID-X2,
+	w1					InterfaceID-W1,
+	...
+}
+
+InterfaceID-NG ::= SEQUENCE {
+	guami					GUAMI,
+	...
+}
+
+InterfaceID-Xn ::= SEQUENCE {
+	global-NG-RAN-ID		GlobalNGRANNodeID,
+	...
+}
+
+InterfaceID-F1 ::= SEQUENCE {
+	globalGNB-ID			GlobalGNB-ID,
+	gNB-DU-ID				GNB-DU-ID,
+	...
+}
+
+InterfaceID-E1 ::= SEQUENCE {
+	globalGNB-ID			GlobalGNB-ID,
+	gNB-CU-UP-ID			GNB-CU-UP-ID,
+	...
+}
+
+InterfaceID-S1 ::= SEQUENCE {
+	gUMMEI					GUMMEI,
+	...
+}
+
+InterfaceID-X2 ::= SEQUENCE {
+	nodeType 				CHOICE {
+		global-eNB-ID			GlobalENB-ID,
+		global-en-gNB-ID		GlobalenGNB-ID,
+		...
+	},
+	...
+}
+
+InterfaceID-W1 ::= SEQUENCE {
+	global-ng-eNB-ID			GlobalNgENB-ID,
+	ng-eNB-DU-ID				NGENB-DU-ID,
+	...
+}
+
+Interface-MessageID ::= SEQUENCE {
+	interfaceProcedureID		INTEGER,
+	messageType					ENUMERATED {initiatingMessage, successfulOutcome, unsuccessfulOutcome, ...},
+	...
+}
+
+InterfaceType ::= ENUMERATED {nG, xn, f1, e1, s1, x2, w1, ...}
+
+GroupID ::= CHOICE {
+	fiveGC						FiveQI,
+	ePC							QCI,
+	...
+}
+
+QoSID ::= CHOICE {
+	fiveGC						FiveQI,
+	ePC							QCI,
+	...
+}
+
+RANfunction-Name ::= SEQUENCE{
+	ranFunction-ShortName		PrintableString(SIZE(1..150,...)),
+	ranFunction-E2SM-OID		PrintableString(SIZE(1..1000,...)),
+	ranFunction-Description		PrintableString(SIZE(1..150,...)),
+	ranFunction-Instance		INTEGER									OPTIONAL,
+	...
+}
+
+RIC-Format-Type ::= INTEGER
+
+RIC-Style-Type ::= INTEGER
+
+RIC-Style-Name ::= PrintableString(SIZE(1..150,...))
+
+
+RRC-MessageID ::= SEQUENCE {
+	rrcType			CHOICE {
+		lTE				RRCclass-LTE,
+		nR				RRCclass-NR,
+		...
+	},
+	messageID		INTEGER,
+	...
+}
+
+RRCclass-LTE ::= ENUMERATED {bCCH-BCH, bCCH-BCH-MBMS, bCCH-DL-SCH, bCCH-DL-SCH-BR, bCCH-DL-SCH-MBMS, mCCH, pCCH, dL-CCCH, dL-DCCH, uL-CCCH, uL-DCCH, sC-MCCH, ...}
+
+RRCclass-NR ::= ENUMERATED {bCCH-BCH, bCCH-DL-SCH, dL-CCCH, dL-DCCH, pCCH, uL-CCCH, uL-CCCH1, uL-DCCH, ...}
+
+ServingCell-ARFCN ::= CHOICE {
+	nR					NR-ARFCN,
+	eUTRA				E-UTRA-ARFCN,
+	...
+}
+
+ServingCell-PCI ::= CHOICE {
+	nR					NR-PCI,
+	eUTRA				E-UTRA-PCI,
+	...
+}
+
+
+UEID ::= CHOICE{
+	gNB-UEID			UEID-GNB,
+	gNB-DU-UEID			UEID-GNB-DU,
+	gNB-CU-UP-UEID		UEID-GNB-CU-UP,
+	ng-eNB-UEID			UEID-NG-ENB,
+	ng-eNB-DU-UEID		UEID-NG-ENB-DU,
+	en-gNB-UEID			UEID-EN-GNB,
+	eNB-UEID			UEID-ENB,
+	...
+}
+
+UEID-GNB ::= SEQUENCE{
+	amf-UE-NGAP-ID				AMF-UE-NGAP-ID,
+	guami						GUAMI,
+	gNB-CU-UE-F1AP-ID-List		UEID-GNB-CU-F1AP-ID-List		OPTIONAL,
+-- C-ifCUDUseparated: This IE shall be present in messages from E2 Node to NearRT-RIC for a CU-DU separated gNB, whereas from NearRT-RIC to E2 Node messages, this IE may not be included. More than 1 F1AP ID shall be reported by E2 Node only when NR-DC is established.
+	gNB-CU-CP-UE-E1AP-ID-List	UEID-GNB-CU-CP-E1AP-ID-List		OPTIONAL,
+-- C-ifCPUPseparated: This IE shall be present in messages from E2 Node to NearRT-RIC for a CP-UP separated gNB, whereas from NearRT-RIC to E2 Node messages, this IE may not be included.
+	ran-UEID					RANUEID							OPTIONAL,
+	m-NG-RAN-UE-XnAP-ID			NG-RANnodeUEXnAPID				OPTIONAL,
+-- C-ifDCSetup: This IE shall be present in messages from E2 Node to NearRT-RIC if DC is established, whereas from NearRT-RIC to E2 Node messages, this IE may not be included. To be reported by both MN and SN.
+	globalGNB-ID				GlobalGNB-ID					OPTIONAL,
+-- This IE shall not be used. This IE is replaced with globalNG-RANNode-ID.
+	...,
+	globalNG-RANNode-ID			GlobalNGRANNodeID				OPTIONAL
+-- C-ifDCSetup: This IE shall be present in messages from E2 Node to NearRT-RIC if DC is established, whereas from NearRT-RIC to E2 Node messages, this IE may not be included. To be reported only by SN.
+}
+
+UEID-GNB-CU-CP-E1AP-ID-List ::= SEQUENCE (SIZE(1..maxE1APid)) OF UEID-GNB-CU-CP-E1AP-ID-Item
+
+UEID-GNB-CU-CP-E1AP-ID-Item ::= SEQUENCE{
+	gNB-CU-CP-UE-E1AP-ID	GNB-CU-CP-UE-E1AP-ID,
+	...
+}
+
+UEID-GNB-CU-F1AP-ID-List ::= SEQUENCE (SIZE(1..maxF1APid)) OF UEID-GNB-CU-CP-F1AP-ID-Item
+
+UEID-GNB-CU-CP-F1AP-ID-Item ::= SEQUENCE{
+	gNB-CU-UE-F1AP-ID		GNB-CU-UE-F1AP-ID,
+	...
+}
+
+UEID-GNB-DU ::= SEQUENCE{
+	gNB-CU-UE-F1AP-ID		GNB-CU-UE-F1AP-ID,
+	ran-UEID				RANUEID							OPTIONAL,
+	...
+}
+
+UEID-GNB-CU-UP ::= SEQUENCE{
+	gNB-CU-CP-UE-E1AP-ID	GNB-CU-CP-UE-E1AP-ID,
+	ran-UEID				RANUEID							OPTIONAL,
+	...
+}
+
+UEID-NG-ENB ::= SEQUENCE{
+	amf-UE-NGAP-ID			AMF-UE-NGAP-ID,
+	guami					GUAMI,
+	ng-eNB-CU-UE-W1AP-ID	NGENB-CU-UE-W1AP-ID				OPTIONAL,
+-- C-ifCUDUseperated: This IE shall be present in messages from E2 Node to NearRT-RIC for a CU-DU seperated ng-eNB, whereas from NearRT-RIC to E2 Node messages, this IE may not be included.
+	m-NG-RAN-UE-XnAP-ID		NG-RANnodeUEXnAPID				OPTIONAL,
+-- C-ifDCSetup: This IE shall be present in messages from E2 Node to NearRT-RIC if DC is established, whereas from NearRT-RIC to E2 Node messages, this IE may not be included. To be reported by both MN and SN.
+	globalNgENB-ID			GlobalNgENB-ID					OPTIONAL,
+-- This IE shall not be used. This IE is replaced with globalNG-RANNode-ID.
+	...,
+	globalNG-RANNode-ID			GlobalNGRANNodeID			OPTIONAL
+-- C-ifDCSetup: This IE shall be present in messages from E2 Node to NearRT-RIC if DC is established, whereas from NearRT-RIC to E2 Node messages, this IE may not be included. To be reported only by SN.
+}
+
+
+UEID-NG-ENB-DU ::= SEQUENCE{
+	ng-eNB-CU-UE-W1AP-ID	NGENB-CU-UE-W1AP-ID,
+	...
+}
+
+UEID-EN-GNB ::= SEQUENCE{
+	m-eNB-UE-X2AP-ID			ENB-UE-X2AP-ID,
+	m-eNB-UE-X2AP-ID-Extension	ENB-UE-X2AP-ID-Extension	OPTIONAL,
+	globalENB-ID				GlobalENB-ID,
+	gNB-CU-UE-F1AP-ID			GNB-CU-UE-F1AP-ID			OPTIONAL,
+-- C-ifCUDUseperated: This IE shall be present in messages from E2 Node to NearRT-RIC for a CU-DU seperated en-gNB, whereas from NearRT-RIC to E2 Node messages, this IE may not be included.
+	gNB-CU-CP-UE-E1AP-ID-List	UEID-GNB-CU-CP-E1AP-ID-List	OPTIONAL,
+-- C-ifCPUPseparated: This IE shall be present in messages from E2 Node to NearRT-RIC for a CP-UP separated en-gNB, whereas from NearRT-RIC to E2 Node messages, this IE may not be included.
+	ran-UEID					RANUEID						OPTIONAL,
+	...
+}
+
+UEID-ENB ::= SEQUENCE{
+	mME-UE-S1AP-ID				MME-UE-S1AP-ID,
+	gUMMEI						GUMMEI,
+	m-eNB-UE-X2AP-ID			ENB-UE-X2AP-ID				OPTIONAL,
+-- This IE shall be present in messages from E2 Node to NearRT-RIC if DC is established, whereas from NearRT-RIC to E2 Node messages, this IE may not be included. To be reported by MeNB and SeNB.
+	m-eNB-UE-X2AP-ID-Extension	ENB-UE-X2AP-ID-Extension	OPTIONAL,
+	globalENB-ID				GlobalENB-ID				OPTIONAL,
+-- This IE shall be present in messages from E2 Node to NearRT-RIC if DC is established, whereas from NearRT-RIC to E2 Node messages, this IE may not be included. To be reported only by SeNB.
+	...
+}
+
+-- **************************************************************
+-- 3GPP derived IEs
+-- **************************************************************
+-- NOTE:
+-- - Extension fields removed and replaced with "..."
+-- - IE names modified across all extracts to use "PLMNIdentity"
+
+-- **************************************************************
+-- IEs derived from 3GPP 36.413 (S1AP)
+-- **************************************************************
+-- **************************************************************
+
+-- copied from v16.5.0
+ENB-ID ::= CHOICE {
+	macro-eNB-ID	BIT STRING (SIZE (20)),
+	home-eNB-ID		BIT STRING (SIZE (28)),
+	... ,
+	short-Macro-eNB-ID		BIT STRING (SIZE(18)),
+	long-Macro-eNB-ID		BIT STRING (SIZE(21))
+}
+
+-- copied from v16.5.0
+GlobalENB-ID ::= SEQUENCE {
+	pLMNIdentity			PLMNIdentity,
+	eNB-ID					ENB-ID,
+	...
+}
+
+
+-- copied from v16.5.0
+GUMMEI			::= SEQUENCE {
+	pLMN-Identity		PLMNIdentity,
+	mME-Group-ID		MME-Group-ID,
+	mME-Code			MME-Code,
+	...
+}
+
+-- copied from v16.5.0
+MME-Group-ID	::= OCTET STRING (SIZE (2))
+
+-- copied from v16.5.0
+MME-Code		::= OCTET STRING (SIZE (1))
+
+-- copied from v16.5.0
+MME-UE-S1AP-ID	::= INTEGER (0..4294967295)
+
+-- copied from v16.5.0
+QCI				::= INTEGER (0..255)
+
+-- copied from v16.5.0
+SubscriberProfileIDforRFP ::= INTEGER (1..256) 
+
+
+
+
+-- **************************************************************
+-- IEs derived from 3GPP 36.423 (X2AP)
+-- **************************************************************
+-- Extension fields removed.
+-- Note: to avoid duplicate names with NGAP, XnAP, etc.:
+-- GNB-ID renamed ENGNB-ID, 
+-- GlobalGNB-ID renamed GlobalenGNB-ID, 
+-- UE-X2AP-ID renamed ENB-UE-X2AP-ID
+-- UE-X2AP-ID-Extension renamed ENB-UE-X2AP-ID-Extension
+-- **************************************************************
+
+-- copied from v16.5.0
+EN-GNB-ID ::= CHOICE {
+	en-gNB-ID	BIT STRING (SIZE (22..32)),
+	...
+}
+
+-- copied from v16.5.0
+ENB-UE-X2AP-ID ::= INTEGER (0..4095)
+
+-- copied from v16.5.0
+ENB-UE-X2AP-ID-Extension ::= INTEGER (0..4095, ...)
+
+-- copied from v16.5.0
+E-UTRA-ARFCN ::= INTEGER (0..maxEARFCN)
+
+-- copied from v16.5.0
+E-UTRA-PCI ::= INTEGER (0..503, ...)
+
+-- copied from v16.5.0
+E-UTRA-TAC ::= OCTET STRING (SIZE(2)) 
+
+-- copied from v16.5.0
+GlobalenGNB-ID ::= SEQUENCE {
+	pLMN-Identity			PLMNIdentity,
+	en-gNB-ID				EN-GNB-ID,
+	...
+}
+
+
+
+
+
+-- **************************************************************
+-- IEs derived from 3GPP 37.473 (W1AP)
+-- **************************************************************
+
+-- copied from v16.3.0
+NGENB-CU-UE-W1AP-ID	::= INTEGER (0..4294967295)
+
+-- copied from v16.3.0
+NGENB-DU-ID	::= INTEGER (0..68719476735)
+
+
+
+
+
+-- **************************************************************
+-- IEs derived from 3GPP 38.413 (NGAP)
+-- Extension fields removed and replaced with ...
+-- **************************************************************
+
+-- copied from v16.2.0
+AMFPointer ::= BIT STRING (SIZE(6))
+
+-- copied from v16.2.0
+AMFRegionID ::= BIT STRING (SIZE(8))
+
+-- copied from v16.2.0
+AMFSetID ::= BIT STRING (SIZE(10))
+
+-- copied from v16.2.0
+AMF-UE-NGAP-ID ::= INTEGER (0..1099511627775)
+
+-- copied from v16.2.0
+EUTRACellIdentity ::= BIT STRING (SIZE(28))
+
+-- copied from v16.2.0
+EUTRA-CGI ::= SEQUENCE {
+	pLMNIdentity			PLMNIdentity,
+	eUTRACellIdentity		EUTRACellIdentity,
+	...
+}
+
+-- copied from v16.2.0
+FiveQI ::= INTEGER (0..255, ...)
+
+-- copied from v16.2.0
+GlobalGNB-ID ::= SEQUENCE {
+	pLMNIdentity		PLMNIdentity,
+	gNB-ID				GNB-ID,
+	...
+}
+
+-- copied from v16.2.0
+GlobalNgENB-ID ::= SEQUENCE {
+	pLMNIdentity		PLMNIdentity,
+	ngENB-ID			NgENB-ID,
+	...
+}
+
+
+-- copied from v16.2.0
+GNB-ID ::= CHOICE {
+	gNB-ID		BIT STRING (SIZE(22..32)),
+	...
+}
+
+-- copied from v16.2.0
+GUAMI ::= SEQUENCE {
+	pLMNIdentity		PLMNIdentity,
+	aMFRegionID			AMFRegionID,
+	aMFSetID			AMFSetID,
+	aMFPointer			AMFPointer,
+	...
+}
+
+-- copied from v16.2.0
+IndexToRFSP ::= INTEGER (1..256, ...)
+
+-- copied from v16.2.0
+NgENB-ID ::= CHOICE {
+	macroNgENB-ID			BIT STRING (SIZE(20)),
+	shortMacroNgENB-ID		BIT STRING (SIZE(18)),
+	longMacroNgENB-ID		BIT STRING (SIZE(21)),
+	...
+}
+
+-- copied from v16.2.0
+NRCellIdentity ::= BIT STRING (SIZE(36))
+
+-- copied from v16.2.0
+NR-CGI ::= SEQUENCE {
+	pLMNIdentity		PLMNIdentity,
+	nRCellIdentity		NRCellIdentity,
+	...
+}
+
+-- copied from v16.2.0
+PLMNIdentity ::= OCTET STRING (SIZE(3)) 
+
+-- copied from v16.2.0
+QosFlowIdentifier ::= INTEGER (0..63, ...)
+
+-- copied from v16.2.0
+SD ::= OCTET STRING (SIZE(3))
+
+-- copied from v16.2.0
+S-NSSAI ::= SEQUENCE {
+	sST					SST,
+	sD					SD													OPTIONAL,
+	...
+}
+
+-- copied from v16.2.0
+SST ::= OCTET STRING (SIZE(1))
+
+
+
+
+
+-- **************************************************************
+-- IEs derived from 3GPP 38.423 (XnAP)
+-- **************************************************************
+
+-- copied from v16.2.0
+NG-RANnodeUEXnAPID ::= INTEGER (0.. 4294967295)
+
+GlobalNGRANNodeID ::= CHOICE {
+	gNB						GlobalGNB-ID,
+	ng-eNB					GlobalNgENB-ID,
+	...
+}
+
+
+
+
+-- **************************************************************
+-- IEs derived from 3GPP 38.463 (E1AP)
+-- **************************************************************
+
+-- copied from v16.5.0
+GNB-CU-CP-UE-E1AP-ID		::= INTEGER (0..4294967295)
+
+-- copied from v16.5.0
+GNB-CU-UP-ID				::= INTEGER (0..68719476735)
+
+
+
+
+
+
+-- **************************************************************
+-- IEs derived from 3GPP 38.473 (F1AP)
+-- **************************************************************
+
+-- copied from v16.5.0
+FiveGS-TAC 			::= OCTET STRING (SIZE(3))
+
+-- copied from v16.5.0
+FreqBandNrItem 		::= SEQUENCE {
+	freqBandIndicatorNr 		INTEGER (1..1024, ...),
+	...
+}
+
+
+-- copied from v16.5.0
+GNB-CU-UE-F1AP-ID	::= INTEGER (0..4294967295)
+
+-- copied from v16.5.0
+GNB-DU-ID			::= INTEGER (0..68719476735)
+
+-- copied from v16.5.0
+NR-PCI				::= INTEGER (0..1007)
+
+-- copied from v16.5.0
+NR-ARFCN			::= SEQUENCE {
+	nRARFCN				INTEGER (0..maxNRARFCN),
+	...
+}
+-- copied from v16.5.0
+NRFrequencyBand-List ::= SEQUENCE (SIZE(1..maxnoofNrCellBands)) OF NRFrequencyBandItem
+
+-- copied from v16.5.0
+NRFrequencyBandItem ::= SEQUENCE {
+	freqBandIndicatorNr			INTEGER (1..1024,...),
+	supportedSULBandList		SupportedSULBandList,										
+	...
+}
+
+-- copied from v16.5.0
+NRFrequencyInfo ::= SEQUENCE {
+	nrARFCN					NR-ARFCN,
+	frequencyBand-List		NRFrequencyBand-List,
+	frequencyShift7p5khz	NRFrequencyShift7p5khz			OPTIONAL,
+	...
+}
+
+-- copied from v16.5.0
+NRFrequencyShift7p5khz ::= ENUMERATED {false, true, ...}
+
+
+-- copied from v16.5.0
+RANUEID 			::= OCTET STRING (SIZE (8))
+
+
+-- copied from v16.5.0
+SupportedSULBandList ::= SEQUENCE (SIZE(0..maxnoofNrCellBands)) OF SupportedSULFreqBandItem
+
+-- copied from v16.5.0
+SupportedSULFreqBandItem ::= SEQUENCE {
+	freqBandIndicatorNr 		INTEGER (1..1024,...),
+	...
+}
+
+
+
+-- *****************************************************
+-- CONSTANTS
+-- *****************************************************
+
+maxnoofMessages							INTEGER ::= 65535
+maxnoofE2InfoChanges					INTEGER ::= 65535
+maxnoofUEInfoChanges					INTEGER ::= 65535
+maxnoofRRCstate							INTEGER ::= 8
+maxnoofParametersToReport				INTEGER ::= 65535
+maxnoofPolicyConditions					INTEGER ::= 65535
+maxnoofAssociatedRANParameters			INTEGER ::= 65535
+maxnoofUEID								INTEGER ::= 65535
+maxnoofCellID							INTEGER ::= 65535
+maxnoofRANOutcomeParameters				INTEGER ::= 255
+maxnoofParametersinStructure			INTEGER ::= 65535
+maxnoofItemsinList						INTEGER ::= 65535
+maxnoofUEInfo							INTEGER ::= 65535
+maxnoofCellInfo							INTEGER ::= 65535
+maxnoofUEeventInfo						INTEGER ::= 65535
+maxnoofRANparamTest						INTEGER ::= 255
+maxnoofNeighbourCell					INTEGER ::= 65535
+maxnoofRICStyles						INTEGER ::= 63
+maxnoofCallProcessTypes					INTEGER ::= 65535
+maxnoofCallProcessBreakpoints			INTEGER ::= 65535
+maxnoofInsertIndication					INTEGER ::= 65535
+maxnoofControlAction					INTEGER ::= 65535
+maxnoofPolicyAction						INTEGER ::= 65535
+
+
+-- *****************************************************
+-- IEs
+-- *****************************************************
+
+LogicalOR ::= ENUMERATED {true, false, ...}
+
+NeighborCell-List ::= SEQUENCE (SIZE(1..maxnoofNeighbourCell)) OF NeighborCell-Item
+
+NeighborCell-Item ::= CHOICE {
+	ranType-Choice-NR					NeighborCell-Item-Choice-NR,
+	ranType-Choice-EUTRA				NeighborCell-Item-Choice-E-UTRA,
+	...
+}
+
+NeighborCell-Item-Choice-NR ::= SEQUENCE {
+	nR-CGI								NR-CGI,
+	nR-PCI								NR-PCI,
+	fiveGS-TAC							FiveGS-TAC,
+	nR-mode-info						ENUMERATED {fdd, tdd, ...},
+	nR-ARFCN							NR-ARFCN,
+	x2-Xn-established					ENUMERATED {true, false, ...},
+	hO-validated						ENUMERATED {true, false, ...},
+	version								INTEGER (1..65535, ...),
+	...
+}
+
+NeighborCell-Item-Choice-E-UTRA ::= SEQUENCE {
+	eUTRA-CGI							EUTRA-CGI,
+	eUTRA-PCI							E-UTRA-PCI,
+	eUTRA-ARFCN							E-UTRA-ARFCN,
+	eUTRA-TAC							E-UTRA-TAC,
+	x2-Xn-established					ENUMERATED {true, false, ...},
+	hO-validated						ENUMERATED {true, false, ...},
+	version								INTEGER (1..65535, ...),
+	...
+}
+
+NeighborRelation-Info ::= SEQUENCE {
+	servingCellPCI						ServingCell-PCI,
+	servingCellARFCN					ServingCell-ARFCN,
+	neighborCell-List					NeighborCell-List,
+	...
+}
+
+RRC-State ::= ENUMERATED {rrc-connected, rrc-inactive, rrc-idle, any, ...}
+
+
+-------------------------------
+-- Event Trigger related IEs
+-------------------------------
+
+EventTrigger-Cell-Info ::= SEQUENCE {
+cellInfo-List						SEQUENCE (SIZE(1..maxnoofCellInfo)) OF EventTrigger-Cell-Info-Item,
+	...
+}
+
+EventTrigger-Cell-Info-Item ::= SEQUENCE {
+	eventTriggerCellID					RIC-EventTrigger-Cell-ID,
+	cellType							CHOICE {
+		cellType-Choice-Individual		EventTrigger-Cell-Info-Item-Choice-Individual,
+		cellType-Choice-Group			EventTrigger-Cell-Info-Item-Choice-Group,
+		...
+	},
+	logicalOR							LogicalOR 							OPTIONAL,
+	...
+}
+
+EventTrigger-Cell-Info-Item-Choice-Individual ::= SEQUENCE {
+	cellGlobalID						CGI,
+	...
+}
+
+EventTrigger-Cell-Info-Item-Choice-Group ::= SEQUENCE {
+	ranParameterTesting				RANParameter-Testing,
+	...
+}
+
+
+
+EventTrigger-UE-Info ::= SEQUENCE {
+ueInfo-List							SEQUENCE (SIZE(1..maxnoofUEInfo)) OF EventTrigger-UE-Info-Item,
+...
+}
+
+EventTrigger-UE-Info-Item ::= SEQUENCE {
+	eventTriggerUEID					RIC-EventTrigger-UE-ID,
+	ueType								CHOICE {
+		ueType-Choice-Individual		EventTrigger-UE-Info-Item-Choice-Individual,
+		ueType-Choice-Group				EventTrigger-UE-Info-Item-Choice-Group,
+		...
+	},
+	logicalOR							LogicalOR 							OPTIONAL,
+	...
+}
+
+EventTrigger-UE-Info-Item-Choice-Individual ::= SEQUENCE {
+	ueID								UEID,
+	ranParameterTesting					RANParameter-Testing,
+	...
+}
+
+EventTrigger-UE-Info-Item-Choice-Group ::= SEQUENCE {
+	ranParameterTesting			RANParameter-Testing,
+	...
+}
+
+
+
+EventTrigger-UEevent-Info ::= SEQUENCE {
+ueEvent-List						SEQUENCE (SIZE(1..maxnoofUEeventInfo)) OF EventTrigger-UEevent-Info-Item,
+...
+}
+
+EventTrigger-UEevent-Info-Item ::= SEQUENCE {
+	ueEventID							RIC-EventTrigger-UEevent-ID,
+	logicalOR							LogicalOR 							OPTIONAL,
+	...
+}
+
+
+-------------------------------
+-- RAN Parameter related IEs
+-------------------------------
+
+RANParameter-ID 	::= INTEGER (1..2^32, ...)
+
+RANParameter-Name ::= PrintableString (SIZE(1..150, ...))
+
+RANParameter-Definition ::= SEQUENCE {
+	ranParameter-Definition-Choice		RANParameter-Definition-Choice,
+	...
+}
+
+RANParameter-Definition-Choice ::= CHOICE {
+	choiceLIST							RANParameter-Definition-Choice-LIST,
+	choiceSTRUCTURE						RANParameter-Definition-Choice-STRUCTURE,
+	...
+}
+
+RANParameter-Definition-Choice-LIST ::= SEQUENCE {
+	ranParameter-List					SEQUENCE (SIZE(1..maxnoofItemsinList)) OF RANParameter-Definition-Choice-LIST-Item,
+	...
+}
+
+RANParameter-Definition-Choice-LIST-Item ::= SEQUENCE {
+	ranParameter-ID						RANParameter-ID,
+	ranParameter-name					RANParameter-Name,
+	ranParameter-Definition				RANParameter-Definition		OPTIONAL,
+	...
+}
+
+RANParameter-Definition-Choice-STRUCTURE ::= SEQUENCE {
+	ranParameter-STRUCTURE				SEQUENCE (SIZE(1..maxnoofParametersinStructure)) OF RANParameter-Definition-Choice-STRUCTURE-Item,
+	...
+}
+
+RANParameter-Definition-Choice-STRUCTURE-Item ::= SEQUENCE {
+	ranParameter-ID						RANParameter-ID,
+	ranParameter-name					RANParameter-Name,
+	ranParameter-Definition				RANParameter-Definition		OPTIONAL,
+	...
+} 
+
+RANParameter-Value ::= CHOICE {
+	valueBoolean						BOOLEAN,
+	valueInt							INTEGER,
+	valueReal							REAL,
+	valueBitS							BIT STRING,
+	valueOctS							OCTET STRING,
+	valuePrintableString				PrintableString,
+	...
+}
+
+RANParameter-ValueType ::= CHOICE {
+	ranP-Choice-ElementTrue			RANParameter-ValueType-Choice-ElementTrue, 
+	ranP-Choice-ElementFalse		RANParameter-ValueType-Choice-ElementFalse, 
+	ranP-Choice-Structure			RANParameter-ValueType-Choice-Structure,
+	ranP-Choice-List				RANParameter-ValueType-Choice-List, 
+	...
+}
+
+
+
+RANParameter-ValueType-Choice-ElementTrue ::= SEQUENCE {
+	ranParameter-value			RANParameter-Value,
+	...
+}
+
+RANParameter-ValueType-Choice-ElementFalse ::= SEQUENCE {
+	ranParameter-value			RANParameter-Value 			OPTIONAL,
+-- C-ifControl: This IE shall be present if it is part of a RIC Control Request message. Otherwise it is optional.
+	...
+}
+
+RANParameter-ValueType-Choice-Structure ::= SEQUENCE {
+	ranParameter-Structure			RANParameter-STRUCTURE,
+	...
+}
+
+RANParameter-ValueType-Choice-List ::= SEQUENCE {
+	ranParameter-List				RANParameter-LIST,
+	...
+}
+
+
+RANParameter-STRUCTURE ::= SEQUENCE {
+	sequence-of-ranParameters		SEQUENCE (SIZE(1..maxnoofParametersinStructure)) OF RANParameter-STRUCTURE-Item		OPTIONAL,
+	...
+}
+
+RANParameter-STRUCTURE-Item ::= SEQUENCE {
+	ranParameter-ID						RANParameter-ID,
+	ranParameter-valueType				RANParameter-ValueType,
+	...
+}
+
+RANParameter-LIST ::= SEQUENCE {
+ 	list-of-ranParameter				SEQUENCE (SIZE(1..maxnoofItemsinList)) OF RANParameter-STRUCTURE,
+ 	...
+}
+
+
+RANParameter-Testing ::= SEQUENCE (SIZE(1..maxnoofRANparamTest)) OF RANParameter-Testing-Item
+
+RANParameter-TestingCondition ::= CHOICE {
+	ranP-Choice-comparison				ENUMERATED {equal, difference, greaterthan, lessthan, contains, starts-with, ...},
+	ranP-Choice-presence				ENUMERATED {present, configured, rollover, non-zero, ...},
+	...
+}
+
+RANParameter-Testing-Item ::= SEQUENCE {
+	ranParameter-ID						RANParameter-ID,
+	ranParameter-Type					CHOICE {
+		ranP-Choice-List				RANParameter-Testing-Item-Choice-List,
+		ranP-Choice-Structure			RANParameter-Testing-Item-Choice-Structure,
+		ranP-Choice-ElementTrue			RANParameter-Testing-Item-Choice-ElementTrue,
+		ranP-Choice-ElementFalse		RANParameter-Testing-Item-Choice-ElementFalse,
+		...
+	},
+	...
+}
+
+RANParameter-Testing-Item-Choice-List ::= SEQUENCE {
+	ranParameter-List					RANParameter-Testing-LIST,
+	...
+}
+
+RANParameter-Testing-Item-Choice-Structure ::= SEQUENCE {
+	ranParameter-Structure				RANParameter-Testing-STRUCTURE,
+	...
+}
+
+RANParameter-Testing-Item-Choice-ElementTrue ::= SEQUENCE {
+	ranParameter-value					RANParameter-Value,
+	...
+}
+
+RANParameter-Testing-Item-Choice-ElementFalse ::= SEQUENCE {
+	ranParameter-TestCondition			RANParameter-TestingCondition,
+	ranParameter-Value					RANParameter-Value 					OPTIONAL,
+	logicalOR							LogicalOR							OPTIONAL,
+	...
+}
+
+RANParameter-Testing-LIST ::= SEQUENCE (SIZE(1..maxnoofItemsinList)) OF RANParameter-Testing-Item
+
+RANParameter-Testing-STRUCTURE ::= SEQUENCE (SIZE(1..maxnoofParametersinStructure)) OF RANParameter-Testing-Item
+
+			
+
+----------------------------
+-- RIC Service related IEs
+----------------------------
+
+RAN-CallProcess-ID ::= INTEGER (1..232, ...)
+
+RIC-CallProcessType-ID ::= INTEGER (1..65535, ...)
+
+RIC-CallProcessType-Name ::= PrintableString (SIZE(1..150, ...))
+
+RIC-CallProcessBreakpoint-ID ::= INTEGER (1..65535, ...)
+
+RIC-CallProcessBreakpoint-Name ::= PrintableString (SIZE(1..150, ...))
+
+RIC-ControlAction-ID ::= INTEGER (1..65535, ...)
+
+RIC-ControlAction-Name ::= PrintableString (SIZE(1..150, ...))
+
+RIC-EventTriggerCondition-ID ::= INTEGER (1..65535, ...)
+
+RIC-EventTrigger-UE-ID ::= INTEGER (1..65535, ...)
+
+RIC-EventTrigger-UEevent-ID ::= INTEGER (1..65535, ...)
+
+RIC-EventTrigger-Cell-ID ::= INTEGER (1..65535, ...)
+
+RIC-InsertIndication-ID ::= INTEGER (1..65535, ...)
+
+RIC-InsertIndication-Name ::= PrintableString (SIZE(1..150, ...))
+
+RIC-PolicyAction ::= SEQUENCE {
+	ric-PolicyAction-ID					RIC-ControlAction-ID,
+	ranParameters-List					SEQUENCE (SIZE(1..maxnoofAssociatedRANParameters)) OF RIC-PolicyAction-RANParameter-Item		OPTIONAL,
+	...
+}
+
+
+RIC-PolicyAction-RANParameter-Item ::= SEQUENCE {
+	ranParameter-ID						RANParameter-ID,
+	ranParameter-valueType				RANParameter-ValueType,
+	...
+}
+
+
+-- **************************************************************
+-- E2SM-RC Service Model IEs
+-- **************************************************************
+
+
+-- ***************************************************
+-- Event Trigger OCTET STRING contents
+-- ***************************************************
+
+E2SM-RC-EventTrigger ::= SEQUENCE {
+	ric-eventTrigger-formats					CHOICE {
+		eventTrigger-Format1					E2SM-RC-EventTrigger-Format1,
+		eventTrigger-Format2					E2SM-RC-EventTrigger-Format2,
+		eventTrigger-Format3					E2SM-RC-EventTrigger-Format3,
+		eventTrigger-Format4					E2SM-RC-EventTrigger-Format4,
+		eventTrigger-Format5					E2SM-RC-EventTrigger-Format5,
+		...
+	},
+	...
+}
+
+E2SM-RC-EventTrigger-Format1 ::= SEQUENCE {
+	message-List							SEQUENCE (SIZE(1..maxnoofMessages)) OF E2SM-RC-EventTrigger-Format1-Item,
+	globalAssociatedUEInfo					EventTrigger-UE-Info					OPTIONAL,
+	...
+}
+
+E2SM-RC-EventTrigger-Format1-Item ::= SEQUENCE {
+	ric-eventTriggerCondition-ID		RIC-EventTriggerCondition-ID,
+	messageType							MessageType-Choice,
+	messageDirection					ENUMERATED {incoming, outgoing, ...}	OPTIONAL,
+	associatedUEInfo					EventTrigger-UE-Info					OPTIONAL,
+	associatedUEEvent					EventTrigger-UEevent-Info				OPTIONAL,
+	logicalOR							LogicalOR								OPTIONAL,
+	...
+}
+
+
+MessageType-Choice ::= CHOICE {
+	messageType-Choice-NI					MessageType-Choice-NI,
+	messageType-Choice-RRC					MessageType-Choice-RRC,
+	...
+}
+
+
+MessageType-Choice-NI ::= SEQUENCE {
+	nI-Type									InterfaceType,
+	nI-Identifier							InterfaceIdentifier				OPTIONAL,
+	nI-Message								Interface-MessageID				OPTIONAL,
+	...
+}
+
+MessageType-Choice-RRC ::= SEQUENCE {
+	rRC-Message								RRC-MessageID,
+	...
+}
+
+
+E2SM-RC-EventTrigger-Format2 ::= SEQUENCE {
+	ric-callProcessType-ID				RIC-CallProcessType-ID,
+	ric-callProcessBreakpoint-ID		RIC-CallProcessBreakpoint-ID,
+	associatedE2NodeInfo				RANParameter-Testing					OPTIONAL,
+	associatedUEInfo					EventTrigger-UE-Info					OPTIONAL,
+	...
+}
+
+
+E2SM-RC-EventTrigger-Format3 ::= SEQUENCE {
+	e2NodeInfoChange-List				SEQUENCE (SIZE(1..maxnoofE2InfoChanges)) OF E2SM-RC-EventTrigger-Format3-Item,
+	...
+}
+
+E2SM-RC-EventTrigger-Format3-Item ::= SEQUENCE {
+	ric-eventTriggerCondition-ID		RIC-EventTriggerCondition-ID,
+	e2NodeInfoChange-ID					INTEGER (1..512, ...),
+	associatedCellInfo					EventTrigger-Cell-Info			OPTIONAL,
+	logicalOR							LogicalOR						OPTIONAL,
+	...
+}
+
+
+E2SM-RC-EventTrigger-Format4 ::= SEQUENCE {
+	uEInfoChange-List						SEQUENCE (SIZE(1..maxnoofUEInfoChanges)) OF E2SM-RC-EventTrigger-Format4-Item,
+	...
+}
+
+E2SM-RC-EventTrigger-Format4-Item ::= SEQUENCE {
+	ric-eventTriggerCondition-ID		RIC-EventTriggerCondition-ID,
+	triggerType							TriggerType-Choice,
+	associatedUEInfo					EventTrigger-UE-Info					OPTIONAL,
+	logicalOR							LogicalOR								OPTIONAL,
+	...
+}
+
+
+TriggerType-Choice ::= CHOICE {
+	triggerType-Choice-RRCstate		TriggerType-Choice-RRCstate,
+	triggerType-Choice-UEID			TriggerType-Choice-UEID,
+	triggerType-Choice-L2state		TriggerType-Choice-L2state,
+	...
+}
+
+TriggerType-Choice-RRCstate ::= SEQUENCE {
+	rrcState-List							SEQUENCE (SIZE(1..maxnoofRRCstate)) OF TriggerType-Choice-RRCstate-Item,
+	...
+}
+
+TriggerType-Choice-RRCstate-Item ::= SEQUENCE {
+	stateChangedTo							RRC-State,
+	logicalOR								LogicalOR						OPTIONAL,
+	...
+}
+
+TriggerType-Choice-UEID ::= SEQUENCE {
+	ueIDchange-ID							INTEGER (1..512, ...),
+	...
+}
+
+TriggerType-Choice-L2state ::= SEQUENCE {
+	associatedL2variables					RANParameter-Testing,
+	...
+}
+
+
+E2SM-RC-EventTrigger-Format5 ::= SEQUENCE {
+	onDemand								ENUMERATED {true, ...},
+	associatedUEInfo						EventTrigger-UE-Info				OPTIONAL,
+	associatedCellInfo						EventTrigger-Cell-Info				OPTIONAL,
+	...
+}
+
+
+
+-- ***************************************************
+-- Action Definition OCTET STRING contents
+-- ***************************************************
+
+E2SM-RC-ActionDefinition ::= SEQUENCE {
+	ric-Style-Type							RIC-Style-Type,
+	ric-actionDefinition-formats			CHOICE {
+		actionDefinition-Format1			E2SM-RC-ActionDefinition-Format1,
+		actionDefinition-Format2			E2SM-RC-ActionDefinition-Format2,
+		actionDefinition-Format3			E2SM-RC-ActionDefinition-Format3,
+		...
+	},
+	...
+}
+
+E2SM-RC-ActionDefinition-Format1 ::= SEQUENCE {
+	ranP-ToBeReported-List					SEQUENCE (SIZE(1..maxnoofParametersToReport)) OF E2SM-RC-ActionDefinition-Format1-Item,
+	...
+}
+
+
+E2SM-RC-ActionDefinition-Format1-Item ::= SEQUENCE {
+	ranParameter-ID						RANParameter-ID,
+	...
+}
+
+
+E2SM-RC-ActionDefinition-Format2 ::= SEQUENCE {
+	ric-PolicyConditions-List				SEQUENCE (SIZE(1..maxnoofPolicyConditions)) OF E2SM-RC-ActionDefinition-Format2-Item,
+	...
+}
+
+E2SM-RC-ActionDefinition-Format2-Item ::= SEQUENCE {
+	ric-PolicyAction						RIC-PolicyAction,
+	ric-PolicyConditionDefinition			RANParameter-Testing			OPTIONAL,
+	...
+}
+
+E2SM-RC-ActionDefinition-Format3 ::= SEQUENCE {
+	ric-InsertIndication-ID					RIC-InsertIndication-ID,
+	ranP-InsertIndication-List				SEQUENCE (SIZE(1..maxnoofAssociatedRANParameters)) OF E2SM-RC-ActionDefinition-Format3-Item,
+	ueID									UEID					OPTIONAL,
+	...
+}
+
+
+E2SM-RC-ActionDefinition-Format3-Item ::= SEQUENCE {
+	ranParameter-ID						RANParameter-ID,
+	...
+}
+
+
+-- ***************************************************
+-- Indication Header OCTET STRING contents
+-- ***************************************************
+
+E2SM-RC-IndicationHeader ::= SEQUENCE {
+ric-indicationHeader-formats		CHOICE {
+		indicationHeader-Format1			E2SM-RC-IndicationHeader-Format1,
+		indicationHeader-Format2			E2SM-RC-IndicationHeader-Format2,
+		...
+	},
+	...
+}
+
+E2SM-RC-IndicationHeader-Format1 ::= SEQUENCE {
+	ric-eventTriggerCondition-ID		RIC-EventTriggerCondition-ID 		OPTIONAL,
+	...
+}
+
+E2SM-RC-IndicationHeader-Format2 ::= SEQUENCE {
+	ueID								UEID,
+	ric-InsertStyle-Type				RIC-Style-Type,
+	ric-InsertIndication-ID				RIC-InsertIndication-ID,
+	...
+}
+
+
+-- ***************************************************
+-- Indication Message OCTET STRING contents
+-- ***************************************************
+
+E2SM-RC-IndicationMessage ::= SEQUENCE {
+ric-indicationMessage-formats		CHOICE {
+		indicationMessage-Format1			E2SM-RC-IndicationMessage-Format1,
+		indicationMessage-Format2			E2SM-RC-IndicationMessage-Format2,
+		indicationMessage-Format3			E2SM-RC-IndicationMessage-Format3,
+		indicationMessage-Format4			E2SM-RC-IndicationMessage-Format4,
+		indicationMessage-Format5			E2SM-RC-IndicationMessage-Format5,
+		...
+	},
+	...
+}
+
+E2SM-RC-IndicationMessage-Format1 ::= SEQUENCE {
+	ranP-Reported-List					SEQUENCE (SIZE(1..maxnoofAssociatedRANParameters)) OF E2SM-RC-IndicationMessage-Format1-Item,
+	...
+}
+
+E2SM-RC-IndicationMessage-Format1-Item ::= SEQUENCE {
+	ranParameter-ID						RANParameter-ID,
+	ranParameter-valueType				RANParameter-ValueType,
+	...
+}
+
+
+E2SM-RC-IndicationMessage-Format2 ::= SEQUENCE {
+	ueParameter-List					SEQUENCE (SIZE(1..maxnoofUEID)) OF E2SM-RC-IndicationMessage-Format2-Item,
+	...
+}
+
+E2SM-RC-IndicationMessage-Format2-Item ::= SEQUENCE {
+	ueID								UEID,
+	ranP-List							SEQUENCE (SIZE(1..maxnoofAssociatedRANParameters)) OF E2SM-RC-IndicationMessage-Format2-RANParameter-Item,
+	...
+}
+
+
+E2SM-RC-IndicationMessage-Format2-RANParameter-Item ::= SEQUENCE {
+	ranParameter-ID						RANParameter-ID,
+	ranParameter-valueType				RANParameter-ValueType,
+	...
+}
+
+
+E2SM-RC-IndicationMessage-Format3 ::= SEQUENCE {
+	cellInfo-List						SEQUENCE (SIZE(1..maxnoofCellID)) OF E2SM-RC-IndicationMessage-Format3-Item,
+	...
+}
+
+E2SM-RC-IndicationMessage-Format3-Item ::= SEQUENCE {
+	cellGlobal-ID						CGI,
+	cellContextInfo						OCTET STRING 					OPTIONAL,
+	cellDeleted							BOOLEAN							OPTIONAL,
+	neighborRelation-Table				NeighborRelation-Info		OPTIONAL,
+	...
+}
+
+E2SM-RC-IndicationMessage-Format4 ::= SEQUENCE {
+	ueInfo-List								SEQUENCE (SIZE(0..maxnoofUEID)) OF E2SM-RC-IndicationMessage-Format4-ItemUE,
+	cellInfo-List							SEQUENCE (SIZE(0..maxnoofCellID)) OF E2SM-RC-IndicationMessage-Format4-ItemCell,
+	...
+}
+
+
+E2SM-RC-IndicationMessage-Format4-ItemUE ::= SEQUENCE {
+	ueID									UEID,
+	ueContextInfo							OCTET STRING				OPTIONAL,
+	cellGlobal-ID							CGI,
+	...
+}
+
+
+E2SM-RC-IndicationMessage-Format4-ItemCell ::= SEQUENCE {
+	cellGlobal-ID						CGI,
+	cellContextInfo						OCTET STRING 				OPTIONAL,
+	neighborRelation-Table				NeighborRelation-Info		OPTIONAL,
+	...
+}
+
+E2SM-RC-IndicationMessage-Format5 ::= SEQUENCE{
+	ranP-Requested-List					SEQUENCE (SIZE(0..maxnoofAssociatedRANParameters)) OF E2SM-RC-IndicationMessage-Format5-Item,
+	...
+}
+
+
+E2SM-RC-IndicationMessage-Format5-Item ::= SEQUENCE {
+	ranParameter-ID						RANParameter-ID,
+	ranParameter-valueType				RANParameter-ValueType,
+	...
+}
+
+
+-- **************************************************
+-- Call Process ID OCTET STRING contents
+-- **************************************************
+
+E2SM-RC-CallProcessID ::= SEQUENCE {
+ric-callProcessID-formats		CHOICE {
+		callProcessID-Format1			E2SM-RC-CallProcessID-Format1,
+		...
+	},
+	...
+}
+
+E2SM-RC-CallProcessID-Format1 ::= SEQUENCE {
+	ric-callProcess-ID			RAN-CallProcess-ID,
+	...
+}
+
+
+-- ***************************************************
+-- Control Header OCTET STRING contents
+-- ***************************************************
+
+E2SM-RC-ControlHeader ::= SEQUENCE {
+	ric-controlHeader-formats			CHOICE {
+	controlHeader-Format1		E2SM-RC-ControlHeader-Format1,
+		...
+	},
+	...
+}
+
+E2SM-RC-ControlHeader-Format1 ::= SEQUENCE {
+	ueID								UEID,
+	ric-Style-Type						RIC-Style-Type,
+	ric-ControlAction-ID				RIC-ControlAction-ID,
+	ric-ControlDecision					ENUMERATED {accept, reject, ...}			OPTIONAL,
+	...
+}
+
+
+-- ***************************************************
+-- Control Message OCTET STRING contents
+-- ***************************************************
+
+E2SM-RC-ControlMessage ::= SEQUENCE {
+	ric-controlMessage-formats			CHOICE {
+		controlMessage-Format1			E2SM-RC-ControlMessage-Format1,
+		...
+	},
+	...
+}
+
+E2SM-RC-ControlMessage-Format1 ::= SEQUENCE {
+	ranP-List							SEQUENCE (SIZE(0..maxnoofAssociatedRANParameters)) OF E2SM-RC-ControlMessage-Format1-Item,
+	...
+}
+
+
+E2SM-RC-ControlMessage-Format1-Item ::= SEQUENCE {
+	ranParameter-ID						RANParameter-ID,
+	ranParameter-valueType				RANParameter-ValueType,
+	...
+}
+
+
+-- ****************************************************
+-- Control Outcome OCTET STRING contents
+-- ****************************************************
+
+E2SM-RC-ControlOutcome ::= SEQUENCE {
+	ric-controlOutcome-formats		CHOICE {
+		controlOutcome-Format1		E2SM-RC-ControlOutcome-Format1,
+		...
+	},
+	...
+}
+
+E2SM-RC-ControlOutcome-Format1 ::= SEQUENCE {
+	ranP-List							SEQUENCE (SIZE(0..maxnoofRANOutcomeParameters)) OF E2SM-RC-ControlOutcome-Format1-Item,
+	...
+}
+
+
+E2SM-RC-ControlOutcome-Format1-Item ::= SEQUENCE {
+	ranParameter-ID					RANParameter-ID,
+	ranParameter-value				RANParameter-Value,
+	...
+}
+
+
+
+
+-- **************************************************************
+-- RAN Function Definition IEs
+-- **************************************************************
+
+E2SM-RC-RANFunctionDefinition ::= SEQUENCE{
+	ranFunction-Name						RANfunction-Name,
+	ranFunctionDefinition-EventTrigger		RANFunctionDefinition-EventTrigger			OPTIONAL,
+	ranFunctionDefinition-Report			RANFunctionDefinition-Report				OPTIONAL,
+	ranFunctionDefinition-Insert			RANFunctionDefinition-Insert				OPTIONAL,
+	ranFunctionDefinition-Control			RANFunctionDefinition-Control				OPTIONAL,
+	ranFunctionDefinition-Policy			RANFunctionDefinition-Policy				OPTIONAL,
+	...
+}
+
+-------------------------------
+-- Event Trigger
+-------------------------------
+RANFunctionDefinition-EventTrigger ::= SEQUENCE {
+	ric-EventTriggerStyle-List				SEQUENCE (SIZE(1..maxnoofRICStyles)) OF RANFunctionDefinition-EventTrigger-Style-Item,
+	ran-L2Parameters-List 					SEQUENCE (SIZE(1..maxnoofAssociatedRANParameters)) OF L2Parameters-RANParameter-Item			OPTIONAL,
+	ran-CallProcessTypes-List				SEQUENCE (SIZE(1..maxnoofCallProcessTypes)) OF RANFunctionDefinition-EventTrigger-CallProcess-Item 		OPTIONAL,
+	ran-UEIdentificationParameters-List		SEQUENCE (SIZE(1..maxnoofAssociatedRANParameters)) OF UEIdentification-RANParameter-Item 		OPTIONAL,
+	ran-CellIdentificationParameters-List	SEQUENCE (SIZE(1..maxnoofAssociatedRANParameters)) OF CellIdentification-RANParameter-Item		OPTIONAL,
+	...
+}
+
+RANFunctionDefinition-EventTrigger-Style-Item ::= SEQUENCE {
+	ric-EventTriggerStyle-Type				RIC-Style-Type,
+	ric-EventTriggerStyle-Name				RIC-Style-Name,
+	ric-EventTriggerFormat-Type				RIC-Format-Type,
+	...
+}
+
+
+L2Parameters-RANParameter-Item ::= SEQUENCE {
+	ranParameter-ID							RANParameter-ID,
+	ranParameter-Name						RANParameter-Name,
+	...,
+	ranParameter-Definition					RANParameter-Definition		OPTIONAL
+}
+
+
+UEIdentification-RANParameter-Item ::= SEQUENCE {
+	ranParameter-ID						RANParameter-ID,
+	ranParameter-name					RANParameter-Name,
+	...,
+	ranParameter-Definition				RANParameter-Definition		OPTIONAL
+}
+
+
+CellIdentification-RANParameter-Item ::= SEQUENCE {
+	ranParameter-ID						RANParameter-ID,
+	ranParameter-name					RANParameter-Name,
+	...,
+	ranParameter-Definition				RANParameter-Definition		OPTIONAL
+}
+
+RANFunctionDefinition-EventTrigger-CallProcess-Item ::= SEQUENCE {
+	callProcessType-ID						RIC-CallProcessType-ID,
+	callProcessType-Name					RIC-CallProcessType-Name,
+	callProcessBreakpoints-List				SEQUENCE (SIZE (1..maxnoofCallProcessBreakpoints)) OF RANFunctionDefinition-EventTrigger-Breakpoint-Item,
+	...
+}
+
+
+RANFunctionDefinition-EventTrigger-Breakpoint-Item ::= SEQUENCE { 
+	callProcessBreakpoint-ID					RIC-CallProcessBreakpoint-ID,
+	callProcessBreakpoint-Name					RIC-CallProcessBreakpoint-Name,
+	ran-CallProcessBreakpointParameters-List	SEQUENCE (SIZE (1..maxnoofAssociatedRANParameters)) OF CallProcessBreakpoint-RANParameter-Item		OPTIONAL,
+	...
+}
+
+
+CallProcessBreakpoint-RANParameter-Item ::= SEQUENCE {
+	ranParameter-ID						RANParameter-ID,
+	ranParameter-name					RANParameter-Name,
+	...,
+	ranParameter-Definition				RANParameter-Definition		OPTIONAL
+}
+
+-------------------------------
+-- Report
+-------------------------------
+
+RANFunctionDefinition-Report ::= SEQUENCE {
+	ric-ReportStyle-List					SEQUENCE (SIZE(1..maxnoofRICStyles)) OF RANFunctionDefinition-Report-Item,
+	...
+}
+
+
+RANFunctionDefinition-Report-Item ::= SEQUENCE { 
+	ric-ReportStyle-Type					RIC-Style-Type,
+	ric-ReportStyle-Name					RIC-Style-Name,
+	ric-SupportedEventTriggerStyle-Type		RIC-Style-Type,
+	ric-ReportActionFormat-Type				RIC-Format-Type,
+	ric-IndicationHeaderFormat-Type			RIC-Format-Type,
+	ric-IndicationMessageFormat-Type		RIC-Format-Type,
+	ran-ReportParameters-List				SEQUENCE (SIZE (1..maxnoofAssociatedRANParameters)) OF  Report-RANParameter-Item			OPTIONAL,	
+	...
+}
+
+
+Report-RANParameter-Item ::= SEQUENCE {
+	ranParameter-ID						RANParameter-ID,
+	ranParameter-name					RANParameter-Name,
+	...,
+	ranParameter-Definition				RANParameter-Definition		OPTIONAL
+}
+
+-------------------------------
+-- Insert
+-------------------------------
+
+RANFunctionDefinition-Insert ::= SEQUENCE {
+	ric-InsertStyle-List							SEQUENCE (SIZE(1..maxnoofRICStyles)) OF RANFunctionDefinition-Insert-Item,
+	...
+}
+
+RANFunctionDefinition-Insert-Item ::= SEQUENCE {
+	ric-InsertStyle-Type						RIC-Style-Type,
+	ric-InsertStyle-Name						RIC-Style-Name,
+	ric-SupportedEventTriggerStyle-Type			RIC-Style-Type,
+	ric-ActionDefinitionFormat-Type				RIC-Format-Type,
+	ric-InsertIndication-List					SEQUENCE (SIZE(1..maxnoofInsertIndication)) OF RANFunctionDefinition-Insert-Indication-Item 	OPTIONAL,
+	ric-IndicationHeaderFormat-Type				RIC-Format-Type,
+	ric-IndicationMessageFormat-Type			RIC-Format-Type,
+	ric-CallProcessIDFormat-Type				RIC-Format-Type,
+	...
+}
+
+
+RANFunctionDefinition-Insert-Indication-Item ::= SEQUENCE {
+	ric-InsertIndication-ID						RIC-InsertIndication-ID,
+	ric-InsertIndication-Name					RIC-InsertIndication-Name,
+	ran-InsertIndicationParameters-List		SEQUENCE (SIZE (1..maxnoofAssociatedRANParameters)) OF InsertIndication-RANParameter-Item		OPTIONAL,
+	...
+}
+
+
+InsertIndication-RANParameter-Item ::= SEQUENCE {
+	ranParameter-ID						RANParameter-ID,
+	ranParameter-name					RANParameter-Name,
+	...,
+	ranParameter-Definition				RANParameter-Definition		OPTIONAL
+}
+-------------------------------
+-- Control
+-------------------------------
+
+RANFunctionDefinition-Control ::= SEQUENCE {
+	ric-ControlStyle-List					SEQUENCE (SIZE(1..maxnoofRICStyles)) OF RANFunctionDefinition-Control-Item,
+	...
+}
+
+
+RANFunctionDefinition-Control-Item ::= SEQUENCE {
+	ric-ControlStyle-Type						RIC-Style-Type,
+	ric-ControlStyle-Name						RIC-Style-Name,
+	ric-ControlAction-List						SEQUENCE (SIZE(1..maxnoofControlAction)) OF  RANFunctionDefinition-Control-Action-Item	OPTIONAL,
+	ric-ControlHeaderFormat-Type			RIC-Format-Type,
+	ric-ControlMessageFormat-Type			RIC-Format-Type,
+	ric-CallProcessIDFormat-Type			RIC-Format-Type				OPTIONAL,
+	ric-ControlOutcomeFormat-Type			RIC-Format-Type,
+	ran-ControlOutcomeParameters-List	SEQUENCE (SIZE(1..maxnoofRANOutcomeParameters)) OF ControlOutcome-RANParameter-Item		OPTIONAL,
+	...
+}
+
+ControlOutcome-RANParameter-Item ::= SEQUENCE {
+	ranParameter-ID						RANParameter-ID,
+	ranParameter-name					RANParameter-Name,
+	...,
+	ranParameter-Definition				RANParameter-Definition		OPTIONAL
+}
+
+
+RANFunctionDefinition-Control-Action-Item ::= SEQUENCE {
+	ric-ControlAction-ID					RIC-ControlAction-ID,
+	ric-ControlAction-Name					RIC-ControlAction-Name,
+	ran-ControlActionParameters-List		SEQUENCE (SIZE (1..maxnoofAssociatedRANParameters)) OF ControlAction-RANParameter-Item		OPTIONAL,
+	...
+}
+
+ControlAction-RANParameter-Item ::= SEQUENCE {
+	ranParameter-ID						RANParameter-ID,
+	ranParameter-name					RANParameter-Name,
+	...,
+	ranParameter-Definition				RANParameter-Definition		OPTIONAL
+}
+
+-------------------------------
+-- Policy
+-------------------------------
+
+RANFunctionDefinition-Policy ::= SEQUENCE {
+	ric-PolicyStyle-List					SEQUENCE (SIZE(1..maxnoofRICStyles)) OF RANFunctionDefinition-Policy-Item,
+	...
+}
+
+RANFunctionDefinition-Policy-Item ::= SEQUENCE {
+	ric-PolicyStyle-Type 					RIC-Style-Type,
+	ric-PolicyStyle-Name					RIC-Style-Name,
+	ric-SupportedEventTriggerStyle-Type		RIC-Style-Type,
+	ric-PolicyAction-List				SEQUENCE (SIZE(1..maxnoofPolicyAction)) OF RANFunctionDefinition-Policy-Action-Item	OPTIONAL,
+	...
+}
+
+
+RANFunctionDefinition-Policy-Action-Item ::= SEQUENCE {
+	ric-PolicyAction-ID						RIC-ControlAction-ID,
+	ric-PolicyAction-Name					RIC-ControlAction-Name,
+	ric-ActionDefinitionFormat-Type			RIC-Format-Type,
+	ran-PolicyActionParameters-List			SEQUENCE (SIZE (1..maxnoofAssociatedRANParameters)) OF PolicyAction-RANParameter-Item		OPTIONAL,
+	ran-PolicyConditionParameters-List		SEQUENCE (SIZE (1..maxnoofAssociatedRANParameters)) OF PolicyCondition-RANParameter-Item		OPTIONAL,
+	...
+}
+
+
+PolicyAction-RANParameter-Item ::= SEQUENCE {
+	ranParameter-ID						RANParameter-ID,
+	ranParameter-name					RANParameter-Name,
+	...,
+	ranParameter-Definition				RANParameter-Definition		OPTIONAL
+}
+
+
+PolicyCondition-RANParameter-Item ::= SEQUENCE {
+	ranParameter-ID						RANParameter-ID,
+	ranParameter-name					RANParameter-Name,
+	...,
+	ranParameter-Definition				RANParameter-Definition		OPTIONAL
+}
+
+
+
+END
+
+-- ASN1STOP
+
diff --git a/e2sm/headers/.RANParameter-Testing-Item.h.swp b/e2sm/headers/.RANParameter-Testing-Item.h.swp
new file mode 100644
index 0000000..10f3570
--- /dev/null
+++ b/e2sm/headers/.RANParameter-Testing-Item.h.swp
Binary files differ
diff --git a/e2sm/headers/AMF-UE-NGAP-ID.h b/e2sm/headers/AMF-UE-NGAP-ID.h
new file mode 100755
index 0000000..f48bc42
--- /dev/null
+++ b/e2sm/headers/AMF-UE-NGAP-ID.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_AMF_UE_NGAP_ID_H_
+#define	_AMF_UE_NGAP_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <INTEGER.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* AMF-UE-NGAP-ID */
+typedef INTEGER_t	 AMF_UE_NGAP_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_AMF_UE_NGAP_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_AMF_UE_NGAP_ID;
+asn_struct_free_f AMF_UE_NGAP_ID_free;
+asn_struct_print_f AMF_UE_NGAP_ID_print;
+asn_constr_check_f AMF_UE_NGAP_ID_constraint;
+ber_type_decoder_f AMF_UE_NGAP_ID_decode_ber;
+der_type_encoder_f AMF_UE_NGAP_ID_encode_der;
+xer_type_decoder_f AMF_UE_NGAP_ID_decode_xer;
+xer_type_encoder_f AMF_UE_NGAP_ID_encode_xer;
+oer_type_decoder_f AMF_UE_NGAP_ID_decode_oer;
+oer_type_encoder_f AMF_UE_NGAP_ID_encode_oer;
+per_type_decoder_f AMF_UE_NGAP_ID_decode_uper;
+per_type_encoder_f AMF_UE_NGAP_ID_encode_uper;
+per_type_decoder_f AMF_UE_NGAP_ID_decode_aper;
+per_type_encoder_f AMF_UE_NGAP_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _AMF_UE_NGAP_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/AMFPointer.h b/e2sm/headers/AMFPointer.h
new file mode 100755
index 0000000..dafad79
--- /dev/null
+++ b/e2sm/headers/AMFPointer.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_AMFPointer_H_
+#define	_AMFPointer_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* AMFPointer */
+typedef BIT_STRING_t	 AMFPointer_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_AMFPointer_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_AMFPointer;
+asn_struct_free_f AMFPointer_free;
+asn_struct_print_f AMFPointer_print;
+asn_constr_check_f AMFPointer_constraint;
+ber_type_decoder_f AMFPointer_decode_ber;
+der_type_encoder_f AMFPointer_encode_der;
+xer_type_decoder_f AMFPointer_decode_xer;
+xer_type_encoder_f AMFPointer_encode_xer;
+oer_type_decoder_f AMFPointer_decode_oer;
+oer_type_encoder_f AMFPointer_encode_oer;
+per_type_decoder_f AMFPointer_decode_uper;
+per_type_encoder_f AMFPointer_encode_uper;
+per_type_decoder_f AMFPointer_decode_aper;
+per_type_encoder_f AMFPointer_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _AMFPointer_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/AMFRegionID.h b/e2sm/headers/AMFRegionID.h
new file mode 100755
index 0000000..af03c30
--- /dev/null
+++ b/e2sm/headers/AMFRegionID.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_AMFRegionID_H_
+#define	_AMFRegionID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* AMFRegionID */
+typedef BIT_STRING_t	 AMFRegionID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_AMFRegionID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_AMFRegionID;
+asn_struct_free_f AMFRegionID_free;
+asn_struct_print_f AMFRegionID_print;
+asn_constr_check_f AMFRegionID_constraint;
+ber_type_decoder_f AMFRegionID_decode_ber;
+der_type_encoder_f AMFRegionID_encode_der;
+xer_type_decoder_f AMFRegionID_decode_xer;
+xer_type_encoder_f AMFRegionID_encode_xer;
+oer_type_decoder_f AMFRegionID_decode_oer;
+oer_type_encoder_f AMFRegionID_encode_oer;
+per_type_decoder_f AMFRegionID_decode_uper;
+per_type_encoder_f AMFRegionID_encode_uper;
+per_type_decoder_f AMFRegionID_decode_aper;
+per_type_encoder_f AMFRegionID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _AMFRegionID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/AMFSetID.h b/e2sm/headers/AMFSetID.h
new file mode 100755
index 0000000..5d947d6
--- /dev/null
+++ b/e2sm/headers/AMFSetID.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_AMFSetID_H_
+#define	_AMFSetID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* AMFSetID */
+typedef BIT_STRING_t	 AMFSetID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_AMFSetID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_AMFSetID;
+asn_struct_free_f AMFSetID_free;
+asn_struct_print_f AMFSetID_print;
+asn_constr_check_f AMFSetID_constraint;
+ber_type_decoder_f AMFSetID_decode_ber;
+der_type_encoder_f AMFSetID_encode_der;
+xer_type_decoder_f AMFSetID_decode_xer;
+xer_type_encoder_f AMFSetID_encode_xer;
+oer_type_decoder_f AMFSetID_decode_oer;
+oer_type_encoder_f AMFSetID_encode_oer;
+per_type_decoder_f AMFSetID_decode_uper;
+per_type_encoder_f AMFSetID_encode_uper;
+per_type_decoder_f AMFSetID_decode_aper;
+per_type_encoder_f AMFSetID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _AMFSetID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/BIT_STRING.h b/e2sm/headers/BIT_STRING.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/BOOLEAN.h b/e2sm/headers/BOOLEAN.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/CGI.h b/e2sm/headers/CGI.h
new file mode 100755
index 0000000..4843a4e
--- /dev/null
+++ b/e2sm/headers/CGI.h
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_CGI_H_
+#define	_CGI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum CGI_PR {
+	CGI_PR_NOTHING,	/* No components present */
+	CGI_PR_nR_CGI,
+	CGI_PR_eUTRA_CGI
+	/* Extensions may appear below */
+	
+} CGI_PR;
+
+/* Forward declarations */
+struct NR_CGI;
+struct EUTRA_CGI;
+
+/* CGI */
+typedef struct CGI {
+	CGI_PR present;
+	union CGI_u {
+		struct NR_CGI	*nR_CGI;
+		struct EUTRA_CGI	*eUTRA_CGI;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} CGI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CGI;
+extern asn_CHOICE_specifics_t asn_SPC_CGI_specs_1;
+extern asn_TYPE_member_t asn_MBR_CGI_1[2];
+extern asn_per_constraints_t asn_PER_type_CGI_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _CGI_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/CSI-RS-Index.h b/e2sm/headers/CSI-RS-Index.h
deleted file mode 100644
index 12169da..0000000
--- a/e2sm/headers/CSI-RS-Index.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_CSI_RS_Index_H_
-#define	_CSI_RS_Index_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <NativeInteger.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* CSI-RS-Index */
-typedef long	 CSI_RS_Index_t;
-
-/* Implementation */
-extern asn_per_constraints_t asn_PER_type_CSI_RS_Index_constr_1;
-extern asn_TYPE_descriptor_t asn_DEF_CSI_RS_Index;
-asn_struct_free_f CSI_RS_Index_free;
-asn_struct_print_f CSI_RS_Index_print;
-asn_constr_check_f CSI_RS_Index_constraint;
-ber_type_decoder_f CSI_RS_Index_decode_ber;
-der_type_encoder_f CSI_RS_Index_encode_der;
-xer_type_decoder_f CSI_RS_Index_decode_xer;
-xer_type_encoder_f CSI_RS_Index_encode_xer;
-oer_type_decoder_f CSI_RS_Index_decode_oer;
-oer_type_encoder_f CSI_RS_Index_encode_oer;
-per_type_decoder_f CSI_RS_Index_decode_uper;
-per_type_encoder_f CSI_RS_Index_encode_uper;
-per_type_decoder_f CSI_RS_Index_decode_aper;
-per_type_encoder_f CSI_RS_Index_encode_aper;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _CSI_RS_Index_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/CUUPMeasurement-Container.h b/e2sm/headers/CUUPMeasurement-Container.h
deleted file mode 100644
index 1bd12fd..0000000
--- a/e2sm/headers/CUUPMeasurement-Container.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_CUUPMeasurement_Container_H_
-#define	_CUUPMeasurement_Container_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 PlmnID_Item;
-
-/* CUUPMeasurement-Container */
-typedef struct CUUPMeasurement_Container {
-	struct CUUPMeasurement_Container__plmnList {
-		A_SEQUENCE_OF(struct PlmnID_Item) list;
-		
-		/* Context for parsing across buffer boundaries */
-		asn_struct_ctx_t _asn_ctx;
-	} plmnList;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} CUUPMeasurement_Container_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_CUUPMeasurement_Container;
-extern asn_SEQUENCE_specifics_t asn_SPC_CUUPMeasurement_Container_specs_1;
-extern asn_TYPE_member_t asn_MBR_CUUPMeasurement_Container_1[1];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _CUUPMeasurement_Container_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/CallProcessBreakpoint-RANParameter-Item.h b/e2sm/headers/CallProcessBreakpoint-RANParameter-Item.h
new file mode 100755
index 0000000..c22ecea
--- /dev/null
+++ b/e2sm/headers/CallProcessBreakpoint-RANParameter-Item.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_CallProcessBreakpoint_RANParameter_Item_H_
+#define	_CallProcessBreakpoint_RANParameter_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANParameter-ID.h"
+#include "RANParameter-Name.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RANParameter_Definition;
+
+/* CallProcessBreakpoint-RANParameter-Item */
+typedef struct CallProcessBreakpoint_RANParameter_Item {
+	RANParameter_ID_t	 ranParameter_ID;
+	RANParameter_Name_t	 ranParameter_name;
+	/*
+	 * 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;
+} CallProcessBreakpoint_RANParameter_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CallProcessBreakpoint_RANParameter_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_CallProcessBreakpoint_RANParameter_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_CallProcessBreakpoint_RANParameter_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _CallProcessBreakpoint_RANParameter_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/CellIdentification-RANParameter-Item.h b/e2sm/headers/CellIdentification-RANParameter-Item.h
new file mode 100755
index 0000000..18ea41f
--- /dev/null
+++ b/e2sm/headers/CellIdentification-RANParameter-Item.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_CellIdentification_RANParameter_Item_H_
+#define	_CellIdentification_RANParameter_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANParameter-ID.h"
+#include "RANParameter-Name.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RANParameter_Definition;
+
+/* CellIdentification-RANParameter-Item */
+typedef struct CellIdentification_RANParameter_Item {
+	RANParameter_ID_t	 ranParameter_ID;
+	RANParameter_Name_t	 ranParameter_name;
+	/*
+	 * 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;
+} CellIdentification_RANParameter_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CellIdentification_RANParameter_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_CellIdentification_RANParameter_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_CellIdentification_RANParameter_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _CellIdentification_RANParameter_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/CellObjectID.h b/e2sm/headers/CellObjectID.h
deleted file mode 100644
index 36c987e..0000000
--- a/e2sm/headers/CellObjectID.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_CellObjectID_H_
-#define	_CellObjectID_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <PrintableString.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* CellObjectID */
-typedef PrintableString_t	 CellObjectID_t;
-
-/* Implementation */
-extern asn_per_constraints_t asn_PER_type_CellObjectID_constr_1;
-extern asn_TYPE_descriptor_t asn_DEF_CellObjectID;
-asn_struct_free_f CellObjectID_free;
-asn_struct_print_f CellObjectID_print;
-asn_constr_check_f CellObjectID_constraint;
-ber_type_decoder_f CellObjectID_decode_ber;
-der_type_encoder_f CellObjectID_encode_der;
-xer_type_decoder_f CellObjectID_decode_xer;
-xer_type_encoder_f CellObjectID_encode_xer;
-oer_type_decoder_f CellObjectID_decode_oer;
-oer_type_encoder_f CellObjectID_encode_oer;
-per_type_decoder_f CellObjectID_decode_uper;
-per_type_encoder_f CellObjectID_encode_uper;
-per_type_decoder_f CellObjectID_decode_aper;
-per_type_encoder_f CellObjectID_encode_aper;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _CellObjectID_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/CellResourceReportListItem.h b/e2sm/headers/CellResourceReportListItem.h
deleted file mode 100644
index 85275f3..0000000
--- a/e2sm/headers/CellResourceReportListItem.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_CellResourceReportListItem_H_
-#define	_CellResourceReportListItem_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "NRCGI.h"
-#include <NativeInteger.h>
-#include <asn_SEQUENCE_OF.h>
-#include <constr_SEQUENCE_OF.h>
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Forward declarations */
-struct ServedPlmnPerCellListItem;
-
-/* CellResourceReportListItem */
-typedef struct CellResourceReportListItem {
-	NRCGI_t	 nRCGI;
-	long	*dl_TotalofAvailablePRBs;	/* OPTIONAL */
-	long	*ul_TotalofAvailablePRBs;	/* OPTIONAL */
-	struct CellResourceReportListItem__servedPlmnPerCellList {
-		A_SEQUENCE_OF(struct ServedPlmnPerCellListItem) list;
-		
-		/* Context for parsing across buffer boundaries */
-		asn_struct_ctx_t _asn_ctx;
-	} servedPlmnPerCellList;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} CellResourceReportListItem_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_CellResourceReportListItem;
-extern asn_SEQUENCE_specifics_t asn_SPC_CellResourceReportListItem_specs_1;
-extern asn_TYPE_member_t asn_MBR_CellResourceReportListItem_1[4];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _CellResourceReportListItem_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/ControlAction-RANParameter-Item.h b/e2sm/headers/ControlAction-RANParameter-Item.h
new file mode 100755
index 0000000..4c06bda
--- /dev/null
+++ b/e2sm/headers/ControlAction-RANParameter-Item.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_ControlAction_RANParameter_Item_H_
+#define	_ControlAction_RANParameter_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANParameter-ID.h"
+#include "RANParameter-Name.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RANParameter_Definition;
+
+/* ControlAction-RANParameter-Item */
+typedef struct ControlAction_RANParameter_Item {
+	RANParameter_ID_t	 ranParameter_ID;
+	RANParameter_Name_t	 ranParameter_name;
+	/*
+	 * 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;
+} ControlAction_RANParameter_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ControlAction_RANParameter_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_ControlAction_RANParameter_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_ControlAction_RANParameter_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _ControlAction_RANParameter_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/ControlOutcome-RANParameter-Item.h b/e2sm/headers/ControlOutcome-RANParameter-Item.h
new file mode 100755
index 0000000..861361c
--- /dev/null
+++ b/e2sm/headers/ControlOutcome-RANParameter-Item.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_ControlOutcome_RANParameter_Item_H_
+#define	_ControlOutcome_RANParameter_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANParameter-ID.h"
+#include "RANParameter-Name.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RANParameter_Definition;
+
+/* ControlOutcome-RANParameter-Item */
+typedef struct ControlOutcome_RANParameter_Item {
+	RANParameter_ID_t	 ranParameter_ID;
+	RANParameter_Name_t	 ranParameter_name;
+	/*
+	 * 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;
+} ControlOutcome_RANParameter_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ControlOutcome_RANParameter_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_ControlOutcome_RANParameter_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_ControlOutcome_RANParameter_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _ControlOutcome_RANParameter_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/CoreCPID.h b/e2sm/headers/CoreCPID.h
new file mode 100755
index 0000000..7b6340a
--- /dev/null
+++ b/e2sm/headers/CoreCPID.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_CoreCPID_H_
+#define	_CoreCPID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum CoreCPID_PR {
+	CoreCPID_PR_NOTHING,	/* No components present */
+	CoreCPID_PR_fiveGC,
+	CoreCPID_PR_ePC
+	/* Extensions may appear below */
+	
+} CoreCPID_PR;
+
+/* Forward declarations */
+struct GUAMI;
+struct GUMMEI;
+
+/* CoreCPID */
+typedef struct CoreCPID {
+	CoreCPID_PR present;
+	union CoreCPID_u {
+		struct GUAMI	*fiveGC;
+		struct GUMMEI	*ePC;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} CoreCPID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_CoreCPID;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _CoreCPID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/Criticality.h b/e2sm/headers/Criticality.h
deleted file mode 100644
index 9e817d4..0000000
--- a/e2sm/headers/Criticality.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_Criticality_H_
-#define	_Criticality_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <NativeEnumerated.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Dependencies */
-typedef enum Criticality {
-	Criticality_reject	= 0,
-	Criticality_ignore	= 1,
-	Criticality_notify	= 2
-} e_Criticality;
-
-/* Criticality */
-typedef long	 Criticality_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_Criticality;
-asn_struct_free_f Criticality_free;
-asn_struct_print_f Criticality_print;
-asn_constr_check_f Criticality_constraint;
-ber_type_decoder_f Criticality_decode_ber;
-der_type_encoder_f Criticality_encode_der;
-xer_type_decoder_f Criticality_decode_xer;
-xer_type_encoder_f Criticality_encode_xer;
-oer_type_decoder_f Criticality_decode_oer;
-oer_type_encoder_f Criticality_encode_oer;
-per_type_decoder_f Criticality_decode_uper;
-per_type_encoder_f Criticality_encode_uper;
-per_type_decoder_f Criticality_decode_aper;
-per_type_encoder_f Criticality_encode_aper;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _Criticality_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/E-UTRA-ARFCN.h b/e2sm/headers/E-UTRA-ARFCN.h
new file mode 100755
index 0000000..1ecf02a
--- /dev/null
+++ b/e2sm/headers/E-UTRA-ARFCN.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E_UTRA_ARFCN_H_
+#define	_E_UTRA_ARFCN_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E-UTRA-ARFCN */
+typedef long	 E_UTRA_ARFCN_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_E_UTRA_ARFCN_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_E_UTRA_ARFCN;
+asn_struct_free_f E_UTRA_ARFCN_free;
+asn_struct_print_f E_UTRA_ARFCN_print;
+asn_constr_check_f E_UTRA_ARFCN_constraint;
+ber_type_decoder_f E_UTRA_ARFCN_decode_ber;
+der_type_encoder_f E_UTRA_ARFCN_encode_der;
+xer_type_decoder_f E_UTRA_ARFCN_decode_xer;
+xer_type_encoder_f E_UTRA_ARFCN_encode_xer;
+oer_type_decoder_f E_UTRA_ARFCN_decode_oer;
+oer_type_encoder_f E_UTRA_ARFCN_encode_oer;
+per_type_decoder_f E_UTRA_ARFCN_decode_uper;
+per_type_encoder_f E_UTRA_ARFCN_encode_uper;
+per_type_decoder_f E_UTRA_ARFCN_decode_aper;
+per_type_encoder_f E_UTRA_ARFCN_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E_UTRA_ARFCN_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E-UTRA-PCI.h b/e2sm/headers/E-UTRA-PCI.h
new file mode 100755
index 0000000..c49b263
--- /dev/null
+++ b/e2sm/headers/E-UTRA-PCI.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E_UTRA_PCI_H_
+#define	_E_UTRA_PCI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E-UTRA-PCI */
+typedef long	 E_UTRA_PCI_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_E_UTRA_PCI_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_E_UTRA_PCI;
+asn_struct_free_f E_UTRA_PCI_free;
+asn_struct_print_f E_UTRA_PCI_print;
+asn_constr_check_f E_UTRA_PCI_constraint;
+ber_type_decoder_f E_UTRA_PCI_decode_ber;
+der_type_encoder_f E_UTRA_PCI_encode_der;
+xer_type_decoder_f E_UTRA_PCI_decode_xer;
+xer_type_encoder_f E_UTRA_PCI_encode_xer;
+oer_type_decoder_f E_UTRA_PCI_decode_oer;
+oer_type_encoder_f E_UTRA_PCI_encode_oer;
+per_type_decoder_f E_UTRA_PCI_decode_uper;
+per_type_encoder_f E_UTRA_PCI_encode_uper;
+per_type_decoder_f E_UTRA_PCI_decode_aper;
+per_type_encoder_f E_UTRA_PCI_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E_UTRA_PCI_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E-UTRA-TAC.h b/e2sm/headers/E-UTRA-TAC.h
new file mode 100755
index 0000000..2544b77
--- /dev/null
+++ b/e2sm/headers/E-UTRA-TAC.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E_UTRA_TAC_H_
+#define	_E_UTRA_TAC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E-UTRA-TAC */
+typedef OCTET_STRING_t	 E_UTRA_TAC_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_E_UTRA_TAC_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_E_UTRA_TAC;
+asn_struct_free_f E_UTRA_TAC_free;
+asn_struct_print_f E_UTRA_TAC_print;
+asn_constr_check_f E_UTRA_TAC_constraint;
+ber_type_decoder_f E_UTRA_TAC_decode_ber;
+der_type_encoder_f E_UTRA_TAC_encode_der;
+xer_type_decoder_f E_UTRA_TAC_decode_xer;
+xer_type_encoder_f E_UTRA_TAC_encode_xer;
+oer_type_decoder_f E_UTRA_TAC_decode_oer;
+oer_type_encoder_f E_UTRA_TAC_encode_oer;
+per_type_decoder_f E_UTRA_TAC_decode_uper;
+per_type_encoder_f E_UTRA_TAC_encode_uper;
+per_type_decoder_f E_UTRA_TAC_decode_aper;
+per_type_encoder_f E_UTRA_TAC_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E_UTRA_TAC_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-KPM-ActionDefinition-Format1.h b/e2sm/headers/E2SM-KPM-ActionDefinition-Format1.h
deleted file mode 100644
index 4a0e06a..0000000
--- a/e2sm/headers/E2SM-KPM-ActionDefinition-Format1.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_E2SM_KPM_ActionDefinition_Format1_H_
-#define	_E2SM_KPM_ActionDefinition_Format1_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "CellObjectID.h"
-#include "MeasurementInfoList.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* E2SM-KPM-ActionDefinition-Format1 */
-typedef struct E2SM_KPM_ActionDefinition_Format1 {
-	CellObjectID_t	 cellObjID;
-	MeasurementInfoList_t	 measInfoList;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} E2SM_KPM_ActionDefinition_Format1_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_ActionDefinition_Format1;
-extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_ActionDefinition_Format1_specs_1;
-extern asn_TYPE_member_t asn_MBR_E2SM_KPM_ActionDefinition_Format1_1[2];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _E2SM_KPM_ActionDefinition_Format1_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-KPM-ActionDefinition.h b/e2sm/headers/E2SM-KPM-ActionDefinition.h
deleted file mode 100644
index f5bf906..0000000
--- a/e2sm/headers/E2SM-KPM-ActionDefinition.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_E2SM_KPM_ActionDefinition_H_
-#define	_E2SM_KPM_ActionDefinition_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "RIC-Style-Type.h"
-#include <constr_CHOICE.h>
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Dependencies */
-typedef enum E2SM_KPM_ActionDefinition__actionDefinition_formats_PR {
-	E2SM_KPM_ActionDefinition__actionDefinition_formats_PR_NOTHING,	/* No components present */
-	E2SM_KPM_ActionDefinition__actionDefinition_formats_PR_actionDefinition_Format1
-	/* Extensions may appear below */
-	
-} E2SM_KPM_ActionDefinition__actionDefinition_formats_PR;
-
-/* Forward declarations */
-struct E2SM_KPM_ActionDefinition_Format1;
-
-/* E2SM-KPM-ActionDefinition */
-typedef struct E2SM_KPM_ActionDefinition {
-	RIC_Style_Type_t	 ric_ReportStyle_Type;
-	struct E2SM_KPM_ActionDefinition__actionDefinition_formats {
-		E2SM_KPM_ActionDefinition__actionDefinition_formats_PR present;
-		union E2SM_KPM_ActionDefinition__actionDefinition_formats_u {
-			struct E2SM_KPM_ActionDefinition_Format1	*actionDefinition_Format1;
-			/*
-			 * This type is extensible,
-			 * possible extensions are below.
-			 */
-		} choice;
-		
-		/* Context for parsing across buffer boundaries */
-		asn_struct_ctx_t _asn_ctx;
-	} actionDefinition_formats;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} E2SM_KPM_ActionDefinition_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_ActionDefinition;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _E2SM_KPM_ActionDefinition_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-KPM-EventTriggerDefinition-Format1.h b/e2sm/headers/E2SM-KPM-EventTriggerDefinition-Format1.h
deleted file mode 100644
index 6fae26e..0000000
--- a/e2sm/headers/E2SM-KPM-EventTriggerDefinition-Format1.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_E2SM_KPM_EventTriggerDefinition_Format1_H_
-#define	_E2SM_KPM_EventTriggerDefinition_Format1_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 Trigger_ConditionIE_Item;
-
-/* E2SM-KPM-EventTriggerDefinition-Format1 */
-typedef struct E2SM_KPM_EventTriggerDefinition_Format1 {
-	struct E2SM_KPM_EventTriggerDefinition_Format1__policyTest_List {
-		A_SEQUENCE_OF(struct Trigger_ConditionIE_Item) list;
-		
-		/* Context for parsing across buffer boundaries */
-		asn_struct_ctx_t _asn_ctx;
-	} *policyTest_List;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} E2SM_KPM_EventTriggerDefinition_Format1_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1;
-extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_EventTriggerDefinition_Format1_specs_1;
-extern asn_TYPE_member_t asn_MBR_E2SM_KPM_EventTriggerDefinition_Format1_1[1];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _E2SM_KPM_EventTriggerDefinition_Format1_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-KPM-EventTriggerDefinition.h b/e2sm/headers/E2SM-KPM-EventTriggerDefinition.h
deleted file mode 100644
index 2db9552..0000000
--- a/e2sm/headers/E2SM-KPM-EventTriggerDefinition.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_E2SM_KPM_EventTriggerDefinition_H_
-#define	_E2SM_KPM_EventTriggerDefinition_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <constr_CHOICE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Dependencies */
-typedef enum E2SM_KPM_EventTriggerDefinition_PR {
-	E2SM_KPM_EventTriggerDefinition_PR_NOTHING,	/* No components present */
-	E2SM_KPM_EventTriggerDefinition_PR_eventDefinition_Format1
-	/* Extensions may appear below */
-	
-} E2SM_KPM_EventTriggerDefinition_PR;
-
-/* Forward declarations */
-struct E2SM_KPM_EventTriggerDefinition_Format1;
-
-/* E2SM-KPM-EventTriggerDefinition */
-typedef struct E2SM_KPM_EventTriggerDefinition {
-	E2SM_KPM_EventTriggerDefinition_PR present;
-	union E2SM_KPM_EventTriggerDefinition_u {
-		struct E2SM_KPM_EventTriggerDefinition_Format1	*eventDefinition_Format1;
-		/*
-		 * This type is extensible,
-		 * possible extensions are below.
-		 */
-	} choice;
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} E2SM_KPM_EventTriggerDefinition_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_EventTriggerDefinition;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _E2SM_KPM_EventTriggerDefinition_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-KPM-IndicationHeader-Format1.h b/e2sm/headers/E2SM-KPM-IndicationHeader-Format1.h
deleted file mode 100644
index 677d458..0000000
--- a/e2sm/headers/E2SM-KPM-IndicationHeader-Format1.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_E2SM_KPM_IndicationHeader_Format1_H_
-#define	_E2SM_KPM_IndicationHeader_Format1_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "TimeStamp.h"
-#include "GlobalE2node-ID.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* E2SM-KPM-IndicationHeader-Format1 */
-typedef struct E2SM_KPM_IndicationHeader_Format1 {
-	TimeStamp_t	 collectionStartTime;
-	GlobalE2node_ID_t	 id_GlobalE2node_ID;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} E2SM_KPM_IndicationHeader_Format1_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationHeader_Format1;
-extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationHeader_Format1_specs_1;
-extern asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationHeader_Format1_1[2];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _E2SM_KPM_IndicationHeader_Format1_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-KPM-IndicationHeader.h b/e2sm/headers/E2SM-KPM-IndicationHeader.h
deleted file mode 100644
index 9c6670c..0000000
--- a/e2sm/headers/E2SM-KPM-IndicationHeader.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_E2SM_KPM_IndicationHeader_H_
-#define	_E2SM_KPM_IndicationHeader_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <constr_CHOICE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Dependencies */
-typedef enum E2SM_KPM_IndicationHeader_PR {
-	E2SM_KPM_IndicationHeader_PR_NOTHING,	/* No components present */
-	E2SM_KPM_IndicationHeader_PR_indicationHeader_Format1
-	/* Extensions may appear below */
-	
-} E2SM_KPM_IndicationHeader_PR;
-
-/* Forward declarations */
-struct E2SM_KPM_IndicationHeader_Format1;
-
-/* E2SM-KPM-IndicationHeader */
-typedef struct E2SM_KPM_IndicationHeader {
-	E2SM_KPM_IndicationHeader_PR present;
-	union E2SM_KPM_IndicationHeader_u {
-		struct E2SM_KPM_IndicationHeader_Format1	*indicationHeader_Format1;
-		/*
-		 * This type is extensible,
-		 * possible extensions are below.
-		 */
-	} choice;
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} E2SM_KPM_IndicationHeader_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationHeader;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _E2SM_KPM_IndicationHeader_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-KPM-IndicationMessage-Format1.h b/e2sm/headers/E2SM-KPM-IndicationMessage-Format1.h
deleted file mode 100644
index ad255ab..0000000
--- a/e2sm/headers/E2SM-KPM-IndicationMessage-Format1.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_E2SM_KPM_IndicationMessage_Format1_H_
-#define	_E2SM_KPM_IndicationMessage_Format1_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "CellObjectID.h"
-#include <asn_SEQUENCE_OF.h>
-#include <constr_SEQUENCE_OF.h>
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Forward declarations */
-struct PM_Containers_Item;
-struct PM_Info_Item;
-struct PerUE_PM_Item;
-
-/* E2SM-KPM-IndicationMessage-Format1 */
-typedef struct E2SM_KPM_IndicationMessage_Format1 {
-	struct E2SM_KPM_IndicationMessage_Format1__pm_Containers {
-		A_SEQUENCE_OF(struct PM_Containers_Item) list;
-		
-		/* Context for parsing across buffer boundaries */
-		asn_struct_ctx_t _asn_ctx;
-	} pm_Containers;
-	CellObjectID_t	 cellObjectID;
-	struct E2SM_KPM_IndicationMessage_Format1__list_of_PM_Information {
-		A_SEQUENCE_OF(struct PM_Info_Item) list;
-		
-		/* Context for parsing across buffer boundaries */
-		asn_struct_ctx_t _asn_ctx;
-	} *list_of_PM_Information;
-	struct E2SM_KPM_IndicationMessage_Format1__list_of_matched_UEs {
-		A_SEQUENCE_OF(struct PerUE_PM_Item) list;
-		
-		/* Context for parsing across buffer boundaries */
-		asn_struct_ctx_t _asn_ctx;
-	} *list_of_matched_UEs;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} E2SM_KPM_IndicationMessage_Format1_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationMessage_Format1;
-extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationMessage_Format1_specs_1;
-extern asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationMessage_Format1_1[4];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _E2SM_KPM_IndicationMessage_Format1_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-KPM-IndicationMessage.h b/e2sm/headers/E2SM-KPM-IndicationMessage.h
deleted file mode 100644
index 30bd902..0000000
--- a/e2sm/headers/E2SM-KPM-IndicationMessage.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_E2SM_KPM_IndicationMessage_H_
-#define	_E2SM_KPM_IndicationMessage_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <constr_CHOICE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Dependencies */
-typedef enum E2SM_KPM_IndicationMessage_PR {
-	E2SM_KPM_IndicationMessage_PR_NOTHING,	/* No components present */
-	E2SM_KPM_IndicationMessage_PR_indicationMessage_Format1
-	/* Extensions may appear below */
-	
-} E2SM_KPM_IndicationMessage_PR;
-
-/* Forward declarations */
-struct E2SM_KPM_IndicationMessage_Format1;
-
-/* E2SM-KPM-IndicationMessage */
-typedef struct E2SM_KPM_IndicationMessage {
-	E2SM_KPM_IndicationMessage_PR present;
-	union E2SM_KPM_IndicationMessage_u {
-		struct E2SM_KPM_IndicationMessage_Format1	*indicationMessage_Format1;
-		/*
-		 * This type is extensible,
-		 * possible extensions are below.
-		 */
-	} choice;
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} E2SM_KPM_IndicationMessage_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationMessage;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _E2SM_KPM_IndicationMessage_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-KPM-RANFunctionDefinition.h b/e2sm/headers/E2SM-KPM-RANFunctionDefinition.h
deleted file mode 100644
index 51118f8..0000000
--- a/e2sm/headers/E2SM-KPM-RANFunctionDefinition.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_E2SM_KPM_RANFunctionDefinition_H_
-#define	_E2SM_KPM_RANFunctionDefinition_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "RANfunction-Name.h"
-#include <asn_SEQUENCE_OF.h>
-#include <constr_SEQUENCE_OF.h>
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Forward declarations */
-struct RIC_EventTriggerStyle_Item;
-struct RIC_ReportStyle_Item;
-
-/* E2SM-KPM-RANFunctionDefinition */
-typedef struct E2SM_KPM_RANFunctionDefinition {
-	RANfunction_Name_t	 ranFunction_Name;
-	struct E2SM_KPM_RANFunctionDefinition__ric_EventTriggerStyle_List {
-		A_SEQUENCE_OF(struct RIC_EventTriggerStyle_Item) list;
-		
-		/* Context for parsing across buffer boundaries */
-		asn_struct_ctx_t _asn_ctx;
-	} *ric_EventTriggerStyle_List;
-	struct E2SM_KPM_RANFunctionDefinition__ric_ReportStyle_List {
-		A_SEQUENCE_OF(struct RIC_ReportStyle_Item) list;
-		
-		/* Context for parsing across buffer boundaries */
-		asn_struct_ctx_t _asn_ctx;
-	} *ric_ReportStyle_List;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} E2SM_KPM_RANFunctionDefinition_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_RANFunctionDefinition;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _E2SM_KPM_RANFunctionDefinition_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-ActionDefinition-Format1-Item.h b/e2sm/headers/E2SM-RC-ActionDefinition-Format1-Item.h
new file mode 100755
index 0000000..d648c97
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-ActionDefinition-Format1-Item.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_ActionDefinition_Format1_Item_H_
+#define	_E2SM_RC_ActionDefinition_Format1_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANParameter-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2SM-RC-ActionDefinition-Format1-Item */
+typedef struct E2SM_RC_ActionDefinition_Format1_Item {
+	RANParameter_ID_t	 ranParameter_ID;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_ActionDefinition_Format1_Item_t;
+
+/* 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];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_ActionDefinition_Format1_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-ActionDefinition-Format1.h b/e2sm/headers/E2SM-RC-ActionDefinition-Format1.h
new file mode 100755
index 0000000..a74bdfb
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-ActionDefinition-Format1.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_ActionDefinition_Format1_H_
+#define	_E2SM_RC_ActionDefinition_Format1_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_ActionDefinition_Format1_Item;
+
+/* E2SM-RC-ActionDefinition-Format1 */
+typedef struct E2SM_RC_ActionDefinition_Format1 {
+	struct E2SM_RC_ActionDefinition_Format1__ranP_ToBeReported_List {
+		A_SEQUENCE_OF(struct E2SM_RC_ActionDefinition_Format1_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ranP_ToBeReported_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_ActionDefinition_Format1_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ActionDefinition_Format1;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ActionDefinition_Format1_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_ActionDefinition_Format1_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_ActionDefinition_Format1_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-ActionDefinition-Format2-Item.h b/e2sm/headers/E2SM-RC-ActionDefinition-Format2-Item.h
new file mode 100755
index 0000000..e76d1f5
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-ActionDefinition-Format2-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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_ActionDefinition_Format2_Item_H_
+#define	_E2SM_RC_ActionDefinition_Format2_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RIC-PolicyAction.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RANParameter_Testing;
+
+/* E2SM-RC-ActionDefinition-Format2-Item */
+typedef struct E2SM_RC_ActionDefinition_Format2_Item {
+	RIC_PolicyAction_t	 ric_PolicyAction;
+	struct RANParameter_Testing	*ric_PolicyConditionDefinition;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_ActionDefinition_Format2_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ActionDefinition_Format2_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ActionDefinition_Format2_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_ActionDefinition_Format2_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_ActionDefinition_Format2_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-ActionDefinition-Format2.h b/e2sm/headers/E2SM-RC-ActionDefinition-Format2.h
new file mode 100755
index 0000000..22834d9
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-ActionDefinition-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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_ActionDefinition_Format2_H_
+#define	_E2SM_RC_ActionDefinition_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_ActionDefinition_Format2_Item;
+
+/* E2SM-RC-ActionDefinition-Format2 */
+typedef struct E2SM_RC_ActionDefinition_Format2 {
+	struct E2SM_RC_ActionDefinition_Format2__ric_PolicyConditions_List {
+		A_SEQUENCE_OF(struct E2SM_RC_ActionDefinition_Format2_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ric_PolicyConditions_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_ActionDefinition_Format2_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ActionDefinition_Format2;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ActionDefinition_Format2_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_ActionDefinition_Format2_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_ActionDefinition_Format2_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-ActionDefinition-Format3-Item.h b/e2sm/headers/E2SM-RC-ActionDefinition-Format3-Item.h
new file mode 100755
index 0000000..908f00c
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-ActionDefinition-Format3-Item.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_ActionDefinition_Format3_Item_H_
+#define	_E2SM_RC_ActionDefinition_Format3_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANParameter-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2SM-RC-ActionDefinition-Format3-Item */
+typedef struct E2SM_RC_ActionDefinition_Format3_Item {
+	RANParameter_ID_t	 ranParameter_ID;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_ActionDefinition_Format3_Item_t;
+
+/* 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];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_ActionDefinition_Format3_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-ActionDefinition-Format3.h b/e2sm/headers/E2SM-RC-ActionDefinition-Format3.h
new file mode 100755
index 0000000..a5a5643
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-ActionDefinition-Format3.h
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_ActionDefinition_Format3_H_
+#define	_E2SM_RC_ActionDefinition_Format3_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 UEID;
+struct E2SM_RC_ActionDefinition_Format3_Item;
+
+/* E2SM-RC-ActionDefinition-Format3 */
+typedef struct E2SM_RC_ActionDefinition_Format3 {
+	RIC_InsertIndication_ID_t	 ric_InsertIndication_ID;
+	struct E2SM_RC_ActionDefinition_Format3__ranP_InsertIndication_List {
+		A_SEQUENCE_OF(struct E2SM_RC_ActionDefinition_Format3_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ranP_InsertIndication_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_Format3_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ActionDefinition_Format3;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ActionDefinition_Format3_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_ActionDefinition_Format3_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_ActionDefinition_Format3_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-ActionDefinition.h b/e2sm/headers/E2SM-RC-ActionDefinition.h
new file mode 100755
index 0000000..801457d
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-ActionDefinition.h
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_ActionDefinition_H_
+#define	_E2SM_RC_ActionDefinition_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RIC-Style-Type.h"
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E2SM_RC_ActionDefinition__ric_actionDefinition_formats_PR {
+	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
+	/* Extensions may appear below */
+	
+} E2SM_RC_ActionDefinition__ric_actionDefinition_formats_PR;
+
+/* Forward declarations */
+struct E2SM_RC_ActionDefinition_Format1;
+struct E2SM_RC_ActionDefinition_Format2;
+struct E2SM_RC_ActionDefinition_Format3;
+
+/* E2SM-RC-ActionDefinition */
+typedef struct E2SM_RC_ActionDefinition {
+	RIC_Style_Type_t	 ric_Style_Type;
+	struct E2SM_RC_ActionDefinition__ric_actionDefinition_formats {
+		E2SM_RC_ActionDefinition__ric_actionDefinition_formats_PR present;
+		union E2SM_RC_ActionDefinition__ric_actionDefinition_formats_u {
+			struct E2SM_RC_ActionDefinition_Format1	*actionDefinition_Format1;
+			struct E2SM_RC_ActionDefinition_Format2	*actionDefinition_Format2;
+			struct E2SM_RC_ActionDefinition_Format3	*actionDefinition_Format3;
+			/*
+			 * This type is extensible,
+			 * possible extensions are below.
+			 */
+		} choice;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ric_actionDefinition_formats;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_ActionDefinition_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ActionDefinition;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_ActionDefinition_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-CallProcessID-Format1.h b/e2sm/headers/E2SM-RC-CallProcessID-Format1.h
new file mode 100755
index 0000000..dda1821
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-CallProcessID-Format1.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_CallProcessID_Format1_H_
+#define	_E2SM_RC_CallProcessID_Format1_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RAN-CallProcess-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2SM-RC-CallProcessID-Format1 */
+typedef struct E2SM_RC_CallProcessID_Format1 {
+	RAN_CallProcess_ID_t	 ric_callProcess_ID;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_CallProcessID_Format1_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_CallProcessID_Format1;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_CallProcessID_Format1_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_CallProcessID_Format1_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_CallProcessID_Format1_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-CallProcessID.h b/e2sm/headers/E2SM-RC-CallProcessID.h
new file mode 100755
index 0000000..f08137c
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-CallProcessID.h
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_CallProcessID_H_
+#define	_E2SM_RC_CallProcessID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E2SM_RC_CallProcessID__ric_callProcessID_formats_PR {
+	E2SM_RC_CallProcessID__ric_callProcessID_formats_PR_NOTHING,	/* No components present */
+	E2SM_RC_CallProcessID__ric_callProcessID_formats_PR_callProcessID_Format1
+	/* Extensions may appear below */
+	
+} E2SM_RC_CallProcessID__ric_callProcessID_formats_PR;
+
+/* Forward declarations */
+struct E2SM_RC_CallProcessID_Format1;
+
+/* E2SM-RC-CallProcessID */
+typedef struct E2SM_RC_CallProcessID {
+	struct E2SM_RC_CallProcessID__ric_callProcessID_formats {
+		E2SM_RC_CallProcessID__ric_callProcessID_formats_PR present;
+		union E2SM_RC_CallProcessID__ric_callProcessID_formats_u {
+			struct E2SM_RC_CallProcessID_Format1	*callProcessID_Format1;
+			/*
+			 * This type is extensible,
+			 * possible extensions are below.
+			 */
+		} choice;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ric_callProcessID_formats;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_CallProcessID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_CallProcessID;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_CallProcessID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-ControlHeader-Format1.h b/e2sm/headers/E2SM-RC-ControlHeader-Format1.h
old mode 100644
new mode 100755
index 641739c..b847d4f
--- a/e2sm/headers/E2SM-RC-ControlHeader-Format1.h
+++ b/e2sm/headers/E2SM-RC-ControlHeader-Format1.h
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
@@ -12,20 +12,31 @@
 #include <asn_application.h>
 
 /* Including external dependencies */
-#include "UE-Identity.h"
+#include "UEID.h"
 #include "RIC-Style-Type.h"
 #include "RIC-ControlAction-ID.h"
+#include <NativeEnumerated.h>
 #include <constr_SEQUENCE.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+/* Dependencies */
+typedef enum E2SM_RC_ControlHeader_Format1__ric_ControlDecision {
+	E2SM_RC_ControlHeader_Format1__ric_ControlDecision_accept	= 0,
+	E2SM_RC_ControlHeader_Format1__ric_ControlDecision_reject	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_E2SM_RC_ControlHeader_Format1__ric_ControlDecision;
+
 /* E2SM-RC-ControlHeader-Format1 */
 typedef struct E2SM_RC_ControlHeader_Format1 {
-	UE_Identity_t	 ueId;
-	RIC_Style_Type_t	 ric_ControlStyle_Type;
+	UEID_t	 ueID;
+	RIC_Style_Type_t	 ric_Style_Type;
 	RIC_ControlAction_ID_t	 ric_ControlAction_ID;
+	long	*ric_ControlDecision;	/* OPTIONAL */
 	/*
 	 * This type is extensible,
 	 * possible extensions are below.
@@ -36,9 +47,10 @@
 } E2SM_RC_ControlHeader_Format1_t;
 
 /* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_ric_ControlDecision_5;	// (Use -fall-defs-global to expose) */
 extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlHeader_Format1;
 extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlHeader_Format1_specs_1;
-extern asn_TYPE_member_t asn_MBR_E2SM_RC_ControlHeader_Format1_1[3];
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_ControlHeader_Format1_1[4];
 
 #ifdef __cplusplus
 }
diff --git a/e2sm/headers/E2SM-RC-ControlHeader.h b/e2sm/headers/E2SM-RC-ControlHeader.h
old mode 100644
new mode 100755
index aead9e3..a9b57df
--- a/e2sm/headers/E2SM-RC-ControlHeader.h
+++ b/e2sm/headers/E2SM-RC-ControlHeader.h
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
@@ -13,32 +13,42 @@
 
 /* Including external dependencies */
 #include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 /* Dependencies */
-typedef enum E2SM_RC_ControlHeader_PR {
-	E2SM_RC_ControlHeader_PR_NOTHING,	/* No components present */
-	E2SM_RC_ControlHeader_PR_controlHeader_Format1
+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
 	/* Extensions may appear below */
 	
-} E2SM_RC_ControlHeader_PR;
+} E2SM_RC_ControlHeader__ric_controlHeader_formats_PR;
 
 /* Forward declarations */
 struct E2SM_RC_ControlHeader_Format1;
 
 /* E2SM-RC-ControlHeader */
 typedef struct E2SM_RC_ControlHeader {
-	E2SM_RC_ControlHeader_PR present;
-	union E2SM_RC_ControlHeader_u {
-		struct E2SM_RC_ControlHeader_Format1	*controlHeader_Format1;
-		/*
-		 * This type is extensible,
-		 * possible extensions are below.
-		 */
-	} choice;
+	struct E2SM_RC_ControlHeader__ric_controlHeader_formats {
+		E2SM_RC_ControlHeader__ric_controlHeader_formats_PR present;
+		union E2SM_RC_ControlHeader__ric_controlHeader_formats_u {
+			struct E2SM_RC_ControlHeader_Format1	*controlHeader_Format1;
+			/*
+			 * This type is extensible,
+			 * possible extensions are below.
+			 */
+		} choice;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ric_controlHeader_formats;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
 	
 	/* Context for parsing across buffer boundaries */
 	asn_struct_ctx_t _asn_ctx;
diff --git a/e2sm/headers/E2SM-RC-ControlMessage-Format1-Item.h b/e2sm/headers/E2SM-RC-ControlMessage-Format1-Item.h
new file mode 100755
index 0000000..19518d1
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-ControlMessage-Format1-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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_ControlMessage_Format1_Item_H_
+#define	_E2SM_RC_ControlMessage_Format1_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-ControlMessage-Format1-Item */
+typedef struct E2SM_RC_ControlMessage_Format1_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_ControlMessage_Format1_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlMessage_Format1_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlMessage_Format1_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_ControlMessage_Format1_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_ControlMessage_Format1_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-ControlMessage-Format1.h b/e2sm/headers/E2SM-RC-ControlMessage-Format1.h
old mode 100644
new mode 100755
index ba58297..35802d6
--- a/e2sm/headers/E2SM-RC-ControlMessage-Format1.h
+++ b/e2sm/headers/E2SM-RC-ControlMessage-Format1.h
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
@@ -21,16 +21,16 @@
 #endif
 
 /* Forward declarations */
-struct RANParameter_Item;
+struct E2SM_RC_ControlMessage_Format1_Item;
 
 /* E2SM-RC-ControlMessage-Format1 */
 typedef struct E2SM_RC_ControlMessage_Format1 {
-	struct E2SM_RC_ControlMessage_Format1__ranParameters_List {
-		A_SEQUENCE_OF(struct RANParameter_Item) list;
+	struct E2SM_RC_ControlMessage_Format1__ranP_List {
+		A_SEQUENCE_OF(struct E2SM_RC_ControlMessage_Format1_Item) list;
 		
 		/* Context for parsing across buffer boundaries */
 		asn_struct_ctx_t _asn_ctx;
-	} *ranParameters_List;
+	} ranP_List;
 	/*
 	 * This type is extensible,
 	 * possible extensions are below.
diff --git a/e2sm/headers/E2SM-RC-ControlMessage.h b/e2sm/headers/E2SM-RC-ControlMessage.h
old mode 100644
new mode 100755
index 9e3d76a..12e93b8
--- a/e2sm/headers/E2SM-RC-ControlMessage.h
+++ b/e2sm/headers/E2SM-RC-ControlMessage.h
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
@@ -13,32 +13,42 @@
 
 /* Including external dependencies */
 #include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 /* Dependencies */
-typedef enum E2SM_RC_ControlMessage_PR {
-	E2SM_RC_ControlMessage_PR_NOTHING,	/* No components present */
-	E2SM_RC_ControlMessage_PR_controlMessage_Format1
+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
 	/* Extensions may appear below */
 	
-} E2SM_RC_ControlMessage_PR;
+} E2SM_RC_ControlMessage__ric_controlMessage_formats_PR;
 
 /* Forward declarations */
 struct E2SM_RC_ControlMessage_Format1;
 
 /* E2SM-RC-ControlMessage */
 typedef struct E2SM_RC_ControlMessage {
-	E2SM_RC_ControlMessage_PR present;
-	union E2SM_RC_ControlMessage_u {
-		struct E2SM_RC_ControlMessage_Format1	*controlMessage_Format1;
-		/*
-		 * This type is extensible,
-		 * possible extensions are below.
-		 */
-	} choice;
+	struct E2SM_RC_ControlMessage__ric_controlMessage_formats {
+		E2SM_RC_ControlMessage__ric_controlMessage_formats_PR present;
+		union E2SM_RC_ControlMessage__ric_controlMessage_formats_u {
+			struct E2SM_RC_ControlMessage_Format1	*controlMessage_Format1;
+			/*
+			 * This type is extensible,
+			 * possible extensions are below.
+			 */
+		} choice;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ric_controlMessage_formats;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
 	
 	/* Context for parsing across buffer boundaries */
 	asn_struct_ctx_t _asn_ctx;
diff --git a/e2sm/headers/E2SM-RC-ControlOutcome-Format1-Item.h b/e2sm/headers/E2SM-RC-ControlOutcome-Format1-Item.h
new file mode 100755
index 0000000..b290d8a
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-ControlOutcome-Format1-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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_ControlOutcome_Format1_Item_H_
+#define	_E2SM_RC_ControlOutcome_Format1_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-Format1-Item */
+typedef struct E2SM_RC_ControlOutcome_Format1_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_Format1_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlOutcome_Format1_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlOutcome_Format1_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_ControlOutcome_Format1_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_ControlOutcome_Format1_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-ControlOutcome-Format1.h b/e2sm/headers/E2SM-RC-ControlOutcome-Format1.h
new file mode 100755
index 0000000..cb087a3
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-ControlOutcome-Format1.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_ControlOutcome_Format1_H_
+#define	_E2SM_RC_ControlOutcome_Format1_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_Format1_Item;
+
+/* E2SM-RC-ControlOutcome-Format1 */
+typedef struct E2SM_RC_ControlOutcome_Format1 {
+	struct E2SM_RC_ControlOutcome_Format1__ranP_List {
+		A_SEQUENCE_OF(struct E2SM_RC_ControlOutcome_Format1_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_Format1_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlOutcome_Format1;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlOutcome_Format1_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_ControlOutcome_Format1_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_ControlOutcome_Format1_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-ControlOutcome.h b/e2sm/headers/E2SM-RC-ControlOutcome.h
new file mode 100755
index 0000000..6193e02
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-ControlOutcome.h
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_ControlOutcome_H_
+#define	_E2SM_RC_ControlOutcome_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* 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
+	/* Extensions may appear below */
+	
+} E2SM_RC_ControlOutcome__ric_controlOutcome_formats_PR;
+
+/* Forward declarations */
+struct E2SM_RC_ControlOutcome_Format1;
+
+/* E2SM-RC-ControlOutcome */
+typedef struct E2SM_RC_ControlOutcome {
+	struct E2SM_RC_ControlOutcome__ric_controlOutcome_formats {
+		E2SM_RC_ControlOutcome__ric_controlOutcome_formats_PR present;
+		union E2SM_RC_ControlOutcome__ric_controlOutcome_formats_u {
+			struct E2SM_RC_ControlOutcome_Format1	*controlOutcome_Format1;
+			/*
+			 * This type is extensible,
+			 * possible extensions are below.
+			 */
+		} choice;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ric_controlOutcome_formats;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_ControlOutcome_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlOutcome;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_ControlOutcome_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-EventTrigger-Format1-Item.h b/e2sm/headers/E2SM-RC-EventTrigger-Format1-Item.h
new file mode 100755
index 0000000..a4e694e
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-EventTrigger-Format1-Item.h
@@ -0,0 +1,66 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_EventTrigger_Format1_Item_H_
+#define	_E2SM_RC_EventTrigger_Format1_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RIC-EventTriggerCondition-ID.h"
+#include "MessageType-Choice.h"
+#include <NativeEnumerated.h>
+#include "LogicalOR.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E2SM_RC_EventTrigger_Format1_Item__messageDirection {
+	E2SM_RC_EventTrigger_Format1_Item__messageDirection_incoming	= 0,
+	E2SM_RC_EventTrigger_Format1_Item__messageDirection_outgoing	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_E2SM_RC_EventTrigger_Format1_Item__messageDirection;
+
+/* Forward declarations */
+struct EventTrigger_UE_Info;
+struct EventTrigger_UEevent_Info;
+
+/* E2SM-RC-EventTrigger-Format1-Item */
+typedef struct E2SM_RC_EventTrigger_Format1_Item {
+	RIC_EventTriggerCondition_ID_t	 ric_eventTriggerCondition_ID;
+	MessageType_Choice_t	 messageType;
+	long	*messageDirection;	/* OPTIONAL */
+	struct EventTrigger_UE_Info	*associatedUEInfo;	/* OPTIONAL */
+	struct EventTrigger_UEevent_Info	*associatedUEEvent;	/* OPTIONAL */
+	LogicalOR_t	*logicalOR;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_EventTrigger_Format1_Item_t;
+
+/* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_messageDirection_4;	// (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_EventTrigger_Format1_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_EventTrigger_Format1_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_EventTrigger_Format1_Item_1[6];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_EventTrigger_Format1_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-EventTrigger-Format1.h b/e2sm/headers/E2SM-RC-EventTrigger-Format1.h
new file mode 100755
index 0000000..447098d
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-EventTrigger-Format1.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_EventTrigger_Format1_H_
+#define	_E2SM_RC_EventTrigger_Format1_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 EventTrigger_UE_Info;
+struct E2SM_RC_EventTrigger_Format1_Item;
+
+/* E2SM-RC-EventTrigger-Format1 */
+typedef struct E2SM_RC_EventTrigger_Format1 {
+	struct E2SM_RC_EventTrigger_Format1__message_List {
+		A_SEQUENCE_OF(struct E2SM_RC_EventTrigger_Format1_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} message_List;
+	struct EventTrigger_UE_Info	*globalAssociatedUEInfo;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_EventTrigger_Format1_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_EventTrigger_Format1;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_EventTrigger_Format1_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_EventTrigger_Format1_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_EventTrigger_Format1_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-EventTrigger-Format2.h b/e2sm/headers/E2SM-RC-EventTrigger-Format2.h
new file mode 100755
index 0000000..b1ff532
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-EventTrigger-Format2.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_EventTrigger_Format2_H_
+#define	_E2SM_RC_EventTrigger_Format2_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RIC-CallProcessType-ID.h"
+#include "RIC-CallProcessBreakpoint-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RANParameter_Testing;
+struct EventTrigger_UE_Info;
+
+/* E2SM-RC-EventTrigger-Format2 */
+typedef struct E2SM_RC_EventTrigger_Format2 {
+	RIC_CallProcessType_ID_t	 ric_callProcessType_ID;
+	RIC_CallProcessBreakpoint_ID_t	 ric_callProcessBreakpoint_ID;
+	struct RANParameter_Testing	*associatedE2NodeInfo;	/* OPTIONAL */
+	struct EventTrigger_UE_Info	*associatedUEInfo;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_EventTrigger_Format2_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_EventTrigger_Format2;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_EventTrigger_Format2_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_EventTrigger_Format2_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_EventTrigger_Format2_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-EventTrigger-Format3-Item.h b/e2sm/headers/E2SM-RC-EventTrigger-Format3-Item.h
new file mode 100755
index 0000000..794cbde
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-EventTrigger-Format3-Item.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_EventTrigger_Format3_Item_H_
+#define	_E2SM_RC_EventTrigger_Format3_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RIC-EventTriggerCondition-ID.h"
+#include <NativeInteger.h>
+#include "LogicalOR.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct EventTrigger_Cell_Info;
+
+/* E2SM-RC-EventTrigger-Format3-Item */
+typedef struct E2SM_RC_EventTrigger_Format3_Item {
+	RIC_EventTriggerCondition_ID_t	 ric_eventTriggerCondition_ID;
+	long	 e2NodeInfoChange_ID;
+	struct EventTrigger_Cell_Info	*associatedCellInfo;	/* OPTIONAL */
+	LogicalOR_t	*logicalOR;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_EventTrigger_Format3_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_EventTrigger_Format3_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_EventTrigger_Format3_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_EventTrigger_Format3_Item_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_EventTrigger_Format3_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-EventTrigger-Format3.h b/e2sm/headers/E2SM-RC-EventTrigger-Format3.h
new file mode 100755
index 0000000..652cf04
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-EventTrigger-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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_EventTrigger_Format3_H_
+#define	_E2SM_RC_EventTrigger_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_EventTrigger_Format3_Item;
+
+/* E2SM-RC-EventTrigger-Format3 */
+typedef struct E2SM_RC_EventTrigger_Format3 {
+	struct E2SM_RC_EventTrigger_Format3__e2NodeInfoChange_List {
+		A_SEQUENCE_OF(struct E2SM_RC_EventTrigger_Format3_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} e2NodeInfoChange_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_EventTrigger_Format3_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_EventTrigger_Format3;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_EventTrigger_Format3_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_EventTrigger_Format3_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_EventTrigger_Format3_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-EventTrigger-Format4-Item.h b/e2sm/headers/E2SM-RC-EventTrigger-Format4-Item.h
new file mode 100755
index 0000000..562e45c
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-EventTrigger-Format4-Item.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_EventTrigger_Format4_Item_H_
+#define	_E2SM_RC_EventTrigger_Format4_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RIC-EventTriggerCondition-ID.h"
+#include "TriggerType-Choice.h"
+#include "LogicalOR.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct EventTrigger_UE_Info;
+
+/* E2SM-RC-EventTrigger-Format4-Item */
+typedef struct E2SM_RC_EventTrigger_Format4_Item {
+	RIC_EventTriggerCondition_ID_t	 ric_eventTriggerCondition_ID;
+	TriggerType_Choice_t	 triggerType;
+	struct EventTrigger_UE_Info	*associatedUEInfo;	/* OPTIONAL */
+	LogicalOR_t	*logicalOR;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_EventTrigger_Format4_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_EventTrigger_Format4_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_EventTrigger_Format4_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_EventTrigger_Format4_Item_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_EventTrigger_Format4_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-EventTrigger-Format4.h b/e2sm/headers/E2SM-RC-EventTrigger-Format4.h
new file mode 100755
index 0000000..9fbdebe
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-EventTrigger-Format4.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_EventTrigger_Format4_H_
+#define	_E2SM_RC_EventTrigger_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 E2SM_RC_EventTrigger_Format4_Item;
+
+/* E2SM-RC-EventTrigger-Format4 */
+typedef struct E2SM_RC_EventTrigger_Format4 {
+	struct E2SM_RC_EventTrigger_Format4__uEInfoChange_List {
+		A_SEQUENCE_OF(struct E2SM_RC_EventTrigger_Format4_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} uEInfoChange_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_EventTrigger_Format4_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_EventTrigger_Format4;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_EventTrigger_Format4_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_EventTrigger_Format4_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_EventTrigger_Format4_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-EventTrigger-Format5.h b/e2sm/headers/E2SM-RC-EventTrigger-Format5.h
new file mode 100755
index 0000000..5e2f640
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-EventTrigger-Format5.h
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_EventTrigger_Format5_H_
+#define	_E2SM_RC_EventTrigger_Format5_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_EventTrigger_Format5__onDemand {
+	E2SM_RC_EventTrigger_Format5__onDemand_true	= 0
+	/*
+	 * Enumeration is extensible
+	 */
+} e_E2SM_RC_EventTrigger_Format5__onDemand;
+
+/* Forward declarations */
+struct EventTrigger_UE_Info;
+struct EventTrigger_Cell_Info;
+
+/* E2SM-RC-EventTrigger-Format5 */
+typedef struct E2SM_RC_EventTrigger_Format5 {
+	long	 onDemand;
+	struct EventTrigger_UE_Info	*associatedUEInfo;	/* OPTIONAL */
+	struct EventTrigger_Cell_Info	*associatedCellInfo;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_EventTrigger_Format5_t;
+
+/* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_onDemand_2;	// (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_EventTrigger_Format5;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_EventTrigger_Format5_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_EventTrigger_Format5_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_EventTrigger_Format5_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-EventTrigger.h b/e2sm/headers/E2SM-RC-EventTrigger.h
new file mode 100755
index 0000000..6e7b392
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-EventTrigger.h
@@ -0,0 +1,77 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_EventTrigger_H_
+#define	_E2SM_RC_EventTrigger_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E2SM_RC_EventTrigger__ric_eventTrigger_formats_PR {
+	E2SM_RC_EventTrigger__ric_eventTrigger_formats_PR_NOTHING,	/* No components present */
+	E2SM_RC_EventTrigger__ric_eventTrigger_formats_PR_eventTrigger_Format1,
+	E2SM_RC_EventTrigger__ric_eventTrigger_formats_PR_eventTrigger_Format2,
+	E2SM_RC_EventTrigger__ric_eventTrigger_formats_PR_eventTrigger_Format3,
+	E2SM_RC_EventTrigger__ric_eventTrigger_formats_PR_eventTrigger_Format4,
+	E2SM_RC_EventTrigger__ric_eventTrigger_formats_PR_eventTrigger_Format5
+	/* Extensions may appear below */
+	
+} E2SM_RC_EventTrigger__ric_eventTrigger_formats_PR;
+
+/* Forward declarations */
+struct E2SM_RC_EventTrigger_Format1;
+struct E2SM_RC_EventTrigger_Format2;
+struct E2SM_RC_EventTrigger_Format3;
+struct E2SM_RC_EventTrigger_Format4;
+struct E2SM_RC_EventTrigger_Format5;
+
+/* E2SM-RC-EventTrigger */
+typedef struct E2SM_RC_EventTrigger {
+	struct E2SM_RC_EventTrigger__ric_eventTrigger_formats {
+		E2SM_RC_EventTrigger__ric_eventTrigger_formats_PR present;
+		union E2SM_RC_EventTrigger__ric_eventTrigger_formats_u {
+			struct E2SM_RC_EventTrigger_Format1	*eventTrigger_Format1;
+			struct E2SM_RC_EventTrigger_Format2	*eventTrigger_Format2;
+			struct E2SM_RC_EventTrigger_Format3	*eventTrigger_Format3;
+			struct E2SM_RC_EventTrigger_Format4	*eventTrigger_Format4;
+			struct E2SM_RC_EventTrigger_Format5	*eventTrigger_Format5;
+			/*
+			 * This type is extensible,
+			 * possible extensions are below.
+			 */
+		} choice;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ric_eventTrigger_formats;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_EventTrigger_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_EventTrigger;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_EventTrigger_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-IndicationHeader-Format1.h b/e2sm/headers/E2SM-RC-IndicationHeader-Format1.h
new file mode 100755
index 0000000..038ecab
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-IndicationHeader-Format1.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_IndicationHeader_Format1_H_
+#define	_E2SM_RC_IndicationHeader_Format1_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RIC-EventTriggerCondition-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2SM-RC-IndicationHeader-Format1 */
+typedef struct E2SM_RC_IndicationHeader_Format1 {
+	RIC_EventTriggerCondition_ID_t	*ric_eventTriggerCondition_ID;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_IndicationHeader_Format1_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_IndicationHeader_Format1;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationHeader_Format1_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationHeader_Format1_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_IndicationHeader_Format1_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-IndicationHeader-Format2.h b/e2sm/headers/E2SM-RC-IndicationHeader-Format2.h
new file mode 100755
index 0000000..3d9b6be
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-IndicationHeader-Format2.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_IndicationHeader_Format2_H_
+#define	_E2SM_RC_IndicationHeader_Format2_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "UEID.h"
+#include "RIC-Style-Type.h"
+#include "RIC-InsertIndication-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2SM-RC-IndicationHeader-Format2 */
+typedef struct E2SM_RC_IndicationHeader_Format2 {
+	UEID_t	 ueID;
+	RIC_Style_Type_t	 ric_InsertStyle_Type;
+	RIC_InsertIndication_ID_t	 ric_InsertIndication_ID;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_IndicationHeader_Format2_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_IndicationHeader_Format2;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationHeader_Format2_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationHeader_Format2_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_IndicationHeader_Format2_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-IndicationHeader.h b/e2sm/headers/E2SM-RC-IndicationHeader.h
new file mode 100755
index 0000000..0260e01
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-IndicationHeader.h
@@ -0,0 +1,68 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_IndicationHeader_H_
+#define	_E2SM_RC_IndicationHeader_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+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
+	/* Extensions may appear below */
+	
+} E2SM_RC_IndicationHeader__ric_indicationHeader_formats_PR;
+
+/* Forward declarations */
+struct E2SM_RC_IndicationHeader_Format1;
+struct E2SM_RC_IndicationHeader_Format2;
+
+/* E2SM-RC-IndicationHeader */
+typedef struct E2SM_RC_IndicationHeader {
+	struct E2SM_RC_IndicationHeader__ric_indicationHeader_formats {
+		E2SM_RC_IndicationHeader__ric_indicationHeader_formats_PR present;
+		union E2SM_RC_IndicationHeader__ric_indicationHeader_formats_u {
+			struct E2SM_RC_IndicationHeader_Format1	*indicationHeader_Format1;
+			struct E2SM_RC_IndicationHeader_Format2	*indicationHeader_Format2;
+			/*
+			 * This type is extensible,
+			 * possible extensions are below.
+			 */
+		} choice;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ric_indicationHeader_formats;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_IndicationHeader_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_IndicationHeader;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_IndicationHeader_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-IndicationMessage-Format1-Item.h b/e2sm/headers/E2SM-RC-IndicationMessage-Format1-Item.h
new file mode 100755
index 0000000..c4fae50
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-IndicationMessage-Format1-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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_IndicationMessage_Format1_Item_H_
+#define	_E2SM_RC_IndicationMessage_Format1_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-Format1-Item */
+typedef struct E2SM_RC_IndicationMessage_Format1_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_Format1_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_IndicationMessage_Format1_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationMessage_Format1_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_Format1_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_IndicationMessage_Format1_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-IndicationMessage-Format1.h b/e2sm/headers/E2SM-RC-IndicationMessage-Format1.h
new file mode 100755
index 0000000..47d52cc
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-IndicationMessage-Format1.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_IndicationMessage_Format1_H_
+#define	_E2SM_RC_IndicationMessage_Format1_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_Format1_Item;
+
+/* E2SM-RC-IndicationMessage-Format1 */
+typedef struct E2SM_RC_IndicationMessage_Format1 {
+	struct E2SM_RC_IndicationMessage_Format1__ranP_Reported_List {
+		A_SEQUENCE_OF(struct E2SM_RC_IndicationMessage_Format1_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ranP_Reported_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_IndicationMessage_Format1_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_IndicationMessage_Format1;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationMessage_Format1_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_Format1_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_IndicationMessage_Format1_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-IndicationMessage-Format2-Item.h b/e2sm/headers/E2SM-RC-IndicationMessage-Format2-Item.h
new file mode 100755
index 0000000..082363b
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-IndicationMessage-Format2-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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_IndicationMessage_Format2_Item_H_
+#define	_E2SM_RC_IndicationMessage_Format2_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "UEID.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_Format2_RANParameter_Item;
+
+/* E2SM-RC-IndicationMessage-Format2-Item */
+typedef struct E2SM_RC_IndicationMessage_Format2_Item {
+	UEID_t	 ueID;
+	struct E2SM_RC_IndicationMessage_Format2_Item__ranP_List {
+		A_SEQUENCE_OF(struct E2SM_RC_IndicationMessage_Format2_RANParameter_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_IndicationMessage_Format2_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_IndicationMessage_Format2_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationMessage_Format2_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_Format2_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_IndicationMessage_Format2_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-IndicationMessage-Format2-RANParameter-Item.h b/e2sm/headers/E2SM-RC-IndicationMessage-Format2-RANParameter-Item.h
new file mode 100755
index 0000000..872e316
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-IndicationMessage-Format2-RANParameter-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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_IndicationMessage_Format2_RANParameter_Item_H_
+#define	_E2SM_RC_IndicationMessage_Format2_RANParameter_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-Format2-RANParameter-Item */
+typedef struct E2SM_RC_IndicationMessage_Format2_RANParameter_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_Format2_RANParameter_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_IndicationMessage_Format2_RANParameter_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationMessage_Format2_RANParameter_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_Format2_RANParameter_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_IndicationMessage_Format2_RANParameter_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-IndicationMessage-Format2.h b/e2sm/headers/E2SM-RC-IndicationMessage-Format2.h
new file mode 100755
index 0000000..641f801
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-IndicationMessage-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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_IndicationMessage_Format2_H_
+#define	_E2SM_RC_IndicationMessage_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_IndicationMessage_Format2_Item;
+
+/* E2SM-RC-IndicationMessage-Format2 */
+typedef struct E2SM_RC_IndicationMessage_Format2 {
+	struct E2SM_RC_IndicationMessage_Format2__ueParameter_List {
+		A_SEQUENCE_OF(struct E2SM_RC_IndicationMessage_Format2_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ueParameter_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_IndicationMessage_Format2_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_IndicationMessage_Format2;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationMessage_Format2_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_Format2_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_IndicationMessage_Format2_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-IndicationMessage-Format3-Item.h b/e2sm/headers/E2SM-RC-IndicationMessage-Format3-Item.h
new file mode 100755
index 0000000..2ec97e2
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-IndicationMessage-Format3-Item.h
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_IndicationMessage_Format3_Item_H_
+#define	_E2SM_RC_IndicationMessage_Format3_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "CGI.h"
+#include <OCTET_STRING.h>
+#include <BOOLEAN.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct NeighborRelation_Info;
+
+/* E2SM-RC-IndicationMessage-Format3-Item */
+typedef struct E2SM_RC_IndicationMessage_Format3_Item {
+	CGI_t	 cellGlobal_ID;
+	OCTET_STRING_t	*cellContextInfo;	/* OPTIONAL */
+	BOOLEAN_t	*cellDeleted;	/* OPTIONAL */
+	struct NeighborRelation_Info	*neighborRelation_Table;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_IndicationMessage_Format3_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_IndicationMessage_Format3_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationMessage_Format3_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_Format3_Item_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_IndicationMessage_Format3_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-IndicationMessage-Format3.h b/e2sm/headers/E2SM-RC-IndicationMessage-Format3.h
new file mode 100755
index 0000000..a73592f
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-IndicationMessage-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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_IndicationMessage_Format3_H_
+#define	_E2SM_RC_IndicationMessage_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_IndicationMessage_Format3_Item;
+
+/* E2SM-RC-IndicationMessage-Format3 */
+typedef struct E2SM_RC_IndicationMessage_Format3 {
+	struct E2SM_RC_IndicationMessage_Format3__cellInfo_List {
+		A_SEQUENCE_OF(struct E2SM_RC_IndicationMessage_Format3_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} cellInfo_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_IndicationMessage_Format3_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_IndicationMessage_Format3;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationMessage_Format3_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_Format3_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_IndicationMessage_Format3_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-IndicationMessage-Format4-ItemCell.h b/e2sm/headers/E2SM-RC-IndicationMessage-Format4-ItemCell.h
new file mode 100755
index 0000000..7962352
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-IndicationMessage-Format4-ItemCell.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_IndicationMessage_Format4_ItemCell_H_
+#define	_E2SM_RC_IndicationMessage_Format4_ItemCell_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "CGI.h"
+#include <OCTET_STRING.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct NeighborRelation_Info;
+
+/* E2SM-RC-IndicationMessage-Format4-ItemCell */
+typedef struct E2SM_RC_IndicationMessage_Format4_ItemCell {
+	CGI_t	 cellGlobal_ID;
+	OCTET_STRING_t	*cellContextInfo;	/* OPTIONAL */
+	struct NeighborRelation_Info	*neighborRelation_Table;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_IndicationMessage_Format4_ItemCell_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_IndicationMessage_Format4_ItemCell;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationMessage_Format4_ItemCell_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_Format4_ItemCell_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_IndicationMessage_Format4_ItemCell_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-IndicationMessage-Format4-ItemUE.h b/e2sm/headers/E2SM-RC-IndicationMessage-Format4-ItemUE.h
new file mode 100755
index 0000000..51a2974
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-IndicationMessage-Format4-ItemUE.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_IndicationMessage_Format4_ItemUE_H_
+#define	_E2SM_RC_IndicationMessage_Format4_ItemUE_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "UEID.h"
+#include <OCTET_STRING.h>
+#include "CGI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* E2SM-RC-IndicationMessage-Format4-ItemUE */
+typedef struct E2SM_RC_IndicationMessage_Format4_ItemUE {
+	UEID_t	 ueID;
+	OCTET_STRING_t	*ueContextInfo;	/* OPTIONAL */
+	CGI_t	 cellGlobal_ID;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_IndicationMessage_Format4_ItemUE_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_IndicationMessage_Format4_ItemUE;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationMessage_Format4_ItemUE_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_Format4_ItemUE_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_IndicationMessage_Format4_ItemUE_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-IndicationMessage-Format4.h b/e2sm/headers/E2SM-RC-IndicationMessage-Format4.h
new file mode 100755
index 0000000..e51abf4
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-IndicationMessage-Format4.h
@@ -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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_IndicationMessage_Format4_H_
+#define	_E2SM_RC_IndicationMessage_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 E2SM_RC_IndicationMessage_Format4_ItemUE;
+struct E2SM_RC_IndicationMessage_Format4_ItemCell;
+
+/* E2SM-RC-IndicationMessage-Format4 */
+typedef struct E2SM_RC_IndicationMessage_Format4 {
+	struct E2SM_RC_IndicationMessage_Format4__ueInfo_List {
+		A_SEQUENCE_OF(struct E2SM_RC_IndicationMessage_Format4_ItemUE) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ueInfo_List;
+	struct E2SM_RC_IndicationMessage_Format4__cellInfo_List {
+		A_SEQUENCE_OF(struct E2SM_RC_IndicationMessage_Format4_ItemCell) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} cellInfo_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_IndicationMessage_Format4_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_IndicationMessage_Format4;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationMessage_Format4_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_Format4_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_IndicationMessage_Format4_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-IndicationMessage-Format5-Item.h b/e2sm/headers/E2SM-RC-IndicationMessage-Format5-Item.h
new file mode 100755
index 0000000..f46f196
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-IndicationMessage-Format5-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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_IndicationMessage_Format5_Item_H_
+#define	_E2SM_RC_IndicationMessage_Format5_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-Format5-Item */
+typedef struct E2SM_RC_IndicationMessage_Format5_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_Format5_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_IndicationMessage_Format5_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationMessage_Format5_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_Format5_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_IndicationMessage_Format5_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-IndicationMessage-Format5.h b/e2sm/headers/E2SM-RC-IndicationMessage-Format5.h
new file mode 100755
index 0000000..ca2c7c0
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-IndicationMessage-Format5.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_IndicationMessage_Format5_H_
+#define	_E2SM_RC_IndicationMessage_Format5_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_Format5_Item;
+
+/* E2SM-RC-IndicationMessage-Format5 */
+typedef struct E2SM_RC_IndicationMessage_Format5 {
+	struct E2SM_RC_IndicationMessage_Format5__ranP_Requested_List {
+		A_SEQUENCE_OF(struct E2SM_RC_IndicationMessage_Format5_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ranP_Requested_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_IndicationMessage_Format5_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_IndicationMessage_Format5;
+extern asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationMessage_Format5_specs_1;
+extern asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_Format5_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_IndicationMessage_Format5_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-IndicationMessage.h b/e2sm/headers/E2SM-RC-IndicationMessage.h
new file mode 100755
index 0000000..0a8fa90
--- /dev/null
+++ b/e2sm/headers/E2SM-RC-IndicationMessage.h
@@ -0,0 +1,77 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_E2SM_RC_IndicationMessage_H_
+#define	_E2SM_RC_IndicationMessage_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum E2SM_RC_IndicationMessage__ric_indicationMessage_formats_PR {
+	E2SM_RC_IndicationMessage__ric_indicationMessage_formats_PR_NOTHING,	/* No components present */
+	E2SM_RC_IndicationMessage__ric_indicationMessage_formats_PR_indicationMessage_Format1,
+	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
+	/* Extensions may appear below */
+	
+} E2SM_RC_IndicationMessage__ric_indicationMessage_formats_PR;
+
+/* Forward declarations */
+struct E2SM_RC_IndicationMessage_Format1;
+struct E2SM_RC_IndicationMessage_Format2;
+struct E2SM_RC_IndicationMessage_Format3;
+struct E2SM_RC_IndicationMessage_Format4;
+struct E2SM_RC_IndicationMessage_Format5;
+
+/* E2SM-RC-IndicationMessage */
+typedef struct E2SM_RC_IndicationMessage {
+	struct E2SM_RC_IndicationMessage__ric_indicationMessage_formats {
+		E2SM_RC_IndicationMessage__ric_indicationMessage_formats_PR present;
+		union E2SM_RC_IndicationMessage__ric_indicationMessage_formats_u {
+			struct E2SM_RC_IndicationMessage_Format1	*indicationMessage_Format1;
+			struct E2SM_RC_IndicationMessage_Format2	*indicationMessage_Format2;
+			struct E2SM_RC_IndicationMessage_Format3	*indicationMessage_Format3;
+			struct E2SM_RC_IndicationMessage_Format4	*indicationMessage_Format4;
+			struct E2SM_RC_IndicationMessage_Format5	*indicationMessage_Format5;
+			/*
+			 * This type is extensible,
+			 * possible extensions are below.
+			 */
+		} choice;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ric_indicationMessage_formats;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} E2SM_RC_IndicationMessage_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_E2SM_RC_IndicationMessage;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _E2SM_RC_IndicationMessage_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/E2SM-RC-RANFunctionDefinition.h b/e2sm/headers/E2SM-RC-RANFunctionDefinition.h
old mode 100644
new mode 100755
index 112fc9e..1293799
--- a/e2sm/headers/E2SM-RC-RANFunctionDefinition.h
+++ b/e2sm/headers/E2SM-RC-RANFunctionDefinition.h
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
@@ -13,8 +13,6 @@
 
 /* Including external dependencies */
 #include "RANfunction-Name.h"
-#include <asn_SEQUENCE_OF.h>
-#include <constr_SEQUENCE_OF.h>
 #include <constr_SEQUENCE.h>
 
 #ifdef __cplusplus
@@ -22,24 +20,20 @@
 #endif
 
 /* Forward declarations */
-struct RIC_EventTriggerStyle_Item;
-struct RIC_ControlStyle_Item;
+struct RANFunctionDefinition_EventTrigger;
+struct RANFunctionDefinition_Report;
+struct RANFunctionDefinition_Insert;
+struct RANFunctionDefinition_Control;
+struct RANFunctionDefinition_Policy;
 
 /* E2SM-RC-RANFunctionDefinition */
 typedef struct E2SM_RC_RANFunctionDefinition {
 	RANfunction_Name_t	 ranFunction_Name;
-	struct E2SM_RC_RANFunctionDefinition__ric_EventTriggerStyle_List {
-		A_SEQUENCE_OF(struct RIC_EventTriggerStyle_Item) list;
-		
-		/* Context for parsing across buffer boundaries */
-		asn_struct_ctx_t _asn_ctx;
-	} *ric_EventTriggerStyle_List;
-	struct E2SM_RC_RANFunctionDefinition__ric_ControlStyle_List {
-		A_SEQUENCE_OF(struct RIC_ControlStyle_Item) list;
-		
-		/* Context for parsing across buffer boundaries */
-		asn_struct_ctx_t _asn_ctx;
-	} *ric_ControlStyle_List;
+	struct RANFunctionDefinition_EventTrigger	*ranFunctionDefinition_EventTrigger;	/* OPTIONAL */
+	struct RANFunctionDefinition_Report	*ranFunctionDefinition_Report;	/* OPTIONAL */
+	struct RANFunctionDefinition_Insert	*ranFunctionDefinition_Insert;	/* OPTIONAL */
+	struct RANFunctionDefinition_Control	*ranFunctionDefinition_Control;	/* OPTIONAL */
+	struct RANFunctionDefinition_Policy	*ranFunctionDefinition_Policy;	/* OPTIONAL */
 	/*
 	 * This type is extensible,
 	 * possible extensions are below.
diff --git a/e2sm/headers/EN-GNB-ID.h b/e2sm/headers/EN-GNB-ID.h
new file mode 100755
index 0000000..3aa81d5
--- /dev/null
+++ b/e2sm/headers/EN-GNB-ID.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_EN_GNB_ID_H_
+#define	_EN_GNB_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum EN_GNB_ID_PR {
+	EN_GNB_ID_PR_NOTHING,	/* No components present */
+	EN_GNB_ID_PR_en_gNB_ID
+	/* Extensions may appear below */
+	
+} EN_GNB_ID_PR;
+
+/* EN-GNB-ID */
+typedef struct EN_GNB_ID {
+	EN_GNB_ID_PR present;
+	union EN_GNB_ID_u {
+		BIT_STRING_t	 en_gNB_ID;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} EN_GNB_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EN_GNB_ID;
+extern asn_CHOICE_specifics_t asn_SPC_EN_GNB_ID_specs_1;
+extern asn_TYPE_member_t asn_MBR_EN_GNB_ID_1[1];
+extern asn_per_constraints_t asn_PER_type_EN_GNB_ID_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _EN_GNB_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/ENB-ID-Choice.h b/e2sm/headers/ENB-ID-Choice.h
deleted file mode 100644
index 06a6ade..0000000
--- a/e2sm/headers/ENB-ID-Choice.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_ENB_ID_Choice_H_
-#define	_ENB_ID_Choice_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <BIT_STRING.h>
-#include <constr_CHOICE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Dependencies */
-typedef enum ENB_ID_Choice_PR {
-	ENB_ID_Choice_PR_NOTHING,	/* No components present */
-	ENB_ID_Choice_PR_enb_ID_macro,
-	ENB_ID_Choice_PR_enb_ID_shortmacro,
-	ENB_ID_Choice_PR_enb_ID_longmacro
-	/* Extensions may appear below */
-	
-} ENB_ID_Choice_PR;
-
-/* ENB-ID-Choice */
-typedef struct ENB_ID_Choice {
-	ENB_ID_Choice_PR present;
-	union ENB_ID_Choice_u {
-		BIT_STRING_t	 enb_ID_macro;
-		BIT_STRING_t	 enb_ID_shortmacro;
-		BIT_STRING_t	 enb_ID_longmacro;
-		/*
-		 * This type is extensible,
-		 * possible extensions are below.
-		 */
-	} choice;
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} ENB_ID_Choice_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_ENB_ID_Choice;
-extern asn_CHOICE_specifics_t asn_SPC_ENB_ID_Choice_specs_1;
-extern asn_TYPE_member_t asn_MBR_ENB_ID_Choice_1[3];
-extern asn_per_constraints_t asn_PER_type_ENB_ID_Choice_constr_1;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _ENB_ID_Choice_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/ENB-ID.h b/e2sm/headers/ENB-ID.h
old mode 100644
new mode 100755
index d3593b2..3572d4e
--- a/e2sm/headers/ENB-ID.h
+++ b/e2sm/headers/ENB-ID.h
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
diff --git a/e2sm/headers/ENB-UE-X2AP-ID-Extension.h b/e2sm/headers/ENB-UE-X2AP-ID-Extension.h
new file mode 100755
index 0000000..1b3df82
--- /dev/null
+++ b/e2sm/headers/ENB-UE-X2AP-ID-Extension.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_ENB_UE_X2AP_ID_Extension_H_
+#define	_ENB_UE_X2AP_ID_Extension_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ENB-UE-X2AP-ID-Extension */
+typedef long	 ENB_UE_X2AP_ID_Extension_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ENB_UE_X2AP_ID_Extension_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ENB_UE_X2AP_ID_Extension;
+asn_struct_free_f ENB_UE_X2AP_ID_Extension_free;
+asn_struct_print_f ENB_UE_X2AP_ID_Extension_print;
+asn_constr_check_f ENB_UE_X2AP_ID_Extension_constraint;
+ber_type_decoder_f ENB_UE_X2AP_ID_Extension_decode_ber;
+der_type_encoder_f ENB_UE_X2AP_ID_Extension_encode_der;
+xer_type_decoder_f ENB_UE_X2AP_ID_Extension_decode_xer;
+xer_type_encoder_f ENB_UE_X2AP_ID_Extension_encode_xer;
+oer_type_decoder_f ENB_UE_X2AP_ID_Extension_decode_oer;
+oer_type_encoder_f ENB_UE_X2AP_ID_Extension_encode_oer;
+per_type_decoder_f ENB_UE_X2AP_ID_Extension_decode_uper;
+per_type_encoder_f ENB_UE_X2AP_ID_Extension_encode_uper;
+per_type_decoder_f ENB_UE_X2AP_ID_Extension_decode_aper;
+per_type_encoder_f ENB_UE_X2AP_ID_Extension_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _ENB_UE_X2AP_ID_Extension_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/ENB-UE-X2AP-ID.h b/e2sm/headers/ENB-UE-X2AP-ID.h
new file mode 100755
index 0000000..739d699
--- /dev/null
+++ b/e2sm/headers/ENB-UE-X2AP-ID.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_ENB_UE_X2AP_ID_H_
+#define	_ENB_UE_X2AP_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ENB-UE-X2AP-ID */
+typedef long	 ENB_UE_X2AP_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_ENB_UE_X2AP_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_ENB_UE_X2AP_ID;
+asn_struct_free_f ENB_UE_X2AP_ID_free;
+asn_struct_print_f ENB_UE_X2AP_ID_print;
+asn_constr_check_f ENB_UE_X2AP_ID_constraint;
+ber_type_decoder_f ENB_UE_X2AP_ID_decode_ber;
+der_type_encoder_f ENB_UE_X2AP_ID_encode_der;
+xer_type_decoder_f ENB_UE_X2AP_ID_decode_xer;
+xer_type_encoder_f ENB_UE_X2AP_ID_encode_xer;
+oer_type_decoder_f ENB_UE_X2AP_ID_decode_oer;
+oer_type_encoder_f ENB_UE_X2AP_ID_encode_oer;
+per_type_decoder_f ENB_UE_X2AP_ID_decode_uper;
+per_type_encoder_f ENB_UE_X2AP_ID_encode_uper;
+per_type_decoder_f ENB_UE_X2AP_ID_decode_aper;
+per_type_encoder_f ENB_UE_X2AP_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _ENB_UE_X2AP_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/ENGNB-ID.h b/e2sm/headers/ENGNB-ID.h
deleted file mode 100644
index 8f1994c..0000000
--- a/e2sm/headers/ENGNB-ID.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_ENGNB_ID_H_
-#define	_ENGNB_ID_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <BIT_STRING.h>
-#include <constr_CHOICE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Dependencies */
-typedef enum ENGNB_ID_PR {
-	ENGNB_ID_PR_NOTHING,	/* No components present */
-	ENGNB_ID_PR_gNB_ID
-	/* Extensions may appear below */
-	
-} ENGNB_ID_PR;
-
-/* ENGNB-ID */
-typedef struct ENGNB_ID {
-	ENGNB_ID_PR present;
-	union ENGNB_ID_u {
-		BIT_STRING_t	 gNB_ID;
-		/*
-		 * This type is extensible,
-		 * possible extensions are below.
-		 */
-	} choice;
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} ENGNB_ID_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_ENGNB_ID;
-extern asn_CHOICE_specifics_t asn_SPC_ENGNB_ID_specs_1;
-extern asn_TYPE_member_t asn_MBR_ENGNB_ID_1[1];
-extern asn_per_constraints_t asn_PER_type_ENGNB_ID_constr_1;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _ENGNB_ID_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/EPC-CUUP-PM-Format.h b/e2sm/headers/EPC-CUUP-PM-Format.h
deleted file mode 100644
index 0846bdc..0000000
--- a/e2sm/headers/EPC-CUUP-PM-Format.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_EPC_CUUP_PM_Format_H_
-#define	_EPC_CUUP_PM_Format_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 PerQCIReportListItemFormat;
-
-/* EPC-CUUP-PM-Format */
-typedef struct EPC_CUUP_PM_Format {
-	struct EPC_CUUP_PM_Format__perQCIReportList_cuup {
-		A_SEQUENCE_OF(struct PerQCIReportListItemFormat) list;
-		
-		/* Context for parsing across buffer boundaries */
-		asn_struct_ctx_t _asn_ctx;
-	} perQCIReportList_cuup;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} EPC_CUUP_PM_Format_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_EPC_CUUP_PM_Format;
-extern asn_SEQUENCE_specifics_t asn_SPC_EPC_CUUP_PM_Format_specs_1;
-extern asn_TYPE_member_t asn_MBR_EPC_CUUP_PM_Format_1[1];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _EPC_CUUP_PM_Format_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/EPC-DU-PM-Container.h b/e2sm/headers/EPC-DU-PM-Container.h
deleted file mode 100644
index 354e3fd..0000000
--- a/e2sm/headers/EPC-DU-PM-Container.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_EPC_DU_PM_Container_H_
-#define	_EPC_DU_PM_Container_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 PerQCIReportListItem;
-
-/* EPC-DU-PM-Container */
-typedef struct EPC_DU_PM_Container {
-	struct EPC_DU_PM_Container__perQCIReportList_du {
-		A_SEQUENCE_OF(struct PerQCIReportListItem) list;
-		
-		/* Context for parsing across buffer boundaries */
-		asn_struct_ctx_t _asn_ctx;
-	} perQCIReportList_du;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} EPC_DU_PM_Container_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_EPC_DU_PM_Container;
-extern asn_SEQUENCE_specifics_t asn_SPC_EPC_DU_PM_Container_specs_1;
-extern asn_TYPE_member_t asn_MBR_EPC_DU_PM_Container_1[1];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _EPC_DU_PM_Container_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/EUTRA-CGI.h b/e2sm/headers/EUTRA-CGI.h
new file mode 100755
index 0000000..47d879e
--- /dev/null
+++ b/e2sm/headers/EUTRA-CGI.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_EUTRA_CGI_H_
+#define	_EUTRA_CGI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMNIdentity.h"
+#include "EUTRACellIdentity.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* EUTRA-CGI */
+typedef struct EUTRA_CGI {
+	PLMNIdentity_t	 pLMNIdentity;
+	EUTRACellIdentity_t	 eUTRACellIdentity;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} EUTRA_CGI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EUTRA_CGI;
+extern asn_SEQUENCE_specifics_t asn_SPC_EUTRA_CGI_specs_1;
+extern asn_TYPE_member_t asn_MBR_EUTRA_CGI_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _EUTRA_CGI_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/EUTRACellIdentity.h b/e2sm/headers/EUTRACellIdentity.h
new file mode 100755
index 0000000..58a5341
--- /dev/null
+++ b/e2sm/headers/EUTRACellIdentity.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_EUTRACellIdentity_H_
+#define	_EUTRACellIdentity_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* EUTRACellIdentity */
+typedef BIT_STRING_t	 EUTRACellIdentity_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_EUTRACellIdentity_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_EUTRACellIdentity;
+asn_struct_free_f EUTRACellIdentity_free;
+asn_struct_print_f EUTRACellIdentity_print;
+asn_constr_check_f EUTRACellIdentity_constraint;
+ber_type_decoder_f EUTRACellIdentity_decode_ber;
+der_type_encoder_f EUTRACellIdentity_encode_der;
+xer_type_decoder_f EUTRACellIdentity_decode_xer;
+xer_type_encoder_f EUTRACellIdentity_encode_xer;
+oer_type_decoder_f EUTRACellIdentity_decode_oer;
+oer_type_encoder_f EUTRACellIdentity_encode_oer;
+per_type_decoder_f EUTRACellIdentity_decode_uper;
+per_type_encoder_f EUTRACellIdentity_encode_uper;
+per_type_decoder_f EUTRACellIdentity_decode_aper;
+per_type_encoder_f EUTRACellIdentity_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _EUTRACellIdentity_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/EventTrigger-Cell-Info-Item-Choice-Group.h b/e2sm/headers/EventTrigger-Cell-Info-Item-Choice-Group.h
new file mode 100755
index 0000000..f5f8be7
--- /dev/null
+++ b/e2sm/headers/EventTrigger-Cell-Info-Item-Choice-Group.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_EventTrigger_Cell_Info_Item_Choice_Group_H_
+#define	_EventTrigger_Cell_Info_Item_Choice_Group_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANParameter-Testing.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* EventTrigger-Cell-Info-Item-Choice-Group */
+typedef struct EventTrigger_Cell_Info_Item_Choice_Group {
+	RANParameter_Testing_t	 ranParameterTesting;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} EventTrigger_Cell_Info_Item_Choice_Group_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EventTrigger_Cell_Info_Item_Choice_Group;
+extern asn_SEQUENCE_specifics_t asn_SPC_EventTrigger_Cell_Info_Item_Choice_Group_specs_1;
+extern asn_TYPE_member_t asn_MBR_EventTrigger_Cell_Info_Item_Choice_Group_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _EventTrigger_Cell_Info_Item_Choice_Group_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/EventTrigger-Cell-Info-Item-Choice-Individual.h b/e2sm/headers/EventTrigger-Cell-Info-Item-Choice-Individual.h
new file mode 100755
index 0000000..88febb4
--- /dev/null
+++ b/e2sm/headers/EventTrigger-Cell-Info-Item-Choice-Individual.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_EventTrigger_Cell_Info_Item_Choice_Individual_H_
+#define	_EventTrigger_Cell_Info_Item_Choice_Individual_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "CGI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* EventTrigger-Cell-Info-Item-Choice-Individual */
+typedef struct EventTrigger_Cell_Info_Item_Choice_Individual {
+	CGI_t	 cellGlobalID;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} EventTrigger_Cell_Info_Item_Choice_Individual_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EventTrigger_Cell_Info_Item_Choice_Individual;
+extern asn_SEQUENCE_specifics_t asn_SPC_EventTrigger_Cell_Info_Item_Choice_Individual_specs_1;
+extern asn_TYPE_member_t asn_MBR_EventTrigger_Cell_Info_Item_Choice_Individual_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _EventTrigger_Cell_Info_Item_Choice_Individual_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/EventTrigger-Cell-Info-Item.h b/e2sm/headers/EventTrigger-Cell-Info-Item.h
new file mode 100755
index 0000000..e5680ab
--- /dev/null
+++ b/e2sm/headers/EventTrigger-Cell-Info-Item.h
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_EventTrigger_Cell_Info_Item_H_
+#define	_EventTrigger_Cell_Info_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RIC-EventTrigger-Cell-ID.h"
+#include "LogicalOR.h"
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum EventTrigger_Cell_Info_Item__cellType_PR {
+	EventTrigger_Cell_Info_Item__cellType_PR_NOTHING,	/* No components present */
+	EventTrigger_Cell_Info_Item__cellType_PR_cellType_Choice_Individual,
+	EventTrigger_Cell_Info_Item__cellType_PR_cellType_Choice_Group
+	/* Extensions may appear below */
+	
+} EventTrigger_Cell_Info_Item__cellType_PR;
+
+/* Forward declarations */
+struct EventTrigger_Cell_Info_Item_Choice_Individual;
+struct EventTrigger_Cell_Info_Item_Choice_Group;
+
+/* EventTrigger-Cell-Info-Item */
+typedef struct EventTrigger_Cell_Info_Item {
+	RIC_EventTrigger_Cell_ID_t	 eventTriggerCellID;
+	struct EventTrigger_Cell_Info_Item__cellType {
+		EventTrigger_Cell_Info_Item__cellType_PR present;
+		union EventTrigger_Cell_Info_Item__cellType_u {
+			struct EventTrigger_Cell_Info_Item_Choice_Individual	*cellType_Choice_Individual;
+			struct EventTrigger_Cell_Info_Item_Choice_Group	*cellType_Choice_Group;
+			/*
+			 * This type is extensible,
+			 * possible extensions are below.
+			 */
+		} choice;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} cellType;
+	LogicalOR_t	*logicalOR;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} EventTrigger_Cell_Info_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EventTrigger_Cell_Info_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_EventTrigger_Cell_Info_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_EventTrigger_Cell_Info_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _EventTrigger_Cell_Info_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/EventTrigger-Cell-Info.h b/e2sm/headers/EventTrigger-Cell-Info.h
new file mode 100755
index 0000000..4a23f62
--- /dev/null
+++ b/e2sm/headers/EventTrigger-Cell-Info.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_EventTrigger_Cell_Info_H_
+#define	_EventTrigger_Cell_Info_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 EventTrigger_Cell_Info_Item;
+
+/* EventTrigger-Cell-Info */
+typedef struct EventTrigger_Cell_Info {
+	struct EventTrigger_Cell_Info__cellInfo_List {
+		A_SEQUENCE_OF(struct EventTrigger_Cell_Info_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} cellInfo_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} EventTrigger_Cell_Info_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EventTrigger_Cell_Info;
+extern asn_SEQUENCE_specifics_t asn_SPC_EventTrigger_Cell_Info_specs_1;
+extern asn_TYPE_member_t asn_MBR_EventTrigger_Cell_Info_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _EventTrigger_Cell_Info_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/EventTrigger-UE-Info-Item-Choice-Group.h b/e2sm/headers/EventTrigger-UE-Info-Item-Choice-Group.h
new file mode 100755
index 0000000..04c53e1
--- /dev/null
+++ b/e2sm/headers/EventTrigger-UE-Info-Item-Choice-Group.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_EventTrigger_UE_Info_Item_Choice_Group_H_
+#define	_EventTrigger_UE_Info_Item_Choice_Group_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANParameter-Testing.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* EventTrigger-UE-Info-Item-Choice-Group */
+typedef struct EventTrigger_UE_Info_Item_Choice_Group {
+	RANParameter_Testing_t	 ranParameterTesting;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} EventTrigger_UE_Info_Item_Choice_Group_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EventTrigger_UE_Info_Item_Choice_Group;
+extern asn_SEQUENCE_specifics_t asn_SPC_EventTrigger_UE_Info_Item_Choice_Group_specs_1;
+extern asn_TYPE_member_t asn_MBR_EventTrigger_UE_Info_Item_Choice_Group_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _EventTrigger_UE_Info_Item_Choice_Group_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/EventTrigger-UE-Info-Item-Choice-Individual.h b/e2sm/headers/EventTrigger-UE-Info-Item-Choice-Individual.h
new file mode 100755
index 0000000..a38e848
--- /dev/null
+++ b/e2sm/headers/EventTrigger-UE-Info-Item-Choice-Individual.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_EventTrigger_UE_Info_Item_Choice_Individual_H_
+#define	_EventTrigger_UE_Info_Item_Choice_Individual_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "UEID.h"
+#include "RANParameter-Testing.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* EventTrigger-UE-Info-Item-Choice-Individual */
+typedef struct EventTrigger_UE_Info_Item_Choice_Individual {
+	UEID_t	 ueID;
+	RANParameter_Testing_t	 ranParameterTesting;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} EventTrigger_UE_Info_Item_Choice_Individual_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EventTrigger_UE_Info_Item_Choice_Individual;
+extern asn_SEQUENCE_specifics_t asn_SPC_EventTrigger_UE_Info_Item_Choice_Individual_specs_1;
+extern asn_TYPE_member_t asn_MBR_EventTrigger_UE_Info_Item_Choice_Individual_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _EventTrigger_UE_Info_Item_Choice_Individual_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/EventTrigger-UE-Info-Item.h b/e2sm/headers/EventTrigger-UE-Info-Item.h
new file mode 100755
index 0000000..8124db8
--- /dev/null
+++ b/e2sm/headers/EventTrigger-UE-Info-Item.h
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_EventTrigger_UE_Info_Item_H_
+#define	_EventTrigger_UE_Info_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RIC-EventTrigger-UE-ID.h"
+#include "LogicalOR.h"
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum EventTrigger_UE_Info_Item__ueType_PR {
+	EventTrigger_UE_Info_Item__ueType_PR_NOTHING,	/* No components present */
+	EventTrigger_UE_Info_Item__ueType_PR_ueType_Choice_Individual,
+	EventTrigger_UE_Info_Item__ueType_PR_ueType_Choice_Group
+	/* Extensions may appear below */
+	
+} EventTrigger_UE_Info_Item__ueType_PR;
+
+/* Forward declarations */
+struct EventTrigger_UE_Info_Item_Choice_Individual;
+struct EventTrigger_UE_Info_Item_Choice_Group;
+
+/* EventTrigger-UE-Info-Item */
+typedef struct EventTrigger_UE_Info_Item {
+	RIC_EventTrigger_UE_ID_t	 eventTriggerUEID;
+	struct EventTrigger_UE_Info_Item__ueType {
+		EventTrigger_UE_Info_Item__ueType_PR present;
+		union EventTrigger_UE_Info_Item__ueType_u {
+			struct EventTrigger_UE_Info_Item_Choice_Individual	*ueType_Choice_Individual;
+			struct EventTrigger_UE_Info_Item_Choice_Group	*ueType_Choice_Group;
+			/*
+			 * This type is extensible,
+			 * possible extensions are below.
+			 */
+		} choice;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ueType;
+	LogicalOR_t	*logicalOR;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} EventTrigger_UE_Info_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EventTrigger_UE_Info_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_EventTrigger_UE_Info_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_EventTrigger_UE_Info_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _EventTrigger_UE_Info_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/EventTrigger-UE-Info.h b/e2sm/headers/EventTrigger-UE-Info.h
new file mode 100755
index 0000000..951e3b3
--- /dev/null
+++ b/e2sm/headers/EventTrigger-UE-Info.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_EventTrigger_UE_Info_H_
+#define	_EventTrigger_UE_Info_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 EventTrigger_UE_Info_Item;
+
+/* EventTrigger-UE-Info */
+typedef struct EventTrigger_UE_Info {
+	struct EventTrigger_UE_Info__ueInfo_List {
+		A_SEQUENCE_OF(struct EventTrigger_UE_Info_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ueInfo_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} EventTrigger_UE_Info_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EventTrigger_UE_Info;
+extern asn_SEQUENCE_specifics_t asn_SPC_EventTrigger_UE_Info_specs_1;
+extern asn_TYPE_member_t asn_MBR_EventTrigger_UE_Info_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _EventTrigger_UE_Info_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/EventTrigger-UEevent-Info-Item.h b/e2sm/headers/EventTrigger-UEevent-Info-Item.h
new file mode 100755
index 0000000..a546e61
--- /dev/null
+++ b/e2sm/headers/EventTrigger-UEevent-Info-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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_EventTrigger_UEevent_Info_Item_H_
+#define	_EventTrigger_UEevent_Info_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RIC-EventTrigger-UEevent-ID.h"
+#include "LogicalOR.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* EventTrigger-UEevent-Info-Item */
+typedef struct EventTrigger_UEevent_Info_Item {
+	RIC_EventTrigger_UEevent_ID_t	 ueEventID;
+	LogicalOR_t	*logicalOR;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} EventTrigger_UEevent_Info_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EventTrigger_UEevent_Info_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_EventTrigger_UEevent_Info_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_EventTrigger_UEevent_Info_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _EventTrigger_UEevent_Info_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/EventTrigger-UEevent-Info.h b/e2sm/headers/EventTrigger-UEevent-Info.h
new file mode 100755
index 0000000..d1ef88e
--- /dev/null
+++ b/e2sm/headers/EventTrigger-UEevent-Info.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_EventTrigger_UEevent_Info_H_
+#define	_EventTrigger_UEevent_Info_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 EventTrigger_UEevent_Info_Item;
+
+/* EventTrigger-UEevent-Info */
+typedef struct EventTrigger_UEevent_Info {
+	struct EventTrigger_UEevent_Info__ueEvent_List {
+		A_SEQUENCE_OF(struct EventTrigger_UEevent_Info_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ueEvent_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} EventTrigger_UEevent_Info_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_EventTrigger_UEevent_Info;
+extern asn_SEQUENCE_specifics_t asn_SPC_EventTrigger_UEevent_Info_specs_1;
+extern asn_TYPE_member_t asn_MBR_EventTrigger_UEevent_Info_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _EventTrigger_UEevent_Info_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/FGC-CUUP-PM-Format.h b/e2sm/headers/FGC-CUUP-PM-Format.h
deleted file mode 100644
index 73b91e8..0000000
--- a/e2sm/headers/FGC-CUUP-PM-Format.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_FGC_CUUP_PM_Format_H_
-#define	_FGC_CUUP_PM_Format_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 SliceToReportListItem;
-
-/* FGC-CUUP-PM-Format */
-typedef struct FGC_CUUP_PM_Format {
-	struct FGC_CUUP_PM_Format__sliceToReportList {
-		A_SEQUENCE_OF(struct SliceToReportListItem) list;
-		
-		/* Context for parsing across buffer boundaries */
-		asn_struct_ctx_t _asn_ctx;
-	} sliceToReportList;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} FGC_CUUP_PM_Format_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_FGC_CUUP_PM_Format;
-extern asn_SEQUENCE_specifics_t asn_SPC_FGC_CUUP_PM_Format_specs_1;
-extern asn_TYPE_member_t asn_MBR_FGC_CUUP_PM_Format_1[1];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _FGC_CUUP_PM_Format_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/FGC-DU-PM-Container.h b/e2sm/headers/FGC-DU-PM-Container.h
deleted file mode 100644
index 0d7c224..0000000
--- a/e2sm/headers/FGC-DU-PM-Container.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_FGC_DU_PM_Container_H_
-#define	_FGC_DU_PM_Container_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 SlicePerPlmnPerCellListItem;
-
-/* FGC-DU-PM-Container */
-typedef struct FGC_DU_PM_Container {
-	struct FGC_DU_PM_Container__slicePerPlmnPerCellList {
-		A_SEQUENCE_OF(struct SlicePerPlmnPerCellListItem) list;
-		
-		/* Context for parsing across buffer boundaries */
-		asn_struct_ctx_t _asn_ctx;
-	} slicePerPlmnPerCellList;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} FGC_DU_PM_Container_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_FGC_DU_PM_Container;
-extern asn_SEQUENCE_specifics_t asn_SPC_FGC_DU_PM_Container_specs_1;
-extern asn_TYPE_member_t asn_MBR_FGC_DU_PM_Container_1[1];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _FGC_DU_PM_Container_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/FQIPERSlicesPerPlmnListItem.h b/e2sm/headers/FQIPERSlicesPerPlmnListItem.h
deleted file mode 100644
index 93cbd5f..0000000
--- a/e2sm/headers/FQIPERSlicesPerPlmnListItem.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_FQIPERSlicesPerPlmnListItem_H_
-#define	_FQIPERSlicesPerPlmnListItem_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "FiveQI.h"
-#include <INTEGER.h>
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* FQIPERSlicesPerPlmnListItem */
-typedef struct FQIPERSlicesPerPlmnListItem {
-	FiveQI_t	 fiveQI;
-	INTEGER_t	*pDCPBytesDL;	/* OPTIONAL */
-	INTEGER_t	*pDCPBytesUL;	/* OPTIONAL */
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} FQIPERSlicesPerPlmnListItem_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_FQIPERSlicesPerPlmnListItem;
-extern asn_SEQUENCE_specifics_t asn_SPC_FQIPERSlicesPerPlmnListItem_specs_1;
-extern asn_TYPE_member_t asn_MBR_FQIPERSlicesPerPlmnListItem_1[3];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _FQIPERSlicesPerPlmnListItem_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/FQIPERSlicesPerPlmnPerCellListItem.h b/e2sm/headers/FQIPERSlicesPerPlmnPerCellListItem.h
deleted file mode 100644
index c805b5f..0000000
--- a/e2sm/headers/FQIPERSlicesPerPlmnPerCellListItem.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_FQIPERSlicesPerPlmnPerCellListItem_H_
-#define	_FQIPERSlicesPerPlmnPerCellListItem_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "FiveQI.h"
-#include <NativeInteger.h>
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* FQIPERSlicesPerPlmnPerCellListItem */
-typedef struct FQIPERSlicesPerPlmnPerCellListItem {
-	FiveQI_t	 fiveQI;
-	long	*dl_PRBUsage;	/* OPTIONAL */
-	long	*ul_PRBUsage;	/* OPTIONAL */
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} FQIPERSlicesPerPlmnPerCellListItem_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_FQIPERSlicesPerPlmnPerCellListItem;
-extern asn_SEQUENCE_specifics_t asn_SPC_FQIPERSlicesPerPlmnPerCellListItem_specs_1;
-extern asn_TYPE_member_t asn_MBR_FQIPERSlicesPerPlmnPerCellListItem_1[3];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _FQIPERSlicesPerPlmnPerCellListItem_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/FiveGS-TAC.h b/e2sm/headers/FiveGS-TAC.h
new file mode 100755
index 0000000..4231728
--- /dev/null
+++ b/e2sm/headers/FiveGS-TAC.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_FiveGS_TAC_H_
+#define	_FiveGS_TAC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* FiveGS-TAC */
+typedef OCTET_STRING_t	 FiveGS_TAC_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_FiveGS_TAC_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_FiveGS_TAC;
+asn_struct_free_f FiveGS_TAC_free;
+asn_struct_print_f FiveGS_TAC_print;
+asn_constr_check_f FiveGS_TAC_constraint;
+ber_type_decoder_f FiveGS_TAC_decode_ber;
+der_type_encoder_f FiveGS_TAC_encode_der;
+xer_type_decoder_f FiveGS_TAC_decode_xer;
+xer_type_encoder_f FiveGS_TAC_encode_xer;
+oer_type_decoder_f FiveGS_TAC_decode_oer;
+oer_type_encoder_f FiveGS_TAC_encode_oer;
+per_type_decoder_f FiveGS_TAC_decode_uper;
+per_type_encoder_f FiveGS_TAC_encode_uper;
+per_type_decoder_f FiveGS_TAC_decode_aper;
+per_type_encoder_f FiveGS_TAC_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _FiveGS_TAC_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/FiveQI.h b/e2sm/headers/FiveQI.h
old mode 100644
new mode 100755
index 79e7340..c03dd83
--- a/e2sm/headers/FiveQI.h
+++ b/e2sm/headers/FiveQI.h
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
diff --git a/e2sm/headers/FreqBandNrItem.h b/e2sm/headers/FreqBandNrItem.h
new file mode 100755
index 0000000..b8aefe4
--- /dev/null
+++ b/e2sm/headers/FreqBandNrItem.h
@@ -0,0 +1,42 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_FreqBandNrItem_H_
+#define	_FreqBandNrItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* FreqBandNrItem */
+typedef struct FreqBandNrItem {
+	long	 freqBandIndicatorNr;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} FreqBandNrItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_FreqBandNrItem;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _FreqBandNrItem_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/GNB-CU-CP-UE-E1AP-ID.h b/e2sm/headers/GNB-CU-CP-UE-E1AP-ID.h
new file mode 100755
index 0000000..00a88a0
--- /dev/null
+++ b/e2sm/headers/GNB-CU-CP-UE-E1AP-ID.h
@@ -0,0 +1,47 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_GNB_CU_CP_UE_E1AP_ID_H_
+#define	_GNB_CU_CP_UE_E1AP_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* GNB-CU-CP-UE-E1AP-ID */
+typedef unsigned long	 GNB_CU_CP_UE_E1AP_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_GNB_CU_CP_UE_E1AP_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_CP_UE_E1AP_ID;
+extern const asn_INTEGER_specifics_t asn_SPC_GNB_CU_CP_UE_E1AP_ID_specs_1;
+asn_struct_free_f GNB_CU_CP_UE_E1AP_ID_free;
+asn_struct_print_f GNB_CU_CP_UE_E1AP_ID_print;
+asn_constr_check_f GNB_CU_CP_UE_E1AP_ID_constraint;
+ber_type_decoder_f GNB_CU_CP_UE_E1AP_ID_decode_ber;
+der_type_encoder_f GNB_CU_CP_UE_E1AP_ID_encode_der;
+xer_type_decoder_f GNB_CU_CP_UE_E1AP_ID_decode_xer;
+xer_type_encoder_f GNB_CU_CP_UE_E1AP_ID_encode_xer;
+oer_type_decoder_f GNB_CU_CP_UE_E1AP_ID_decode_oer;
+oer_type_encoder_f GNB_CU_CP_UE_E1AP_ID_encode_oer;
+per_type_decoder_f GNB_CU_CP_UE_E1AP_ID_decode_uper;
+per_type_encoder_f GNB_CU_CP_UE_E1AP_ID_encode_uper;
+per_type_decoder_f GNB_CU_CP_UE_E1AP_ID_decode_aper;
+per_type_encoder_f GNB_CU_CP_UE_E1AP_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _GNB_CU_CP_UE_E1AP_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/GNB-CU-UE-F1AP-ID.h b/e2sm/headers/GNB-CU-UE-F1AP-ID.h
new file mode 100755
index 0000000..343ebaa
--- /dev/null
+++ b/e2sm/headers/GNB-CU-UE-F1AP-ID.h
@@ -0,0 +1,47 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_GNB_CU_UE_F1AP_ID_H_
+#define	_GNB_CU_UE_F1AP_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* GNB-CU-UE-F1AP-ID */
+typedef unsigned long	 GNB_CU_UE_F1AP_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_GNB_CU_UE_F1AP_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_GNB_CU_UE_F1AP_ID;
+extern const asn_INTEGER_specifics_t asn_SPC_GNB_CU_UE_F1AP_ID_specs_1;
+asn_struct_free_f GNB_CU_UE_F1AP_ID_free;
+asn_struct_print_f GNB_CU_UE_F1AP_ID_print;
+asn_constr_check_f GNB_CU_UE_F1AP_ID_constraint;
+ber_type_decoder_f GNB_CU_UE_F1AP_ID_decode_ber;
+der_type_encoder_f GNB_CU_UE_F1AP_ID_encode_der;
+xer_type_decoder_f GNB_CU_UE_F1AP_ID_decode_xer;
+xer_type_encoder_f GNB_CU_UE_F1AP_ID_encode_xer;
+oer_type_decoder_f GNB_CU_UE_F1AP_ID_decode_oer;
+oer_type_encoder_f GNB_CU_UE_F1AP_ID_encode_oer;
+per_type_decoder_f GNB_CU_UE_F1AP_ID_decode_uper;
+per_type_encoder_f GNB_CU_UE_F1AP_ID_encode_uper;
+per_type_decoder_f GNB_CU_UE_F1AP_ID_decode_aper;
+per_type_encoder_f GNB_CU_UE_F1AP_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _GNB_CU_UE_F1AP_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/GNB-CU-UP-ID.h b/e2sm/headers/GNB-CU-UP-ID.h
old mode 100644
new mode 100755
index 23b6f3b..5b6b19c
--- a/e2sm/headers/GNB-CU-UP-ID.h
+++ b/e2sm/headers/GNB-CU-UP-ID.h
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
diff --git a/e2sm/headers/GNB-DU-ID.h b/e2sm/headers/GNB-DU-ID.h
old mode 100644
new mode 100755
index d97a542..6de06ec
--- a/e2sm/headers/GNB-DU-ID.h
+++ b/e2sm/headers/GNB-DU-ID.h
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
diff --git a/e2sm/headers/GNB-ID-Choice.h b/e2sm/headers/GNB-ID-Choice.h
deleted file mode 100644
index fd8b7ca..0000000
--- a/e2sm/headers/GNB-ID-Choice.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_GNB_ID_Choice_H_
-#define	_GNB_ID_Choice_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <BIT_STRING.h>
-#include <constr_CHOICE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Dependencies */
-typedef enum GNB_ID_Choice_PR {
-	GNB_ID_Choice_PR_NOTHING,	/* No components present */
-	GNB_ID_Choice_PR_gnb_ID
-	/* Extensions may appear below */
-	
-} GNB_ID_Choice_PR;
-
-/* GNB-ID-Choice */
-typedef struct GNB_ID_Choice {
-	GNB_ID_Choice_PR present;
-	union GNB_ID_Choice_u {
-		BIT_STRING_t	 gnb_ID;
-		/*
-		 * This type is extensible,
-		 * possible extensions are below.
-		 */
-	} choice;
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} GNB_ID_Choice_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_GNB_ID_Choice;
-extern asn_CHOICE_specifics_t asn_SPC_GNB_ID_Choice_specs_1;
-extern asn_TYPE_member_t asn_MBR_GNB_ID_Choice_1[1];
-extern asn_per_constraints_t asn_PER_type_GNB_ID_Choice_constr_1;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _GNB_ID_Choice_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/GNB-ID.h b/e2sm/headers/GNB-ID.h
new file mode 100755
index 0000000..b1aa95d
--- /dev/null
+++ b/e2sm/headers/GNB-ID.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_GNB_ID_H_
+#define	_GNB_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum GNB_ID_PR {
+	GNB_ID_PR_NOTHING,	/* No components present */
+	GNB_ID_PR_gNB_ID
+	/* Extensions may appear below */
+	
+} GNB_ID_PR;
+
+/* GNB-ID */
+typedef struct GNB_ID {
+	GNB_ID_PR present;
+	union GNB_ID_u {
+		BIT_STRING_t	 gNB_ID;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} GNB_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GNB_ID;
+extern asn_CHOICE_specifics_t asn_SPC_GNB_ID_specs_1;
+extern asn_TYPE_member_t asn_MBR_GNB_ID_1[1];
+extern asn_per_constraints_t asn_PER_type_GNB_ID_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _GNB_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/GUAMI.h b/e2sm/headers/GUAMI.h
new file mode 100755
index 0000000..aef3e6e
--- /dev/null
+++ b/e2sm/headers/GUAMI.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_GUAMI_H_
+#define	_GUAMI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMNIdentity.h"
+#include "AMFRegionID.h"
+#include "AMFSetID.h"
+#include "AMFPointer.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* GUAMI */
+typedef struct GUAMI {
+	PLMNIdentity_t	 pLMNIdentity;
+	AMFRegionID_t	 aMFRegionID;
+	AMFSetID_t	 aMFSetID;
+	AMFPointer_t	 aMFPointer;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} GUAMI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GUAMI;
+extern asn_SEQUENCE_specifics_t asn_SPC_GUAMI_specs_1;
+extern asn_TYPE_member_t asn_MBR_GUAMI_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _GUAMI_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/GUMMEI.h b/e2sm/headers/GUMMEI.h
new file mode 100755
index 0000000..34c6025
--- /dev/null
+++ b/e2sm/headers/GUMMEI.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_GUMMEI_H_
+#define	_GUMMEI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMNIdentity.h"
+#include "MME-Group-ID.h"
+#include "MME-Code.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* GUMMEI */
+typedef struct GUMMEI {
+	PLMNIdentity_t	 pLMN_Identity;
+	MME_Group_ID_t	 mME_Group_ID;
+	MME_Code_t	 mME_Code;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} GUMMEI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GUMMEI;
+extern asn_SEQUENCE_specifics_t asn_SPC_GUMMEI_specs_1;
+extern asn_TYPE_member_t asn_MBR_GUMMEI_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _GUMMEI_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/GlobalE2node-ID.h b/e2sm/headers/GlobalE2node-ID.h
deleted file mode 100644
index 4c1f1be..0000000
--- a/e2sm/headers/GlobalE2node-ID.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_GlobalE2node_ID_H_
-#define	_GlobalE2node_ID_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <constr_CHOICE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Dependencies */
-typedef enum GlobalE2node_ID_PR {
-	GlobalE2node_ID_PR_NOTHING,	/* No components present */
-	GlobalE2node_ID_PR_gNB,
-	GlobalE2node_ID_PR_en_gNB,
-	GlobalE2node_ID_PR_ng_eNB,
-	GlobalE2node_ID_PR_eNB
-	/* Extensions may appear below */
-	
-} GlobalE2node_ID_PR;
-
-/* Forward declarations */
-struct GlobalE2node_gNB_ID;
-struct GlobalE2node_en_gNB_ID;
-struct GlobalE2node_ng_eNB_ID;
-struct GlobalE2node_eNB_ID;
-
-/* GlobalE2node-ID */
-typedef struct GlobalE2node_ID {
-	GlobalE2node_ID_PR present;
-	union GlobalE2node_ID_u {
-		struct GlobalE2node_gNB_ID	*gNB;
-		struct GlobalE2node_en_gNB_ID	*en_gNB;
-		struct GlobalE2node_ng_eNB_ID	*ng_eNB;
-		struct GlobalE2node_eNB_ID	*eNB;
-		/*
-		 * This type is extensible,
-		 * possible extensions are below.
-		 */
-	} choice;
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} GlobalE2node_ID_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ID;
-extern asn_CHOICE_specifics_t asn_SPC_GlobalE2node_ID_specs_1;
-extern asn_TYPE_member_t asn_MBR_GlobalE2node_ID_1[4];
-extern asn_per_constraints_t asn_PER_type_GlobalE2node_ID_constr_1;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _GlobalE2node_ID_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/GlobalE2node-eNB-ID.h b/e2sm/headers/GlobalE2node-eNB-ID.h
deleted file mode 100644
index c38f8e7..0000000
--- a/e2sm/headers/GlobalE2node-eNB-ID.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_GlobalE2node_eNB_ID_H_
-#define	_GlobalE2node_eNB_ID_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "GlobalENB-ID.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* GlobalE2node-eNB-ID */
-typedef struct GlobalE2node_eNB_ID {
-	GlobalENB_ID_t	 global_eNB_ID;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} GlobalE2node_eNB_ID_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_eNB_ID;
-extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_eNB_ID_specs_1;
-extern asn_TYPE_member_t asn_MBR_GlobalE2node_eNB_ID_1[1];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _GlobalE2node_eNB_ID_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/GlobalE2node-en-gNB-ID.h b/e2sm/headers/GlobalE2node-en-gNB-ID.h
deleted file mode 100644
index 795bc84..0000000
--- a/e2sm/headers/GlobalE2node-en-gNB-ID.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_GlobalE2node_en_gNB_ID_H_
-#define	_GlobalE2node_en_gNB_ID_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "GlobalenGNB-ID.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* GlobalE2node-en-gNB-ID */
-typedef struct GlobalE2node_en_gNB_ID {
-	GlobalenGNB_ID_t	 global_gNB_ID;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} GlobalE2node_en_gNB_ID_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_en_gNB_ID;
-extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_en_gNB_ID_specs_1;
-extern asn_TYPE_member_t asn_MBR_GlobalE2node_en_gNB_ID_1[1];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _GlobalE2node_en_gNB_ID_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/GlobalE2node-gNB-ID.h b/e2sm/headers/GlobalE2node-gNB-ID.h
deleted file mode 100644
index d8121fe..0000000
--- a/e2sm/headers/GlobalE2node-gNB-ID.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_GlobalE2node_gNB_ID_H_
-#define	_GlobalE2node_gNB_ID_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "GlobalgNB-ID.h"
-#include "GNB-CU-UP-ID.h"
-#include "GNB-DU-ID.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* GlobalE2node-gNB-ID */
-typedef struct GlobalE2node_gNB_ID {
-	GlobalgNB_ID_t	 global_gNB_ID;
-	GNB_CU_UP_ID_t	*gNB_CU_UP_ID;	/* OPTIONAL */
-	GNB_DU_ID_t	*gNB_DU_ID;	/* OPTIONAL */
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} GlobalE2node_gNB_ID_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_gNB_ID;
-extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_gNB_ID_specs_1;
-extern asn_TYPE_member_t asn_MBR_GlobalE2node_gNB_ID_1[3];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _GlobalE2node_gNB_ID_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/GlobalE2node-ng-eNB-ID.h b/e2sm/headers/GlobalE2node-ng-eNB-ID.h
deleted file mode 100644
index f959fb8..0000000
--- a/e2sm/headers/GlobalE2node-ng-eNB-ID.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_GlobalE2node_ng_eNB_ID_H_
-#define	_GlobalE2node_ng_eNB_ID_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "GlobalngeNB-ID.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* GlobalE2node-ng-eNB-ID */
-typedef struct GlobalE2node_ng_eNB_ID {
-	GlobalngeNB_ID_t	 global_ng_eNB_ID;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} GlobalE2node_ng_eNB_ID_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ng_eNB_ID;
-extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_ng_eNB_ID_specs_1;
-extern asn_TYPE_member_t asn_MBR_GlobalE2node_ng_eNB_ID_1[1];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _GlobalE2node_ng_eNB_ID_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/GlobalENB-ID.h b/e2sm/headers/GlobalENB-ID.h
old mode 100644
new mode 100755
index 274bd8c..df70c24
--- a/e2sm/headers/GlobalENB-ID.h
+++ b/e2sm/headers/GlobalENB-ID.h
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
@@ -12,7 +12,7 @@
 #include <asn_application.h>
 
 /* Including external dependencies */
-#include "PLMN-Identity.h"
+#include "PLMNIdentity.h"
 #include "ENB-ID.h"
 #include <constr_SEQUENCE.h>
 
@@ -22,7 +22,7 @@
 
 /* GlobalENB-ID */
 typedef struct GlobalENB_ID {
-	PLMN_Identity_t	 pLMN_Identity;
+	PLMNIdentity_t	 pLMNIdentity;
 	ENB_ID_t	 eNB_ID;
 	/*
 	 * This type is extensible,
diff --git a/e2sm/headers/GlobalGNB-ID.h b/e2sm/headers/GlobalGNB-ID.h
new file mode 100755
index 0000000..a5d2a1a
--- /dev/null
+++ b/e2sm/headers/GlobalGNB-ID.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_GlobalGNB_ID_H_
+#define	_GlobalGNB_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMNIdentity.h"
+#include "GNB-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* GlobalGNB-ID */
+typedef struct GlobalGNB_ID {
+	PLMNIdentity_t	 pLMNIdentity;
+	GNB_ID_t	 gNB_ID;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} GlobalGNB_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GlobalGNB_ID;
+extern asn_SEQUENCE_specifics_t asn_SPC_GlobalGNB_ID_specs_1;
+extern asn_TYPE_member_t asn_MBR_GlobalGNB_ID_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _GlobalGNB_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/GlobalKPMnode-ID.h b/e2sm/headers/GlobalKPMnode-ID.h
deleted file mode 100644
index bbac962..0000000
--- a/e2sm/headers/GlobalKPMnode-ID.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-IEs"
- * 	found in "E2SM-KPM-Prespec.asn"
- * 	`asn1c -D ./e2sm-kpm -gen-PER`
- */
-
-#ifndef	_GlobalKPMnode_ID_H_
-#define	_GlobalKPMnode_ID_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "GlobalKPMnode-gNB-ID.h"
-#include "GlobalKPMnode-en-gNB-ID.h"
-#include "GlobalKPMnode-ng-eNB-ID.h"
-#include "GlobalKPMnode-eNB-ID.h"
-#include <constr_CHOICE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Dependencies */
-typedef enum GlobalKPMnode_ID_PR {
-	GlobalKPMnode_ID_PR_NOTHING,	/* No components present */
-	GlobalKPMnode_ID_PR_gNB,
-	GlobalKPMnode_ID_PR_en_gNB,
-	GlobalKPMnode_ID_PR_ng_eNB,
-	GlobalKPMnode_ID_PR_eNB
-	/* Extensions may appear below */
-	
-} GlobalKPMnode_ID_PR;
-
-/* GlobalKPMnode-ID */
-typedef struct GlobalKPMnode_ID {
-	GlobalKPMnode_ID_PR present;
-	union GlobalKPMnode_ID_u {
-		GlobalKPMnode_gNB_ID_t	 gNB;
-		GlobalKPMnode_en_gNB_ID_t	 en_gNB;
-		GlobalKPMnode_ng_eNB_ID_t	 ng_eNB;
-		GlobalKPMnode_eNB_ID_t	 eNB;
-		/*
-		 * This type is extensible,
-		 * possible extensions are below.
-		 */
-	} choice;
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} GlobalKPMnode_ID_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_ID;
-extern asn_CHOICE_specifics_t asn_SPC_GlobalKPMnode_ID_specs_1;
-extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_ID_1[4];
-extern asn_per_constraints_t asn_PER_type_GlobalKPMnode_ID_constr_1;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _GlobalKPMnode_ID_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/GlobalKPMnode-eNB-ID.h b/e2sm/headers/GlobalKPMnode-eNB-ID.h
deleted file mode 100644
index 7ebf223..0000000
--- a/e2sm/headers/GlobalKPMnode-eNB-ID.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-IEs"
- * 	found in "E2SM-KPM-Prespec.asn"
- * 	`asn1c -D ./e2sm-kpm -gen-PER`
- */
-
-#ifndef	_GlobalKPMnode_eNB_ID_H_
-#define	_GlobalKPMnode_eNB_ID_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "GlobalENB-ID.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* GlobalKPMnode-eNB-ID */
-typedef struct GlobalKPMnode_eNB_ID {
-	GlobalENB_ID_t	 global_eNB_ID;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} GlobalKPMnode_eNB_ID_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_eNB_ID;
-extern asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_eNB_ID_specs_1;
-extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_eNB_ID_1[1];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _GlobalKPMnode_eNB_ID_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/GlobalKPMnode-en-gNB-ID.h b/e2sm/headers/GlobalKPMnode-en-gNB-ID.h
deleted file mode 100644
index 37f8a0d..0000000
--- a/e2sm/headers/GlobalKPMnode-en-gNB-ID.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-IEs"
- * 	found in "E2SM-KPM-Prespec.asn"
- * 	`asn1c -D ./e2sm-kpm -gen-PER`
- */
-
-#ifndef	_GlobalKPMnode_en_gNB_ID_H_
-#define	_GlobalKPMnode_en_gNB_ID_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "GlobalenGNB-ID.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* GlobalKPMnode-en-gNB-ID */
-typedef struct GlobalKPMnode_en_gNB_ID {
-	GlobalenGNB_ID_t	 global_gNB_ID;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} GlobalKPMnode_en_gNB_ID_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_en_gNB_ID;
-extern asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_en_gNB_ID_specs_1;
-extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_en_gNB_ID_1[1];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _GlobalKPMnode_en_gNB_ID_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/GlobalKPMnode-gNB-ID.h b/e2sm/headers/GlobalKPMnode-gNB-ID.h
deleted file mode 100644
index f0dcc67..0000000
--- a/e2sm/headers/GlobalKPMnode-gNB-ID.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-IEs"
- * 	found in "E2SM-KPM-Prespec.asn"
- * 	`asn1c -D ./e2sm-kpm -gen-PER`
- */
-
-#ifndef	_GlobalKPMnode_gNB_ID_H_
-#define	_GlobalKPMnode_gNB_ID_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "GlobalgNB-ID.h"
-#include "GNB-CU-UP-ID.h"
-#include "GNB-DU-ID.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* GlobalKPMnode-gNB-ID */
-typedef struct GlobalKPMnode_gNB_ID {
-	GlobalgNB_ID_t	 global_gNB_ID;
-	GNB_CU_UP_ID_t	*gNB_CU_UP_ID;	/* OPTIONAL */
-	GNB_DU_ID_t	*gNB_DU_ID;	/* OPTIONAL */
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} GlobalKPMnode_gNB_ID_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_gNB_ID;
-extern asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_gNB_ID_specs_1;
-extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_gNB_ID_1[3];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _GlobalKPMnode_gNB_ID_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/GlobalKPMnode-ng-eNB-ID.h b/e2sm/headers/GlobalKPMnode-ng-eNB-ID.h
deleted file mode 100644
index faa0a22..0000000
--- a/e2sm/headers/GlobalKPMnode-ng-eNB-ID.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-IEs"
- * 	found in "E2SM-KPM-Prespec.asn"
- * 	`asn1c -D ./e2sm-kpm -gen-PER`
- */
-
-#ifndef	_GlobalKPMnode_ng_eNB_ID_H_
-#define	_GlobalKPMnode_ng_eNB_ID_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "GlobalngeNB-ID.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* GlobalKPMnode-ng-eNB-ID */
-typedef struct GlobalKPMnode_ng_eNB_ID {
-	GlobalngeNB_ID_t	 global_ng_eNB_ID;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} GlobalKPMnode_ng_eNB_ID_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_ng_eNB_ID;
-extern asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_ng_eNB_ID_specs_1;
-extern asn_TYPE_member_t asn_MBR_GlobalKPMnode_ng_eNB_ID_1[1];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _GlobalKPMnode_ng_eNB_ID_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/GlobalNGRANNodeID.h b/e2sm/headers/GlobalNGRANNodeID.h
new file mode 100755
index 0000000..4ccdab0
--- /dev/null
+++ b/e2sm/headers/GlobalNGRANNodeID.h
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_GlobalNGRANNodeID_H_
+#define	_GlobalNGRANNodeID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum GlobalNGRANNodeID_PR {
+	GlobalNGRANNodeID_PR_NOTHING,	/* No components present */
+	GlobalNGRANNodeID_PR_gNB,
+	GlobalNGRANNodeID_PR_ng_eNB
+	/* Extensions may appear below */
+	
+} GlobalNGRANNodeID_PR;
+
+/* Forward declarations */
+struct GlobalGNB_ID;
+struct GlobalNgENB_ID;
+
+/* GlobalNGRANNodeID */
+typedef struct GlobalNGRANNodeID {
+	GlobalNGRANNodeID_PR present;
+	union GlobalNGRANNodeID_u {
+		struct GlobalGNB_ID	*gNB;
+		struct GlobalNgENB_ID	*ng_eNB;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} GlobalNGRANNodeID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GlobalNGRANNodeID;
+extern asn_CHOICE_specifics_t asn_SPC_GlobalNGRANNodeID_specs_1;
+extern asn_TYPE_member_t asn_MBR_GlobalNGRANNodeID_1[2];
+extern asn_per_constraints_t asn_PER_type_GlobalNGRANNodeID_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _GlobalNGRANNodeID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/GlobalNgENB-ID.h b/e2sm/headers/GlobalNgENB-ID.h
new file mode 100755
index 0000000..339339b
--- /dev/null
+++ b/e2sm/headers/GlobalNgENB-ID.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_GlobalNgENB_ID_H_
+#define	_GlobalNgENB_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMNIdentity.h"
+#include "NgENB-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* GlobalNgENB-ID */
+typedef struct GlobalNgENB_ID {
+	PLMNIdentity_t	 pLMNIdentity;
+	NgENB_ID_t	 ngENB_ID;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} GlobalNgENB_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GlobalNgENB_ID;
+extern asn_SEQUENCE_specifics_t asn_SPC_GlobalNgENB_ID_specs_1;
+extern asn_TYPE_member_t asn_MBR_GlobalNgENB_ID_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _GlobalNgENB_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/GlobalenGNB-ID.h b/e2sm/headers/GlobalenGNB-ID.h
old mode 100644
new mode 100755
index 40f06c8..c80d0c5
--- a/e2sm/headers/GlobalenGNB-ID.h
+++ b/e2sm/headers/GlobalenGNB-ID.h
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
@@ -12,8 +12,8 @@
 #include <asn_application.h>
 
 /* Including external dependencies */
-#include "PLMN-Identity.h"
-#include "ENGNB-ID.h"
+#include "PLMNIdentity.h"
+#include "EN-GNB-ID.h"
 #include <constr_SEQUENCE.h>
 
 #ifdef __cplusplus
@@ -22,8 +22,8 @@
 
 /* GlobalenGNB-ID */
 typedef struct GlobalenGNB_ID {
-	PLMN_Identity_t	 pLMN_Identity;
-	ENGNB_ID_t	 gNB_ID;
+	PLMNIdentity_t	 pLMN_Identity;
+	EN_GNB_ID_t	 en_gNB_ID;
 	/*
 	 * This type is extensible,
 	 * possible extensions are below.
diff --git a/e2sm/headers/GlobalgNB-ID.h b/e2sm/headers/GlobalgNB-ID.h
deleted file mode 100644
index 7b0364d..0000000
--- a/e2sm/headers/GlobalgNB-ID.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_GlobalgNB_ID_H_
-#define	_GlobalgNB_ID_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "PLMN-Identity.h"
-#include "GNB-ID-Choice.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* GlobalgNB-ID */
-typedef struct GlobalgNB_ID {
-	PLMN_Identity_t	 plmn_id;
-	GNB_ID_Choice_t	 gnb_id;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} GlobalgNB_ID_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_GlobalgNB_ID;
-extern asn_SEQUENCE_specifics_t asn_SPC_GlobalgNB_ID_specs_1;
-extern asn_TYPE_member_t asn_MBR_GlobalgNB_ID_1[2];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _GlobalgNB_ID_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/GlobalngeNB-ID.h b/e2sm/headers/GlobalngeNB-ID.h
deleted file mode 100644
index a6ab832..0000000
--- a/e2sm/headers/GlobalngeNB-ID.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_GlobalngeNB_ID_H_
-#define	_GlobalngeNB_ID_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "PLMN-Identity.h"
-#include "ENB-ID-Choice.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* GlobalngeNB-ID */
-typedef struct GlobalngeNB_ID {
-	PLMN_Identity_t	 plmn_id;
-	ENB_ID_Choice_t	 enb_id;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} GlobalngeNB_ID_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_GlobalngeNB_ID;
-extern asn_SEQUENCE_specifics_t asn_SPC_GlobalngeNB_ID_specs_1;
-extern asn_TYPE_member_t asn_MBR_GlobalngeNB_ID_1[2];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _GlobalngeNB_ID_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/GroupID.h b/e2sm/headers/GroupID.h
new file mode 100755
index 0000000..bc418bb
--- /dev/null
+++ b/e2sm/headers/GroupID.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_GroupID_H_
+#define	_GroupID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "FiveQI.h"
+#include "QCI.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum GroupID_PR {
+	GroupID_PR_NOTHING,	/* No components present */
+	GroupID_PR_fiveGC,
+	GroupID_PR_ePC
+	/* Extensions may appear below */
+	
+} GroupID_PR;
+
+/* GroupID */
+typedef struct GroupID {
+	GroupID_PR present;
+	union GroupID_u {
+		FiveQI_t	 fiveGC;
+		QCI_t	 ePC;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} GroupID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_GroupID;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _GroupID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/INTEGER.h b/e2sm/headers/INTEGER.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/IndexToRFSP.h b/e2sm/headers/IndexToRFSP.h
new file mode 100755
index 0000000..75a8d3b
--- /dev/null
+++ b/e2sm/headers/IndexToRFSP.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_IndexToRFSP_H_
+#define	_IndexToRFSP_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* IndexToRFSP */
+typedef long	 IndexToRFSP_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_IndexToRFSP;
+asn_struct_free_f IndexToRFSP_free;
+asn_struct_print_f IndexToRFSP_print;
+asn_constr_check_f IndexToRFSP_constraint;
+ber_type_decoder_f IndexToRFSP_decode_ber;
+der_type_encoder_f IndexToRFSP_encode_der;
+xer_type_decoder_f IndexToRFSP_decode_xer;
+xer_type_encoder_f IndexToRFSP_encode_xer;
+oer_type_decoder_f IndexToRFSP_decode_oer;
+oer_type_encoder_f IndexToRFSP_encode_oer;
+per_type_decoder_f IndexToRFSP_decode_uper;
+per_type_encoder_f IndexToRFSP_encode_uper;
+per_type_decoder_f IndexToRFSP_decode_aper;
+per_type_encoder_f IndexToRFSP_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _IndexToRFSP_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/InsertIndication-RANParameter-Item.h b/e2sm/headers/InsertIndication-RANParameter-Item.h
new file mode 100755
index 0000000..41c9327
--- /dev/null
+++ b/e2sm/headers/InsertIndication-RANParameter-Item.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_InsertIndication_RANParameter_Item_H_
+#define	_InsertIndication_RANParameter_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANParameter-ID.h"
+#include "RANParameter-Name.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RANParameter_Definition;
+
+/* InsertIndication-RANParameter-Item */
+typedef struct InsertIndication_RANParameter_Item {
+	RANParameter_ID_t	 ranParameter_ID;
+	RANParameter_Name_t	 ranParameter_name;
+	/*
+	 * 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;
+} InsertIndication_RANParameter_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_InsertIndication_RANParameter_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_InsertIndication_RANParameter_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_InsertIndication_RANParameter_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _InsertIndication_RANParameter_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/Interface-MessageID.h b/e2sm/headers/Interface-MessageID.h
new file mode 100755
index 0000000..5a9fbb0
--- /dev/null
+++ b/e2sm/headers/Interface-MessageID.h
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_Interface_MessageID_H_
+#define	_Interface_MessageID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include <NativeEnumerated.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum Interface_MessageID__messageType {
+	Interface_MessageID__messageType_initiatingMessage	= 0,
+	Interface_MessageID__messageType_successfulOutcome	= 1,
+	Interface_MessageID__messageType_unsuccessfulOutcome	= 2
+	/*
+	 * Enumeration is extensible
+	 */
+} e_Interface_MessageID__messageType;
+
+/* Interface-MessageID */
+typedef struct Interface_MessageID {
+	long	 interfaceProcedureID;
+	long	 messageType;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} Interface_MessageID_t;
+
+/* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_messageType_3;	// (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_Interface_MessageID;
+extern asn_SEQUENCE_specifics_t asn_SPC_Interface_MessageID_specs_1;
+extern asn_TYPE_member_t asn_MBR_Interface_MessageID_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _Interface_MessageID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/InterfaceID-E1.h b/e2sm/headers/InterfaceID-E1.h
new file mode 100755
index 0000000..e015a36
--- /dev/null
+++ b/e2sm/headers/InterfaceID-E1.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_InterfaceID_E1_H_
+#define	_InterfaceID_E1_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "GlobalGNB-ID.h"
+#include "GNB-CU-UP-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* InterfaceID-E1 */
+typedef struct InterfaceID_E1 {
+	GlobalGNB_ID_t	 globalGNB_ID;
+	GNB_CU_UP_ID_t	 gNB_CU_UP_ID;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} InterfaceID_E1_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_InterfaceID_E1;
+extern asn_SEQUENCE_specifics_t asn_SPC_InterfaceID_E1_specs_1;
+extern asn_TYPE_member_t asn_MBR_InterfaceID_E1_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _InterfaceID_E1_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/InterfaceID-F1.h b/e2sm/headers/InterfaceID-F1.h
new file mode 100755
index 0000000..e072442
--- /dev/null
+++ b/e2sm/headers/InterfaceID-F1.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_InterfaceID_F1_H_
+#define	_InterfaceID_F1_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "GlobalGNB-ID.h"
+#include "GNB-DU-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* InterfaceID-F1 */
+typedef struct InterfaceID_F1 {
+	GlobalGNB_ID_t	 globalGNB_ID;
+	GNB_DU_ID_t	 gNB_DU_ID;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} InterfaceID_F1_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_InterfaceID_F1;
+extern asn_SEQUENCE_specifics_t asn_SPC_InterfaceID_F1_specs_1;
+extern asn_TYPE_member_t asn_MBR_InterfaceID_F1_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _InterfaceID_F1_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/InterfaceID-NG.h b/e2sm/headers/InterfaceID-NG.h
new file mode 100755
index 0000000..8a3b0b4
--- /dev/null
+++ b/e2sm/headers/InterfaceID-NG.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_InterfaceID_NG_H_
+#define	_InterfaceID_NG_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "GUAMI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* InterfaceID-NG */
+typedef struct InterfaceID_NG {
+	GUAMI_t	 guami;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} InterfaceID_NG_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_InterfaceID_NG;
+extern asn_SEQUENCE_specifics_t asn_SPC_InterfaceID_NG_specs_1;
+extern asn_TYPE_member_t asn_MBR_InterfaceID_NG_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _InterfaceID_NG_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/InterfaceID-S1.h b/e2sm/headers/InterfaceID-S1.h
new file mode 100755
index 0000000..cb4267c
--- /dev/null
+++ b/e2sm/headers/InterfaceID-S1.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_InterfaceID_S1_H_
+#define	_InterfaceID_S1_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "GUMMEI.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* InterfaceID-S1 */
+typedef struct InterfaceID_S1 {
+	GUMMEI_t	 gUMMEI;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} InterfaceID_S1_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_InterfaceID_S1;
+extern asn_SEQUENCE_specifics_t asn_SPC_InterfaceID_S1_specs_1;
+extern asn_TYPE_member_t asn_MBR_InterfaceID_S1_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _InterfaceID_S1_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/InterfaceID-W1.h b/e2sm/headers/InterfaceID-W1.h
new file mode 100755
index 0000000..7005ac9
--- /dev/null
+++ b/e2sm/headers/InterfaceID-W1.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_InterfaceID_W1_H_
+#define	_InterfaceID_W1_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "GlobalNgENB-ID.h"
+#include "NGENB-DU-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* InterfaceID-W1 */
+typedef struct InterfaceID_W1 {
+	GlobalNgENB_ID_t	 global_ng_eNB_ID;
+	NGENB_DU_ID_t	 ng_eNB_DU_ID;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} InterfaceID_W1_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_InterfaceID_W1;
+extern asn_SEQUENCE_specifics_t asn_SPC_InterfaceID_W1_specs_1;
+extern asn_TYPE_member_t asn_MBR_InterfaceID_W1_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _InterfaceID_W1_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/InterfaceID-X2.h b/e2sm/headers/InterfaceID-X2.h
new file mode 100755
index 0000000..c036b5f
--- /dev/null
+++ b/e2sm/headers/InterfaceID-X2.h
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_InterfaceID_X2_H_
+#define	_InterfaceID_X2_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum InterfaceID_X2__nodeType_PR {
+	InterfaceID_X2__nodeType_PR_NOTHING,	/* No components present */
+	InterfaceID_X2__nodeType_PR_global_eNB_ID,
+	InterfaceID_X2__nodeType_PR_global_en_gNB_ID
+	/* Extensions may appear below */
+	
+} InterfaceID_X2__nodeType_PR;
+
+/* Forward declarations */
+struct GlobalENB_ID;
+struct GlobalenGNB_ID;
+
+/* InterfaceID-X2 */
+typedef struct InterfaceID_X2 {
+	struct InterfaceID_X2__nodeType {
+		InterfaceID_X2__nodeType_PR present;
+		union InterfaceID_X2__nodeType_u {
+			struct GlobalENB_ID	*global_eNB_ID;
+			struct GlobalenGNB_ID	*global_en_gNB_ID;
+			/*
+			 * This type is extensible,
+			 * possible extensions are below.
+			 */
+		} choice;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} nodeType;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} InterfaceID_X2_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_InterfaceID_X2;
+extern asn_SEQUENCE_specifics_t asn_SPC_InterfaceID_X2_specs_1;
+extern asn_TYPE_member_t asn_MBR_InterfaceID_X2_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _InterfaceID_X2_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/InterfaceID-Xn.h b/e2sm/headers/InterfaceID-Xn.h
new file mode 100755
index 0000000..1cc807a
--- /dev/null
+++ b/e2sm/headers/InterfaceID-Xn.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_InterfaceID_Xn_H_
+#define	_InterfaceID_Xn_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "GlobalNGRANNodeID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* InterfaceID-Xn */
+typedef struct InterfaceID_Xn {
+	GlobalNGRANNodeID_t	 global_NG_RAN_ID;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} InterfaceID_Xn_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_InterfaceID_Xn;
+extern asn_SEQUENCE_specifics_t asn_SPC_InterfaceID_Xn_specs_1;
+extern asn_TYPE_member_t asn_MBR_InterfaceID_Xn_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _InterfaceID_Xn_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/InterfaceIdentifier.h b/e2sm/headers/InterfaceIdentifier.h
new file mode 100755
index 0000000..041c122
--- /dev/null
+++ b/e2sm/headers/InterfaceIdentifier.h
@@ -0,0 +1,76 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_InterfaceIdentifier_H_
+#define	_InterfaceIdentifier_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum InterfaceIdentifier_PR {
+	InterfaceIdentifier_PR_NOTHING,	/* No components present */
+	InterfaceIdentifier_PR_nG,
+	InterfaceIdentifier_PR_xN,
+	InterfaceIdentifier_PR_f1,
+	InterfaceIdentifier_PR_e1,
+	InterfaceIdentifier_PR_s1,
+	InterfaceIdentifier_PR_x2,
+	InterfaceIdentifier_PR_w1
+	/* Extensions may appear below */
+	
+} InterfaceIdentifier_PR;
+
+/* Forward declarations */
+struct InterfaceID_NG;
+struct InterfaceID_Xn;
+struct InterfaceID_F1;
+struct InterfaceID_E1;
+struct InterfaceID_S1;
+struct InterfaceID_X2;
+struct InterfaceID_W1;
+
+/* InterfaceIdentifier */
+typedef struct InterfaceIdentifier {
+	InterfaceIdentifier_PR present;
+	union InterfaceIdentifier_u {
+		struct InterfaceID_NG	*nG;
+		struct InterfaceID_Xn	*xN;
+		struct InterfaceID_F1	*f1;
+		struct InterfaceID_E1	*e1;
+		struct InterfaceID_S1	*s1;
+		struct InterfaceID_X2	*x2;
+		struct InterfaceID_W1	*w1;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} InterfaceIdentifier_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_InterfaceIdentifier;
+extern asn_CHOICE_specifics_t asn_SPC_InterfaceIdentifier_specs_1;
+extern asn_TYPE_member_t asn_MBR_InterfaceIdentifier_1[7];
+extern asn_per_constraints_t asn_PER_type_InterfaceIdentifier_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _InterfaceIdentifier_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/InterfaceType.h b/e2sm/headers/InterfaceType.h
new file mode 100755
index 0000000..1c2f84e
--- /dev/null
+++ b/e2sm/headers/InterfaceType.h
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_InterfaceType_H_
+#define	_InterfaceType_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum InterfaceType {
+	InterfaceType_nG	= 0,
+	InterfaceType_xn	= 1,
+	InterfaceType_f1	= 2,
+	InterfaceType_e1	= 3,
+	InterfaceType_s1	= 4,
+	InterfaceType_x2	= 5,
+	InterfaceType_w1	= 6
+	/*
+	 * Enumeration is extensible
+	 */
+} e_InterfaceType;
+
+/* InterfaceType */
+typedef long	 InterfaceType_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_InterfaceType_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_InterfaceType;
+extern const asn_INTEGER_specifics_t asn_SPC_InterfaceType_specs_1;
+asn_struct_free_f InterfaceType_free;
+asn_struct_print_f InterfaceType_print;
+asn_constr_check_f InterfaceType_constraint;
+ber_type_decoder_f InterfaceType_decode_ber;
+der_type_encoder_f InterfaceType_encode_der;
+xer_type_decoder_f InterfaceType_decode_xer;
+xer_type_encoder_f InterfaceType_encode_xer;
+oer_type_decoder_f InterfaceType_decode_oer;
+oer_type_encoder_f InterfaceType_encode_oer;
+per_type_decoder_f InterfaceType_decode_uper;
+per_type_encoder_f InterfaceType_encode_uper;
+per_type_decoder_f InterfaceType_decode_aper;
+per_type_encoder_f InterfaceType_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _InterfaceType_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/L2Parameters-RANParameter-Item.h b/e2sm/headers/L2Parameters-RANParameter-Item.h
new file mode 100755
index 0000000..cddc6d4
--- /dev/null
+++ b/e2sm/headers/L2Parameters-RANParameter-Item.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_L2Parameters_RANParameter_Item_H_
+#define	_L2Parameters_RANParameter_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANParameter-ID.h"
+#include "RANParameter-Name.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RANParameter_Definition;
+
+/* L2Parameters-RANParameter-Item */
+typedef struct L2Parameters_RANParameter_Item {
+	RANParameter_ID_t	 ranParameter_ID;
+	RANParameter_Name_t	 ranParameter_Name;
+	/*
+	 * 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;
+} L2Parameters_RANParameter_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_L2Parameters_RANParameter_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_L2Parameters_RANParameter_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_L2Parameters_RANParameter_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _L2Parameters_RANParameter_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/L3-RRC-Measurements.h b/e2sm/headers/L3-RRC-Measurements.h
deleted file mode 100644
index eb51c5c..0000000
--- a/e2sm/headers/L3-RRC-Measurements.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_L3_RRC_Measurements_H_
-#define	_L3_RRC_Measurements_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "RRCEvent.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Forward declarations */
-struct ServingCellMeasurements;
-struct MeasResultNeighCells;
-
-/* L3-RRC-Measurements */
-typedef struct L3_RRC_Measurements {
-	RRCEvent_t	 rrcEvent;
-	struct ServingCellMeasurements	*servingCellMeasurements;	/* OPTIONAL */
-	struct MeasResultNeighCells	*measResultNeighCells;	/* OPTIONAL */
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} L3_RRC_Measurements_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_L3_RRC_Measurements;
-extern asn_SEQUENCE_specifics_t asn_SPC_L3_RRC_Measurements_specs_1;
-extern asn_TYPE_member_t asn_MBR_L3_RRC_Measurements_1[3];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _L3_RRC_Measurements_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/LogicalOR.h b/e2sm/headers/LogicalOR.h
new file mode 100755
index 0000000..e3464be
--- /dev/null
+++ b/e2sm/headers/LogicalOR.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_LogicalOR_H_
+#define	_LogicalOR_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum LogicalOR {
+	LogicalOR_true	= 0,
+	LogicalOR_false	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_LogicalOR;
+
+/* LogicalOR */
+typedef long	 LogicalOR_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_LogicalOR_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_LogicalOR;
+extern const asn_INTEGER_specifics_t asn_SPC_LogicalOR_specs_1;
+asn_struct_free_f LogicalOR_free;
+asn_struct_print_f LogicalOR_print;
+asn_constr_check_f LogicalOR_constraint;
+ber_type_decoder_f LogicalOR_decode_ber;
+der_type_encoder_f LogicalOR_encode_der;
+xer_type_decoder_f LogicalOR_decode_xer;
+xer_type_encoder_f LogicalOR_encode_xer;
+oer_type_decoder_f LogicalOR_decode_oer;
+oer_type_encoder_f LogicalOR_encode_oer;
+per_type_decoder_f LogicalOR_decode_uper;
+per_type_encoder_f LogicalOR_encode_uper;
+per_type_decoder_f LogicalOR_decode_aper;
+per_type_encoder_f LogicalOR_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _LogicalOR_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/MME-Code.h b/e2sm/headers/MME-Code.h
new file mode 100755
index 0000000..b2819e3
--- /dev/null
+++ b/e2sm/headers/MME-Code.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_MME_Code_H_
+#define	_MME_Code_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MME-Code */
+typedef OCTET_STRING_t	 MME_Code_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_MME_Code_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_MME_Code;
+asn_struct_free_f MME_Code_free;
+asn_struct_print_f MME_Code_print;
+asn_constr_check_f MME_Code_constraint;
+ber_type_decoder_f MME_Code_decode_ber;
+der_type_encoder_f MME_Code_encode_der;
+xer_type_decoder_f MME_Code_decode_xer;
+xer_type_encoder_f MME_Code_encode_xer;
+oer_type_decoder_f MME_Code_decode_oer;
+oer_type_encoder_f MME_Code_encode_oer;
+per_type_decoder_f MME_Code_decode_uper;
+per_type_encoder_f MME_Code_encode_uper;
+per_type_decoder_f MME_Code_decode_aper;
+per_type_encoder_f MME_Code_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _MME_Code_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/MME-Group-ID.h b/e2sm/headers/MME-Group-ID.h
new file mode 100755
index 0000000..9c06267
--- /dev/null
+++ b/e2sm/headers/MME-Group-ID.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_MME_Group_ID_H_
+#define	_MME_Group_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MME-Group-ID */
+typedef OCTET_STRING_t	 MME_Group_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_MME_Group_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_MME_Group_ID;
+asn_struct_free_f MME_Group_ID_free;
+asn_struct_print_f MME_Group_ID_print;
+asn_constr_check_f MME_Group_ID_constraint;
+ber_type_decoder_f MME_Group_ID_decode_ber;
+der_type_encoder_f MME_Group_ID_encode_der;
+xer_type_decoder_f MME_Group_ID_decode_xer;
+xer_type_encoder_f MME_Group_ID_encode_xer;
+oer_type_decoder_f MME_Group_ID_decode_oer;
+oer_type_encoder_f MME_Group_ID_encode_oer;
+per_type_decoder_f MME_Group_ID_decode_uper;
+per_type_encoder_f MME_Group_ID_encode_uper;
+per_type_decoder_f MME_Group_ID_decode_aper;
+per_type_encoder_f MME_Group_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _MME_Group_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/MME-UE-S1AP-ID.h b/e2sm/headers/MME-UE-S1AP-ID.h
new file mode 100755
index 0000000..b7d95e3
--- /dev/null
+++ b/e2sm/headers/MME-UE-S1AP-ID.h
@@ -0,0 +1,47 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_MME_UE_S1AP_ID_H_
+#define	_MME_UE_S1AP_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MME-UE-S1AP-ID */
+typedef unsigned long	 MME_UE_S1AP_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_MME_UE_S1AP_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_MME_UE_S1AP_ID;
+extern const asn_INTEGER_specifics_t asn_SPC_MME_UE_S1AP_ID_specs_1;
+asn_struct_free_f MME_UE_S1AP_ID_free;
+asn_struct_print_f MME_UE_S1AP_ID_print;
+asn_constr_check_f MME_UE_S1AP_ID_constraint;
+ber_type_decoder_f MME_UE_S1AP_ID_decode_ber;
+der_type_encoder_f MME_UE_S1AP_ID_encode_der;
+xer_type_decoder_f MME_UE_S1AP_ID_decode_xer;
+xer_type_encoder_f MME_UE_S1AP_ID_encode_xer;
+oer_type_decoder_f MME_UE_S1AP_ID_decode_oer;
+oer_type_encoder_f MME_UE_S1AP_ID_encode_oer;
+per_type_decoder_f MME_UE_S1AP_ID_decode_uper;
+per_type_encoder_f MME_UE_S1AP_ID_encode_uper;
+per_type_decoder_f MME_UE_S1AP_ID_decode_aper;
+per_type_encoder_f MME_UE_S1AP_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _MME_UE_S1AP_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/Makefile.am.libasncodec b/e2sm/headers/Makefile.am.libasncodec
deleted file mode 100644
index accc816..0000000
--- a/e2sm/headers/Makefile.am.libasncodec
+++ /dev/null
@@ -1,344 +0,0 @@
-ASN_MODULE_SRCS=	\
-	./gen_files/Criticality.c	\
-	./gen_files/Presence.c	\
-	./gen_files/ProcedureCode.c	\
-	./gen_files/ProtocolIE-ID.c	\
-	./gen_files/TriggeringMessage.c	\
-	./gen_files/E2SM-KPM-RANFunctionDefinition.c	\
-	./gen_files/RIC-ReportStyle-Item.c	\
-	./gen_files/E2SM-KPM-ActionDefinition.c	\
-	./gen_files/E2SM-KPM-ActionDefinition-Format1.c	\
-	./gen_files/E2SM-KPM-IndicationHeader.c	\
-	./gen_files/E2SM-KPM-IndicationHeader-Format1.c	\
-	./gen_files/E2SM-KPM-IndicationMessage.c	\
-	./gen_files/E2SM-KPM-IndicationMessage-Format1.c	\
-	./gen_files/PM-Containers-Item.c	\
-	./gen_files/PerUE-PM-Item.c	\
-	./gen_files/PM-Info-Item.c	\
-	./gen_files/PF-Container.c	\
-	./gen_files/ODU-PF-Container.c	\
-	./gen_files/CellResourceReportListItem.c	\
-	./gen_files/ServedPlmnPerCellListItem.c	\
-	./gen_files/FGC-DU-PM-Container.c	\
-	./gen_files/SlicePerPlmnPerCellListItem.c	\
-	./gen_files/FQIPERSlicesPerPlmnPerCellListItem.c	\
-	./gen_files/EPC-DU-PM-Container.c	\
-	./gen_files/PerQCIReportListItem.c	\
-	./gen_files/OCUCP-PF-Container.c	\
-	./gen_files/OCUUP-PF-Container.c	\
-	./gen_files/PF-ContainerListItem.c	\
-	./gen_files/CUUPMeasurement-Container.c	\
-	./gen_files/PlmnID-Item.c	\
-	./gen_files/FGC-CUUP-PM-Format.c	\
-	./gen_files/SliceToReportListItem.c	\
-	./gen_files/FQIPERSlicesPerPlmnListItem.c	\
-	./gen_files/EPC-CUUP-PM-Format.c	\
-	./gen_files/PerQCIReportListItemFormat.c	\
-	./gen_files/MeasurementValue.c	\
-	./gen_files/L3-RRC-Measurements.c	\
-	./gen_files/RRCEvent.c	\
-	./gen_files/ServingCellMeasurements.c	\
-	./gen_files/MeasResultServMOList.c	\
-	./gen_files/MeasResultServMO.c	\
-	./gen_files/MeasResultNR.c	\
-	./gen_files/MeasResultListEUTRA.c	\
-	./gen_files/MeasResultEUTRA.c	\
-	./gen_files/MeasResultPCell.c	\
-	./gen_files/MeasResultNeighCells.c	\
-	./gen_files/MeasResultListNR.c	\
-	./gen_files/PhysCellId.c	\
-	./gen_files/ServCellIndex.c	\
-	./gen_files/MeasQuantityResults.c	\
-	./gen_files/MeasQuantityResultsEUTRA.c	\
-	./gen_files/RSRP-RangeEUTRA.c	\
-	./gen_files/RSRQ-RangeEUTRA.c	\
-	./gen_files/SINR-RangeEUTRA.c	\
-	./gen_files/ResultsPerSSB-IndexList.c	\
-	./gen_files/ResultsPerSSB-Index.c	\
-	./gen_files/ResultsPerCSI-RS-IndexList.c	\
-	./gen_files/ResultsPerCSI-RS-Index.c	\
-	./gen_files/SSB-Index.c	\
-	./gen_files/CSI-RS-Index.c	\
-	./gen_files/RSRP-Range.c	\
-	./gen_files/RSRQ-Range.c	\
-	./gen_files/SINR-Range.c	\
-	./gen_files/TimeStamp.c	\
-	./gen_files/CellObjectID.c	\
-	./gen_files/MeasurementInfoList.c	\
-	./gen_files/MeasurementInfoItem.c	\
-	./gen_files/MeasurementType.c	\
-	./gen_files/NRCGI.c	\
-	./gen_files/NRCellIdentity.c	\
-	./gen_files/S-NSSAI.c	\
-	./gen_files/MeasurementTypeName.c	\
-	./gen_files/MeasurementTypeID.c	\
-	./gen_files/FiveQI.c	\
-	./gen_files/QCI.c	\
-	./gen_files/NI-Type.c	\
-	./gen_files/RAN-Container.c	\
-	./gen_files/E2SM-RC-RANFunctionDefinition.c	\
-	./gen_files/RANfunction-Name.c	\
-	./gen_files/RIC-EventTriggerStyle-Item.c	\
-	./gen_files/RIC-ControlStyle-Item.c	\
-	./gen_files/RIC-ControlAction-Item.c	\
-	./gen_files/RAN-ControlParameter-Item.c	\
-	./gen_files/E2SM-RC-ControlHeader.c	\
-	./gen_files/E2SM-RC-ControlHeader-Format1.c	\
-	./gen_files/E2SM-RC-ControlMessage.c	\
-	./gen_files/E2SM-RC-ControlMessage-Format1.c	\
-	./gen_files/RANParameter-Item.c	\
-	./gen_files/RANParameter-ValueType.c	\
-	./gen_files/RANParameter-ELEMENT.c	\
-	./gen_files/RANParameter-STRUCTURE.c	\
-	./gen_files/RANParameter-LIST.c	\
-	./gen_files/RANParameter-Value.c	\
-	./gen_files/UE-Identity.c	\
-	./gen_files/RIC-Style-Type.c	\
-	./gen_files/RIC-Style-Name.c	\
-	./gen_files/RIC-Format-Type.c	\
-	./gen_files/RANParameter-ID.c	\
-	./gen_files/RANParameter-Name.c	\
-	./gen_files/RIC-ControlAction-ID.c	\
-	./gen_files/RIC-ControlAction-Name.c	\
-	./gen_files/E2SM-KPM-EventTriggerDefinition.c	\
-	./gen_files/E2SM-KPM-EventTriggerDefinition-Format1.c	\
-	./gen_files/Trigger-ConditionIE-Item.c	\
-	./gen_files/RT-Period-IE.c	\
-	./gen_files/RANcallProcess-ID-string.c	\
-	./gen_files/PLMN-Identity.c	\
-	./gen_files/GlobalE2node-ID.c	\
-	./gen_files/GlobalE2node-en-gNB-ID.c	\
-	./gen_files/GlobalE2node-eNB-ID.c	\
-	./gen_files/GlobalE2node-gNB-ID.c	\
-	./gen_files/GlobalE2node-ng-eNB-ID.c	\
-	./gen_files/GlobalENB-ID.c	\
-	./gen_files/GlobalenGNB-ID.c	\
-	./gen_files/GlobalgNB-ID.c	\
-	./gen_files/GlobalngeNB-ID.c	\
-	./gen_files/GNB-ID-Choice.c	\
-	./gen_files/ENB-ID-Choice.c	\
-	./gen_files/ENB-ID.c	\
-	./gen_files/ENGNB-ID.c	\
-	./gen_files/GNB-CU-UP-ID.c	\
-	./gen_files/GNB-DU-ID.c
-
-ASN_MODULE_HDRS=	\
-	./gen_files/Criticality.h	\
-	./gen_files/Presence.h	\
-	./gen_files/ProcedureCode.h	\
-	./gen_files/ProtocolIE-ID.h	\
-	./gen_files/TriggeringMessage.h	\
-	./gen_files/E2SM-KPM-RANFunctionDefinition.h	\
-	./gen_files/RIC-ReportStyle-Item.h	\
-	./gen_files/E2SM-KPM-ActionDefinition.h	\
-	./gen_files/E2SM-KPM-ActionDefinition-Format1.h	\
-	./gen_files/E2SM-KPM-IndicationHeader.h	\
-	./gen_files/E2SM-KPM-IndicationHeader-Format1.h	\
-	./gen_files/E2SM-KPM-IndicationMessage.h	\
-	./gen_files/E2SM-KPM-IndicationMessage-Format1.h	\
-	./gen_files/PM-Containers-Item.h	\
-	./gen_files/PerUE-PM-Item.h	\
-	./gen_files/PM-Info-Item.h	\
-	./gen_files/PF-Container.h	\
-	./gen_files/ODU-PF-Container.h	\
-	./gen_files/CellResourceReportListItem.h	\
-	./gen_files/ServedPlmnPerCellListItem.h	\
-	./gen_files/FGC-DU-PM-Container.h	\
-	./gen_files/SlicePerPlmnPerCellListItem.h	\
-	./gen_files/FQIPERSlicesPerPlmnPerCellListItem.h	\
-	./gen_files/EPC-DU-PM-Container.h	\
-	./gen_files/PerQCIReportListItem.h	\
-	./gen_files/OCUCP-PF-Container.h	\
-	./gen_files/OCUUP-PF-Container.h	\
-	./gen_files/PF-ContainerListItem.h	\
-	./gen_files/CUUPMeasurement-Container.h	\
-	./gen_files/PlmnID-Item.h	\
-	./gen_files/FGC-CUUP-PM-Format.h	\
-	./gen_files/SliceToReportListItem.h	\
-	./gen_files/FQIPERSlicesPerPlmnListItem.h	\
-	./gen_files/EPC-CUUP-PM-Format.h	\
-	./gen_files/PerQCIReportListItemFormat.h	\
-	./gen_files/MeasurementValue.h	\
-	./gen_files/L3-RRC-Measurements.h	\
-	./gen_files/RRCEvent.h	\
-	./gen_files/ServingCellMeasurements.h	\
-	./gen_files/MeasResultServMOList.h	\
-	./gen_files/MeasResultServMO.h	\
-	./gen_files/MeasResultNR.h	\
-	./gen_files/MeasResultListEUTRA.h	\
-	./gen_files/MeasResultEUTRA.h	\
-	./gen_files/MeasResultPCell.h	\
-	./gen_files/MeasResultNeighCells.h	\
-	./gen_files/MeasResultListNR.h	\
-	./gen_files/PhysCellId.h	\
-	./gen_files/ServCellIndex.h	\
-	./gen_files/MeasQuantityResults.h	\
-	./gen_files/MeasQuantityResultsEUTRA.h	\
-	./gen_files/RSRP-RangeEUTRA.h	\
-	./gen_files/RSRQ-RangeEUTRA.h	\
-	./gen_files/SINR-RangeEUTRA.h	\
-	./gen_files/ResultsPerSSB-IndexList.h	\
-	./gen_files/ResultsPerSSB-Index.h	\
-	./gen_files/ResultsPerCSI-RS-IndexList.h	\
-	./gen_files/ResultsPerCSI-RS-Index.h	\
-	./gen_files/SSB-Index.h	\
-	./gen_files/CSI-RS-Index.h	\
-	./gen_files/RSRP-Range.h	\
-	./gen_files/RSRQ-Range.h	\
-	./gen_files/SINR-Range.h	\
-	./gen_files/TimeStamp.h	\
-	./gen_files/CellObjectID.h	\
-	./gen_files/MeasurementInfoList.h	\
-	./gen_files/MeasurementInfoItem.h	\
-	./gen_files/MeasurementType.h	\
-	./gen_files/NRCGI.h	\
-	./gen_files/NRCellIdentity.h	\
-	./gen_files/S-NSSAI.h	\
-	./gen_files/MeasurementTypeName.h	\
-	./gen_files/MeasurementTypeID.h	\
-	./gen_files/FiveQI.h	\
-	./gen_files/QCI.h	\
-	./gen_files/NI-Type.h	\
-	./gen_files/RAN-Container.h	\
-	./gen_files/E2SM-RC-RANFunctionDefinition.h	\
-	./gen_files/RANfunction-Name.h	\
-	./gen_files/RIC-EventTriggerStyle-Item.h	\
-	./gen_files/RIC-ControlStyle-Item.h	\
-	./gen_files/RIC-ControlAction-Item.h	\
-	./gen_files/RAN-ControlParameter-Item.h	\
-	./gen_files/E2SM-RC-ControlHeader.h	\
-	./gen_files/E2SM-RC-ControlHeader-Format1.h	\
-	./gen_files/E2SM-RC-ControlMessage.h	\
-	./gen_files/E2SM-RC-ControlMessage-Format1.h	\
-	./gen_files/RANParameter-Item.h	\
-	./gen_files/RANParameter-ValueType.h	\
-	./gen_files/RANParameter-ELEMENT.h	\
-	./gen_files/RANParameter-STRUCTURE.h	\
-	./gen_files/RANParameter-LIST.h	\
-	./gen_files/RANParameter-Value.h	\
-	./gen_files/UE-Identity.h	\
-	./gen_files/RIC-Style-Type.h	\
-	./gen_files/RIC-Style-Name.h	\
-	./gen_files/RIC-Format-Type.h	\
-	./gen_files/RANParameter-ID.h	\
-	./gen_files/RANParameter-Name.h	\
-	./gen_files/RIC-ControlAction-ID.h	\
-	./gen_files/RIC-ControlAction-Name.h	\
-	./gen_files/E2SM-KPM-EventTriggerDefinition.h	\
-	./gen_files/E2SM-KPM-EventTriggerDefinition-Format1.h	\
-	./gen_files/Trigger-ConditionIE-Item.h	\
-	./gen_files/RT-Period-IE.h	\
-	./gen_files/RANcallProcess-ID-string.h	\
-	./gen_files/PLMN-Identity.h	\
-	./gen_files/GlobalE2node-ID.h	\
-	./gen_files/GlobalE2node-en-gNB-ID.h	\
-	./gen_files/GlobalE2node-eNB-ID.h	\
-	./gen_files/GlobalE2node-gNB-ID.h	\
-	./gen_files/GlobalE2node-ng-eNB-ID.h	\
-	./gen_files/GlobalENB-ID.h	\
-	./gen_files/GlobalenGNB-ID.h	\
-	./gen_files/GlobalgNB-ID.h	\
-	./gen_files/GlobalngeNB-ID.h	\
-	./gen_files/GNB-ID-Choice.h	\
-	./gen_files/ENB-ID-Choice.h	\
-	./gen_files/ENB-ID.h	\
-	./gen_files/ENGNB-ID.h	\
-	./gen_files/GNB-CU-UP-ID.h	\
-	./gen_files/GNB-DU-ID.h
-
-ASN_MODULE_HDRS+=./gen_files/OPEN_TYPE.h
-ASN_MODULE_SRCS+=./gen_files/OPEN_TYPE.c
-ASN_MODULE_HDRS+=./gen_files/constr_CHOICE.h
-ASN_MODULE_HDRS+=./gen_files/BOOLEAN.h
-ASN_MODULE_SRCS+=./gen_files/BOOLEAN.c
-ASN_MODULE_HDRS+=./gen_files/INTEGER.h
-ASN_MODULE_SRCS+=./gen_files/INTEGER.c
-ASN_MODULE_HDRS+=./gen_files/NULL.h
-ASN_MODULE_SRCS+=./gen_files/NULL.c
-ASN_MODULE_HDRS+=./gen_files/NativeEnumerated.h
-ASN_MODULE_SRCS+=./gen_files/NativeEnumerated.c
-ASN_MODULE_HDRS+=./gen_files/NativeInteger.h
-ASN_MODULE_SRCS+=./gen_files/NativeInteger.c
-ASN_MODULE_HDRS+=./gen_files/NativeReal.h
-ASN_MODULE_SRCS+=./gen_files/NativeReal.c
-ASN_MODULE_HDRS+=./gen_files/REAL.h
-ASN_MODULE_HDRS+=./gen_files/PrintableString.h
-ASN_MODULE_SRCS+=./gen_files/PrintableString.c
-ASN_MODULE_HDRS+=./gen_files/OCTET_STRING.h
-ASN_MODULE_SRCS+=./gen_files/REAL.c
-ASN_MODULE_HDRS+=./gen_files/asn_SEQUENCE_OF.h
-ASN_MODULE_SRCS+=./gen_files/asn_SEQUENCE_OF.c
-ASN_MODULE_HDRS+=./gen_files/asn_SET_OF.h
-ASN_MODULE_SRCS+=./gen_files/asn_SET_OF.c
-ASN_MODULE_SRCS+=./gen_files/constr_CHOICE.c
-ASN_MODULE_HDRS+=./gen_files/constr_SEQUENCE.h
-ASN_MODULE_SRCS+=./gen_files/constr_SEQUENCE.c
-ASN_MODULE_HDRS+=./gen_files/constr_SEQUENCE_OF.h
-ASN_MODULE_SRCS+=./gen_files/constr_SEQUENCE_OF.c
-ASN_MODULE_HDRS+=./gen_files/constr_SET_OF.h
-ASN_MODULE_SRCS+=./gen_files/constr_SET_OF.c
-ASN_MODULE_HDRS+=./gen_files/asn_application.h
-ASN_MODULE_SRCS+=./gen_files/asn_application.c
-ASN_MODULE_HDRS+=./gen_files/asn_ioc.h
-ASN_MODULE_HDRS+=./gen_files/asn_system.h
-ASN_MODULE_HDRS+=./gen_files/asn_codecs.h
-ASN_MODULE_HDRS+=./gen_files/asn_internal.h
-ASN_MODULE_SRCS+=./gen_files/asn_internal.c
-ASN_MODULE_HDRS+=./gen_files/asn_random_fill.h
-ASN_MODULE_SRCS+=./gen_files/asn_random_fill.c
-ASN_MODULE_HDRS+=./gen_files/asn_bit_data.h
-ASN_MODULE_SRCS+=./gen_files/asn_bit_data.c
-ASN_MODULE_SRCS+=./gen_files/OCTET_STRING.c
-ASN_MODULE_HDRS+=./gen_files/BIT_STRING.h
-ASN_MODULE_SRCS+=./gen_files/BIT_STRING.c
-ASN_MODULE_SRCS+=./gen_files/asn_codecs_prim.c
-ASN_MODULE_HDRS+=./gen_files/asn_codecs_prim.h
-ASN_MODULE_HDRS+=./gen_files/ber_tlv_length.h
-ASN_MODULE_SRCS+=./gen_files/ber_tlv_length.c
-ASN_MODULE_HDRS+=./gen_files/ber_tlv_tag.h
-ASN_MODULE_SRCS+=./gen_files/ber_tlv_tag.c
-ASN_MODULE_HDRS+=./gen_files/ber_decoder.h
-ASN_MODULE_SRCS+=./gen_files/ber_decoder.c
-ASN_MODULE_HDRS+=./gen_files/der_encoder.h
-ASN_MODULE_SRCS+=./gen_files/der_encoder.c
-ASN_MODULE_HDRS+=./gen_files/constr_TYPE.h
-ASN_MODULE_SRCS+=./gen_files/constr_TYPE.c
-ASN_MODULE_HDRS+=./gen_files/constraints.h
-ASN_MODULE_SRCS+=./gen_files/constraints.c
-ASN_MODULE_HDRS+=./gen_files/xer_support.h
-ASN_MODULE_SRCS+=./gen_files/xer_support.c
-ASN_MODULE_HDRS+=./gen_files/xer_decoder.h
-ASN_MODULE_SRCS+=./gen_files/xer_decoder.c
-ASN_MODULE_HDRS+=./gen_files/xer_encoder.h
-ASN_MODULE_SRCS+=./gen_files/xer_encoder.c
-ASN_MODULE_HDRS+=./gen_files/per_support.h
-ASN_MODULE_SRCS+=./gen_files/per_support.c
-ASN_MODULE_HDRS+=./gen_files/per_decoder.h
-ASN_MODULE_SRCS+=./gen_files/per_decoder.c
-ASN_MODULE_HDRS+=./gen_files/per_encoder.h
-ASN_MODULE_SRCS+=./gen_files/per_encoder.c
-ASN_MODULE_HDRS+=./gen_files/per_opentype.h
-ASN_MODULE_SRCS+=./gen_files/per_opentype.c
-ASN_MODULE_HDRS+=./gen_files/oer_decoder.h
-ASN_MODULE_HDRS+=./gen_files/oer_encoder.h
-ASN_MODULE_HDRS+=./gen_files/oer_support.h
-ASN_MODULE_SRCS+=./gen_files/oer_decoder.c
-ASN_MODULE_SRCS+=./gen_files/oer_encoder.c
-ASN_MODULE_SRCS+=./gen_files/oer_support.c
-ASN_MODULE_SRCS+=./gen_files/OPEN_TYPE_oer.c
-ASN_MODULE_SRCS+=./gen_files/INTEGER_oer.c
-ASN_MODULE_SRCS+=./gen_files/BIT_STRING_oer.c
-ASN_MODULE_SRCS+=./gen_files/OCTET_STRING_oer.c
-ASN_MODULE_SRCS+=./gen_files/NativeInteger_oer.c
-ASN_MODULE_SRCS+=./gen_files/NativeEnumerated_oer.c
-ASN_MODULE_SRCS+=./gen_files/constr_CHOICE_oer.c
-ASN_MODULE_SRCS+=./gen_files/constr_SEQUENCE_oer.c
-ASN_MODULE_SRCS+=./gen_files/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)/./gen_files/
-libasncodec_la_CFLAGS=$(ASN_MODULE_CFLAGS)
-libasncodec_la_LDFLAGS=-lm
diff --git a/e2sm/headers/MatchingUEidList.h b/e2sm/headers/MatchingUEidList.h
deleted file mode 100644
index b03c075..0000000
--- a/e2sm/headers/MatchingUEidList.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-IEs"
- * 	found in "E2SM-KPM-v02.00.03.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03`
- */
-
-#ifndef	_MatchingUEidList_H_
-#define	_MatchingUEidList_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <asn_SEQUENCE_OF.h>
-#include <constr_SEQUENCE_OF.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Forward declarations */
-struct MatchingUEidItem;
-
-/* MatchingUEidList */
-typedef struct MatchingUEidList {
-	A_SEQUENCE_OF(struct MatchingUEidItem) list;
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} MatchingUEidList_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_MatchingUEidList;
-extern asn_SET_OF_specifics_t asn_SPC_MatchingUEidList_specs_1;
-extern asn_TYPE_member_t asn_MBR_MatchingUEidList_1[1];
-extern asn_per_constraints_t asn_PER_type_MatchingUEidList_constr_1;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _MatchingUEidList_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/MeasQuantityResults.h b/e2sm/headers/MeasQuantityResults.h
deleted file mode 100644
index a597b72..0000000
--- a/e2sm/headers/MeasQuantityResults.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_MeasQuantityResults_H_
-#define	_MeasQuantityResults_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "RSRP-Range.h"
-#include "RSRQ-Range.h"
-#include "SINR-Range.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* MeasQuantityResults */
-typedef struct MeasQuantityResults {
-	RSRP_Range_t	*rsrp;	/* OPTIONAL */
-	RSRQ_Range_t	*rsrq;	/* OPTIONAL */
-	SINR_Range_t	*sinr;	/* OPTIONAL */
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} MeasQuantityResults_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_MeasQuantityResults;
-extern asn_SEQUENCE_specifics_t asn_SPC_MeasQuantityResults_specs_1;
-extern asn_TYPE_member_t asn_MBR_MeasQuantityResults_1[3];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _MeasQuantityResults_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/MeasQuantityResultsEUTRA.h b/e2sm/headers/MeasQuantityResultsEUTRA.h
deleted file mode 100644
index 1be9197..0000000
--- a/e2sm/headers/MeasQuantityResultsEUTRA.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_MeasQuantityResultsEUTRA_H_
-#define	_MeasQuantityResultsEUTRA_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "RSRP-RangeEUTRA.h"
-#include "RSRQ-RangeEUTRA.h"
-#include "SINR-RangeEUTRA.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* MeasQuantityResultsEUTRA */
-typedef struct MeasQuantityResultsEUTRA {
-	RSRP_RangeEUTRA_t	*rsrp;	/* OPTIONAL */
-	RSRQ_RangeEUTRA_t	*rsrq;	/* OPTIONAL */
-	SINR_RangeEUTRA_t	*sinr;	/* OPTIONAL */
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} MeasQuantityResultsEUTRA_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_MeasQuantityResultsEUTRA;
-extern asn_SEQUENCE_specifics_t asn_SPC_MeasQuantityResultsEUTRA_specs_1;
-extern asn_TYPE_member_t asn_MBR_MeasQuantityResultsEUTRA_1[3];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _MeasQuantityResultsEUTRA_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/MeasResultEUTRA.h b/e2sm/headers/MeasResultEUTRA.h
deleted file mode 100644
index 61e8b9a..0000000
--- a/e2sm/headers/MeasResultEUTRA.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_MeasResultEUTRA_H_
-#define	_MeasResultEUTRA_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "PhysCellId.h"
-#include "MeasQuantityResultsEUTRA.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* MeasResultEUTRA */
-typedef struct MeasResultEUTRA {
-	PhysCellId_t	 eutra_PhysCellId;
-	MeasQuantityResultsEUTRA_t	 measResult;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} MeasResultEUTRA_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_MeasResultEUTRA;
-extern asn_SEQUENCE_specifics_t asn_SPC_MeasResultEUTRA_specs_1;
-extern asn_TYPE_member_t asn_MBR_MeasResultEUTRA_1[2];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _MeasResultEUTRA_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/MeasResultListEUTRA.h b/e2sm/headers/MeasResultListEUTRA.h
deleted file mode 100644
index 5f9d8e6..0000000
--- a/e2sm/headers/MeasResultListEUTRA.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_MeasResultListEUTRA_H_
-#define	_MeasResultListEUTRA_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <asn_SEQUENCE_OF.h>
-#include <constr_SEQUENCE_OF.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Forward declarations */
-struct MeasResultEUTRA;
-
-/* MeasResultListEUTRA */
-typedef struct MeasResultListEUTRA {
-	A_SEQUENCE_OF(struct MeasResultEUTRA) list;
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} MeasResultListEUTRA_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_MeasResultListEUTRA;
-extern asn_SET_OF_specifics_t asn_SPC_MeasResultListEUTRA_specs_1;
-extern asn_TYPE_member_t asn_MBR_MeasResultListEUTRA_1[1];
-extern asn_per_constraints_t asn_PER_type_MeasResultListEUTRA_constr_1;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _MeasResultListEUTRA_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/MeasResultListNR.h b/e2sm/headers/MeasResultListNR.h
deleted file mode 100644
index 3617658..0000000
--- a/e2sm/headers/MeasResultListNR.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_MeasResultListNR_H_
-#define	_MeasResultListNR_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <asn_SEQUENCE_OF.h>
-#include <constr_SEQUENCE_OF.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Forward declarations */
-struct MeasResultNR;
-
-/* MeasResultListNR */
-typedef struct MeasResultListNR {
-	A_SEQUENCE_OF(struct MeasResultNR) list;
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} MeasResultListNR_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_MeasResultListNR;
-extern asn_SET_OF_specifics_t asn_SPC_MeasResultListNR_specs_1;
-extern asn_TYPE_member_t asn_MBR_MeasResultListNR_1[1];
-extern asn_per_constraints_t asn_PER_type_MeasResultListNR_constr_1;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _MeasResultListNR_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/MeasResultNR.h b/e2sm/headers/MeasResultNR.h
deleted file mode 100644
index 8f9e1d4..0000000
--- a/e2sm/headers/MeasResultNR.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_MeasResultNR_H_
-#define	_MeasResultNR_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "PhysCellId.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Forward declarations */
-struct MeasQuantityResults;
-struct ResultsPerSSB_IndexList;
-struct ResultsPerCSI_RS_IndexList;
-
-/* MeasResultNR */
-typedef struct MeasResultNR {
-	PhysCellId_t	*physCellId;	/* OPTIONAL */
-	struct MeasResultNR__measResult {
-		struct MeasResultNR__measResult__cellResults {
-			struct MeasQuantityResults	*resultsSSB_Cell;	/* OPTIONAL */
-			struct MeasQuantityResults	*resultsCSI_RS_Cell;	/* OPTIONAL */
-			
-			/* Context for parsing across buffer boundaries */
-			asn_struct_ctx_t _asn_ctx;
-		} cellResults;
-		struct MeasResultNR__measResult__rsIndexResults {
-			struct ResultsPerSSB_IndexList	*resultsSSB_Indexes;	/* OPTIONAL */
-			struct ResultsPerCSI_RS_IndexList	*resultsCSI_RS_Indexes;	/* OPTIONAL */
-			
-			/* Context for parsing across buffer boundaries */
-			asn_struct_ctx_t _asn_ctx;
-		} *rsIndexResults;
-		
-		/* Context for parsing across buffer boundaries */
-		asn_struct_ctx_t _asn_ctx;
-	} measResult;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} MeasResultNR_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_MeasResultNR;
-extern asn_SEQUENCE_specifics_t asn_SPC_MeasResultNR_specs_1;
-extern asn_TYPE_member_t asn_MBR_MeasResultNR_1[2];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _MeasResultNR_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/MeasResultNeighCells.h b/e2sm/headers/MeasResultNeighCells.h
deleted file mode 100644
index f841bb5..0000000
--- a/e2sm/headers/MeasResultNeighCells.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_MeasResultNeighCells_H_
-#define	_MeasResultNeighCells_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <constr_CHOICE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Dependencies */
-typedef enum MeasResultNeighCells_PR {
-	MeasResultNeighCells_PR_NOTHING,	/* No components present */
-	MeasResultNeighCells_PR_measResultListNR,
-	MeasResultNeighCells_PR_measResultListEUTRA
-	/* Extensions may appear below */
-	
-} MeasResultNeighCells_PR;
-
-/* Forward declarations */
-struct MeasResultListNR;
-struct MeasResultListEUTRA;
-
-/* MeasResultNeighCells */
-typedef struct MeasResultNeighCells {
-	MeasResultNeighCells_PR present;
-	union MeasResultNeighCells_u {
-		struct MeasResultListNR	*measResultListNR;
-		struct MeasResultListEUTRA	*measResultListEUTRA;
-		/*
-		 * This type is extensible,
-		 * possible extensions are below.
-		 */
-	} choice;
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} MeasResultNeighCells_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_MeasResultNeighCells;
-extern asn_CHOICE_specifics_t asn_SPC_MeasResultNeighCells_specs_1;
-extern asn_TYPE_member_t asn_MBR_MeasResultNeighCells_1[2];
-extern asn_per_constraints_t asn_PER_type_MeasResultNeighCells_constr_1;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _MeasResultNeighCells_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/MeasResultPCell.h b/e2sm/headers/MeasResultPCell.h
deleted file mode 100644
index ad0fb7e..0000000
--- a/e2sm/headers/MeasResultPCell.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_MeasResultPCell_H_
-#define	_MeasResultPCell_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "PhysCellId.h"
-#include "RSRP-Range.h"
-#include "RSRQ-Range.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* MeasResultPCell */
-typedef struct MeasResultPCell {
-	PhysCellId_t	 eutra_PhysCellId;
-	RSRP_Range_t	 rsrpResult;
-	RSRQ_Range_t	 rsrqResult;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} MeasResultPCell_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_MeasResultPCell;
-extern asn_SEQUENCE_specifics_t asn_SPC_MeasResultPCell_specs_1;
-extern asn_TYPE_member_t asn_MBR_MeasResultPCell_1[3];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _MeasResultPCell_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/MeasResultServMO.h b/e2sm/headers/MeasResultServMO.h
deleted file mode 100644
index 67e3676..0000000
--- a/e2sm/headers/MeasResultServMO.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_MeasResultServMO_H_
-#define	_MeasResultServMO_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "ServCellIndex.h"
-#include "MeasResultNR.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Forward declarations */
-struct MeasResultNR;
-
-/* MeasResultServMO */
-typedef struct MeasResultServMO {
-	ServCellIndex_t	 servCellId;
-	MeasResultNR_t	 measResultServingCell;
-	struct MeasResultNR	*measResultBestNeighCell;	/* OPTIONAL */
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} MeasResultServMO_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_MeasResultServMO;
-extern asn_SEQUENCE_specifics_t asn_SPC_MeasResultServMO_specs_1;
-extern asn_TYPE_member_t asn_MBR_MeasResultServMO_1[3];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _MeasResultServMO_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/MeasResultServMOList.h b/e2sm/headers/MeasResultServMOList.h
deleted file mode 100644
index 422db0f..0000000
--- a/e2sm/headers/MeasResultServMOList.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_MeasResultServMOList_H_
-#define	_MeasResultServMOList_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <asn_SEQUENCE_OF.h>
-#include <constr_SEQUENCE_OF.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Forward declarations */
-struct MeasResultServMO;
-
-/* MeasResultServMOList */
-typedef struct MeasResultServMOList {
-	A_SEQUENCE_OF(struct MeasResultServMO) list;
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} MeasResultServMOList_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_MeasResultServMOList;
-extern asn_SET_OF_specifics_t asn_SPC_MeasResultServMOList_specs_1;
-extern asn_TYPE_member_t asn_MBR_MeasResultServMOList_1[1];
-extern asn_per_constraints_t asn_PER_type_MeasResultServMOList_constr_1;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _MeasResultServMOList_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/MeasurementCondUEidItem.h b/e2sm/headers/MeasurementCondUEidItem.h
deleted file mode 100644
index e49d2b9..0000000
--- a/e2sm/headers/MeasurementCondUEidItem.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-IEs"
- * 	found in "E2SM-KPM-v02.00.03.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03`
- */
-
-#ifndef	_MeasurementCondUEidItem_H_
-#define	_MeasurementCondUEidItem_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "MeasurementType.h"
-#include "MatchingCondList.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Forward declarations */
-struct MatchingUEidList;
-
-/* MeasurementCondUEidItem */
-typedef struct MeasurementCondUEidItem {
-	MeasurementType_t	 measType;
-	MatchingCondList_t	 matchingCond;
-	struct MatchingUEidList	*matchingUEidList;	/* OPTIONAL */
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} MeasurementCondUEidItem_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_MeasurementCondUEidItem;
-extern asn_SEQUENCE_specifics_t asn_SPC_MeasurementCondUEidItem_specs_1;
-extern asn_TYPE_member_t asn_MBR_MeasurementCondUEidItem_1[3];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _MeasurementCondUEidItem_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/MeasurementCondUEidList.h b/e2sm/headers/MeasurementCondUEidList.h
deleted file mode 100644
index 88768c1..0000000
--- a/e2sm/headers/MeasurementCondUEidList.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-IEs"
- * 	found in "E2SM-KPM-v02.00.03.asn"
- * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example -D E2SM-KPM-v02.00.03`
- */
-
-#ifndef	_MeasurementCondUEidList_H_
-#define	_MeasurementCondUEidList_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <asn_SEQUENCE_OF.h>
-#include <constr_SEQUENCE_OF.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Forward declarations */
-struct MeasurementCondUEidItem;
-
-/* MeasurementCondUEidList */
-typedef struct MeasurementCondUEidList {
-	A_SEQUENCE_OF(struct MeasurementCondUEidItem) list;
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} MeasurementCondUEidList_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_MeasurementCondUEidList;
-extern asn_SET_OF_specifics_t asn_SPC_MeasurementCondUEidList_specs_1;
-extern asn_TYPE_member_t asn_MBR_MeasurementCondUEidList_1[1];
-extern asn_per_constraints_t asn_PER_type_MeasurementCondUEidList_constr_1;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _MeasurementCondUEidList_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/MeasurementInfoItem.h b/e2sm/headers/MeasurementInfoItem.h
deleted file mode 100644
index 171c1c5..0000000
--- a/e2sm/headers/MeasurementInfoItem.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_MeasurementInfoItem_H_
-#define	_MeasurementInfoItem_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "MeasurementType.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* MeasurementInfoItem */
-typedef struct MeasurementInfoItem {
-	MeasurementType_t	 measType;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} MeasurementInfoItem_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_MeasurementInfoItem;
-extern asn_SEQUENCE_specifics_t asn_SPC_MeasurementInfoItem_specs_1;
-extern asn_TYPE_member_t asn_MBR_MeasurementInfoItem_1[1];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _MeasurementInfoItem_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/MeasurementInfoList.h b/e2sm/headers/MeasurementInfoList.h
deleted file mode 100644
index f58fabe..0000000
--- a/e2sm/headers/MeasurementInfoList.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_MeasurementInfoList_H_
-#define	_MeasurementInfoList_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <asn_SEQUENCE_OF.h>
-#include <constr_SEQUENCE_OF.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Forward declarations */
-struct MeasurementInfoItem;
-
-/* MeasurementInfoList */
-typedef struct MeasurementInfoList {
-	A_SEQUENCE_OF(struct MeasurementInfoItem) list;
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} MeasurementInfoList_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_MeasurementInfoList;
-extern asn_SET_OF_specifics_t asn_SPC_MeasurementInfoList_specs_1;
-extern asn_TYPE_member_t asn_MBR_MeasurementInfoList_1[1];
-extern asn_per_constraints_t asn_PER_type_MeasurementInfoList_constr_1;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _MeasurementInfoList_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/MeasurementType.h b/e2sm/headers/MeasurementType.h
deleted file mode 100644
index 89b0266..0000000
--- a/e2sm/headers/MeasurementType.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_MeasurementType_H_
-#define	_MeasurementType_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "MeasurementTypeName.h"
-#include "MeasurementTypeID.h"
-#include <constr_CHOICE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Dependencies */
-typedef enum MeasurementType_PR {
-	MeasurementType_PR_NOTHING,	/* No components present */
-	MeasurementType_PR_measName,
-	MeasurementType_PR_measID
-	/* Extensions may appear below */
-	
-} MeasurementType_PR;
-
-/* MeasurementType */
-typedef struct MeasurementType {
-	MeasurementType_PR present;
-	union MeasurementType_u {
-		MeasurementTypeName_t	 measName;
-		MeasurementTypeID_t	 measID;
-		/*
-		 * This type is extensible,
-		 * possible extensions are below.
-		 */
-	} choice;
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} MeasurementType_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_MeasurementType;
-extern asn_CHOICE_specifics_t asn_SPC_MeasurementType_specs_1;
-extern asn_TYPE_member_t asn_MBR_MeasurementType_1[2];
-extern asn_per_constraints_t asn_PER_type_MeasurementType_constr_1;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _MeasurementType_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/MeasurementTypeID.h b/e2sm/headers/MeasurementTypeID.h
deleted file mode 100644
index bec93a3..0000000
--- a/e2sm/headers/MeasurementTypeID.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_MeasurementTypeID_H_
-#define	_MeasurementTypeID_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <NativeInteger.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* MeasurementTypeID */
-typedef long	 MeasurementTypeID_t;
-
-/* Implementation */
-extern asn_per_constraints_t asn_PER_type_MeasurementTypeID_constr_1;
-extern asn_TYPE_descriptor_t asn_DEF_MeasurementTypeID;
-asn_struct_free_f MeasurementTypeID_free;
-asn_struct_print_f MeasurementTypeID_print;
-asn_constr_check_f MeasurementTypeID_constraint;
-ber_type_decoder_f MeasurementTypeID_decode_ber;
-der_type_encoder_f MeasurementTypeID_encode_der;
-xer_type_decoder_f MeasurementTypeID_decode_xer;
-xer_type_encoder_f MeasurementTypeID_encode_xer;
-oer_type_decoder_f MeasurementTypeID_decode_oer;
-oer_type_encoder_f MeasurementTypeID_encode_oer;
-per_type_decoder_f MeasurementTypeID_decode_uper;
-per_type_encoder_f MeasurementTypeID_encode_uper;
-per_type_decoder_f MeasurementTypeID_decode_aper;
-per_type_encoder_f MeasurementTypeID_encode_aper;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _MeasurementTypeID_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/MeasurementTypeName.h b/e2sm/headers/MeasurementTypeName.h
deleted file mode 100644
index 0d21344..0000000
--- a/e2sm/headers/MeasurementTypeName.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_MeasurementTypeName_H_
-#define	_MeasurementTypeName_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <PrintableString.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* MeasurementTypeName */
-typedef PrintableString_t	 MeasurementTypeName_t;
-
-/* Implementation */
-extern asn_per_constraints_t asn_PER_type_MeasurementTypeName_constr_1;
-extern asn_TYPE_descriptor_t asn_DEF_MeasurementTypeName;
-asn_struct_free_f MeasurementTypeName_free;
-asn_struct_print_f MeasurementTypeName_print;
-asn_constr_check_f MeasurementTypeName_constraint;
-ber_type_decoder_f MeasurementTypeName_decode_ber;
-der_type_encoder_f MeasurementTypeName_encode_der;
-xer_type_decoder_f MeasurementTypeName_decode_xer;
-xer_type_encoder_f MeasurementTypeName_encode_xer;
-oer_type_decoder_f MeasurementTypeName_decode_oer;
-oer_type_encoder_f MeasurementTypeName_encode_oer;
-per_type_decoder_f MeasurementTypeName_decode_uper;
-per_type_encoder_f MeasurementTypeName_encode_uper;
-per_type_decoder_f MeasurementTypeName_decode_aper;
-per_type_encoder_f MeasurementTypeName_encode_aper;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _MeasurementTypeName_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/MeasurementValue.h b/e2sm/headers/MeasurementValue.h
deleted file mode 100644
index f1d874a..0000000
--- a/e2sm/headers/MeasurementValue.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_MeasurementValue_H_
-#define	_MeasurementValue_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <NativeInteger.h>
-#include <NativeReal.h>
-#include <NULL.h>
-#include <constr_CHOICE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Dependencies */
-typedef enum MeasurementValue_PR {
-	MeasurementValue_PR_NOTHING,	/* No components present */
-	MeasurementValue_PR_valueInt,
-	MeasurementValue_PR_valueReal,
-	MeasurementValue_PR_noValue,
-	MeasurementValue_PR_valueRRC
-	/* Extensions may appear below */
-	
-} MeasurementValue_PR;
-
-/* Forward declarations */
-struct L3_RRC_Measurements;
-
-/* MeasurementValue */
-typedef struct MeasurementValue {
-	MeasurementValue_PR present;
-	union MeasurementValue_u {
-		long	 valueInt;
-		double	 valueReal;
-		NULL_t	 noValue;
-		struct L3_RRC_Measurements	*valueRRC;
-		/*
-		 * This type is extensible,
-		 * possible extensions are below.
-		 */
-	} choice;
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} MeasurementValue_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_MeasurementValue;
-extern asn_CHOICE_specifics_t asn_SPC_MeasurementValue_specs_1;
-extern asn_TYPE_member_t asn_MBR_MeasurementValue_1[4];
-extern asn_per_constraints_t asn_PER_type_MeasurementValue_constr_1;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _MeasurementValue_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/MessageType-Choice-NI.h b/e2sm/headers/MessageType-Choice-NI.h
new file mode 100755
index 0000000..faad2fe
--- /dev/null
+++ b/e2sm/headers/MessageType-Choice-NI.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_MessageType_Choice_NI_H_
+#define	_MessageType_Choice_NI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "InterfaceType.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct InterfaceIdentifier;
+struct Interface_MessageID;
+
+/* MessageType-Choice-NI */
+typedef struct MessageType_Choice_NI {
+	InterfaceType_t	 nI_Type;
+	struct InterfaceIdentifier	*nI_Identifier;	/* OPTIONAL */
+	struct Interface_MessageID	*nI_Message;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} MessageType_Choice_NI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MessageType_Choice_NI;
+extern asn_SEQUENCE_specifics_t asn_SPC_MessageType_Choice_NI_specs_1;
+extern asn_TYPE_member_t asn_MBR_MessageType_Choice_NI_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _MessageType_Choice_NI_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/MessageType-Choice-RRC.h b/e2sm/headers/MessageType-Choice-RRC.h
new file mode 100755
index 0000000..72df617
--- /dev/null
+++ b/e2sm/headers/MessageType-Choice-RRC.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_MessageType_Choice_RRC_H_
+#define	_MessageType_Choice_RRC_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RRC-MessageID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MessageType-Choice-RRC */
+typedef struct MessageType_Choice_RRC {
+	RRC_MessageID_t	 rRC_Message;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} MessageType_Choice_RRC_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MessageType_Choice_RRC;
+extern asn_SEQUENCE_specifics_t asn_SPC_MessageType_Choice_RRC_specs_1;
+extern asn_TYPE_member_t asn_MBR_MessageType_Choice_RRC_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _MessageType_Choice_RRC_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/MessageType-Choice.h b/e2sm/headers/MessageType-Choice.h
new file mode 100755
index 0000000..bd0cbff
--- /dev/null
+++ b/e2sm/headers/MessageType-Choice.h
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_MessageType_Choice_H_
+#define	_MessageType_Choice_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum MessageType_Choice_PR {
+	MessageType_Choice_PR_NOTHING,	/* No components present */
+	MessageType_Choice_PR_messageType_Choice_NI,
+	MessageType_Choice_PR_messageType_Choice_RRC
+	/* Extensions may appear below */
+	
+} MessageType_Choice_PR;
+
+/* Forward declarations */
+struct MessageType_Choice_NI;
+struct MessageType_Choice_RRC;
+
+/* MessageType-Choice */
+typedef struct MessageType_Choice {
+	MessageType_Choice_PR present;
+	union MessageType_Choice_u {
+		struct MessageType_Choice_NI	*messageType_Choice_NI;
+		struct MessageType_Choice_RRC	*messageType_Choice_RRC;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} MessageType_Choice_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_MessageType_Choice;
+extern asn_CHOICE_specifics_t asn_SPC_MessageType_Choice_specs_1;
+extern asn_TYPE_member_t asn_MBR_MessageType_Choice_1[2];
+extern asn_per_constraints_t asn_PER_type_MessageType_Choice_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _MessageType_Choice_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/NG-RANnodeUEXnAPID.h b/e2sm/headers/NG-RANnodeUEXnAPID.h
new file mode 100755
index 0000000..6bd8295
--- /dev/null
+++ b/e2sm/headers/NG-RANnodeUEXnAPID.h
@@ -0,0 +1,47 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_NG_RANnodeUEXnAPID_H_
+#define	_NG_RANnodeUEXnAPID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* NG-RANnodeUEXnAPID */
+typedef unsigned long	 NG_RANnodeUEXnAPID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_NG_RANnodeUEXnAPID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_NG_RANnodeUEXnAPID;
+extern const asn_INTEGER_specifics_t asn_SPC_NG_RANnodeUEXnAPID_specs_1;
+asn_struct_free_f NG_RANnodeUEXnAPID_free;
+asn_struct_print_f NG_RANnodeUEXnAPID_print;
+asn_constr_check_f NG_RANnodeUEXnAPID_constraint;
+ber_type_decoder_f NG_RANnodeUEXnAPID_decode_ber;
+der_type_encoder_f NG_RANnodeUEXnAPID_encode_der;
+xer_type_decoder_f NG_RANnodeUEXnAPID_decode_xer;
+xer_type_encoder_f NG_RANnodeUEXnAPID_encode_xer;
+oer_type_decoder_f NG_RANnodeUEXnAPID_decode_oer;
+oer_type_encoder_f NG_RANnodeUEXnAPID_encode_oer;
+per_type_decoder_f NG_RANnodeUEXnAPID_decode_uper;
+per_type_encoder_f NG_RANnodeUEXnAPID_encode_uper;
+per_type_decoder_f NG_RANnodeUEXnAPID_decode_aper;
+per_type_encoder_f NG_RANnodeUEXnAPID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _NG_RANnodeUEXnAPID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/NGENB-CU-UE-W1AP-ID.h b/e2sm/headers/NGENB-CU-UE-W1AP-ID.h
new file mode 100755
index 0000000..dac9299
--- /dev/null
+++ b/e2sm/headers/NGENB-CU-UE-W1AP-ID.h
@@ -0,0 +1,47 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_NGENB_CU_UE_W1AP_ID_H_
+#define	_NGENB_CU_UE_W1AP_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* NGENB-CU-UE-W1AP-ID */
+typedef unsigned long	 NGENB_CU_UE_W1AP_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_NGENB_CU_UE_W1AP_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_NGENB_CU_UE_W1AP_ID;
+extern const asn_INTEGER_specifics_t asn_SPC_NGENB_CU_UE_W1AP_ID_specs_1;
+asn_struct_free_f NGENB_CU_UE_W1AP_ID_free;
+asn_struct_print_f NGENB_CU_UE_W1AP_ID_print;
+asn_constr_check_f NGENB_CU_UE_W1AP_ID_constraint;
+ber_type_decoder_f NGENB_CU_UE_W1AP_ID_decode_ber;
+der_type_encoder_f NGENB_CU_UE_W1AP_ID_encode_der;
+xer_type_decoder_f NGENB_CU_UE_W1AP_ID_decode_xer;
+xer_type_encoder_f NGENB_CU_UE_W1AP_ID_encode_xer;
+oer_type_decoder_f NGENB_CU_UE_W1AP_ID_decode_oer;
+oer_type_encoder_f NGENB_CU_UE_W1AP_ID_encode_oer;
+per_type_decoder_f NGENB_CU_UE_W1AP_ID_decode_uper;
+per_type_encoder_f NGENB_CU_UE_W1AP_ID_encode_uper;
+per_type_decoder_f NGENB_CU_UE_W1AP_ID_decode_aper;
+per_type_encoder_f NGENB_CU_UE_W1AP_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _NGENB_CU_UE_W1AP_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/NGENB-DU-ID.h b/e2sm/headers/NGENB-DU-ID.h
new file mode 100755
index 0000000..126de2f
--- /dev/null
+++ b/e2sm/headers/NGENB-DU-ID.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_NGENB_DU_ID_H_
+#define	_NGENB_DU_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <INTEGER.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* NGENB-DU-ID */
+typedef INTEGER_t	 NGENB_DU_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_NGENB_DU_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_NGENB_DU_ID;
+asn_struct_free_f NGENB_DU_ID_free;
+asn_struct_print_f NGENB_DU_ID_print;
+asn_constr_check_f NGENB_DU_ID_constraint;
+ber_type_decoder_f NGENB_DU_ID_decode_ber;
+der_type_encoder_f NGENB_DU_ID_encode_der;
+xer_type_decoder_f NGENB_DU_ID_decode_xer;
+xer_type_encoder_f NGENB_DU_ID_encode_xer;
+oer_type_decoder_f NGENB_DU_ID_decode_oer;
+oer_type_encoder_f NGENB_DU_ID_encode_oer;
+per_type_decoder_f NGENB_DU_ID_decode_uper;
+per_type_encoder_f NGENB_DU_ID_encode_uper;
+per_type_decoder_f NGENB_DU_ID_decode_aper;
+per_type_encoder_f NGENB_DU_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _NGENB_DU_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/NI-Type.h b/e2sm/headers/NI-Type.h
deleted file mode 100644
index f57d977..0000000
--- a/e2sm/headers/NI-Type.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_NI_Type_H_
-#define	_NI_Type_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <NativeEnumerated.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Dependencies */
-typedef enum NI_Type {
-	NI_Type_x2_u	= 0,
-	NI_Type_xn_u	= 1,
-	NI_Type_f1_u	= 2
-	/*
-	 * Enumeration is extensible
-	 */
-} e_NI_Type;
-
-/* NI-Type */
-typedef long	 NI_Type_t;
-
-/* Implementation */
-extern asn_per_constraints_t asn_PER_type_NI_Type_constr_1;
-extern asn_TYPE_descriptor_t asn_DEF_NI_Type;
-extern const asn_INTEGER_specifics_t asn_SPC_NI_Type_specs_1;
-asn_struct_free_f NI_Type_free;
-asn_struct_print_f NI_Type_print;
-asn_constr_check_f NI_Type_constraint;
-ber_type_decoder_f NI_Type_decode_ber;
-der_type_encoder_f NI_Type_encode_der;
-xer_type_decoder_f NI_Type_decode_xer;
-xer_type_encoder_f NI_Type_encode_xer;
-oer_type_decoder_f NI_Type_decode_oer;
-oer_type_encoder_f NI_Type_encode_oer;
-per_type_decoder_f NI_Type_decode_uper;
-per_type_encoder_f NI_Type_encode_uper;
-per_type_decoder_f NI_Type_decode_aper;
-per_type_encoder_f NI_Type_encode_aper;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _NI_Type_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/NR-ARFCN.h b/e2sm/headers/NR-ARFCN.h
new file mode 100755
index 0000000..909dc06
--- /dev/null
+++ b/e2sm/headers/NR-ARFCN.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_NR_ARFCN_H_
+#define	_NR_ARFCN_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* NR-ARFCN */
+typedef struct NR_ARFCN {
+	long	 nRARFCN;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} NR_ARFCN_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_NR_ARFCN;
+extern asn_SEQUENCE_specifics_t asn_SPC_NR_ARFCN_specs_1;
+extern asn_TYPE_member_t asn_MBR_NR_ARFCN_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _NR_ARFCN_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/NR-CGI.h b/e2sm/headers/NR-CGI.h
new file mode 100755
index 0000000..fbac091
--- /dev/null
+++ b/e2sm/headers/NR-CGI.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_NR_CGI_H_
+#define	_NR_CGI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "PLMNIdentity.h"
+#include "NRCellIdentity.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* NR-CGI */
+typedef struct NR_CGI {
+	PLMNIdentity_t	 pLMNIdentity;
+	NRCellIdentity_t	 nRCellIdentity;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} NR_CGI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_NR_CGI;
+extern asn_SEQUENCE_specifics_t asn_SPC_NR_CGI_specs_1;
+extern asn_TYPE_member_t asn_MBR_NR_CGI_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _NR_CGI_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/NR-PCI.h b/e2sm/headers/NR-PCI.h
new file mode 100755
index 0000000..ecbc7b3
--- /dev/null
+++ b/e2sm/headers/NR-PCI.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_NR_PCI_H_
+#define	_NR_PCI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* NR-PCI */
+typedef long	 NR_PCI_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_NR_PCI_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_NR_PCI;
+asn_struct_free_f NR_PCI_free;
+asn_struct_print_f NR_PCI_print;
+asn_constr_check_f NR_PCI_constraint;
+ber_type_decoder_f NR_PCI_decode_ber;
+der_type_encoder_f NR_PCI_encode_der;
+xer_type_decoder_f NR_PCI_decode_xer;
+xer_type_encoder_f NR_PCI_encode_xer;
+oer_type_decoder_f NR_PCI_decode_oer;
+oer_type_encoder_f NR_PCI_encode_oer;
+per_type_decoder_f NR_PCI_decode_uper;
+per_type_encoder_f NR_PCI_encode_uper;
+per_type_decoder_f NR_PCI_decode_aper;
+per_type_encoder_f NR_PCI_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _NR_PCI_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/NRCGI.h b/e2sm/headers/NRCGI.h
deleted file mode 100644
index 11239c7..0000000
--- a/e2sm/headers/NRCGI.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_NRCGI_H_
-#define	_NRCGI_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "PLMN-Identity.h"
-#include "NRCellIdentity.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* NRCGI */
-typedef struct NRCGI {
-	PLMN_Identity_t	 pLMN_Identity;
-	NRCellIdentity_t	 nRCellIdentity;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} NRCGI_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_NRCGI;
-extern asn_SEQUENCE_specifics_t asn_SPC_NRCGI_specs_1;
-extern asn_TYPE_member_t asn_MBR_NRCGI_1[2];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _NRCGI_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/NRCellIdentity.h b/e2sm/headers/NRCellIdentity.h
old mode 100644
new mode 100755
index fc489c7..6c7a264
--- a/e2sm/headers/NRCellIdentity.h
+++ b/e2sm/headers/NRCellIdentity.h
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
diff --git a/e2sm/headers/NRFrequencyBand-List.h b/e2sm/headers/NRFrequencyBand-List.h
new file mode 100755
index 0000000..362abd3
--- /dev/null
+++ b/e2sm/headers/NRFrequencyBand-List.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_NRFrequencyBand_List_H_
+#define	_NRFrequencyBand_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct NRFrequencyBandItem;
+
+/* NRFrequencyBand-List */
+typedef struct NRFrequencyBand_List {
+	A_SEQUENCE_OF(struct NRFrequencyBandItem) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} NRFrequencyBand_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_NRFrequencyBand_List;
+extern asn_SET_OF_specifics_t asn_SPC_NRFrequencyBand_List_specs_1;
+extern asn_TYPE_member_t asn_MBR_NRFrequencyBand_List_1[1];
+extern asn_per_constraints_t asn_PER_type_NRFrequencyBand_List_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _NRFrequencyBand_List_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/NRFrequencyBandItem.h b/e2sm/headers/NRFrequencyBandItem.h
new file mode 100755
index 0000000..95e118a
--- /dev/null
+++ b/e2sm/headers/NRFrequencyBandItem.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_NRFrequencyBandItem_H_
+#define	_NRFrequencyBandItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include "SupportedSULBandList.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* NRFrequencyBandItem */
+typedef struct NRFrequencyBandItem {
+	long	 freqBandIndicatorNr;
+	SupportedSULBandList_t	 supportedSULBandList;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} NRFrequencyBandItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_NRFrequencyBandItem;
+extern asn_SEQUENCE_specifics_t asn_SPC_NRFrequencyBandItem_specs_1;
+extern asn_TYPE_member_t asn_MBR_NRFrequencyBandItem_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _NRFrequencyBandItem_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/NRFrequencyInfo.h b/e2sm/headers/NRFrequencyInfo.h
new file mode 100755
index 0000000..f5a868d
--- /dev/null
+++ b/e2sm/headers/NRFrequencyInfo.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_NRFrequencyInfo_H_
+#define	_NRFrequencyInfo_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "NR-ARFCN.h"
+#include "NRFrequencyBand-List.h"
+#include "NRFrequencyShift7p5khz.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* NRFrequencyInfo */
+typedef struct NRFrequencyInfo {
+	NR_ARFCN_t	 nrARFCN;
+	NRFrequencyBand_List_t	 frequencyBand_List;
+	NRFrequencyShift7p5khz_t	*frequencyShift7p5khz;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} NRFrequencyInfo_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_NRFrequencyInfo;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _NRFrequencyInfo_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/NRFrequencyShift7p5khz.h b/e2sm/headers/NRFrequencyShift7p5khz.h
new file mode 100755
index 0000000..d3f0304
--- /dev/null
+++ b/e2sm/headers/NRFrequencyShift7p5khz.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_NRFrequencyShift7p5khz_H_
+#define	_NRFrequencyShift7p5khz_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum NRFrequencyShift7p5khz {
+	NRFrequencyShift7p5khz_false	= 0,
+	NRFrequencyShift7p5khz_true	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_NRFrequencyShift7p5khz;
+
+/* NRFrequencyShift7p5khz */
+typedef long	 NRFrequencyShift7p5khz_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_NRFrequencyShift7p5khz_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_NRFrequencyShift7p5khz;
+extern const asn_INTEGER_specifics_t asn_SPC_NRFrequencyShift7p5khz_specs_1;
+asn_struct_free_f NRFrequencyShift7p5khz_free;
+asn_struct_print_f NRFrequencyShift7p5khz_print;
+asn_constr_check_f NRFrequencyShift7p5khz_constraint;
+ber_type_decoder_f NRFrequencyShift7p5khz_decode_ber;
+der_type_encoder_f NRFrequencyShift7p5khz_encode_der;
+xer_type_decoder_f NRFrequencyShift7p5khz_decode_xer;
+xer_type_encoder_f NRFrequencyShift7p5khz_encode_xer;
+oer_type_decoder_f NRFrequencyShift7p5khz_decode_oer;
+oer_type_encoder_f NRFrequencyShift7p5khz_encode_oer;
+per_type_decoder_f NRFrequencyShift7p5khz_decode_uper;
+per_type_encoder_f NRFrequencyShift7p5khz_encode_uper;
+per_type_decoder_f NRFrequencyShift7p5khz_decode_aper;
+per_type_encoder_f NRFrequencyShift7p5khz_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _NRFrequencyShift7p5khz_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/NULL.h b/e2sm/headers/NULL.h
deleted file mode 100644
index 802d12c..0000000
--- a/e2sm/headers/NULL.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*-
- * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
- * Redistribution and modifications are permitted subject to BSD license.
- */
-#ifndef	ASN_TYPE_NULL_H
-#define	ASN_TYPE_NULL_H
-
-#include <asn_application.h>
-#include <BOOLEAN.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * The value of the NULL type is meaningless: see BOOLEAN if you want to
- * carry true/false semantics.
- */
-typedef int NULL_t;
-
-extern asn_TYPE_descriptor_t asn_DEF_NULL;
-extern asn_TYPE_operation_t asn_OP_NULL;
-
-asn_struct_print_f NULL_print;
-asn_struct_compare_f NULL_compare;
-der_type_encoder_f NULL_encode_der;
-xer_type_decoder_f NULL_decode_xer;
-xer_type_encoder_f NULL_encode_xer;
-oer_type_decoder_f NULL_decode_oer;
-oer_type_encoder_f NULL_encode_oer;
-per_type_decoder_f NULL_decode_uper;
-per_type_encoder_f NULL_encode_uper;
-per_type_decoder_f NULL_decode_aper;
-per_type_encoder_f NULL_encode_aper;
-asn_random_fill_f  NULL_random_fill;
-
-#define NULL_free	BOOLEAN_free
-#define NULL_decode_ber	BOOLEAN_decode_ber
-#define NULL_constraint	asn_generic_no_constraint
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* NULL_H */
diff --git a/e2sm/headers/NativeEnumerated.h b/e2sm/headers/NativeEnumerated.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/NativeInteger.h b/e2sm/headers/NativeInteger.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/NativeReal.h b/e2sm/headers/NativeReal.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/NeighborCell-Item-Choice-E-UTRA.h b/e2sm/headers/NeighborCell-Item-Choice-E-UTRA.h
new file mode 100755
index 0000000..1c807b3
--- /dev/null
+++ b/e2sm/headers/NeighborCell-Item-Choice-E-UTRA.h
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_NeighborCell_Item_Choice_E_UTRA_H_
+#define	_NeighborCell_Item_Choice_E_UTRA_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "EUTRA-CGI.h"
+#include "E-UTRA-PCI.h"
+#include "E-UTRA-ARFCN.h"
+#include "E-UTRA-TAC.h"
+#include <NativeEnumerated.h>
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum NeighborCell_Item_Choice_E_UTRA__x2_Xn_established {
+	NeighborCell_Item_Choice_E_UTRA__x2_Xn_established_true	= 0,
+	NeighborCell_Item_Choice_E_UTRA__x2_Xn_established_false	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_NeighborCell_Item_Choice_E_UTRA__x2_Xn_established;
+typedef enum NeighborCell_Item_Choice_E_UTRA__hO_validated {
+	NeighborCell_Item_Choice_E_UTRA__hO_validated_true	= 0,
+	NeighborCell_Item_Choice_E_UTRA__hO_validated_false	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_NeighborCell_Item_Choice_E_UTRA__hO_validated;
+
+/* NeighborCell-Item-Choice-E-UTRA */
+typedef struct NeighborCell_Item_Choice_E_UTRA {
+	EUTRA_CGI_t	 eUTRA_CGI;
+	E_UTRA_PCI_t	 eUTRA_PCI;
+	E_UTRA_ARFCN_t	 eUTRA_ARFCN;
+	E_UTRA_TAC_t	 eUTRA_TAC;
+	long	 x2_Xn_established;
+	long	 hO_validated;
+	long	 version;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} NeighborCell_Item_Choice_E_UTRA_t;
+
+/* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_x2_Xn_established_6;	// (Use -fall-defs-global to expose) */
+/* extern asn_TYPE_descriptor_t asn_DEF_hO_validated_10;	// (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_NeighborCell_Item_Choice_E_UTRA;
+extern asn_SEQUENCE_specifics_t asn_SPC_NeighborCell_Item_Choice_E_UTRA_specs_1;
+extern asn_TYPE_member_t asn_MBR_NeighborCell_Item_Choice_E_UTRA_1[7];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _NeighborCell_Item_Choice_E_UTRA_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/NeighborCell-Item-Choice-NR.h b/e2sm/headers/NeighborCell-Item-Choice-NR.h
new file mode 100755
index 0000000..526f742
--- /dev/null
+++ b/e2sm/headers/NeighborCell-Item-Choice-NR.h
@@ -0,0 +1,82 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_NeighborCell_Item_Choice_NR_H_
+#define	_NeighborCell_Item_Choice_NR_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "NR-CGI.h"
+#include "NR-PCI.h"
+#include "FiveGS-TAC.h"
+#include <NativeEnumerated.h>
+#include "NR-ARFCN.h"
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum NeighborCell_Item_Choice_NR__nR_mode_info {
+	NeighborCell_Item_Choice_NR__nR_mode_info_fdd	= 0,
+	NeighborCell_Item_Choice_NR__nR_mode_info_tdd	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_NeighborCell_Item_Choice_NR__nR_mode_info;
+typedef enum NeighborCell_Item_Choice_NR__x2_Xn_established {
+	NeighborCell_Item_Choice_NR__x2_Xn_established_true	= 0,
+	NeighborCell_Item_Choice_NR__x2_Xn_established_false	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_NeighborCell_Item_Choice_NR__x2_Xn_established;
+typedef enum NeighborCell_Item_Choice_NR__hO_validated {
+	NeighborCell_Item_Choice_NR__hO_validated_true	= 0,
+	NeighborCell_Item_Choice_NR__hO_validated_false	= 1
+	/*
+	 * Enumeration is extensible
+	 */
+} e_NeighborCell_Item_Choice_NR__hO_validated;
+
+/* NeighborCell-Item-Choice-NR */
+typedef struct NeighborCell_Item_Choice_NR {
+	NR_CGI_t	 nR_CGI;
+	NR_PCI_t	 nR_PCI;
+	FiveGS_TAC_t	 fiveGS_TAC;
+	long	 nR_mode_info;
+	NR_ARFCN_t	 nR_ARFCN;
+	long	 x2_Xn_established;
+	long	 hO_validated;
+	long	 version;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} NeighborCell_Item_Choice_NR_t;
+
+/* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_nR_mode_info_5;	// (Use -fall-defs-global to expose) */
+/* extern asn_TYPE_descriptor_t asn_DEF_x2_Xn_established_10;	// (Use -fall-defs-global to expose) */
+/* extern asn_TYPE_descriptor_t asn_DEF_hO_validated_14;	// (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_NeighborCell_Item_Choice_NR;
+extern asn_SEQUENCE_specifics_t asn_SPC_NeighborCell_Item_Choice_NR_specs_1;
+extern asn_TYPE_member_t asn_MBR_NeighborCell_Item_Choice_NR_1[8];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _NeighborCell_Item_Choice_NR_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/NeighborCell-Item.h b/e2sm/headers/NeighborCell-Item.h
new file mode 100755
index 0000000..e17e94c
--- /dev/null
+++ b/e2sm/headers/NeighborCell-Item.h
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_NeighborCell_Item_H_
+#define	_NeighborCell_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum NeighborCell_Item_PR {
+	NeighborCell_Item_PR_NOTHING,	/* No components present */
+	NeighborCell_Item_PR_ranType_Choice_NR,
+	NeighborCell_Item_PR_ranType_Choice_EUTRA
+	/* Extensions may appear below */
+	
+} NeighborCell_Item_PR;
+
+/* Forward declarations */
+struct NeighborCell_Item_Choice_NR;
+struct NeighborCell_Item_Choice_E_UTRA;
+
+/* NeighborCell-Item */
+typedef struct NeighborCell_Item {
+	NeighborCell_Item_PR present;
+	union NeighborCell_Item_u {
+		struct NeighborCell_Item_Choice_NR	*ranType_Choice_NR;
+		struct NeighborCell_Item_Choice_E_UTRA	*ranType_Choice_EUTRA;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} NeighborCell_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_NeighborCell_Item;
+extern asn_CHOICE_specifics_t asn_SPC_NeighborCell_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_NeighborCell_Item_1[2];
+extern asn_per_constraints_t asn_PER_type_NeighborCell_Item_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _NeighborCell_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/NeighborCell-List.h b/e2sm/headers/NeighborCell-List.h
new file mode 100755
index 0000000..e27559c
--- /dev/null
+++ b/e2sm/headers/NeighborCell-List.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_NeighborCell_List_H_
+#define	_NeighborCell_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct NeighborCell_Item;
+
+/* NeighborCell-List */
+typedef struct NeighborCell_List {
+	A_SEQUENCE_OF(struct NeighborCell_Item) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} NeighborCell_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_NeighborCell_List;
+extern asn_SET_OF_specifics_t asn_SPC_NeighborCell_List_specs_1;
+extern asn_TYPE_member_t asn_MBR_NeighborCell_List_1[1];
+extern asn_per_constraints_t asn_PER_type_NeighborCell_List_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _NeighborCell_List_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/NeighborRelation-Info.h b/e2sm/headers/NeighborRelation-Info.h
new file mode 100755
index 0000000..c7d489d
--- /dev/null
+++ b/e2sm/headers/NeighborRelation-Info.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_NeighborRelation_Info_H_
+#define	_NeighborRelation_Info_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ServingCell-PCI.h"
+#include "ServingCell-ARFCN.h"
+#include "NeighborCell-List.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* NeighborRelation-Info */
+typedef struct NeighborRelation_Info {
+	ServingCell_PCI_t	 servingCellPCI;
+	ServingCell_ARFCN_t	 servingCellARFCN;
+	NeighborCell_List_t	 neighborCell_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} NeighborRelation_Info_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_NeighborRelation_Info;
+extern asn_SEQUENCE_specifics_t asn_SPC_NeighborRelation_Info_specs_1;
+extern asn_TYPE_member_t asn_MBR_NeighborRelation_Info_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _NeighborRelation_Info_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/NgENB-ID.h b/e2sm/headers/NgENB-ID.h
new file mode 100755
index 0000000..28554b7
--- /dev/null
+++ b/e2sm/headers/NgENB-ID.h
@@ -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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_NgENB_ID_H_
+#define	_NgENB_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <BIT_STRING.h>
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum NgENB_ID_PR {
+	NgENB_ID_PR_NOTHING,	/* No components present */
+	NgENB_ID_PR_macroNgENB_ID,
+	NgENB_ID_PR_shortMacroNgENB_ID,
+	NgENB_ID_PR_longMacroNgENB_ID
+	/* Extensions may appear below */
+	
+} NgENB_ID_PR;
+
+/* NgENB-ID */
+typedef struct NgENB_ID {
+	NgENB_ID_PR present;
+	union NgENB_ID_u {
+		BIT_STRING_t	 macroNgENB_ID;
+		BIT_STRING_t	 shortMacroNgENB_ID;
+		BIT_STRING_t	 longMacroNgENB_ID;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} NgENB_ID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_NgENB_ID;
+extern asn_CHOICE_specifics_t asn_SPC_NgENB_ID_specs_1;
+extern asn_TYPE_member_t asn_MBR_NgENB_ID_1[3];
+extern asn_per_constraints_t asn_PER_type_NgENB_ID_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _NgENB_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/OCTET_STRING.h b/e2sm/headers/OCTET_STRING.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/OCUCP-PF-Container.h b/e2sm/headers/OCUCP-PF-Container.h
deleted file mode 100644
index 5c1adfe..0000000
--- a/e2sm/headers/OCUCP-PF-Container.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_OCUCP_PF_Container_H_
-#define	_OCUCP_PF_Container_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <NativeInteger.h>
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* OCUCP-PF-Container */
-typedef struct OCUCP_PF_Container {
-	struct OCUCP_PF_Container__cu_CP_Resource_Status {
-		long	*numberOfActive_UEs;	/* OPTIONAL */
-		
-		/* Context for parsing across buffer boundaries */
-		asn_struct_ctx_t _asn_ctx;
-	} cu_CP_Resource_Status;
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} OCUCP_PF_Container_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_OCUCP_PF_Container;
-extern asn_SEQUENCE_specifics_t asn_SPC_OCUCP_PF_Container_specs_1;
-extern asn_TYPE_member_t asn_MBR_OCUCP_PF_Container_1[1];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _OCUCP_PF_Container_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/OCUUP-PF-Container.h b/e2sm/headers/OCUUP-PF-Container.h
deleted file mode 100644
index c1fc638..0000000
--- a/e2sm/headers/OCUUP-PF-Container.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_OCUUP_PF_Container_H_
-#define	_OCUUP_PF_Container_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 PF_ContainerListItem;
-
-/* OCUUP-PF-Container */
-typedef struct OCUUP_PF_Container {
-	struct OCUUP_PF_Container__pf_ContainerList {
-		A_SEQUENCE_OF(struct PF_ContainerListItem) list;
-		
-		/* Context for parsing across buffer boundaries */
-		asn_struct_ctx_t _asn_ctx;
-	} pf_ContainerList;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} OCUUP_PF_Container_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_OCUUP_PF_Container;
-extern asn_SEQUENCE_specifics_t asn_SPC_OCUUP_PF_Container_specs_1;
-extern asn_TYPE_member_t asn_MBR_OCUUP_PF_Container_1[1];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _OCUUP_PF_Container_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/ODU-PF-Container.h b/e2sm/headers/ODU-PF-Container.h
deleted file mode 100644
index c49a4f7..0000000
--- a/e2sm/headers/ODU-PF-Container.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_ODU_PF_Container_H_
-#define	_ODU_PF_Container_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 CellResourceReportListItem;
-
-/* ODU-PF-Container */
-typedef struct ODU_PF_Container {
-	struct ODU_PF_Container__cellResourceReportList {
-		A_SEQUENCE_OF(struct CellResourceReportListItem) list;
-		
-		/* Context for parsing across buffer boundaries */
-		asn_struct_ctx_t _asn_ctx;
-	} cellResourceReportList;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} ODU_PF_Container_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_ODU_PF_Container;
-extern asn_SEQUENCE_specifics_t asn_SPC_ODU_PF_Container_specs_1;
-extern asn_TYPE_member_t asn_MBR_ODU_PF_Container_1[1];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _ODU_PF_Container_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/OPEN_TYPE.h b/e2sm/headers/OPEN_TYPE.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/PF-Container.h b/e2sm/headers/PF-Container.h
deleted file mode 100644
index 4dd9e95..0000000
--- a/e2sm/headers/PF-Container.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_PF_Container_H_
-#define	_PF_Container_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <constr_CHOICE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Dependencies */
-typedef enum PF_Container_PR {
-	PF_Container_PR_NOTHING,	/* No components present */
-	PF_Container_PR_oDU,
-	PF_Container_PR_oCU_CP,
-	PF_Container_PR_oCU_UP
-} PF_Container_PR;
-
-/* Forward declarations */
-struct ODU_PF_Container;
-struct OCUCP_PF_Container;
-struct OCUUP_PF_Container;
-
-/* PF-Container */
-typedef struct PF_Container {
-	PF_Container_PR present;
-	union PF_Container_u {
-		struct ODU_PF_Container	*oDU;
-		struct OCUCP_PF_Container	*oCU_CP;
-		struct OCUUP_PF_Container	*oCU_UP;
-	} choice;
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} PF_Container_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_PF_Container;
-extern asn_CHOICE_specifics_t asn_SPC_PF_Container_specs_1;
-extern asn_TYPE_member_t asn_MBR_PF_Container_1[3];
-extern asn_per_constraints_t asn_PER_type_PF_Container_constr_1;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _PF_Container_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/PF-ContainerListItem.h b/e2sm/headers/PF-ContainerListItem.h
deleted file mode 100644
index 9d12f97..0000000
--- a/e2sm/headers/PF-ContainerListItem.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_PF_ContainerListItem_H_
-#define	_PF_ContainerListItem_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "NI-Type.h"
-#include "CUUPMeasurement-Container.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* PF-ContainerListItem */
-typedef struct PF_ContainerListItem {
-	NI_Type_t	 interface_type;
-	CUUPMeasurement_Container_t	 o_CU_UP_PM_Container;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} PF_ContainerListItem_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_PF_ContainerListItem;
-extern asn_SEQUENCE_specifics_t asn_SPC_PF_ContainerListItem_specs_1;
-extern asn_TYPE_member_t asn_MBR_PF_ContainerListItem_1[2];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _PF_ContainerListItem_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/PLMN-Identity.h b/e2sm/headers/PLMN-Identity.h
deleted file mode 100644
index c35c11f..0000000
--- a/e2sm/headers/PLMN-Identity.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_PLMN_Identity_H_
-#define	_PLMN_Identity_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <OCTET_STRING.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* PLMN-Identity */
-typedef OCTET_STRING_t	 PLMN_Identity_t;
-
-/* Implementation */
-extern asn_per_constraints_t asn_PER_type_PLMN_Identity_constr_1;
-extern asn_TYPE_descriptor_t asn_DEF_PLMN_Identity;
-asn_struct_free_f PLMN_Identity_free;
-asn_struct_print_f PLMN_Identity_print;
-asn_constr_check_f PLMN_Identity_constraint;
-ber_type_decoder_f PLMN_Identity_decode_ber;
-der_type_encoder_f PLMN_Identity_encode_der;
-xer_type_decoder_f PLMN_Identity_decode_xer;
-xer_type_encoder_f PLMN_Identity_encode_xer;
-oer_type_decoder_f PLMN_Identity_decode_oer;
-oer_type_encoder_f PLMN_Identity_encode_oer;
-per_type_decoder_f PLMN_Identity_decode_uper;
-per_type_encoder_f PLMN_Identity_encode_uper;
-per_type_decoder_f PLMN_Identity_decode_aper;
-per_type_encoder_f PLMN_Identity_encode_aper;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _PLMN_Identity_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/PLMNIdentity.h b/e2sm/headers/PLMNIdentity.h
new file mode 100755
index 0000000..93c6631
--- /dev/null
+++ b/e2sm/headers/PLMNIdentity.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_PLMNIdentity_H_
+#define	_PLMNIdentity_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* PLMNIdentity */
+typedef OCTET_STRING_t	 PLMNIdentity_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_PLMNIdentity_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_PLMNIdentity;
+asn_struct_free_f PLMNIdentity_free;
+asn_struct_print_f PLMNIdentity_print;
+asn_constr_check_f PLMNIdentity_constraint;
+ber_type_decoder_f PLMNIdentity_decode_ber;
+der_type_encoder_f PLMNIdentity_encode_der;
+xer_type_decoder_f PLMNIdentity_decode_xer;
+xer_type_encoder_f PLMNIdentity_encode_xer;
+oer_type_decoder_f PLMNIdentity_decode_oer;
+oer_type_encoder_f PLMNIdentity_encode_oer;
+per_type_decoder_f PLMNIdentity_decode_uper;
+per_type_encoder_f PLMNIdentity_encode_uper;
+per_type_decoder_f PLMNIdentity_decode_aper;
+per_type_encoder_f PLMNIdentity_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _PLMNIdentity_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/PM-Containers-Item.h b/e2sm/headers/PM-Containers-Item.h
deleted file mode 100644
index 2525e83..0000000
--- a/e2sm/headers/PM-Containers-Item.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_PM_Containers_Item_H_
-#define	_PM_Containers_Item_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "RAN-Container.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Forward declarations */
-struct PF_Container;
-
-/* PM-Containers-Item */
-typedef struct PM_Containers_Item {
-	struct PF_Container	*performanceContainer;	/* OPTIONAL */
-	RAN_Container_t	*theRANContainer;	/* OPTIONAL */
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} PM_Containers_Item_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_PM_Containers_Item;
-extern asn_SEQUENCE_specifics_t asn_SPC_PM_Containers_Item_specs_1;
-extern asn_TYPE_member_t asn_MBR_PM_Containers_Item_1[2];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _PM_Containers_Item_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/PM-Info-Item.h b/e2sm/headers/PM-Info-Item.h
deleted file mode 100644
index 2716d8e..0000000
--- a/e2sm/headers/PM-Info-Item.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_PM_Info_Item_H_
-#define	_PM_Info_Item_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "MeasurementType.h"
-#include "MeasurementValue.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* PM-Info-Item */
-typedef struct PM_Info_Item {
-	MeasurementType_t	 pmType;
-	MeasurementValue_t	 pmVal;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} PM_Info_Item_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_PM_Info_Item;
-extern asn_SEQUENCE_specifics_t asn_SPC_PM_Info_Item_specs_1;
-extern asn_TYPE_member_t asn_MBR_PM_Info_Item_1[2];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _PM_Info_Item_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/PerQCIReportListItem.h b/e2sm/headers/PerQCIReportListItem.h
deleted file mode 100644
index 1f4c6bb..0000000
--- a/e2sm/headers/PerQCIReportListItem.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_PerQCIReportListItem_H_
-#define	_PerQCIReportListItem_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "QCI.h"
-#include <NativeInteger.h>
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* PerQCIReportListItem */
-typedef struct PerQCIReportListItem {
-	QCI_t	 qci;
-	long	*dl_PRBUsage;	/* OPTIONAL */
-	long	*ul_PRBUsage;	/* OPTIONAL */
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} PerQCIReportListItem_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_PerQCIReportListItem;
-extern asn_SEQUENCE_specifics_t asn_SPC_PerQCIReportListItem_specs_1;
-extern asn_TYPE_member_t asn_MBR_PerQCIReportListItem_1[3];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _PerQCIReportListItem_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/PerQCIReportListItemFormat.h b/e2sm/headers/PerQCIReportListItemFormat.h
deleted file mode 100644
index 46b588e..0000000
--- a/e2sm/headers/PerQCIReportListItemFormat.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_PerQCIReportListItemFormat_H_
-#define	_PerQCIReportListItemFormat_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "QCI.h"
-#include <INTEGER.h>
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* PerQCIReportListItemFormat */
-typedef struct PerQCIReportListItemFormat {
-	QCI_t	 drbqci;
-	INTEGER_t	*pDCPBytesDL;	/* OPTIONAL */
-	INTEGER_t	*pDCPBytesUL;	/* OPTIONAL */
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} PerQCIReportListItemFormat_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_PerQCIReportListItemFormat;
-extern asn_SEQUENCE_specifics_t asn_SPC_PerQCIReportListItemFormat_specs_1;
-extern asn_TYPE_member_t asn_MBR_PerQCIReportListItemFormat_1[3];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _PerQCIReportListItemFormat_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/PerUE-PM-Item.h b/e2sm/headers/PerUE-PM-Item.h
deleted file mode 100644
index b2b2c4f..0000000
--- a/e2sm/headers/PerUE-PM-Item.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_PerUE_PM_Item_H_
-#define	_PerUE_PM_Item_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "UE-Identity.h"
-#include <asn_SEQUENCE_OF.h>
-#include <constr_SEQUENCE_OF.h>
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Forward declarations */
-struct PM_Info_Item;
-
-/* PerUE-PM-Item */
-typedef struct PerUE_PM_Item {
-	UE_Identity_t	 ueId;
-	struct PerUE_PM_Item__list_of_PM_Information {
-		A_SEQUENCE_OF(struct PM_Info_Item) list;
-		
-		/* Context for parsing across buffer boundaries */
-		asn_struct_ctx_t _asn_ctx;
-	} *list_of_PM_Information;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} PerUE_PM_Item_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_PerUE_PM_Item;
-extern asn_SEQUENCE_specifics_t asn_SPC_PerUE_PM_Item_specs_1;
-extern asn_TYPE_member_t asn_MBR_PerUE_PM_Item_1[2];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _PerUE_PM_Item_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/PhysCellId.h b/e2sm/headers/PhysCellId.h
deleted file mode 100644
index c5de886..0000000
--- a/e2sm/headers/PhysCellId.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_PhysCellId_H_
-#define	_PhysCellId_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <NativeInteger.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* PhysCellId */
-typedef long	 PhysCellId_t;
-
-/* Implementation */
-extern asn_per_constraints_t asn_PER_type_PhysCellId_constr_1;
-extern asn_TYPE_descriptor_t asn_DEF_PhysCellId;
-asn_struct_free_f PhysCellId_free;
-asn_struct_print_f PhysCellId_print;
-asn_constr_check_f PhysCellId_constraint;
-ber_type_decoder_f PhysCellId_decode_ber;
-der_type_encoder_f PhysCellId_encode_der;
-xer_type_decoder_f PhysCellId_decode_xer;
-xer_type_encoder_f PhysCellId_encode_xer;
-oer_type_decoder_f PhysCellId_decode_oer;
-oer_type_encoder_f PhysCellId_encode_oer;
-per_type_decoder_f PhysCellId_decode_uper;
-per_type_encoder_f PhysCellId_encode_uper;
-per_type_decoder_f PhysCellId_decode_aper;
-per_type_encoder_f PhysCellId_encode_aper;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _PhysCellId_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/PlmnID-Item.h b/e2sm/headers/PlmnID-Item.h
deleted file mode 100644
index 803068c..0000000
--- a/e2sm/headers/PlmnID-Item.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_PlmnID_Item_H_
-#define	_PlmnID_Item_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "PLMN-Identity.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Forward declarations */
-struct FGC_CUUP_PM_Format;
-struct EPC_CUUP_PM_Format;
-
-/* PlmnID-Item */
-typedef struct PlmnID_Item {
-	PLMN_Identity_t	 pLMN_Identity;
-	struct FGC_CUUP_PM_Format	*cu_UP_PM_5GC;	/* OPTIONAL */
-	struct EPC_CUUP_PM_Format	*cu_UP_PM_EPC;	/* OPTIONAL */
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} PlmnID_Item_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_PlmnID_Item;
-extern asn_SEQUENCE_specifics_t asn_SPC_PlmnID_Item_specs_1;
-extern asn_TYPE_member_t asn_MBR_PlmnID_Item_1[3];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _PlmnID_Item_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/PolicyAction-RANParameter-Item.h b/e2sm/headers/PolicyAction-RANParameter-Item.h
new file mode 100755
index 0000000..3b39c3f
--- /dev/null
+++ b/e2sm/headers/PolicyAction-RANParameter-Item.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_PolicyAction_RANParameter_Item_H_
+#define	_PolicyAction_RANParameter_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANParameter-ID.h"
+#include "RANParameter-Name.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RANParameter_Definition;
+
+/* PolicyAction-RANParameter-Item */
+typedef struct PolicyAction_RANParameter_Item {
+	RANParameter_ID_t	 ranParameter_ID;
+	RANParameter_Name_t	 ranParameter_name;
+	/*
+	 * 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;
+} PolicyAction_RANParameter_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_PolicyAction_RANParameter_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_PolicyAction_RANParameter_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_PolicyAction_RANParameter_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _PolicyAction_RANParameter_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/PolicyCondition-RANParameter-Item.h b/e2sm/headers/PolicyCondition-RANParameter-Item.h
new file mode 100755
index 0000000..ccc4803
--- /dev/null
+++ b/e2sm/headers/PolicyCondition-RANParameter-Item.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_PolicyCondition_RANParameter_Item_H_
+#define	_PolicyCondition_RANParameter_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANParameter-ID.h"
+#include "RANParameter-Name.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RANParameter_Definition;
+
+/* PolicyCondition-RANParameter-Item */
+typedef struct PolicyCondition_RANParameter_Item {
+	RANParameter_ID_t	 ranParameter_ID;
+	RANParameter_Name_t	 ranParameter_name;
+	/*
+	 * 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;
+} PolicyCondition_RANParameter_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_PolicyCondition_RANParameter_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_PolicyCondition_RANParameter_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_PolicyCondition_RANParameter_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _PolicyCondition_RANParameter_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/Presence.h b/e2sm/headers/Presence.h
deleted file mode 100644
index 40bf8ff..0000000
--- a/e2sm/headers/Presence.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_Presence_H_
-#define	_Presence_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <NativeEnumerated.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Dependencies */
-typedef enum Presence {
-	Presence_optional	= 0,
-	Presence_conditional	= 1,
-	Presence_mandatory	= 2
-} e_Presence;
-
-/* Presence */
-typedef long	 Presence_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_Presence;
-asn_struct_free_f Presence_free;
-asn_struct_print_f Presence_print;
-asn_constr_check_f Presence_constraint;
-ber_type_decoder_f Presence_decode_ber;
-der_type_encoder_f Presence_encode_der;
-xer_type_decoder_f Presence_decode_xer;
-xer_type_encoder_f Presence_encode_xer;
-oer_type_decoder_f Presence_decode_oer;
-oer_type_encoder_f Presence_encode_oer;
-per_type_decoder_f Presence_decode_uper;
-per_type_encoder_f Presence_encode_uper;
-per_type_decoder_f Presence_decode_aper;
-per_type_encoder_f Presence_encode_aper;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _Presence_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/PrintableString.h b/e2sm/headers/PrintableString.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/ProcedureCode.h b/e2sm/headers/ProcedureCode.h
deleted file mode 100644
index 61daec2..0000000
--- a/e2sm/headers/ProcedureCode.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_ProcedureCode_H_
-#define	_ProcedureCode_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <NativeInteger.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* ProcedureCode */
-typedef long	 ProcedureCode_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_ProcedureCode;
-asn_struct_free_f ProcedureCode_free;
-asn_struct_print_f ProcedureCode_print;
-asn_constr_check_f ProcedureCode_constraint;
-ber_type_decoder_f ProcedureCode_decode_ber;
-der_type_encoder_f ProcedureCode_encode_der;
-xer_type_decoder_f ProcedureCode_decode_xer;
-xer_type_encoder_f ProcedureCode_encode_xer;
-oer_type_decoder_f ProcedureCode_decode_oer;
-oer_type_encoder_f ProcedureCode_encode_oer;
-per_type_decoder_f ProcedureCode_decode_uper;
-per_type_encoder_f ProcedureCode_encode_uper;
-per_type_decoder_f ProcedureCode_decode_aper;
-per_type_encoder_f ProcedureCode_encode_aper;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _ProcedureCode_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/ProtocolIE-ID.h b/e2sm/headers/ProtocolIE-ID.h
deleted file mode 100644
index c306f09..0000000
--- a/e2sm/headers/ProtocolIE-ID.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_ProtocolIE_ID_H_
-#define	_ProtocolIE_ID_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <NativeInteger.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* ProtocolIE-ID */
-typedef long	 ProtocolIE_ID_t;
-
-/* Implementation */
-extern asn_per_constraints_t asn_PER_type_ProtocolIE_ID_constr_1;
-extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ID;
-asn_struct_free_f ProtocolIE_ID_free;
-asn_struct_print_f ProtocolIE_ID_print;
-asn_constr_check_f ProtocolIE_ID_constraint;
-ber_type_decoder_f ProtocolIE_ID_decode_ber;
-der_type_encoder_f ProtocolIE_ID_encode_der;
-xer_type_decoder_f ProtocolIE_ID_decode_xer;
-xer_type_encoder_f ProtocolIE_ID_encode_xer;
-oer_type_decoder_f ProtocolIE_ID_decode_oer;
-oer_type_encoder_f ProtocolIE_ID_encode_oer;
-per_type_decoder_f ProtocolIE_ID_decode_uper;
-per_type_encoder_f ProtocolIE_ID_encode_uper;
-per_type_decoder_f ProtocolIE_ID_decode_aper;
-per_type_encoder_f ProtocolIE_ID_encode_aper;
-#define ProtocolIE_ID_id_Cause	((ProtocolIE_ID_t)1)
-#define ProtocolIE_ID_id_CriticalityDiagnostics	((ProtocolIE_ID_t)2)
-#define ProtocolIE_ID_id_GlobalE2node_ID	((ProtocolIE_ID_t)3)
-#define ProtocolIE_ID_id_GlobalRIC_ID	((ProtocolIE_ID_t)4)
-#define ProtocolIE_ID_id_RANfunctionID	((ProtocolIE_ID_t)5)
-#define ProtocolIE_ID_id_RANfunctionID_Item	((ProtocolIE_ID_t)6)
-#define ProtocolIE_ID_id_RANfunctionIEcause_Item	((ProtocolIE_ID_t)7)
-#define ProtocolIE_ID_id_RANfunction_Item	((ProtocolIE_ID_t)8)
-#define ProtocolIE_ID_id_RANfunctionsAccepted	((ProtocolIE_ID_t)9)
-#define ProtocolIE_ID_id_RANfunctionsAdded	((ProtocolIE_ID_t)10)
-#define ProtocolIE_ID_id_RANfunctionsDeleted	((ProtocolIE_ID_t)11)
-#define ProtocolIE_ID_id_RANfunctionsModified	((ProtocolIE_ID_t)12)
-#define ProtocolIE_ID_id_RANfunctionsRejected	((ProtocolIE_ID_t)13)
-#define ProtocolIE_ID_id_RICaction_Admitted_Item	((ProtocolIE_ID_t)14)
-#define ProtocolIE_ID_id_RICactionID	((ProtocolIE_ID_t)15)
-#define ProtocolIE_ID_id_RICaction_NotAdmitted_Item	((ProtocolIE_ID_t)16)
-#define ProtocolIE_ID_id_RICactions_Admitted	((ProtocolIE_ID_t)17)
-#define ProtocolIE_ID_id_RICactions_NotAdmitted	((ProtocolIE_ID_t)18)
-#define ProtocolIE_ID_id_RICaction_ToBeSetup_Item	((ProtocolIE_ID_t)19)
-#define ProtocolIE_ID_id_RICcallProcessID	((ProtocolIE_ID_t)20)
-#define ProtocolIE_ID_id_RICcontrolAckRequest	((ProtocolIE_ID_t)21)
-#define ProtocolIE_ID_id_RICcontrolHeader	((ProtocolIE_ID_t)22)
-#define ProtocolIE_ID_id_RICcontrolMessage	((ProtocolIE_ID_t)23)
-#define ProtocolIE_ID_id_RICcontrolStatus	((ProtocolIE_ID_t)24)
-#define ProtocolIE_ID_id_RICindicationHeader	((ProtocolIE_ID_t)25)
-#define ProtocolIE_ID_id_RICindicationMessage	((ProtocolIE_ID_t)26)
-#define ProtocolIE_ID_id_RICindicationSN	((ProtocolIE_ID_t)27)
-#define ProtocolIE_ID_id_RICindicationType	((ProtocolIE_ID_t)28)
-#define ProtocolIE_ID_id_RICrequestID	((ProtocolIE_ID_t)29)
-#define ProtocolIE_ID_id_RICsubscriptionDetails	((ProtocolIE_ID_t)30)
-#define ProtocolIE_ID_id_TimeToWait	((ProtocolIE_ID_t)31)
-#define ProtocolIE_ID_id_RICcontrolOutcome	((ProtocolIE_ID_t)32)
-#define ProtocolIE_ID_id_E2nodeComponentConfigUpdate	((ProtocolIE_ID_t)33)
-#define ProtocolIE_ID_id_E2nodeComponentConfigUpdate_Item	((ProtocolIE_ID_t)34)
-#define ProtocolIE_ID_id_E2nodeComponentConfigUpdateAck	((ProtocolIE_ID_t)35)
-#define ProtocolIE_ID_id_E2nodeComponentConfigUpdateAck_Item	((ProtocolIE_ID_t)36)
-#define ProtocolIE_ID_id_E2connectionSetup	((ProtocolIE_ID_t)39)
-#define ProtocolIE_ID_id_E2connectionSetupFailed	((ProtocolIE_ID_t)40)
-#define ProtocolIE_ID_id_E2connectionSetupFailed_Item	((ProtocolIE_ID_t)41)
-#define ProtocolIE_ID_id_E2connectionFailed_Item	((ProtocolIE_ID_t)42)
-#define ProtocolIE_ID_id_E2connectionUpdate_Item	((ProtocolIE_ID_t)43)
-#define ProtocolIE_ID_id_E2connectionUpdateAdd	((ProtocolIE_ID_t)44)
-#define ProtocolIE_ID_id_E2connectionUpdateModify	((ProtocolIE_ID_t)45)
-#define ProtocolIE_ID_id_E2connectionUpdateRemove	((ProtocolIE_ID_t)46)
-#define ProtocolIE_ID_id_E2connectionUpdateRemove_Item	((ProtocolIE_ID_t)47)
-#define ProtocolIE_ID_id_TNLinformation	((ProtocolIE_ID_t)48)
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _ProtocolIE_ID_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/QCI.h b/e2sm/headers/QCI.h
old mode 100644
new mode 100755
index 41fd4c0..5a6efc2
--- a/e2sm/headers/QCI.h
+++ b/e2sm/headers/QCI.h
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
diff --git a/e2sm/headers/QoSID.h b/e2sm/headers/QoSID.h
new file mode 100755
index 0000000..3165105
--- /dev/null
+++ b/e2sm/headers/QoSID.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_QoSID_H_
+#define	_QoSID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "FiveQI.h"
+#include "QCI.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum QoSID_PR {
+	QoSID_PR_NOTHING,	/* No components present */
+	QoSID_PR_fiveGC,
+	QoSID_PR_ePC
+	/* Extensions may appear below */
+	
+} QoSID_PR;
+
+/* QoSID */
+typedef struct QoSID {
+	QoSID_PR present;
+	union QoSID_u {
+		FiveQI_t	 fiveGC;
+		QCI_t	 ePC;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} QoSID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_QoSID;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _QoSID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/QosFlowIdentifier.h b/e2sm/headers/QosFlowIdentifier.h
new file mode 100755
index 0000000..86ef499
--- /dev/null
+++ b/e2sm/headers/QosFlowIdentifier.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_QosFlowIdentifier_H_
+#define	_QosFlowIdentifier_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* QosFlowIdentifier */
+typedef long	 QosFlowIdentifier_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_QosFlowIdentifier;
+asn_struct_free_f QosFlowIdentifier_free;
+asn_struct_print_f QosFlowIdentifier_print;
+asn_constr_check_f QosFlowIdentifier_constraint;
+ber_type_decoder_f QosFlowIdentifier_decode_ber;
+der_type_encoder_f QosFlowIdentifier_encode_der;
+xer_type_decoder_f QosFlowIdentifier_decode_xer;
+xer_type_encoder_f QosFlowIdentifier_encode_xer;
+oer_type_decoder_f QosFlowIdentifier_decode_oer;
+oer_type_encoder_f QosFlowIdentifier_encode_oer;
+per_type_decoder_f QosFlowIdentifier_decode_uper;
+per_type_encoder_f QosFlowIdentifier_encode_uper;
+per_type_decoder_f QosFlowIdentifier_decode_aper;
+per_type_encoder_f QosFlowIdentifier_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _QosFlowIdentifier_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RAN-CallProcess-ID.h b/e2sm/headers/RAN-CallProcess-ID.h
new file mode 100755
index 0000000..fd51354
--- /dev/null
+++ b/e2sm/headers/RAN-CallProcess-ID.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RAN_CallProcess_ID_H_
+#define	_RAN_CallProcess_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RAN-CallProcess-ID */
+typedef 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;
+asn_struct_free_f RAN_CallProcess_ID_free;
+asn_struct_print_f RAN_CallProcess_ID_print;
+asn_constr_check_f RAN_CallProcess_ID_constraint;
+ber_type_decoder_f RAN_CallProcess_ID_decode_ber;
+der_type_encoder_f RAN_CallProcess_ID_encode_der;
+xer_type_decoder_f RAN_CallProcess_ID_decode_xer;
+xer_type_encoder_f RAN_CallProcess_ID_encode_xer;
+oer_type_decoder_f RAN_CallProcess_ID_decode_oer;
+oer_type_encoder_f RAN_CallProcess_ID_encode_oer;
+per_type_decoder_f RAN_CallProcess_ID_decode_uper;
+per_type_encoder_f RAN_CallProcess_ID_encode_uper;
+per_type_decoder_f RAN_CallProcess_ID_decode_aper;
+per_type_encoder_f RAN_CallProcess_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RAN_CallProcess_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RAN-Container.h b/e2sm/headers/RAN-Container.h
deleted file mode 100644
index ad65e6f..0000000
--- a/e2sm/headers/RAN-Container.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_RAN_Container_H_
-#define	_RAN_Container_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <OCTET_STRING.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* RAN-Container */
-typedef OCTET_STRING_t	 RAN_Container_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_RAN_Container;
-asn_struct_free_f RAN_Container_free;
-asn_struct_print_f RAN_Container_print;
-asn_constr_check_f RAN_Container_constraint;
-ber_type_decoder_f RAN_Container_decode_ber;
-der_type_encoder_f RAN_Container_encode_der;
-xer_type_decoder_f RAN_Container_decode_xer;
-xer_type_encoder_f RAN_Container_encode_xer;
-oer_type_decoder_f RAN_Container_decode_oer;
-oer_type_encoder_f RAN_Container_encode_oer;
-per_type_decoder_f RAN_Container_decode_uper;
-per_type_encoder_f RAN_Container_encode_uper;
-per_type_decoder_f RAN_Container_decode_aper;
-per_type_encoder_f RAN_Container_encode_aper;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _RAN_Container_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/RAN-ControlParameter-Item.h b/e2sm/headers/RAN-ControlParameter-Item.h
deleted file mode 100644
index 68f5082..0000000
--- a/e2sm/headers/RAN-ControlParameter-Item.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_RAN_ControlParameter_Item_H_
-#define	_RAN_ControlParameter_Item_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "RANParameter-ID.h"
-#include "RANParameter-Name.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* RAN-ControlParameter-Item */
-typedef struct RAN_ControlParameter_Item {
-	RANParameter_ID_t	 ranParameter_ID;
-	RANParameter_Name_t	 ranParameter_Name;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} RAN_ControlParameter_Item_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_RAN_ControlParameter_Item;
-extern asn_SEQUENCE_specifics_t asn_SPC_RAN_ControlParameter_Item_specs_1;
-extern asn_TYPE_member_t asn_MBR_RAN_ControlParameter_Item_1[2];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _RAN_ControlParameter_Item_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/RANFunctionDefinition-Control-Action-Item.h b/e2sm/headers/RANFunctionDefinition-Control-Action-Item.h
new file mode 100755
index 0000000..cbcfe8e
--- /dev/null
+++ b/e2sm/headers/RANFunctionDefinition-Control-Action-Item.h
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANFunctionDefinition_Control_Action_Item_H_
+#define	_RANFunctionDefinition_Control_Action_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RIC-ControlAction-ID.h"
+#include "RIC-ControlAction-Name.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct ControlAction_RANParameter_Item;
+
+/* RANFunctionDefinition-Control-Action-Item */
+typedef struct RANFunctionDefinition_Control_Action_Item {
+	RIC_ControlAction_ID_t	 ric_ControlAction_ID;
+	RIC_ControlAction_Name_t	 ric_ControlAction_Name;
+	struct RANFunctionDefinition_Control_Action_Item__ran_ControlActionParameters_List {
+		A_SEQUENCE_OF(struct ControlAction_RANParameter_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} *ran_ControlActionParameters_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANFunctionDefinition_Control_Action_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANFunctionDefinition_Control_Action_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANFunctionDefinition_Control_Action_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANFunctionDefinition_Control_Action_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANFunctionDefinition_Control_Action_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANFunctionDefinition-Control-Item.h b/e2sm/headers/RANFunctionDefinition-Control-Item.h
new file mode 100755
index 0000000..e4033ec
--- /dev/null
+++ b/e2sm/headers/RANFunctionDefinition-Control-Item.h
@@ -0,0 +1,69 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANFunctionDefinition_Control_Item_H_
+#define	_RANFunctionDefinition_Control_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RIC-Style-Type.h"
+#include "RIC-Style-Name.h"
+#include "RIC-Format-Type.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RANFunctionDefinition_Control_Action_Item;
+struct ControlOutcome_RANParameter_Item;
+
+/* RANFunctionDefinition-Control-Item */
+typedef struct RANFunctionDefinition_Control_Item {
+	RIC_Style_Type_t	 ric_ControlStyle_Type;
+	RIC_Style_Name_t	 ric_ControlStyle_Name;
+	struct RANFunctionDefinition_Control_Item__ric_ControlAction_List {
+		A_SEQUENCE_OF(struct RANFunctionDefinition_Control_Action_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} *ric_ControlAction_List;
+	RIC_Format_Type_t	 ric_ControlHeaderFormat_Type;
+	RIC_Format_Type_t	 ric_ControlMessageFormat_Type;
+	RIC_Format_Type_t	*ric_CallProcessIDFormat_Type;	/* OPTIONAL */
+	RIC_Format_Type_t	 ric_ControlOutcomeFormat_Type;
+	struct RANFunctionDefinition_Control_Item__ran_ControlOutcomeParameters_List {
+		A_SEQUENCE_OF(struct ControlOutcome_RANParameter_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} *ran_ControlOutcomeParameters_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANFunctionDefinition_Control_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANFunctionDefinition_Control_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANFunctionDefinition_Control_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANFunctionDefinition_Control_Item_1[8];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANFunctionDefinition_Control_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANFunctionDefinition-Control.h b/e2sm/headers/RANFunctionDefinition-Control.h
new file mode 100755
index 0000000..d222a50
--- /dev/null
+++ b/e2sm/headers/RANFunctionDefinition-Control.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANFunctionDefinition_Control_H_
+#define	_RANFunctionDefinition_Control_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 RANFunctionDefinition_Control_Item;
+
+/* RANFunctionDefinition-Control */
+typedef struct RANFunctionDefinition_Control {
+	struct RANFunctionDefinition_Control__ric_ControlStyle_List {
+		A_SEQUENCE_OF(struct RANFunctionDefinition_Control_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;
+} RANFunctionDefinition_Control_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANFunctionDefinition_Control;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANFunctionDefinition_Control_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANFunctionDefinition_Control_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANFunctionDefinition_Control_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANFunctionDefinition-EventTrigger-Breakpoint-Item.h b/e2sm/headers/RANFunctionDefinition-EventTrigger-Breakpoint-Item.h
new file mode 100755
index 0000000..e8b263e
--- /dev/null
+++ b/e2sm/headers/RANFunctionDefinition-EventTrigger-Breakpoint-Item.h
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANFunctionDefinition_EventTrigger_Breakpoint_Item_H_
+#define	_RANFunctionDefinition_EventTrigger_Breakpoint_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RIC-CallProcessBreakpoint-ID.h"
+#include "RIC-CallProcessBreakpoint-Name.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct CallProcessBreakpoint_RANParameter_Item;
+
+/* RANFunctionDefinition-EventTrigger-Breakpoint-Item */
+typedef struct RANFunctionDefinition_EventTrigger_Breakpoint_Item {
+	RIC_CallProcessBreakpoint_ID_t	 callProcessBreakpoint_ID;
+	RIC_CallProcessBreakpoint_Name_t	 callProcessBreakpoint_Name;
+	struct RANFunctionDefinition_EventTrigger_Breakpoint_Item__ran_CallProcessBreakpointParameters_List {
+		A_SEQUENCE_OF(struct CallProcessBreakpoint_RANParameter_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} *ran_CallProcessBreakpointParameters_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANFunctionDefinition_EventTrigger_Breakpoint_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANFunctionDefinition_EventTrigger_Breakpoint_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANFunctionDefinition_EventTrigger_Breakpoint_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANFunctionDefinition_EventTrigger_Breakpoint_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANFunctionDefinition_EventTrigger_Breakpoint_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANFunctionDefinition-EventTrigger-CallProcess-Item.h b/e2sm/headers/RANFunctionDefinition-EventTrigger-CallProcess-Item.h
new file mode 100755
index 0000000..c3137de
--- /dev/null
+++ b/e2sm/headers/RANFunctionDefinition-EventTrigger-CallProcess-Item.h
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANFunctionDefinition_EventTrigger_CallProcess_Item_H_
+#define	_RANFunctionDefinition_EventTrigger_CallProcess_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RIC-CallProcessType-ID.h"
+#include "RIC-CallProcessType-Name.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RANFunctionDefinition_EventTrigger_Breakpoint_Item;
+
+/* RANFunctionDefinition-EventTrigger-CallProcess-Item */
+typedef struct RANFunctionDefinition_EventTrigger_CallProcess_Item {
+	RIC_CallProcessType_ID_t	 callProcessType_ID;
+	RIC_CallProcessType_Name_t	 callProcessType_Name;
+	struct RANFunctionDefinition_EventTrigger_CallProcess_Item__callProcessBreakpoints_List {
+		A_SEQUENCE_OF(struct RANFunctionDefinition_EventTrigger_Breakpoint_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} callProcessBreakpoints_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANFunctionDefinition_EventTrigger_CallProcess_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANFunctionDefinition_EventTrigger_CallProcess_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANFunctionDefinition_EventTrigger_CallProcess_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANFunctionDefinition_EventTrigger_CallProcess_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANFunctionDefinition_EventTrigger_CallProcess_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANFunctionDefinition-EventTrigger-Style-Item.h b/e2sm/headers/RANFunctionDefinition-EventTrigger-Style-Item.h
new file mode 100755
index 0000000..3cd426c
--- /dev/null
+++ b/e2sm/headers/RANFunctionDefinition-EventTrigger-Style-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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANFunctionDefinition_EventTrigger_Style_Item_H_
+#define	_RANFunctionDefinition_EventTrigger_Style_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RIC-Style-Type.h"
+#include "RIC-Style-Name.h"
+#include "RIC-Format-Type.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANFunctionDefinition-EventTrigger-Style-Item */
+typedef struct RANFunctionDefinition_EventTrigger_Style_Item {
+	RIC_Style_Type_t	 ric_EventTriggerStyle_Type;
+	RIC_Style_Name_t	 ric_EventTriggerStyle_Name;
+	RIC_Format_Type_t	 ric_EventTriggerFormat_Type;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANFunctionDefinition_EventTrigger_Style_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANFunctionDefinition_EventTrigger_Style_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANFunctionDefinition_EventTrigger_Style_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANFunctionDefinition_EventTrigger_Style_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANFunctionDefinition_EventTrigger_Style_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANFunctionDefinition-EventTrigger.h b/e2sm/headers/RANFunctionDefinition-EventTrigger.h
new file mode 100755
index 0000000..c08d4d2
--- /dev/null
+++ b/e2sm/headers/RANFunctionDefinition-EventTrigger.h
@@ -0,0 +1,81 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANFunctionDefinition_EventTrigger_H_
+#define	_RANFunctionDefinition_EventTrigger_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 RANFunctionDefinition_EventTrigger_Style_Item;
+struct L2Parameters_RANParameter_Item;
+struct RANFunctionDefinition_EventTrigger_CallProcess_Item;
+struct UEIdentification_RANParameter_Item;
+struct CellIdentification_RANParameter_Item;
+
+/* RANFunctionDefinition-EventTrigger */
+typedef struct RANFunctionDefinition_EventTrigger {
+	struct RANFunctionDefinition_EventTrigger__ric_EventTriggerStyle_List {
+		A_SEQUENCE_OF(struct RANFunctionDefinition_EventTrigger_Style_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ric_EventTriggerStyle_List;
+	struct RANFunctionDefinition_EventTrigger__ran_L2Parameters_List {
+		A_SEQUENCE_OF(struct L2Parameters_RANParameter_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} *ran_L2Parameters_List;
+	struct RANFunctionDefinition_EventTrigger__ran_CallProcessTypes_List {
+		A_SEQUENCE_OF(struct RANFunctionDefinition_EventTrigger_CallProcess_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} *ran_CallProcessTypes_List;
+	struct RANFunctionDefinition_EventTrigger__ran_UEIdentificationParameters_List {
+		A_SEQUENCE_OF(struct UEIdentification_RANParameter_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} *ran_UEIdentificationParameters_List;
+	struct RANFunctionDefinition_EventTrigger__ran_CellIdentificationParameters_List {
+		A_SEQUENCE_OF(struct CellIdentification_RANParameter_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} *ran_CellIdentificationParameters_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANFunctionDefinition_EventTrigger_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANFunctionDefinition_EventTrigger;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANFunctionDefinition_EventTrigger_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANFunctionDefinition_EventTrigger_1[5];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANFunctionDefinition_EventTrigger_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANFunctionDefinition-Insert-Indication-Item.h b/e2sm/headers/RANFunctionDefinition-Insert-Indication-Item.h
new file mode 100755
index 0000000..2d87885
--- /dev/null
+++ b/e2sm/headers/RANFunctionDefinition-Insert-Indication-Item.h
@@ -0,0 +1,57 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANFunctionDefinition_Insert_Indication_Item_H_
+#define	_RANFunctionDefinition_Insert_Indication_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RIC-InsertIndication-ID.h"
+#include "RIC-InsertIndication-Name.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct InsertIndication_RANParameter_Item;
+
+/* RANFunctionDefinition-Insert-Indication-Item */
+typedef struct RANFunctionDefinition_Insert_Indication_Item {
+	RIC_InsertIndication_ID_t	 ric_InsertIndication_ID;
+	RIC_InsertIndication_Name_t	 ric_InsertIndication_Name;
+	struct RANFunctionDefinition_Insert_Indication_Item__ran_InsertIndicationParameters_List {
+		A_SEQUENCE_OF(struct InsertIndication_RANParameter_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} *ran_InsertIndicationParameters_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANFunctionDefinition_Insert_Indication_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANFunctionDefinition_Insert_Indication_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANFunctionDefinition_Insert_Indication_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANFunctionDefinition_Insert_Indication_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANFunctionDefinition_Insert_Indication_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANFunctionDefinition-Insert-Item.h b/e2sm/headers/RANFunctionDefinition-Insert-Item.h
new file mode 100755
index 0000000..dfe347f
--- /dev/null
+++ b/e2sm/headers/RANFunctionDefinition-Insert-Item.h
@@ -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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANFunctionDefinition_Insert_Item_H_
+#define	_RANFunctionDefinition_Insert_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RIC-Style-Type.h"
+#include "RIC-Style-Name.h"
+#include "RIC-Format-Type.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RANFunctionDefinition_Insert_Indication_Item;
+
+/* RANFunctionDefinition-Insert-Item */
+typedef struct RANFunctionDefinition_Insert_Item {
+	RIC_Style_Type_t	 ric_InsertStyle_Type;
+	RIC_Style_Name_t	 ric_InsertStyle_Name;
+	RIC_Style_Type_t	 ric_SupportedEventTriggerStyle_Type;
+	RIC_Format_Type_t	 ric_ActionDefinitionFormat_Type;
+	struct RANFunctionDefinition_Insert_Item__ric_InsertIndication_List {
+		A_SEQUENCE_OF(struct RANFunctionDefinition_Insert_Indication_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} *ric_InsertIndication_List;
+	RIC_Format_Type_t	 ric_IndicationHeaderFormat_Type;
+	RIC_Format_Type_t	 ric_IndicationMessageFormat_Type;
+	RIC_Format_Type_t	 ric_CallProcessIDFormat_Type;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANFunctionDefinition_Insert_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANFunctionDefinition_Insert_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANFunctionDefinition_Insert_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANFunctionDefinition_Insert_Item_1[8];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANFunctionDefinition_Insert_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANFunctionDefinition-Insert.h b/e2sm/headers/RANFunctionDefinition-Insert.h
new file mode 100755
index 0000000..9e63c3d
--- /dev/null
+++ b/e2sm/headers/RANFunctionDefinition-Insert.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANFunctionDefinition_Insert_H_
+#define	_RANFunctionDefinition_Insert_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 RANFunctionDefinition_Insert_Item;
+
+/* RANFunctionDefinition-Insert */
+typedef struct RANFunctionDefinition_Insert {
+	struct RANFunctionDefinition_Insert__ric_InsertStyle_List {
+		A_SEQUENCE_OF(struct RANFunctionDefinition_Insert_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;
+} RANFunctionDefinition_Insert_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANFunctionDefinition_Insert;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANFunctionDefinition_Insert_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANFunctionDefinition_Insert_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANFunctionDefinition_Insert_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANFunctionDefinition-Policy-Action-Item.h b/e2sm/headers/RANFunctionDefinition-Policy-Action-Item.h
new file mode 100755
index 0000000..4c0ead9
--- /dev/null
+++ b/e2sm/headers/RANFunctionDefinition-Policy-Action-Item.h
@@ -0,0 +1,66 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANFunctionDefinition_Policy_Action_Item_H_
+#define	_RANFunctionDefinition_Policy_Action_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RIC-ControlAction-ID.h"
+#include "RIC-ControlAction-Name.h"
+#include "RIC-Format-Type.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct PolicyAction_RANParameter_Item;
+struct PolicyCondition_RANParameter_Item;
+
+/* RANFunctionDefinition-Policy-Action-Item */
+typedef struct RANFunctionDefinition_Policy_Action_Item {
+	RIC_ControlAction_ID_t	 ric_PolicyAction_ID;
+	RIC_ControlAction_Name_t	 ric_PolicyAction_Name;
+	RIC_Format_Type_t	 ric_ActionDefinitionFormat_Type;
+	struct RANFunctionDefinition_Policy_Action_Item__ran_PolicyActionParameters_List {
+		A_SEQUENCE_OF(struct PolicyAction_RANParameter_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} *ran_PolicyActionParameters_List;
+	struct RANFunctionDefinition_Policy_Action_Item__ran_PolicyConditionParameters_List {
+		A_SEQUENCE_OF(struct PolicyCondition_RANParameter_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} *ran_PolicyConditionParameters_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANFunctionDefinition_Policy_Action_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANFunctionDefinition_Policy_Action_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANFunctionDefinition_Policy_Action_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANFunctionDefinition_Policy_Action_Item_1[5];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANFunctionDefinition_Policy_Action_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANFunctionDefinition-Policy-Item.h b/e2sm/headers/RANFunctionDefinition-Policy-Item.h
new file mode 100755
index 0000000..58752ca
--- /dev/null
+++ b/e2sm/headers/RANFunctionDefinition-Policy-Item.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANFunctionDefinition_Policy_Item_H_
+#define	_RANFunctionDefinition_Policy_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RIC-Style-Type.h"
+#include "RIC-Style-Name.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RANFunctionDefinition_Policy_Action_Item;
+
+/* RANFunctionDefinition-Policy-Item */
+typedef struct RANFunctionDefinition_Policy_Item {
+	RIC_Style_Type_t	 ric_PolicyStyle_Type;
+	RIC_Style_Name_t	 ric_PolicyStyle_Name;
+	RIC_Style_Type_t	 ric_SupportedEventTriggerStyle_Type;
+	struct RANFunctionDefinition_Policy_Item__ric_PolicyAction_List {
+		A_SEQUENCE_OF(struct RANFunctionDefinition_Policy_Action_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} *ric_PolicyAction_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANFunctionDefinition_Policy_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANFunctionDefinition_Policy_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANFunctionDefinition_Policy_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANFunctionDefinition_Policy_Item_1[4];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANFunctionDefinition_Policy_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANFunctionDefinition-Policy.h b/e2sm/headers/RANFunctionDefinition-Policy.h
new file mode 100755
index 0000000..11743ba
--- /dev/null
+++ b/e2sm/headers/RANFunctionDefinition-Policy.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANFunctionDefinition_Policy_H_
+#define	_RANFunctionDefinition_Policy_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 RANFunctionDefinition_Policy_Item;
+
+/* RANFunctionDefinition-Policy */
+typedef struct RANFunctionDefinition_Policy {
+	struct RANFunctionDefinition_Policy__ric_PolicyStyle_List {
+		A_SEQUENCE_OF(struct RANFunctionDefinition_Policy_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ric_PolicyStyle_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANFunctionDefinition_Policy_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANFunctionDefinition_Policy;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANFunctionDefinition_Policy_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANFunctionDefinition_Policy_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANFunctionDefinition_Policy_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANFunctionDefinition-Report-Item.h b/e2sm/headers/RANFunctionDefinition-Report-Item.h
new file mode 100755
index 0000000..c951556
--- /dev/null
+++ b/e2sm/headers/RANFunctionDefinition-Report-Item.h
@@ -0,0 +1,62 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANFunctionDefinition_Report_Item_H_
+#define	_RANFunctionDefinition_Report_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RIC-Style-Type.h"
+#include "RIC-Style-Name.h"
+#include "RIC-Format-Type.h"
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct Report_RANParameter_Item;
+
+/* RANFunctionDefinition-Report-Item */
+typedef struct RANFunctionDefinition_Report_Item {
+	RIC_Style_Type_t	 ric_ReportStyle_Type;
+	RIC_Style_Name_t	 ric_ReportStyle_Name;
+	RIC_Style_Type_t	 ric_SupportedEventTriggerStyle_Type;
+	RIC_Format_Type_t	 ric_ReportActionFormat_Type;
+	RIC_Format_Type_t	 ric_IndicationHeaderFormat_Type;
+	RIC_Format_Type_t	 ric_IndicationMessageFormat_Type;
+	struct RANFunctionDefinition_Report_Item__ran_ReportParameters_List {
+		A_SEQUENCE_OF(struct Report_RANParameter_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} *ran_ReportParameters_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANFunctionDefinition_Report_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANFunctionDefinition_Report_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANFunctionDefinition_Report_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANFunctionDefinition_Report_Item_1[7];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANFunctionDefinition_Report_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANFunctionDefinition-Report.h b/e2sm/headers/RANFunctionDefinition-Report.h
new file mode 100755
index 0000000..1b9d203
--- /dev/null
+++ b/e2sm/headers/RANFunctionDefinition-Report.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANFunctionDefinition_Report_H_
+#define	_RANFunctionDefinition_Report_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 RANFunctionDefinition_Report_Item;
+
+/* RANFunctionDefinition-Report */
+typedef struct RANFunctionDefinition_Report {
+	struct RANFunctionDefinition_Report__ric_ReportStyle_List {
+		A_SEQUENCE_OF(struct RANFunctionDefinition_Report_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ric_ReportStyle_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANFunctionDefinition_Report_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANFunctionDefinition_Report;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANFunctionDefinition_Report_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANFunctionDefinition_Report_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANFunctionDefinition_Report_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANParameter-Definition-Choice-LIST-Item.h b/e2sm/headers/RANParameter-Definition-Choice-LIST-Item.h
new file mode 100755
index 0000000..1be0c9a
--- /dev/null
+++ b/e2sm/headers/RANParameter-Definition-Choice-LIST-Item.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANParameter_Definition_Choice_LIST_Item_H_
+#define	_RANParameter_Definition_Choice_LIST_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANParameter-ID.h"
+#include "RANParameter-Name.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RANParameter_Definition;
+
+/* RANParameter-Definition-Choice-LIST-Item */
+typedef struct RANParameter_Definition_Choice_LIST_Item {
+	RANParameter_ID_t	 ranParameter_ID;
+	RANParameter_Name_t	 ranParameter_name;
+	struct RANParameter_Definition	*ranParameter_Definition;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANParameter_Definition_Choice_LIST_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANParameter_Definition_Choice_LIST_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANParameter_Definition_Choice_LIST_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANParameter_Definition_Choice_LIST_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANParameter_Definition_Choice_LIST_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANParameter-Definition-Choice-LIST.h b/e2sm/headers/RANParameter-Definition-Choice-LIST.h
new file mode 100755
index 0000000..c0c035e
--- /dev/null
+++ b/e2sm/headers/RANParameter-Definition-Choice-LIST.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANParameter_Definition_Choice_LIST_H_
+#define	_RANParameter_Definition_Choice_LIST_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 RANParameter_Definition_Choice_LIST_Item;
+
+/* RANParameter-Definition-Choice-LIST */
+typedef struct RANParameter_Definition_Choice_LIST {
+	struct RANParameter_Definition_Choice_LIST__ranParameter_List {
+		A_SEQUENCE_OF(struct RANParameter_Definition_Choice_LIST_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ranParameter_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANParameter_Definition_Choice_LIST_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANParameter_Definition_Choice_LIST;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANParameter_Definition_Choice_LIST_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANParameter_Definition_Choice_LIST_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANParameter_Definition_Choice_LIST_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANParameter-Definition-Choice-STRUCTURE-Item.h b/e2sm/headers/RANParameter-Definition-Choice-STRUCTURE-Item.h
new file mode 100755
index 0000000..2cf8f46
--- /dev/null
+++ b/e2sm/headers/RANParameter-Definition-Choice-STRUCTURE-Item.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANParameter_Definition_Choice_STRUCTURE_Item_H_
+#define	_RANParameter_Definition_Choice_STRUCTURE_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANParameter-ID.h"
+#include "RANParameter-Name.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RANParameter_Definition;
+
+/* RANParameter-Definition-Choice-STRUCTURE-Item */
+typedef struct RANParameter_Definition_Choice_STRUCTURE_Item {
+	RANParameter_ID_t	 ranParameter_ID;
+	RANParameter_Name_t	 ranParameter_name;
+	struct RANParameter_Definition	*ranParameter_Definition;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANParameter_Definition_Choice_STRUCTURE_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANParameter_Definition_Choice_STRUCTURE_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANParameter_Definition_Choice_STRUCTURE_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANParameter_Definition_Choice_STRUCTURE_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANParameter_Definition_Choice_STRUCTURE_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANParameter-Definition-Choice-STRUCTURE.h b/e2sm/headers/RANParameter-Definition-Choice-STRUCTURE.h
new file mode 100755
index 0000000..6c004fa
--- /dev/null
+++ b/e2sm/headers/RANParameter-Definition-Choice-STRUCTURE.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANParameter_Definition_Choice_STRUCTURE_H_
+#define	_RANParameter_Definition_Choice_STRUCTURE_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 RANParameter_Definition_Choice_STRUCTURE_Item;
+
+/* RANParameter-Definition-Choice-STRUCTURE */
+typedef struct RANParameter_Definition_Choice_STRUCTURE {
+	struct RANParameter_Definition_Choice_STRUCTURE__ranParameter_STRUCTURE {
+		A_SEQUENCE_OF(struct RANParameter_Definition_Choice_STRUCTURE_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ranParameter_STRUCTURE;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANParameter_Definition_Choice_STRUCTURE_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANParameter_Definition_Choice_STRUCTURE;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANParameter_Definition_Choice_STRUCTURE_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANParameter_Definition_Choice_STRUCTURE_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANParameter_Definition_Choice_STRUCTURE_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANParameter-Definition-Choice.h b/e2sm/headers/RANParameter-Definition-Choice.h
new file mode 100755
index 0000000..f60f05e
--- /dev/null
+++ b/e2sm/headers/RANParameter-Definition-Choice.h
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANParameter_Definition_Choice_H_
+#define	_RANParameter_Definition_Choice_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANParameter_Definition_Choice_PR {
+	RANParameter_Definition_Choice_PR_NOTHING,	/* No components present */
+	RANParameter_Definition_Choice_PR_choiceLIST,
+	RANParameter_Definition_Choice_PR_choiceSTRUCTURE
+	/* Extensions may appear below */
+	
+} RANParameter_Definition_Choice_PR;
+
+/* Forward declarations */
+struct RANParameter_Definition_Choice_LIST;
+struct RANParameter_Definition_Choice_STRUCTURE;
+
+/* RANParameter-Definition-Choice */
+typedef struct RANParameter_Definition_Choice {
+	RANParameter_Definition_Choice_PR present;
+	union RANParameter_Definition_Choice_u {
+		struct RANParameter_Definition_Choice_LIST	*choiceLIST;
+		struct RANParameter_Definition_Choice_STRUCTURE	*choiceSTRUCTURE;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANParameter_Definition_Choice_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANParameter_Definition_Choice;
+extern asn_CHOICE_specifics_t asn_SPC_RANParameter_Definition_Choice_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANParameter_Definition_Choice_1[2];
+extern asn_per_constraints_t asn_PER_type_RANParameter_Definition_Choice_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANParameter_Definition_Choice_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANParameter-Definition.h b/e2sm/headers/RANParameter-Definition.h
new file mode 100755
index 0000000..71b63cd
--- /dev/null
+++ b/e2sm/headers/RANParameter-Definition.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANParameter_Definition_H_
+#define	_RANParameter_Definition_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RANParameter_Definition_Choice;
+
+/* RANParameter-Definition */
+typedef struct RANParameter_Definition {
+	struct RANParameter_Definition_Choice	*ranParameter_Definition_Choice;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANParameter_Definition_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANParameter_Definition;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANParameter_Definition_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANParameter_Definition_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANParameter_Definition_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANParameter-ELEMENT.h b/e2sm/headers/RANParameter-ELEMENT.h
deleted file mode 100644
index 200e3ed..0000000
--- a/e2sm/headers/RANParameter-ELEMENT.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_RANParameter_ELEMENT_H_
-#define	_RANParameter_ELEMENT_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <BOOLEAN.h>
-#include "RANParameter-Value.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* RANParameter-ELEMENT */
-typedef struct RANParameter_ELEMENT {
-	BOOLEAN_t	 keyFlag;
-	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;
-} RANParameter_ELEMENT_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_RANParameter_ELEMENT;
-extern asn_SEQUENCE_specifics_t asn_SPC_RANParameter_ELEMENT_specs_1;
-extern asn_TYPE_member_t asn_MBR_RANParameter_ELEMENT_1[2];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _RANParameter_ELEMENT_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/RANParameter-ID.h b/e2sm/headers/RANParameter-ID.h
old mode 100644
new mode 100755
index 74f3479..4135c39
--- a/e2sm/headers/RANParameter-ID.h
+++ b/e2sm/headers/RANParameter-ID.h
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
@@ -19,12 +19,11 @@
 #endif
 
 /* RANParameter-ID */
-typedef unsigned long	 RANParameter_ID_t;
+typedef 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-Item.h b/e2sm/headers/RANParameter-Item.h
deleted file mode 100644
index 922c61a..0000000
--- a/e2sm/headers/RANParameter-Item.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_RANParameter_Item_H_
-#define	_RANParameter_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_ValueType;
-
-/* RANParameter-Item */
-typedef struct RANParameter_Item {
-	RANParameter_ID_t	 ranParameterItem_ID;
-	struct RANParameter_ValueType	*ranParameterItem_valueType;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} RANParameter_Item_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_RANParameter_Item;
-extern asn_SEQUENCE_specifics_t asn_SPC_RANParameter_Item_specs_1;
-extern asn_TYPE_member_t asn_MBR_RANParameter_Item_1[2];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _RANParameter_Item_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/RANParameter-LIST.h b/e2sm/headers/RANParameter-LIST.h
old mode 100644
new mode 100755
index 603482c..daba313
--- a/e2sm/headers/RANParameter-LIST.h
+++ b/e2sm/headers/RANParameter-LIST.h
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
@@ -25,12 +25,12 @@
 
 /* RANParameter-LIST */
 typedef struct RANParameter_LIST {
-	struct RANParameter_LIST__list_of_ranParameter_Structures {
+	struct RANParameter_LIST__list_of_ranParameter {
 		A_SEQUENCE_OF(struct RANParameter_STRUCTURE) list;
 		
 		/* Context for parsing across buffer boundaries */
 		asn_struct_ctx_t _asn_ctx;
-	} list_of_ranParameter_Structures;
+	} list_of_ranParameter;
 	/*
 	 * This type is extensible,
 	 * possible extensions are below.
diff --git a/e2sm/headers/RANParameter-Name.h b/e2sm/headers/RANParameter-Name.h
old mode 100644
new mode 100755
index 5f1b997..6efd1a5
--- a/e2sm/headers/RANParameter-Name.h
+++ b/e2sm/headers/RANParameter-Name.h
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
diff --git a/e2sm/headers/RANParameter-STRUCTURE-Item.h b/e2sm/headers/RANParameter-STRUCTURE-Item.h
new file mode 100755
index 0000000..6a702d7
--- /dev/null
+++ b/e2sm/headers/RANParameter-STRUCTURE-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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANParameter_STRUCTURE_Item_H_
+#define	_RANParameter_STRUCTURE_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_ValueType;
+
+/* RANParameter-STRUCTURE-Item */
+typedef struct RANParameter_STRUCTURE_Item {
+	RANParameter_ID_t	 ranParameter_ID;
+	struct RANParameter_ValueType	*ranParameter_valueType;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANParameter_STRUCTURE_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANParameter_STRUCTURE_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANParameter_STRUCTURE_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANParameter_STRUCTURE_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANParameter_STRUCTURE_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANParameter-STRUCTURE.h b/e2sm/headers/RANParameter-STRUCTURE.h
old mode 100644
new mode 100755
index 7904936..0b1c4d4
--- a/e2sm/headers/RANParameter-STRUCTURE.h
+++ b/e2sm/headers/RANParameter-STRUCTURE.h
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
@@ -21,16 +21,16 @@
 #endif
 
 /* Forward declarations */
-struct RANParameter_Item;
+struct RANParameter_STRUCTURE_Item;
 
 /* RANParameter-STRUCTURE */
 typedef struct RANParameter_STRUCTURE {
 	struct RANParameter_STRUCTURE__sequence_of_ranParameters {
-		A_SEQUENCE_OF(struct RANParameter_Item) list;
+		A_SEQUENCE_OF(struct RANParameter_STRUCTURE_Item) list;
 		
 		/* Context for parsing across buffer boundaries */
 		asn_struct_ctx_t _asn_ctx;
-	} sequence_of_ranParameters;
+	} *sequence_of_ranParameters;
 	/*
 	 * This type is extensible,
 	 * possible extensions are below.
diff --git a/e2sm/headers/RANParameter-Testing-Item-Choice-ElementFalse.h b/e2sm/headers/RANParameter-Testing-Item-Choice-ElementFalse.h
new file mode 100755
index 0000000..cc87683
--- /dev/null
+++ b/e2sm/headers/RANParameter-Testing-Item-Choice-ElementFalse.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANParameter_Testing_Item_Choice_ElementFalse_H_
+#define	_RANParameter_Testing_Item_Choice_ElementFalse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANParameter-TestingCondition.h"
+#include "LogicalOR.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RANParameter_Value;
+
+/* RANParameter-Testing-Item-Choice-ElementFalse */
+typedef struct RANParameter_Testing_Item_Choice_ElementFalse {
+	RANParameter_TestingCondition_t	 ranParameter_TestCondition;
+	struct RANParameter_Value	*ranParameter_Value;	/* OPTIONAL */
+	LogicalOR_t	*logicalOR;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANParameter_Testing_Item_Choice_ElementFalse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANParameter_Testing_Item_Choice_ElementFalse;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANParameter_Testing_Item_Choice_ElementFalse_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANParameter_Testing_Item_Choice_ElementFalse_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANParameter_Testing_Item_Choice_ElementFalse_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANParameter-Testing-Item-Choice-ElementTrue.h b/e2sm/headers/RANParameter-Testing-Item-Choice-ElementTrue.h
new file mode 100755
index 0000000..85554f6
--- /dev/null
+++ b/e2sm/headers/RANParameter-Testing-Item-Choice-ElementTrue.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANParameter_Testing_Item_Choice_ElementTrue_H_
+#define	_RANParameter_Testing_Item_Choice_ElementTrue_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANParameter-Value.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANParameter-Testing-Item-Choice-ElementTrue */
+typedef struct RANParameter_Testing_Item_Choice_ElementTrue {
+	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;
+} RANParameter_Testing_Item_Choice_ElementTrue_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANParameter_Testing_Item_Choice_ElementTrue;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANParameter_Testing_Item_Choice_ElementTrue_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANParameter_Testing_Item_Choice_ElementTrue_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANParameter_Testing_Item_Choice_ElementTrue_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANParameter-Testing-Item-Choice-List.h b/e2sm/headers/RANParameter-Testing-Item-Choice-List.h
new file mode 100755
index 0000000..43de60a
--- /dev/null
+++ b/e2sm/headers/RANParameter-Testing-Item-Choice-List.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANParameter_Testing_Item_Choice_List_H_
+#define	_RANParameter_Testing_Item_Choice_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RANParameter_Testing_LIST;
+
+/* RANParameter-Testing-Item-Choice-List */
+typedef struct RANParameter_Testing_Item_Choice_List {
+	struct RANParameter_Testing_LIST	*ranParameter_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANParameter_Testing_Item_Choice_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANParameter_Testing_Item_Choice_List;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANParameter_Testing_Item_Choice_List_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANParameter_Testing_Item_Choice_List_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANParameter_Testing_Item_Choice_List_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANParameter-Testing-Item-Choice-Structure.h b/e2sm/headers/RANParameter-Testing-Item-Choice-Structure.h
new file mode 100755
index 0000000..7c9a516
--- /dev/null
+++ b/e2sm/headers/RANParameter-Testing-Item-Choice-Structure.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANParameter_Testing_Item_Choice_Structure_H_
+#define	_RANParameter_Testing_Item_Choice_Structure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RANParameter_Testing_STRUCTURE;
+
+/* RANParameter-Testing-Item-Choice-Structure */
+typedef struct RANParameter_Testing_Item_Choice_Structure {
+	struct RANParameter_Testing_STRUCTURE	*ranParameter_Structure;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANParameter_Testing_Item_Choice_Structure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANParameter_Testing_Item_Choice_Structure;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANParameter_Testing_Item_Choice_Structure_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANParameter_Testing_Item_Choice_Structure_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANParameter_Testing_Item_Choice_Structure_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANParameter-Testing-Item.h b/e2sm/headers/RANParameter-Testing-Item.h
new file mode 100755
index 0000000..218c8f0
--- /dev/null
+++ b/e2sm/headers/RANParameter-Testing-Item.h
@@ -0,0 +1,78 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANParameter_Testing_Item_H_
+#define	_RANParameter_Testing_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANParameter-ID.h"
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANParameter_Testing_Item__ranParameter_Type_PR {
+	RANParameter_Testing_Item__ranParameter_Type_PR_NOTHING,	/* No components present */
+	RANParameter_Testing_Item__ranParameter_Type_PR_ranP_Choice_List,
+	RANParameter_Testing_Item__ranParameter_Type_PR_ranP_Choice_Structure,
+	RANParameter_Testing_Item__ranParameter_Type_PR_ranP_Choice_ElementTrue,
+	RANParameter_Testing_Item__ranParameter_Type_PR_ranP_Choice_ElementFalse
+	/* Extensions may appear below */
+	
+} RANParameter_Testing_Item__ranParameter_Type_PR;
+
+/* Forward declarations */
+struct RANParameter_Testing_Item_Choice_List;
+struct RANParameter_Testing_Item_Choice_Structure;
+struct RANParameter_Testing_Item_Choice_ElementTrue;
+struct RANParameter_Testing_Item_Choice_ElementFalse;
+
+/* RANParameter-Testing-Item */
+typedef struct RANParameter_Testing_Item {
+	RANParameter_ID_t	 ranParameter_ID;
+	struct RANParameter_Testing_Item__ranParameter_Type {
+		RANParameter_Testing_Item__ranParameter_Type_PR present;
+		union RANParameter_Testing_Item__ranParameter_Type_u {
+			struct RANParameter_Testing_Item_Choice_List	*ranP_Choice_List;
+			struct RANParameter_Testing_Item_Choice_Structure	*ranP_Choice_Structure;
+			struct RANParameter_Testing_Item_Choice_ElementTrue	*ranP_Choice_ElementTrue;
+			struct RANParameter_Testing_Item_Choice_ElementFalse	*ranP_Choice_ElementFalse;
+			/*
+			 * This type is extensible,
+			 * possible extensions are below.
+			 */
+		} choice;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} ranParameter_Type;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANParameter_Testing_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANParameter_Testing_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANParameter_Testing_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANParameter_Testing_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANParameter_Testing_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANParameter-Testing-LIST.h b/e2sm/headers/RANParameter-Testing-LIST.h
new file mode 100755
index 0000000..8c43900
--- /dev/null
+++ b/e2sm/headers/RANParameter-Testing-LIST.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANParameter_Testing_LIST_H_
+#define	_RANParameter_Testing_LIST_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RANParameter_Testing_Item;
+
+/* RANParameter-Testing-LIST */
+typedef struct RANParameter_Testing_LIST {
+	A_SEQUENCE_OF(struct RANParameter_Testing_Item) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANParameter_Testing_LIST_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANParameter_Testing_LIST;
+extern asn_SET_OF_specifics_t asn_SPC_RANParameter_Testing_LIST_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANParameter_Testing_LIST_1[1];
+extern asn_per_constraints_t asn_PER_type_RANParameter_Testing_LIST_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANParameter_Testing_LIST_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANParameter-Testing-STRUCTURE.h b/e2sm/headers/RANParameter-Testing-STRUCTURE.h
new file mode 100755
index 0000000..e3cd354
--- /dev/null
+++ b/e2sm/headers/RANParameter-Testing-STRUCTURE.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANParameter_Testing_STRUCTURE_H_
+#define	_RANParameter_Testing_STRUCTURE_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RANParameter_Testing_Item;
+
+/* RANParameter-Testing-STRUCTURE */
+typedef struct RANParameter_Testing_STRUCTURE {
+	A_SEQUENCE_OF(struct RANParameter_Testing_Item) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANParameter_Testing_STRUCTURE_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANParameter_Testing_STRUCTURE;
+extern asn_SET_OF_specifics_t asn_SPC_RANParameter_Testing_STRUCTURE_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANParameter_Testing_STRUCTURE_1[1];
+extern asn_per_constraints_t asn_PER_type_RANParameter_Testing_STRUCTURE_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANParameter_Testing_STRUCTURE_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANParameter-Testing.h b/e2sm/headers/RANParameter-Testing.h
new file mode 100755
index 0000000..4c4bf1a
--- /dev/null
+++ b/e2sm/headers/RANParameter-Testing.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANParameter_Testing_H_
+#define	_RANParameter_Testing_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RANParameter_Testing_Item;
+
+/* RANParameter-Testing */
+typedef struct RANParameter_Testing {
+	A_SEQUENCE_OF(struct RANParameter_Testing_Item) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANParameter_Testing_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANParameter_Testing;
+extern asn_SET_OF_specifics_t asn_SPC_RANParameter_Testing_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANParameter_Testing_1[1];
+extern asn_per_constraints_t asn_PER_type_RANParameter_Testing_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANParameter_Testing_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANParameter-TestingCondition.h b/e2sm/headers/RANParameter-TestingCondition.h
new file mode 100755
index 0000000..2ece0f0
--- /dev/null
+++ b/e2sm/headers/RANParameter-TestingCondition.h
@@ -0,0 +1,80 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANParameter_TestingCondition_H_
+#define	_RANParameter_TestingCondition_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RANParameter_TestingCondition_PR {
+	RANParameter_TestingCondition_PR_NOTHING,	/* No components present */
+	RANParameter_TestingCondition_PR_ranP_Choice_comparison,
+	RANParameter_TestingCondition_PR_ranP_Choice_presence
+	/* Extensions may appear below */
+	
+} RANParameter_TestingCondition_PR;
+typedef enum RANParameter_TestingCondition__ranP_Choice_comparison {
+	RANParameter_TestingCondition__ranP_Choice_comparison_equal	= 0,
+	RANParameter_TestingCondition__ranP_Choice_comparison_difference	= 1,
+	RANParameter_TestingCondition__ranP_Choice_comparison_greaterthan	= 2,
+	RANParameter_TestingCondition__ranP_Choice_comparison_lessthan	= 3,
+	RANParameter_TestingCondition__ranP_Choice_comparison_contains	= 4,
+	RANParameter_TestingCondition__ranP_Choice_comparison_starts_with	= 5
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANParameter_TestingCondition__ranP_Choice_comparison;
+typedef enum RANParameter_TestingCondition__ranP_Choice_presence {
+	RANParameter_TestingCondition__ranP_Choice_presence_present	= 0,
+	RANParameter_TestingCondition__ranP_Choice_presence_configured	= 1,
+	RANParameter_TestingCondition__ranP_Choice_presence_rollover	= 2,
+	RANParameter_TestingCondition__ranP_Choice_presence_non_zero	= 3
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RANParameter_TestingCondition__ranP_Choice_presence;
+
+/* RANParameter-TestingCondition */
+typedef struct RANParameter_TestingCondition {
+	RANParameter_TestingCondition_PR present;
+	union RANParameter_TestingCondition_u {
+		long	 ranP_Choice_comparison;
+		long	 ranP_Choice_presence;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANParameter_TestingCondition_t;
+
+/* Implementation */
+/* extern asn_TYPE_descriptor_t asn_DEF_ranP_Choice_comparison_2;	// (Use -fall-defs-global to expose) */
+/* extern asn_TYPE_descriptor_t asn_DEF_ranP_Choice_presence_10;	// (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_RANParameter_TestingCondition;
+extern asn_CHOICE_specifics_t asn_SPC_RANParameter_TestingCondition_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANParameter_TestingCondition_1[2];
+extern asn_per_constraints_t asn_PER_type_RANParameter_TestingCondition_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANParameter_TestingCondition_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANParameter-Value.h b/e2sm/headers/RANParameter-Value.h
old mode 100644
new mode 100755
index 92e3759..2ef91a4
--- a/e2sm/headers/RANParameter-Value.h
+++ b/e2sm/headers/RANParameter-Value.h
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
@@ -12,8 +12,12 @@
 #include <asn_application.h>
 
 /* Including external dependencies */
+#include <BOOLEAN.h>
 #include <NativeInteger.h>
+#include <NativeReal.h>
+#include <BIT_STRING.h>
 #include <OCTET_STRING.h>
+#include <PrintableString.h>
 #include <constr_CHOICE.h>
 
 #ifdef __cplusplus
@@ -23,8 +27,12 @@
 /* Dependencies */
 typedef enum RANParameter_Value_PR {
 	RANParameter_Value_PR_NOTHING,	/* No components present */
+	RANParameter_Value_PR_valueBoolean,
 	RANParameter_Value_PR_valueInt,
-	RANParameter_Value_PR_valueOctS
+	RANParameter_Value_PR_valueReal,
+	RANParameter_Value_PR_valueBitS,
+	RANParameter_Value_PR_valueOctS,
+	RANParameter_Value_PR_valuePrintableString
 	/* Extensions may appear below */
 	
 } RANParameter_Value_PR;
@@ -33,8 +41,12 @@
 typedef struct RANParameter_Value {
 	RANParameter_Value_PR present;
 	union RANParameter_Value_u {
+		BOOLEAN_t	 valueBoolean;
 		long	 valueInt;
+		double	 valueReal;
+		BIT_STRING_t	 valueBitS;
 		OCTET_STRING_t	 valueOctS;
+		PrintableString_t	 valuePrintableString;
 		/*
 		 * This type is extensible,
 		 * possible extensions are below.
@@ -48,7 +60,7 @@
 /* Implementation */
 extern asn_TYPE_descriptor_t asn_DEF_RANParameter_Value;
 extern asn_CHOICE_specifics_t asn_SPC_RANParameter_Value_specs_1;
-extern asn_TYPE_member_t asn_MBR_RANParameter_Value_1[2];
+extern asn_TYPE_member_t asn_MBR_RANParameter_Value_1[6];
 extern asn_per_constraints_t asn_PER_type_RANParameter_Value_constr_1;
 
 #ifdef __cplusplus
diff --git a/e2sm/headers/RANParameter-ValueType-Choice-ElementFalse.h b/e2sm/headers/RANParameter-ValueType-Choice-ElementFalse.h
new file mode 100755
index 0000000..d8d925a
--- /dev/null
+++ b/e2sm/headers/RANParameter-ValueType-Choice-ElementFalse.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANParameter_ValueType_Choice_ElementFalse_H_
+#define	_RANParameter_ValueType_Choice_ElementFalse_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RANParameter_Value;
+
+/* RANParameter-ValueType-Choice-ElementFalse */
+typedef struct RANParameter_ValueType_Choice_ElementFalse {
+	struct RANParameter_Value	*ranParameter_value;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANParameter_ValueType_Choice_ElementFalse_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANParameter_ValueType_Choice_ElementFalse;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANParameter_ValueType_Choice_ElementFalse_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANParameter_ValueType_Choice_ElementFalse_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANParameter_ValueType_Choice_ElementFalse_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANParameter-ValueType-Choice-ElementTrue.h b/e2sm/headers/RANParameter-ValueType-Choice-ElementTrue.h
new file mode 100755
index 0000000..efd275a
--- /dev/null
+++ b/e2sm/headers/RANParameter-ValueType-Choice-ElementTrue.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANParameter_ValueType_Choice_ElementTrue_H_
+#define	_RANParameter_ValueType_Choice_ElementTrue_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANParameter-Value.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANParameter-ValueType-Choice-ElementTrue */
+typedef struct RANParameter_ValueType_Choice_ElementTrue {
+	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;
+} RANParameter_ValueType_Choice_ElementTrue_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANParameter_ValueType_Choice_ElementTrue;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANParameter_ValueType_Choice_ElementTrue_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANParameter_ValueType_Choice_ElementTrue_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANParameter_ValueType_Choice_ElementTrue_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANParameter-ValueType-Choice-List.h b/e2sm/headers/RANParameter-ValueType-Choice-List.h
new file mode 100755
index 0000000..f06bc9b
--- /dev/null
+++ b/e2sm/headers/RANParameter-ValueType-Choice-List.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANParameter_ValueType_Choice_List_H_
+#define	_RANParameter_ValueType_Choice_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RANParameter_LIST;
+
+/* RANParameter-ValueType-Choice-List */
+typedef struct RANParameter_ValueType_Choice_List {
+	struct RANParameter_LIST	*ranParameter_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANParameter_ValueType_Choice_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANParameter_ValueType_Choice_List;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANParameter_ValueType_Choice_List_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANParameter_ValueType_Choice_List_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANParameter_ValueType_Choice_List_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANParameter-ValueType-Choice-Structure.h b/e2sm/headers/RANParameter-ValueType-Choice-Structure.h
new file mode 100755
index 0000000..9931c70
--- /dev/null
+++ b/e2sm/headers/RANParameter-ValueType-Choice-Structure.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANParameter_ValueType_Choice_Structure_H_
+#define	_RANParameter_ValueType_Choice_Structure_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RANParameter_STRUCTURE;
+
+/* RANParameter-ValueType-Choice-Structure */
+typedef struct RANParameter_ValueType_Choice_Structure {
+	struct RANParameter_STRUCTURE	*ranParameter_Structure;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RANParameter_ValueType_Choice_Structure_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RANParameter_ValueType_Choice_Structure;
+extern asn_SEQUENCE_specifics_t asn_SPC_RANParameter_ValueType_Choice_Structure_specs_1;
+extern asn_TYPE_member_t asn_MBR_RANParameter_ValueType_Choice_Structure_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANParameter_ValueType_Choice_Structure_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANParameter-ValueType.h b/e2sm/headers/RANParameter-ValueType.h
old mode 100644
new mode 100755
index 162ad29..09941b1
--- a/e2sm/headers/RANParameter-ValueType.h
+++ b/e2sm/headers/RANParameter-ValueType.h
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
@@ -21,25 +21,28 @@
 /* Dependencies */
 typedef enum RANParameter_ValueType_PR {
 	RANParameter_ValueType_PR_NOTHING,	/* No components present */
-	RANParameter_ValueType_PR_ranParameter_Element,
-	RANParameter_ValueType_PR_ranParameter_Structure,
-	RANParameter_ValueType_PR_ranParameter_List
+	RANParameter_ValueType_PR_ranP_Choice_ElementTrue,
+	RANParameter_ValueType_PR_ranP_Choice_ElementFalse,
+	RANParameter_ValueType_PR_ranP_Choice_Structure,
+	RANParameter_ValueType_PR_ranP_Choice_List
 	/* Extensions may appear below */
 	
 } RANParameter_ValueType_PR;
 
 /* Forward declarations */
-struct RANParameter_ELEMENT;
-struct RANParameter_STRUCTURE;
-struct RANParameter_LIST;
+struct RANParameter_ValueType_Choice_ElementTrue;
+struct RANParameter_ValueType_Choice_ElementFalse;
+struct RANParameter_ValueType_Choice_Structure;
+struct RANParameter_ValueType_Choice_List;
 
 /* RANParameter-ValueType */
 typedef struct RANParameter_ValueType {
 	RANParameter_ValueType_PR present;
 	union RANParameter_ValueType_u {
-		struct RANParameter_ELEMENT	*ranParameter_Element;
-		struct RANParameter_STRUCTURE	*ranParameter_Structure;
-		struct RANParameter_LIST	*ranParameter_List;
+		struct RANParameter_ValueType_Choice_ElementTrue	*ranP_Choice_ElementTrue;
+		struct RANParameter_ValueType_Choice_ElementFalse	*ranP_Choice_ElementFalse;
+		struct RANParameter_ValueType_Choice_Structure	*ranP_Choice_Structure;
+		struct RANParameter_ValueType_Choice_List	*ranP_Choice_List;
 		/*
 		 * This type is extensible,
 		 * possible extensions are below.
@@ -53,7 +56,7 @@
 /* Implementation */
 extern asn_TYPE_descriptor_t asn_DEF_RANParameter_ValueType;
 extern asn_CHOICE_specifics_t asn_SPC_RANParameter_ValueType_specs_1;
-extern asn_TYPE_member_t asn_MBR_RANParameter_ValueType_1[3];
+extern asn_TYPE_member_t asn_MBR_RANParameter_ValueType_1[4];
 extern asn_per_constraints_t asn_PER_type_RANParameter_ValueType_constr_1;
 
 #ifdef __cplusplus
diff --git a/e2sm/headers/RANUEID.h b/e2sm/headers/RANUEID.h
new file mode 100755
index 0000000..bfd9fa8
--- /dev/null
+++ b/e2sm/headers/RANUEID.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RANUEID_H_
+#define	_RANUEID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RANUEID */
+typedef OCTET_STRING_t	 RANUEID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RANUEID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RANUEID;
+asn_struct_free_f RANUEID_free;
+asn_struct_print_f RANUEID_print;
+asn_constr_check_f RANUEID_constraint;
+ber_type_decoder_f RANUEID_decode_ber;
+der_type_encoder_f RANUEID_encode_der;
+xer_type_decoder_f RANUEID_decode_xer;
+xer_type_encoder_f RANUEID_encode_xer;
+oer_type_decoder_f RANUEID_decode_oer;
+oer_type_encoder_f RANUEID_encode_oer;
+per_type_decoder_f RANUEID_decode_uper;
+per_type_encoder_f RANUEID_encode_uper;
+per_type_decoder_f RANUEID_decode_aper;
+per_type_encoder_f RANUEID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RANUEID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RANcallProcess-ID-string.h b/e2sm/headers/RANcallProcess-ID-string.h
deleted file mode 100644
index c24a061..0000000
--- a/e2sm/headers/RANcallProcess-ID-string.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_RANcallProcess_ID_string_H_
-#define	_RANcallProcess_ID_string_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <PrintableString.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* RANcallProcess-ID-string */
-typedef PrintableString_t	 RANcallProcess_ID_string_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_RANcallProcess_ID_string;
-asn_struct_free_f RANcallProcess_ID_string_free;
-asn_struct_print_f RANcallProcess_ID_string_print;
-asn_constr_check_f RANcallProcess_ID_string_constraint;
-ber_type_decoder_f RANcallProcess_ID_string_decode_ber;
-der_type_encoder_f RANcallProcess_ID_string_encode_der;
-xer_type_decoder_f RANcallProcess_ID_string_decode_xer;
-xer_type_encoder_f RANcallProcess_ID_string_encode_xer;
-oer_type_decoder_f RANcallProcess_ID_string_decode_oer;
-oer_type_encoder_f RANcallProcess_ID_string_encode_oer;
-per_type_decoder_f RANcallProcess_ID_string_decode_uper;
-per_type_encoder_f RANcallProcess_ID_string_encode_uper;
-per_type_decoder_f RANcallProcess_ID_string_decode_aper;
-per_type_encoder_f RANcallProcess_ID_string_encode_aper;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _RANcallProcess_ID_string_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/RANfunction-Name.h b/e2sm/headers/RANfunction-Name.h
old mode 100644
new mode 100755
index 22f5c95..9262ade
--- a/e2sm/headers/RANfunction-Name.h
+++ b/e2sm/headers/RANfunction-Name.h
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
diff --git a/e2sm/headers/REAL.h b/e2sm/headers/REAL.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/RIC-CallProcessBreakpoint-ID.h b/e2sm/headers/RIC-CallProcessBreakpoint-ID.h
new file mode 100755
index 0000000..c228957
--- /dev/null
+++ b/e2sm/headers/RIC-CallProcessBreakpoint-ID.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RIC_CallProcessBreakpoint_ID_H_
+#define	_RIC_CallProcessBreakpoint_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RIC-CallProcessBreakpoint-ID */
+typedef long	 RIC_CallProcessBreakpoint_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RIC_CallProcessBreakpoint_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RIC_CallProcessBreakpoint_ID;
+asn_struct_free_f RIC_CallProcessBreakpoint_ID_free;
+asn_struct_print_f RIC_CallProcessBreakpoint_ID_print;
+asn_constr_check_f RIC_CallProcessBreakpoint_ID_constraint;
+ber_type_decoder_f RIC_CallProcessBreakpoint_ID_decode_ber;
+der_type_encoder_f RIC_CallProcessBreakpoint_ID_encode_der;
+xer_type_decoder_f RIC_CallProcessBreakpoint_ID_decode_xer;
+xer_type_encoder_f RIC_CallProcessBreakpoint_ID_encode_xer;
+oer_type_decoder_f RIC_CallProcessBreakpoint_ID_decode_oer;
+oer_type_encoder_f RIC_CallProcessBreakpoint_ID_encode_oer;
+per_type_decoder_f RIC_CallProcessBreakpoint_ID_decode_uper;
+per_type_encoder_f RIC_CallProcessBreakpoint_ID_encode_uper;
+per_type_decoder_f RIC_CallProcessBreakpoint_ID_decode_aper;
+per_type_encoder_f RIC_CallProcessBreakpoint_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RIC_CallProcessBreakpoint_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RIC-CallProcessBreakpoint-Name.h b/e2sm/headers/RIC-CallProcessBreakpoint-Name.h
new file mode 100755
index 0000000..e25b00d
--- /dev/null
+++ b/e2sm/headers/RIC-CallProcessBreakpoint-Name.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RIC_CallProcessBreakpoint_Name_H_
+#define	_RIC_CallProcessBreakpoint_Name_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <PrintableString.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RIC-CallProcessBreakpoint-Name */
+typedef PrintableString_t	 RIC_CallProcessBreakpoint_Name_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RIC_CallProcessBreakpoint_Name_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RIC_CallProcessBreakpoint_Name;
+asn_struct_free_f RIC_CallProcessBreakpoint_Name_free;
+asn_struct_print_f RIC_CallProcessBreakpoint_Name_print;
+asn_constr_check_f RIC_CallProcessBreakpoint_Name_constraint;
+ber_type_decoder_f RIC_CallProcessBreakpoint_Name_decode_ber;
+der_type_encoder_f RIC_CallProcessBreakpoint_Name_encode_der;
+xer_type_decoder_f RIC_CallProcessBreakpoint_Name_decode_xer;
+xer_type_encoder_f RIC_CallProcessBreakpoint_Name_encode_xer;
+oer_type_decoder_f RIC_CallProcessBreakpoint_Name_decode_oer;
+oer_type_encoder_f RIC_CallProcessBreakpoint_Name_encode_oer;
+per_type_decoder_f RIC_CallProcessBreakpoint_Name_decode_uper;
+per_type_encoder_f RIC_CallProcessBreakpoint_Name_encode_uper;
+per_type_decoder_f RIC_CallProcessBreakpoint_Name_decode_aper;
+per_type_encoder_f RIC_CallProcessBreakpoint_Name_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RIC_CallProcessBreakpoint_Name_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RIC-CallProcessType-ID.h b/e2sm/headers/RIC-CallProcessType-ID.h
new file mode 100755
index 0000000..ec6f05c
--- /dev/null
+++ b/e2sm/headers/RIC-CallProcessType-ID.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RIC_CallProcessType_ID_H_
+#define	_RIC_CallProcessType_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RIC-CallProcessType-ID */
+typedef long	 RIC_CallProcessType_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RIC_CallProcessType_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RIC_CallProcessType_ID;
+asn_struct_free_f RIC_CallProcessType_ID_free;
+asn_struct_print_f RIC_CallProcessType_ID_print;
+asn_constr_check_f RIC_CallProcessType_ID_constraint;
+ber_type_decoder_f RIC_CallProcessType_ID_decode_ber;
+der_type_encoder_f RIC_CallProcessType_ID_encode_der;
+xer_type_decoder_f RIC_CallProcessType_ID_decode_xer;
+xer_type_encoder_f RIC_CallProcessType_ID_encode_xer;
+oer_type_decoder_f RIC_CallProcessType_ID_decode_oer;
+oer_type_encoder_f RIC_CallProcessType_ID_encode_oer;
+per_type_decoder_f RIC_CallProcessType_ID_decode_uper;
+per_type_encoder_f RIC_CallProcessType_ID_encode_uper;
+per_type_decoder_f RIC_CallProcessType_ID_decode_aper;
+per_type_encoder_f RIC_CallProcessType_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RIC_CallProcessType_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RIC-CallProcessType-Name.h b/e2sm/headers/RIC-CallProcessType-Name.h
new file mode 100755
index 0000000..787cb02
--- /dev/null
+++ b/e2sm/headers/RIC-CallProcessType-Name.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RIC_CallProcessType_Name_H_
+#define	_RIC_CallProcessType_Name_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <PrintableString.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RIC-CallProcessType-Name */
+typedef PrintableString_t	 RIC_CallProcessType_Name_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RIC_CallProcessType_Name_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RIC_CallProcessType_Name;
+asn_struct_free_f RIC_CallProcessType_Name_free;
+asn_struct_print_f RIC_CallProcessType_Name_print;
+asn_constr_check_f RIC_CallProcessType_Name_constraint;
+ber_type_decoder_f RIC_CallProcessType_Name_decode_ber;
+der_type_encoder_f RIC_CallProcessType_Name_encode_der;
+xer_type_decoder_f RIC_CallProcessType_Name_decode_xer;
+xer_type_encoder_f RIC_CallProcessType_Name_encode_xer;
+oer_type_decoder_f RIC_CallProcessType_Name_decode_oer;
+oer_type_encoder_f RIC_CallProcessType_Name_encode_oer;
+per_type_decoder_f RIC_CallProcessType_Name_decode_uper;
+per_type_encoder_f RIC_CallProcessType_Name_encode_uper;
+per_type_decoder_f RIC_CallProcessType_Name_decode_aper;
+per_type_encoder_f RIC_CallProcessType_Name_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RIC_CallProcessType_Name_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RIC-ControlAction-ID.h b/e2sm/headers/RIC-ControlAction-ID.h
old mode 100644
new mode 100755
index 78dab02..5c62283
--- a/e2sm/headers/RIC-ControlAction-ID.h
+++ b/e2sm/headers/RIC-ControlAction-ID.h
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
diff --git a/e2sm/headers/RIC-ControlAction-Item.h b/e2sm/headers/RIC-ControlAction-Item.h
deleted file mode 100644
index c064c3a..0000000
--- a/e2sm/headers/RIC-ControlAction-Item.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_RIC_ControlAction_Item_H_
-#define	_RIC_ControlAction_Item_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "RIC-ControlAction-ID.h"
-#include "RIC-ControlAction-Name.h"
-#include <asn_SEQUENCE_OF.h>
-#include <constr_SEQUENCE_OF.h>
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Forward declarations */
-struct RAN_ControlParameter_Item;
-
-/* RIC-ControlAction-Item */
-typedef struct RIC_ControlAction_Item {
-	RIC_ControlAction_ID_t	 ric_ControlAction_ID;
-	RIC_ControlAction_Name_t	 ric_ControlAction_Name;
-	struct RIC_ControlAction_Item__ran_ControlParameters_List {
-		A_SEQUENCE_OF(struct RAN_ControlParameter_Item) list;
-		
-		/* Context for parsing across buffer boundaries */
-		asn_struct_ctx_t _asn_ctx;
-	} *ran_ControlParameters_List;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} RIC_ControlAction_Item_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_RIC_ControlAction_Item;
-extern asn_SEQUENCE_specifics_t asn_SPC_RIC_ControlAction_Item_specs_1;
-extern asn_TYPE_member_t asn_MBR_RIC_ControlAction_Item_1[3];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _RIC_ControlAction_Item_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/RIC-ControlAction-Name.h b/e2sm/headers/RIC-ControlAction-Name.h
old mode 100644
new mode 100755
index 7e2d351..30eb1b5
--- a/e2sm/headers/RIC-ControlAction-Name.h
+++ b/e2sm/headers/RIC-ControlAction-Name.h
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
diff --git a/e2sm/headers/RIC-ControlStyle-Item.h b/e2sm/headers/RIC-ControlStyle-Item.h
deleted file mode 100644
index a24d639..0000000
--- a/e2sm/headers/RIC-ControlStyle-Item.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_RIC_ControlStyle_Item_H_
-#define	_RIC_ControlStyle_Item_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "RIC-Style-Type.h"
-#include "RIC-Style-Name.h"
-#include "RIC-Format-Type.h"
-#include <asn_SEQUENCE_OF.h>
-#include <constr_SEQUENCE_OF.h>
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Forward declarations */
-struct RIC_ControlAction_Item;
-
-/* RIC-ControlStyle-Item */
-typedef struct RIC_ControlStyle_Item {
-	RIC_Style_Type_t	 ric_ControlStyle_Type;
-	RIC_Style_Name_t	 ric_ControlStyle_Name;
-	struct RIC_ControlStyle_Item__ric_ControlAction_List {
-		A_SEQUENCE_OF(struct RIC_ControlAction_Item) list;
-		
-		/* Context for parsing across buffer boundaries */
-		asn_struct_ctx_t _asn_ctx;
-	} *ric_ControlAction_List;
-	RIC_Format_Type_t	 ric_ControlHeaderFormat_Type;
-	RIC_Format_Type_t	 ric_ControlMessageFormat_Type;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} RIC_ControlStyle_Item_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_RIC_ControlStyle_Item;
-extern asn_SEQUENCE_specifics_t asn_SPC_RIC_ControlStyle_Item_specs_1;
-extern asn_TYPE_member_t asn_MBR_RIC_ControlStyle_Item_1[5];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _RIC_ControlStyle_Item_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/RIC-EventTrigger-Cell-ID.h b/e2sm/headers/RIC-EventTrigger-Cell-ID.h
new file mode 100755
index 0000000..9fd9ebe
--- /dev/null
+++ b/e2sm/headers/RIC-EventTrigger-Cell-ID.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RIC_EventTrigger_Cell_ID_H_
+#define	_RIC_EventTrigger_Cell_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RIC-EventTrigger-Cell-ID */
+typedef long	 RIC_EventTrigger_Cell_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RIC_EventTrigger_Cell_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RIC_EventTrigger_Cell_ID;
+asn_struct_free_f RIC_EventTrigger_Cell_ID_free;
+asn_struct_print_f RIC_EventTrigger_Cell_ID_print;
+asn_constr_check_f RIC_EventTrigger_Cell_ID_constraint;
+ber_type_decoder_f RIC_EventTrigger_Cell_ID_decode_ber;
+der_type_encoder_f RIC_EventTrigger_Cell_ID_encode_der;
+xer_type_decoder_f RIC_EventTrigger_Cell_ID_decode_xer;
+xer_type_encoder_f RIC_EventTrigger_Cell_ID_encode_xer;
+oer_type_decoder_f RIC_EventTrigger_Cell_ID_decode_oer;
+oer_type_encoder_f RIC_EventTrigger_Cell_ID_encode_oer;
+per_type_decoder_f RIC_EventTrigger_Cell_ID_decode_uper;
+per_type_encoder_f RIC_EventTrigger_Cell_ID_encode_uper;
+per_type_decoder_f RIC_EventTrigger_Cell_ID_decode_aper;
+per_type_encoder_f RIC_EventTrigger_Cell_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RIC_EventTrigger_Cell_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RIC-EventTrigger-UE-ID.h b/e2sm/headers/RIC-EventTrigger-UE-ID.h
new file mode 100755
index 0000000..d5c32f3
--- /dev/null
+++ b/e2sm/headers/RIC-EventTrigger-UE-ID.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RIC_EventTrigger_UE_ID_H_
+#define	_RIC_EventTrigger_UE_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RIC-EventTrigger-UE-ID */
+typedef long	 RIC_EventTrigger_UE_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RIC_EventTrigger_UE_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RIC_EventTrigger_UE_ID;
+asn_struct_free_f RIC_EventTrigger_UE_ID_free;
+asn_struct_print_f RIC_EventTrigger_UE_ID_print;
+asn_constr_check_f RIC_EventTrigger_UE_ID_constraint;
+ber_type_decoder_f RIC_EventTrigger_UE_ID_decode_ber;
+der_type_encoder_f RIC_EventTrigger_UE_ID_encode_der;
+xer_type_decoder_f RIC_EventTrigger_UE_ID_decode_xer;
+xer_type_encoder_f RIC_EventTrigger_UE_ID_encode_xer;
+oer_type_decoder_f RIC_EventTrigger_UE_ID_decode_oer;
+oer_type_encoder_f RIC_EventTrigger_UE_ID_encode_oer;
+per_type_decoder_f RIC_EventTrigger_UE_ID_decode_uper;
+per_type_encoder_f RIC_EventTrigger_UE_ID_encode_uper;
+per_type_decoder_f RIC_EventTrigger_UE_ID_decode_aper;
+per_type_encoder_f RIC_EventTrigger_UE_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RIC_EventTrigger_UE_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RIC-EventTrigger-UEevent-ID.h b/e2sm/headers/RIC-EventTrigger-UEevent-ID.h
new file mode 100755
index 0000000..51c9aa0
--- /dev/null
+++ b/e2sm/headers/RIC-EventTrigger-UEevent-ID.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RIC_EventTrigger_UEevent_ID_H_
+#define	_RIC_EventTrigger_UEevent_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RIC-EventTrigger-UEevent-ID */
+typedef long	 RIC_EventTrigger_UEevent_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RIC_EventTrigger_UEevent_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RIC_EventTrigger_UEevent_ID;
+asn_struct_free_f RIC_EventTrigger_UEevent_ID_free;
+asn_struct_print_f RIC_EventTrigger_UEevent_ID_print;
+asn_constr_check_f RIC_EventTrigger_UEevent_ID_constraint;
+ber_type_decoder_f RIC_EventTrigger_UEevent_ID_decode_ber;
+der_type_encoder_f RIC_EventTrigger_UEevent_ID_encode_der;
+xer_type_decoder_f RIC_EventTrigger_UEevent_ID_decode_xer;
+xer_type_encoder_f RIC_EventTrigger_UEevent_ID_encode_xer;
+oer_type_decoder_f RIC_EventTrigger_UEevent_ID_decode_oer;
+oer_type_encoder_f RIC_EventTrigger_UEevent_ID_encode_oer;
+per_type_decoder_f RIC_EventTrigger_UEevent_ID_decode_uper;
+per_type_encoder_f RIC_EventTrigger_UEevent_ID_encode_uper;
+per_type_decoder_f RIC_EventTrigger_UEevent_ID_decode_aper;
+per_type_encoder_f RIC_EventTrigger_UEevent_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RIC_EventTrigger_UEevent_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RIC-EventTriggerCondition-ID.h b/e2sm/headers/RIC-EventTriggerCondition-ID.h
new file mode 100755
index 0000000..5079e45
--- /dev/null
+++ b/e2sm/headers/RIC-EventTriggerCondition-ID.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RIC_EventTriggerCondition_ID_H_
+#define	_RIC_EventTriggerCondition_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RIC-EventTriggerCondition-ID */
+typedef long	 RIC_EventTriggerCondition_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RIC_EventTriggerCondition_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RIC_EventTriggerCondition_ID;
+asn_struct_free_f RIC_EventTriggerCondition_ID_free;
+asn_struct_print_f RIC_EventTriggerCondition_ID_print;
+asn_constr_check_f RIC_EventTriggerCondition_ID_constraint;
+ber_type_decoder_f RIC_EventTriggerCondition_ID_decode_ber;
+der_type_encoder_f RIC_EventTriggerCondition_ID_encode_der;
+xer_type_decoder_f RIC_EventTriggerCondition_ID_decode_xer;
+xer_type_encoder_f RIC_EventTriggerCondition_ID_encode_xer;
+oer_type_decoder_f RIC_EventTriggerCondition_ID_decode_oer;
+oer_type_encoder_f RIC_EventTriggerCondition_ID_encode_oer;
+per_type_decoder_f RIC_EventTriggerCondition_ID_decode_uper;
+per_type_encoder_f RIC_EventTriggerCondition_ID_encode_uper;
+per_type_decoder_f RIC_EventTriggerCondition_ID_decode_aper;
+per_type_encoder_f RIC_EventTriggerCondition_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RIC_EventTriggerCondition_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RIC-EventTriggerStyle-Item.h b/e2sm/headers/RIC-EventTriggerStyle-Item.h
deleted file mode 100644
index dbff4fc..0000000
--- a/e2sm/headers/RIC-EventTriggerStyle-Item.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_RIC_EventTriggerStyle_Item_H_
-#define	_RIC_EventTriggerStyle_Item_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "RIC-Style-Type.h"
-#include "RIC-Style-Name.h"
-#include "RIC-Format-Type.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* RIC-EventTriggerStyle-Item */
-typedef struct RIC_EventTriggerStyle_Item {
-	RIC_Style_Type_t	 ric_EventTriggerStyle_Type;
-	RIC_Style_Name_t	 ric_EventTriggerStyle_Name;
-	RIC_Format_Type_t	 ric_EventTriggerFormat_Type;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} RIC_EventTriggerStyle_Item_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_RIC_EventTriggerStyle_Item;
-extern asn_SEQUENCE_specifics_t asn_SPC_RIC_EventTriggerStyle_Item_specs_1;
-extern asn_TYPE_member_t asn_MBR_RIC_EventTriggerStyle_Item_1[3];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _RIC_EventTriggerStyle_Item_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/RIC-Format-Type.h b/e2sm/headers/RIC-Format-Type.h
old mode 100644
new mode 100755
index 7d06e5f..a81c54a
--- a/e2sm/headers/RIC-Format-Type.h
+++ b/e2sm/headers/RIC-Format-Type.h
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
diff --git a/e2sm/headers/RIC-InsertIndication-ID.h b/e2sm/headers/RIC-InsertIndication-ID.h
new file mode 100755
index 0000000..55b4384
--- /dev/null
+++ b/e2sm/headers/RIC-InsertIndication-ID.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RIC_InsertIndication_ID_H_
+#define	_RIC_InsertIndication_ID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RIC-InsertIndication-ID */
+typedef long	 RIC_InsertIndication_ID_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RIC_InsertIndication_ID_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RIC_InsertIndication_ID;
+asn_struct_free_f RIC_InsertIndication_ID_free;
+asn_struct_print_f RIC_InsertIndication_ID_print;
+asn_constr_check_f RIC_InsertIndication_ID_constraint;
+ber_type_decoder_f RIC_InsertIndication_ID_decode_ber;
+der_type_encoder_f RIC_InsertIndication_ID_encode_der;
+xer_type_decoder_f RIC_InsertIndication_ID_decode_xer;
+xer_type_encoder_f RIC_InsertIndication_ID_encode_xer;
+oer_type_decoder_f RIC_InsertIndication_ID_decode_oer;
+oer_type_encoder_f RIC_InsertIndication_ID_encode_oer;
+per_type_decoder_f RIC_InsertIndication_ID_decode_uper;
+per_type_encoder_f RIC_InsertIndication_ID_encode_uper;
+per_type_decoder_f RIC_InsertIndication_ID_decode_aper;
+per_type_encoder_f RIC_InsertIndication_ID_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RIC_InsertIndication_ID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RIC-InsertIndication-Name.h b/e2sm/headers/RIC-InsertIndication-Name.h
new file mode 100755
index 0000000..2387e30
--- /dev/null
+++ b/e2sm/headers/RIC-InsertIndication-Name.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RIC_InsertIndication_Name_H_
+#define	_RIC_InsertIndication_Name_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <PrintableString.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* RIC-InsertIndication-Name */
+typedef PrintableString_t	 RIC_InsertIndication_Name_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RIC_InsertIndication_Name_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RIC_InsertIndication_Name;
+asn_struct_free_f RIC_InsertIndication_Name_free;
+asn_struct_print_f RIC_InsertIndication_Name_print;
+asn_constr_check_f RIC_InsertIndication_Name_constraint;
+ber_type_decoder_f RIC_InsertIndication_Name_decode_ber;
+der_type_encoder_f RIC_InsertIndication_Name_encode_der;
+xer_type_decoder_f RIC_InsertIndication_Name_decode_xer;
+xer_type_encoder_f RIC_InsertIndication_Name_encode_xer;
+oer_type_decoder_f RIC_InsertIndication_Name_decode_oer;
+oer_type_encoder_f RIC_InsertIndication_Name_encode_oer;
+per_type_decoder_f RIC_InsertIndication_Name_decode_uper;
+per_type_encoder_f RIC_InsertIndication_Name_encode_uper;
+per_type_decoder_f RIC_InsertIndication_Name_decode_aper;
+per_type_encoder_f RIC_InsertIndication_Name_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RIC_InsertIndication_Name_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RIC-PolicyAction-RANParameter-Item.h b/e2sm/headers/RIC-PolicyAction-RANParameter-Item.h
new file mode 100755
index 0000000..83a93ef
--- /dev/null
+++ b/e2sm/headers/RIC-PolicyAction-RANParameter-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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RIC_PolicyAction_RANParameter_Item_H_
+#define	_RIC_PolicyAction_RANParameter_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
+
+/* RIC-PolicyAction-RANParameter-Item */
+typedef struct RIC_PolicyAction_RANParameter_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;
+} RIC_PolicyAction_RANParameter_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RIC_PolicyAction_RANParameter_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_RIC_PolicyAction_RANParameter_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_RIC_PolicyAction_RANParameter_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RIC_PolicyAction_RANParameter_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RIC-PolicyAction.h b/e2sm/headers/RIC-PolicyAction.h
new file mode 100755
index 0000000..92e63d1
--- /dev/null
+++ b/e2sm/headers/RIC-PolicyAction.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RIC_PolicyAction_H_
+#define	_RIC_PolicyAction_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 RIC_PolicyAction_RANParameter_Item;
+
+/* RIC-PolicyAction */
+typedef struct RIC_PolicyAction {
+	RIC_ControlAction_ID_t	 ric_PolicyAction_ID;
+	struct RIC_PolicyAction__ranParameters_List {
+		A_SEQUENCE_OF(struct RIC_PolicyAction_RANParameter_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} *ranParameters_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RIC_PolicyAction_t;
+
+/* Implementation */
+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];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RIC_PolicyAction_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RIC-ReportStyle-Item.h b/e2sm/headers/RIC-ReportStyle-Item.h
deleted file mode 100644
index 7e963fb..0000000
--- a/e2sm/headers/RIC-ReportStyle-Item.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_RIC_ReportStyle_Item_H_
-#define	_RIC_ReportStyle_Item_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "RIC-Style-Type.h"
-#include "RIC-Style-Name.h"
-#include "RIC-Format-Type.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* RIC-ReportStyle-Item */
-typedef struct RIC_ReportStyle_Item {
-	RIC_Style_Type_t	 ric_ReportStyle_Type;
-	RIC_Style_Name_t	 ric_ReportStyle_Name;
-	RIC_Format_Type_t	 ric_ReportIndicationHeaderFormat_Type;
-	RIC_Format_Type_t	 ric_ReportIndicationMessageFormat_Type;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} RIC_ReportStyle_Item_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_RIC_ReportStyle_Item;
-extern asn_SEQUENCE_specifics_t asn_SPC_RIC_ReportStyle_Item_specs_1;
-extern asn_TYPE_member_t asn_MBR_RIC_ReportStyle_Item_1[4];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _RIC_ReportStyle_Item_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/RIC-Style-Name.h b/e2sm/headers/RIC-Style-Name.h
old mode 100644
new mode 100755
index 95f3cdd..1d870ce
--- a/e2sm/headers/RIC-Style-Name.h
+++ b/e2sm/headers/RIC-Style-Name.h
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
diff --git a/e2sm/headers/RIC-Style-Type.h b/e2sm/headers/RIC-Style-Type.h
old mode 100644
new mode 100755
index aad553e..efc0e91
--- a/e2sm/headers/RIC-Style-Type.h
+++ b/e2sm/headers/RIC-Style-Type.h
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
diff --git a/e2sm/headers/RRC-MessageID.h b/e2sm/headers/RRC-MessageID.h
new file mode 100755
index 0000000..0a2f333
--- /dev/null
+++ b/e2sm/headers/RRC-MessageID.h
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RRC_MessageID_H_
+#define	_RRC_MessageID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include "RRCclass-LTE.h"
+#include "RRCclass-NR.h"
+#include <constr_CHOICE.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RRC_MessageID__rrcType_PR {
+	RRC_MessageID__rrcType_PR_NOTHING,	/* No components present */
+	RRC_MessageID__rrcType_PR_lTE,
+	RRC_MessageID__rrcType_PR_nR
+	/* Extensions may appear below */
+	
+} RRC_MessageID__rrcType_PR;
+
+/* RRC-MessageID */
+typedef struct RRC_MessageID {
+	struct RRC_MessageID__rrcType {
+		RRC_MessageID__rrcType_PR present;
+		union RRC_MessageID__rrcType_u {
+			RRCclass_LTE_t	 lTE;
+			RRCclass_NR_t	 nR;
+			/*
+			 * This type is extensible,
+			 * possible extensions are below.
+			 */
+		} choice;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} rrcType;
+	long	 messageID;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} RRC_MessageID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_RRC_MessageID;
+extern asn_SEQUENCE_specifics_t asn_SPC_RRC_MessageID_specs_1;
+extern asn_TYPE_member_t asn_MBR_RRC_MessageID_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RRC_MessageID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RRC-State.h b/e2sm/headers/RRC-State.h
new file mode 100755
index 0000000..bdc3146
--- /dev/null
+++ b/e2sm/headers/RRC-State.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RRC_State_H_
+#define	_RRC_State_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RRC_State {
+	RRC_State_rrc_connected	= 0,
+	RRC_State_rrc_inactive	= 1,
+	RRC_State_rrc_idle	= 2,
+	RRC_State_any	= 3
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RRC_State;
+
+/* RRC-State */
+typedef long	 RRC_State_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RRC_State_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RRC_State;
+extern const asn_INTEGER_specifics_t asn_SPC_RRC_State_specs_1;
+asn_struct_free_f RRC_State_free;
+asn_struct_print_f RRC_State_print;
+asn_constr_check_f RRC_State_constraint;
+ber_type_decoder_f RRC_State_decode_ber;
+der_type_encoder_f RRC_State_encode_der;
+xer_type_decoder_f RRC_State_decode_xer;
+xer_type_encoder_f RRC_State_encode_xer;
+oer_type_decoder_f RRC_State_decode_oer;
+oer_type_encoder_f RRC_State_encode_oer;
+per_type_decoder_f RRC_State_decode_uper;
+per_type_encoder_f RRC_State_encode_uper;
+per_type_decoder_f RRC_State_decode_aper;
+per_type_encoder_f RRC_State_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RRC_State_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RRCEvent.h b/e2sm/headers/RRCEvent.h
deleted file mode 100644
index ea91c31..0000000
--- a/e2sm/headers/RRCEvent.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_RRCEvent_H_
-#define	_RRCEvent_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <NativeEnumerated.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Dependencies */
-typedef enum RRCEvent {
-	RRCEvent_b1	= 0,
-	RRCEvent_a3	= 1,
-	RRCEvent_a5	= 2,
-	RRCEvent_periodic	= 3
-	/*
-	 * Enumeration is extensible
-	 */
-} e_RRCEvent;
-
-/* RRCEvent */
-typedef long	 RRCEvent_t;
-
-/* Implementation */
-extern asn_per_constraints_t asn_PER_type_RRCEvent_constr_1;
-extern asn_TYPE_descriptor_t asn_DEF_RRCEvent;
-extern const asn_INTEGER_specifics_t asn_SPC_RRCEvent_specs_1;
-asn_struct_free_f RRCEvent_free;
-asn_struct_print_f RRCEvent_print;
-asn_constr_check_f RRCEvent_constraint;
-ber_type_decoder_f RRCEvent_decode_ber;
-der_type_encoder_f RRCEvent_encode_der;
-xer_type_decoder_f RRCEvent_decode_xer;
-xer_type_encoder_f RRCEvent_encode_xer;
-oer_type_decoder_f RRCEvent_decode_oer;
-oer_type_encoder_f RRCEvent_encode_oer;
-per_type_decoder_f RRCEvent_decode_uper;
-per_type_encoder_f RRCEvent_encode_uper;
-per_type_decoder_f RRCEvent_decode_aper;
-per_type_encoder_f RRCEvent_encode_aper;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _RRCEvent_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/RRCclass-LTE.h b/e2sm/headers/RRCclass-LTE.h
new file mode 100755
index 0000000..f7b019e
--- /dev/null
+++ b/e2sm/headers/RRCclass-LTE.h
@@ -0,0 +1,66 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RRCclass_LTE_H_
+#define	_RRCclass_LTE_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RRCclass_LTE {
+	RRCclass_LTE_bCCH_BCH	= 0,
+	RRCclass_LTE_bCCH_BCH_MBMS	= 1,
+	RRCclass_LTE_bCCH_DL_SCH	= 2,
+	RRCclass_LTE_bCCH_DL_SCH_BR	= 3,
+	RRCclass_LTE_bCCH_DL_SCH_MBMS	= 4,
+	RRCclass_LTE_mCCH	= 5,
+	RRCclass_LTE_pCCH	= 6,
+	RRCclass_LTE_dL_CCCH	= 7,
+	RRCclass_LTE_dL_DCCH	= 8,
+	RRCclass_LTE_uL_CCCH	= 9,
+	RRCclass_LTE_uL_DCCH	= 10,
+	RRCclass_LTE_sC_MCCH	= 11
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RRCclass_LTE;
+
+/* RRCclass-LTE */
+typedef long	 RRCclass_LTE_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RRCclass_LTE_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RRCclass_LTE;
+extern const asn_INTEGER_specifics_t asn_SPC_RRCclass_LTE_specs_1;
+asn_struct_free_f RRCclass_LTE_free;
+asn_struct_print_f RRCclass_LTE_print;
+asn_constr_check_f RRCclass_LTE_constraint;
+ber_type_decoder_f RRCclass_LTE_decode_ber;
+der_type_encoder_f RRCclass_LTE_encode_der;
+xer_type_decoder_f RRCclass_LTE_decode_xer;
+xer_type_encoder_f RRCclass_LTE_encode_xer;
+oer_type_decoder_f RRCclass_LTE_decode_oer;
+oer_type_encoder_f RRCclass_LTE_encode_oer;
+per_type_decoder_f RRCclass_LTE_decode_uper;
+per_type_encoder_f RRCclass_LTE_encode_uper;
+per_type_decoder_f RRCclass_LTE_decode_aper;
+per_type_encoder_f RRCclass_LTE_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RRCclass_LTE_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RRCclass-NR.h b/e2sm/headers/RRCclass-NR.h
new file mode 100755
index 0000000..20ad1ef
--- /dev/null
+++ b/e2sm/headers/RRCclass-NR.h
@@ -0,0 +1,62 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_RRCclass_NR_H_
+#define	_RRCclass_NR_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeEnumerated.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum RRCclass_NR {
+	RRCclass_NR_bCCH_BCH	= 0,
+	RRCclass_NR_bCCH_DL_SCH	= 1,
+	RRCclass_NR_dL_CCCH	= 2,
+	RRCclass_NR_dL_DCCH	= 3,
+	RRCclass_NR_pCCH	= 4,
+	RRCclass_NR_uL_CCCH	= 5,
+	RRCclass_NR_uL_CCCH1	= 6,
+	RRCclass_NR_uL_DCCH	= 7
+	/*
+	 * Enumeration is extensible
+	 */
+} e_RRCclass_NR;
+
+/* RRCclass-NR */
+typedef long	 RRCclass_NR_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_RRCclass_NR_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_RRCclass_NR;
+extern const asn_INTEGER_specifics_t asn_SPC_RRCclass_NR_specs_1;
+asn_struct_free_f RRCclass_NR_free;
+asn_struct_print_f RRCclass_NR_print;
+asn_constr_check_f RRCclass_NR_constraint;
+ber_type_decoder_f RRCclass_NR_decode_ber;
+der_type_encoder_f RRCclass_NR_encode_der;
+xer_type_decoder_f RRCclass_NR_decode_xer;
+xer_type_encoder_f RRCclass_NR_encode_xer;
+oer_type_decoder_f RRCclass_NR_decode_oer;
+oer_type_encoder_f RRCclass_NR_encode_oer;
+per_type_decoder_f RRCclass_NR_decode_uper;
+per_type_encoder_f RRCclass_NR_encode_uper;
+per_type_decoder_f RRCclass_NR_decode_aper;
+per_type_encoder_f RRCclass_NR_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _RRCclass_NR_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/RSRP-Range.h b/e2sm/headers/RSRP-Range.h
deleted file mode 100644
index 1d1caa4..0000000
--- a/e2sm/headers/RSRP-Range.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_RSRP_Range_H_
-#define	_RSRP_Range_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <NativeInteger.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* RSRP-Range */
-typedef long	 RSRP_Range_t;
-
-/* Implementation */
-extern asn_per_constraints_t asn_PER_type_RSRP_Range_constr_1;
-extern asn_TYPE_descriptor_t asn_DEF_RSRP_Range;
-asn_struct_free_f RSRP_Range_free;
-asn_struct_print_f RSRP_Range_print;
-asn_constr_check_f RSRP_Range_constraint;
-ber_type_decoder_f RSRP_Range_decode_ber;
-der_type_encoder_f RSRP_Range_encode_der;
-xer_type_decoder_f RSRP_Range_decode_xer;
-xer_type_encoder_f RSRP_Range_encode_xer;
-oer_type_decoder_f RSRP_Range_decode_oer;
-oer_type_encoder_f RSRP_Range_encode_oer;
-per_type_decoder_f RSRP_Range_decode_uper;
-per_type_encoder_f RSRP_Range_encode_uper;
-per_type_decoder_f RSRP_Range_decode_aper;
-per_type_encoder_f RSRP_Range_encode_aper;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _RSRP_Range_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/RSRP-RangeEUTRA.h b/e2sm/headers/RSRP-RangeEUTRA.h
deleted file mode 100644
index 98352ab..0000000
--- a/e2sm/headers/RSRP-RangeEUTRA.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_RSRP_RangeEUTRA_H_
-#define	_RSRP_RangeEUTRA_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <NativeInteger.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* RSRP-RangeEUTRA */
-typedef long	 RSRP_RangeEUTRA_t;
-
-/* Implementation */
-extern asn_per_constraints_t asn_PER_type_RSRP_RangeEUTRA_constr_1;
-extern asn_TYPE_descriptor_t asn_DEF_RSRP_RangeEUTRA;
-asn_struct_free_f RSRP_RangeEUTRA_free;
-asn_struct_print_f RSRP_RangeEUTRA_print;
-asn_constr_check_f RSRP_RangeEUTRA_constraint;
-ber_type_decoder_f RSRP_RangeEUTRA_decode_ber;
-der_type_encoder_f RSRP_RangeEUTRA_encode_der;
-xer_type_decoder_f RSRP_RangeEUTRA_decode_xer;
-xer_type_encoder_f RSRP_RangeEUTRA_encode_xer;
-oer_type_decoder_f RSRP_RangeEUTRA_decode_oer;
-oer_type_encoder_f RSRP_RangeEUTRA_encode_oer;
-per_type_decoder_f RSRP_RangeEUTRA_decode_uper;
-per_type_encoder_f RSRP_RangeEUTRA_encode_uper;
-per_type_decoder_f RSRP_RangeEUTRA_decode_aper;
-per_type_encoder_f RSRP_RangeEUTRA_encode_aper;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _RSRP_RangeEUTRA_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/RSRQ-Range.h b/e2sm/headers/RSRQ-Range.h
deleted file mode 100644
index 81543fb..0000000
--- a/e2sm/headers/RSRQ-Range.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_RSRQ_Range_H_
-#define	_RSRQ_Range_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <NativeInteger.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* RSRQ-Range */
-typedef long	 RSRQ_Range_t;
-
-/* Implementation */
-extern asn_per_constraints_t asn_PER_type_RSRQ_Range_constr_1;
-extern asn_TYPE_descriptor_t asn_DEF_RSRQ_Range;
-asn_struct_free_f RSRQ_Range_free;
-asn_struct_print_f RSRQ_Range_print;
-asn_constr_check_f RSRQ_Range_constraint;
-ber_type_decoder_f RSRQ_Range_decode_ber;
-der_type_encoder_f RSRQ_Range_encode_der;
-xer_type_decoder_f RSRQ_Range_decode_xer;
-xer_type_encoder_f RSRQ_Range_encode_xer;
-oer_type_decoder_f RSRQ_Range_decode_oer;
-oer_type_encoder_f RSRQ_Range_encode_oer;
-per_type_decoder_f RSRQ_Range_decode_uper;
-per_type_encoder_f RSRQ_Range_encode_uper;
-per_type_decoder_f RSRQ_Range_decode_aper;
-per_type_encoder_f RSRQ_Range_encode_aper;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _RSRQ_Range_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/RSRQ-RangeEUTRA.h b/e2sm/headers/RSRQ-RangeEUTRA.h
deleted file mode 100644
index 28a4e2b..0000000
--- a/e2sm/headers/RSRQ-RangeEUTRA.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_RSRQ_RangeEUTRA_H_
-#define	_RSRQ_RangeEUTRA_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <NativeInteger.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* RSRQ-RangeEUTRA */
-typedef long	 RSRQ_RangeEUTRA_t;
-
-/* Implementation */
-extern asn_per_constraints_t asn_PER_type_RSRQ_RangeEUTRA_constr_1;
-extern asn_TYPE_descriptor_t asn_DEF_RSRQ_RangeEUTRA;
-asn_struct_free_f RSRQ_RangeEUTRA_free;
-asn_struct_print_f RSRQ_RangeEUTRA_print;
-asn_constr_check_f RSRQ_RangeEUTRA_constraint;
-ber_type_decoder_f RSRQ_RangeEUTRA_decode_ber;
-der_type_encoder_f RSRQ_RangeEUTRA_encode_der;
-xer_type_decoder_f RSRQ_RangeEUTRA_decode_xer;
-xer_type_encoder_f RSRQ_RangeEUTRA_encode_xer;
-oer_type_decoder_f RSRQ_RangeEUTRA_decode_oer;
-oer_type_encoder_f RSRQ_RangeEUTRA_encode_oer;
-per_type_decoder_f RSRQ_RangeEUTRA_decode_uper;
-per_type_encoder_f RSRQ_RangeEUTRA_encode_uper;
-per_type_decoder_f RSRQ_RangeEUTRA_decode_aper;
-per_type_encoder_f RSRQ_RangeEUTRA_encode_aper;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _RSRQ_RangeEUTRA_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/RT-Period-IE.h b/e2sm/headers/RT-Period-IE.h
deleted file mode 100644
index 33bcf46..0000000
--- a/e2sm/headers/RT-Period-IE.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_RT_Period_IE_H_
-#define	_RT_Period_IE_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <NativeEnumerated.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Dependencies */
-typedef enum RT_Period_IE {
-	RT_Period_IE_ms10	= 0,
-	RT_Period_IE_ms20	= 1,
-	RT_Period_IE_ms32	= 2,
-	RT_Period_IE_ms40	= 3,
-	RT_Period_IE_ms60	= 4,
-	RT_Period_IE_ms64	= 5,
-	RT_Period_IE_ms70	= 6,
-	RT_Period_IE_ms80	= 7,
-	RT_Period_IE_ms128	= 8,
-	RT_Period_IE_ms160	= 9,
-	RT_Period_IE_ms256	= 10,
-	RT_Period_IE_ms320	= 11,
-	RT_Period_IE_ms512	= 12,
-	RT_Period_IE_ms640	= 13,
-	RT_Period_IE_ms1024	= 14,
-	RT_Period_IE_ms1280	= 15,
-	RT_Period_IE_ms2048	= 16,
-	RT_Period_IE_ms2560	= 17,
-	RT_Period_IE_ms5120	= 18,
-	RT_Period_IE_ms10240	= 19
-	/*
-	 * Enumeration is extensible
-	 */
-} e_RT_Period_IE;
-
-/* RT-Period-IE */
-typedef long	 RT_Period_IE_t;
-
-/* Implementation */
-extern asn_per_constraints_t asn_PER_type_RT_Period_IE_constr_1;
-extern asn_TYPE_descriptor_t asn_DEF_RT_Period_IE;
-extern const asn_INTEGER_specifics_t asn_SPC_RT_Period_IE_specs_1;
-asn_struct_free_f RT_Period_IE_free;
-asn_struct_print_f RT_Period_IE_print;
-asn_constr_check_f RT_Period_IE_constraint;
-ber_type_decoder_f RT_Period_IE_decode_ber;
-der_type_encoder_f RT_Period_IE_encode_der;
-xer_type_decoder_f RT_Period_IE_decode_xer;
-xer_type_encoder_f RT_Period_IE_encode_xer;
-oer_type_decoder_f RT_Period_IE_decode_oer;
-oer_type_encoder_f RT_Period_IE_encode_oer;
-per_type_decoder_f RT_Period_IE_decode_uper;
-per_type_encoder_f RT_Period_IE_encode_uper;
-per_type_decoder_f RT_Period_IE_decode_aper;
-per_type_encoder_f RT_Period_IE_encode_aper;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _RT_Period_IE_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/Report-RANParameter-Item.h b/e2sm/headers/Report-RANParameter-Item.h
new file mode 100755
index 0000000..4ba5ccb
--- /dev/null
+++ b/e2sm/headers/Report-RANParameter-Item.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_Report_RANParameter_Item_H_
+#define	_Report_RANParameter_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANParameter-ID.h"
+#include "RANParameter-Name.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RANParameter_Definition;
+
+/* Report-RANParameter-Item */
+typedef struct Report_RANParameter_Item {
+	RANParameter_ID_t	 ranParameter_ID;
+	RANParameter_Name_t	 ranParameter_name;
+	/*
+	 * 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;
+} Report_RANParameter_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_Report_RANParameter_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_Report_RANParameter_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_Report_RANParameter_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _Report_RANParameter_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/ResultsPerCSI-RS-Index.h b/e2sm/headers/ResultsPerCSI-RS-Index.h
deleted file mode 100644
index ba43d10..0000000
--- a/e2sm/headers/ResultsPerCSI-RS-Index.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_ResultsPerCSI_RS_Index_H_
-#define	_ResultsPerCSI_RS_Index_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "CSI-RS-Index.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Forward declarations */
-struct MeasQuantityResults;
-
-/* ResultsPerCSI-RS-Index */
-typedef struct ResultsPerCSI_RS_Index {
-	CSI_RS_Index_t	 csi_RS_Index;
-	struct MeasQuantityResults	*csi_RS_Results;	/* OPTIONAL */
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} ResultsPerCSI_RS_Index_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_ResultsPerCSI_RS_Index;
-extern asn_SEQUENCE_specifics_t asn_SPC_ResultsPerCSI_RS_Index_specs_1;
-extern asn_TYPE_member_t asn_MBR_ResultsPerCSI_RS_Index_1[2];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _ResultsPerCSI_RS_Index_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/ResultsPerCSI-RS-IndexList.h b/e2sm/headers/ResultsPerCSI-RS-IndexList.h
deleted file mode 100644
index 5cde4f3..0000000
--- a/e2sm/headers/ResultsPerCSI-RS-IndexList.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_ResultsPerCSI_RS_IndexList_H_
-#define	_ResultsPerCSI_RS_IndexList_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <asn_SEQUENCE_OF.h>
-#include <constr_SEQUENCE_OF.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Forward declarations */
-struct ResultsPerCSI_RS_Index;
-
-/* ResultsPerCSI-RS-IndexList */
-typedef struct ResultsPerCSI_RS_IndexList {
-	A_SEQUENCE_OF(struct ResultsPerCSI_RS_Index) list;
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} ResultsPerCSI_RS_IndexList_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_ResultsPerCSI_RS_IndexList;
-extern asn_SET_OF_specifics_t asn_SPC_ResultsPerCSI_RS_IndexList_specs_1;
-extern asn_TYPE_member_t asn_MBR_ResultsPerCSI_RS_IndexList_1[1];
-extern asn_per_constraints_t asn_PER_type_ResultsPerCSI_RS_IndexList_constr_1;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _ResultsPerCSI_RS_IndexList_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/ResultsPerSSB-Index.h b/e2sm/headers/ResultsPerSSB-Index.h
deleted file mode 100644
index df936b6..0000000
--- a/e2sm/headers/ResultsPerSSB-Index.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_ResultsPerSSB_Index_H_
-#define	_ResultsPerSSB_Index_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "SSB-Index.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Forward declarations */
-struct MeasQuantityResults;
-
-/* ResultsPerSSB-Index */
-typedef struct ResultsPerSSB_Index {
-	SSB_Index_t	 ssb_Index;
-	struct MeasQuantityResults	*ssb_Results;	/* OPTIONAL */
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} ResultsPerSSB_Index_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_ResultsPerSSB_Index;
-extern asn_SEQUENCE_specifics_t asn_SPC_ResultsPerSSB_Index_specs_1;
-extern asn_TYPE_member_t asn_MBR_ResultsPerSSB_Index_1[2];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _ResultsPerSSB_Index_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/ResultsPerSSB-IndexList.h b/e2sm/headers/ResultsPerSSB-IndexList.h
deleted file mode 100644
index 209f40c..0000000
--- a/e2sm/headers/ResultsPerSSB-IndexList.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_ResultsPerSSB_IndexList_H_
-#define	_ResultsPerSSB_IndexList_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <asn_SEQUENCE_OF.h>
-#include <constr_SEQUENCE_OF.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Forward declarations */
-struct ResultsPerSSB_Index;
-
-/* ResultsPerSSB-IndexList */
-typedef struct ResultsPerSSB_IndexList {
-	A_SEQUENCE_OF(struct ResultsPerSSB_Index) list;
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} ResultsPerSSB_IndexList_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_ResultsPerSSB_IndexList;
-extern asn_SET_OF_specifics_t asn_SPC_ResultsPerSSB_IndexList_specs_1;
-extern asn_TYPE_member_t asn_MBR_ResultsPerSSB_IndexList_1[1];
-extern asn_per_constraints_t asn_PER_type_ResultsPerSSB_IndexList_constr_1;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _ResultsPerSSB_IndexList_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/S-NSSAI.h b/e2sm/headers/S-NSSAI.h
old mode 100644
new mode 100755
index c379f99..529fa19
--- a/e2sm/headers/S-NSSAI.h
+++ b/e2sm/headers/S-NSSAI.h
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
@@ -12,7 +12,8 @@
 #include <asn_application.h>
 
 /* Including external dependencies */
-#include <OCTET_STRING.h>
+#include "SST.h"
+#include "SD.h"
 #include <constr_SEQUENCE.h>
 
 #ifdef __cplusplus
@@ -21,8 +22,12 @@
 
 /* S-NSSAI */
 typedef struct S_NSSAI {
-	OCTET_STRING_t	 sST;
-	OCTET_STRING_t	*sD;	/* OPTIONAL */
+	SST_t	 sST;
+	SD_t	*sD;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
 	
 	/* Context for parsing across buffer boundaries */
 	asn_struct_ctx_t _asn_ctx;
@@ -30,8 +35,6 @@
 
 /* Implementation */
 extern asn_TYPE_descriptor_t asn_DEF_S_NSSAI;
-extern asn_SEQUENCE_specifics_t asn_SPC_S_NSSAI_specs_1;
-extern asn_TYPE_member_t asn_MBR_S_NSSAI_1[2];
 
 #ifdef __cplusplus
 }
diff --git a/e2sm/headers/SD.h b/e2sm/headers/SD.h
new file mode 100755
index 0000000..e1f8205
--- /dev/null
+++ b/e2sm/headers/SD.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_SD_H_
+#define	_SD_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SD */
+typedef OCTET_STRING_t	 SD_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_SD_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_SD;
+asn_struct_free_f SD_free;
+asn_struct_print_f SD_print;
+asn_constr_check_f SD_constraint;
+ber_type_decoder_f SD_decode_ber;
+der_type_encoder_f SD_encode_der;
+xer_type_decoder_f SD_decode_xer;
+xer_type_encoder_f SD_encode_xer;
+oer_type_decoder_f SD_decode_oer;
+oer_type_encoder_f SD_encode_oer;
+per_type_decoder_f SD_decode_uper;
+per_type_encoder_f SD_encode_uper;
+per_type_decoder_f SD_decode_aper;
+per_type_encoder_f SD_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _SD_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/SINR-Range.h b/e2sm/headers/SINR-Range.h
deleted file mode 100644
index 8caa08b..0000000
--- a/e2sm/headers/SINR-Range.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_SINR_Range_H_
-#define	_SINR_Range_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <NativeInteger.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* SINR-Range */
-typedef long	 SINR_Range_t;
-
-/* Implementation */
-extern asn_per_constraints_t asn_PER_type_SINR_Range_constr_1;
-extern asn_TYPE_descriptor_t asn_DEF_SINR_Range;
-asn_struct_free_f SINR_Range_free;
-asn_struct_print_f SINR_Range_print;
-asn_constr_check_f SINR_Range_constraint;
-ber_type_decoder_f SINR_Range_decode_ber;
-der_type_encoder_f SINR_Range_encode_der;
-xer_type_decoder_f SINR_Range_decode_xer;
-xer_type_encoder_f SINR_Range_encode_xer;
-oer_type_decoder_f SINR_Range_decode_oer;
-oer_type_encoder_f SINR_Range_encode_oer;
-per_type_decoder_f SINR_Range_decode_uper;
-per_type_encoder_f SINR_Range_encode_uper;
-per_type_decoder_f SINR_Range_decode_aper;
-per_type_encoder_f SINR_Range_encode_aper;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _SINR_Range_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/SINR-RangeEUTRA.h b/e2sm/headers/SINR-RangeEUTRA.h
deleted file mode 100644
index 5cbb7dc..0000000
--- a/e2sm/headers/SINR-RangeEUTRA.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_SINR_RangeEUTRA_H_
-#define	_SINR_RangeEUTRA_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <NativeInteger.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* SINR-RangeEUTRA */
-typedef long	 SINR_RangeEUTRA_t;
-
-/* Implementation */
-extern asn_per_constraints_t asn_PER_type_SINR_RangeEUTRA_constr_1;
-extern asn_TYPE_descriptor_t asn_DEF_SINR_RangeEUTRA;
-asn_struct_free_f SINR_RangeEUTRA_free;
-asn_struct_print_f SINR_RangeEUTRA_print;
-asn_constr_check_f SINR_RangeEUTRA_constraint;
-ber_type_decoder_f SINR_RangeEUTRA_decode_ber;
-der_type_encoder_f SINR_RangeEUTRA_encode_der;
-xer_type_decoder_f SINR_RangeEUTRA_decode_xer;
-xer_type_encoder_f SINR_RangeEUTRA_encode_xer;
-oer_type_decoder_f SINR_RangeEUTRA_decode_oer;
-oer_type_encoder_f SINR_RangeEUTRA_encode_oer;
-per_type_decoder_f SINR_RangeEUTRA_decode_uper;
-per_type_encoder_f SINR_RangeEUTRA_encode_uper;
-per_type_decoder_f SINR_RangeEUTRA_decode_aper;
-per_type_encoder_f SINR_RangeEUTRA_encode_aper;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _SINR_RangeEUTRA_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/SSB-Index.h b/e2sm/headers/SSB-Index.h
deleted file mode 100644
index 3d9d6fc..0000000
--- a/e2sm/headers/SSB-Index.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_SSB_Index_H_
-#define	_SSB_Index_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <NativeInteger.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* SSB-Index */
-typedef long	 SSB_Index_t;
-
-/* Implementation */
-extern asn_per_constraints_t asn_PER_type_SSB_Index_constr_1;
-extern asn_TYPE_descriptor_t asn_DEF_SSB_Index;
-asn_struct_free_f SSB_Index_free;
-asn_struct_print_f SSB_Index_print;
-asn_constr_check_f SSB_Index_constraint;
-ber_type_decoder_f SSB_Index_decode_ber;
-der_type_encoder_f SSB_Index_encode_der;
-xer_type_decoder_f SSB_Index_decode_xer;
-xer_type_encoder_f SSB_Index_encode_xer;
-oer_type_decoder_f SSB_Index_decode_oer;
-oer_type_encoder_f SSB_Index_encode_oer;
-per_type_decoder_f SSB_Index_decode_uper;
-per_type_encoder_f SSB_Index_encode_uper;
-per_type_decoder_f SSB_Index_decode_aper;
-per_type_encoder_f SSB_Index_encode_aper;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _SSB_Index_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/SST.h b/e2sm/headers/SST.h
new file mode 100755
index 0000000..1b75898
--- /dev/null
+++ b/e2sm/headers/SST.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_SST_H_
+#define	_SST_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <OCTET_STRING.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SST */
+typedef OCTET_STRING_t	 SST_t;
+
+/* Implementation */
+extern asn_per_constraints_t asn_PER_type_SST_constr_1;
+extern asn_TYPE_descriptor_t asn_DEF_SST;
+asn_struct_free_f SST_free;
+asn_struct_print_f SST_print;
+asn_constr_check_f SST_constraint;
+ber_type_decoder_f SST_decode_ber;
+der_type_encoder_f SST_encode_der;
+xer_type_decoder_f SST_decode_xer;
+xer_type_encoder_f SST_encode_xer;
+oer_type_decoder_f SST_decode_oer;
+oer_type_encoder_f SST_encode_oer;
+per_type_decoder_f SST_decode_uper;
+per_type_encoder_f SST_encode_uper;
+per_type_decoder_f SST_decode_aper;
+per_type_encoder_f SST_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _SST_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/ServCellIndex.h b/e2sm/headers/ServCellIndex.h
deleted file mode 100644
index 27f2d62..0000000
--- a/e2sm/headers/ServCellIndex.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_ServCellIndex_H_
-#define	_ServCellIndex_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <NativeInteger.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* ServCellIndex */
-typedef long	 ServCellIndex_t;
-
-/* Implementation */
-extern asn_per_constraints_t asn_PER_type_ServCellIndex_constr_1;
-extern asn_TYPE_descriptor_t asn_DEF_ServCellIndex;
-asn_struct_free_f ServCellIndex_free;
-asn_struct_print_f ServCellIndex_print;
-asn_constr_check_f ServCellIndex_constraint;
-ber_type_decoder_f ServCellIndex_decode_ber;
-der_type_encoder_f ServCellIndex_encode_der;
-xer_type_decoder_f ServCellIndex_decode_xer;
-xer_type_encoder_f ServCellIndex_encode_xer;
-oer_type_decoder_f ServCellIndex_decode_oer;
-oer_type_encoder_f ServCellIndex_encode_oer;
-per_type_decoder_f ServCellIndex_decode_uper;
-per_type_encoder_f ServCellIndex_encode_uper;
-per_type_decoder_f ServCellIndex_decode_aper;
-per_type_encoder_f ServCellIndex_encode_aper;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _ServCellIndex_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/ServedPlmnPerCellListItem.h b/e2sm/headers/ServedPlmnPerCellListItem.h
deleted file mode 100644
index fbde179..0000000
--- a/e2sm/headers/ServedPlmnPerCellListItem.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_ServedPlmnPerCellListItem_H_
-#define	_ServedPlmnPerCellListItem_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "PLMN-Identity.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Forward declarations */
-struct FGC_DU_PM_Container;
-struct EPC_DU_PM_Container;
-
-/* ServedPlmnPerCellListItem */
-typedef struct ServedPlmnPerCellListItem {
-	PLMN_Identity_t	 pLMN_Identity;
-	struct FGC_DU_PM_Container	*du_PM_5GC;	/* OPTIONAL */
-	struct EPC_DU_PM_Container	*du_PM_EPC;	/* OPTIONAL */
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} ServedPlmnPerCellListItem_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_ServedPlmnPerCellListItem;
-extern asn_SEQUENCE_specifics_t asn_SPC_ServedPlmnPerCellListItem_specs_1;
-extern asn_TYPE_member_t asn_MBR_ServedPlmnPerCellListItem_1[3];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _ServedPlmnPerCellListItem_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/ServingCell-ARFCN.h b/e2sm/headers/ServingCell-ARFCN.h
new file mode 100755
index 0000000..f5bcac5
--- /dev/null
+++ b/e2sm/headers/ServingCell-ARFCN.h
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_ServingCell_ARFCN_H_
+#define	_ServingCell_ARFCN_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "E-UTRA-ARFCN.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ServingCell_ARFCN_PR {
+	ServingCell_ARFCN_PR_NOTHING,	/* No components present */
+	ServingCell_ARFCN_PR_nR,
+	ServingCell_ARFCN_PR_eUTRA
+	/* Extensions may appear below */
+	
+} ServingCell_ARFCN_PR;
+
+/* Forward declarations */
+struct NR_ARFCN;
+
+/* ServingCell-ARFCN */
+typedef struct ServingCell_ARFCN {
+	ServingCell_ARFCN_PR present;
+	union ServingCell_ARFCN_u {
+		struct NR_ARFCN	*nR;
+		E_UTRA_ARFCN_t	 eUTRA;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} ServingCell_ARFCN_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ServingCell_ARFCN;
+extern asn_CHOICE_specifics_t asn_SPC_ServingCell_ARFCN_specs_1;
+extern asn_TYPE_member_t asn_MBR_ServingCell_ARFCN_1[2];
+extern asn_per_constraints_t asn_PER_type_ServingCell_ARFCN_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _ServingCell_ARFCN_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/ServingCell-PCI.h b/e2sm/headers/ServingCell-PCI.h
new file mode 100755
index 0000000..872be1f
--- /dev/null
+++ b/e2sm/headers/ServingCell-PCI.h
@@ -0,0 +1,59 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_ServingCell_PCI_H_
+#define	_ServingCell_PCI_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "NR-PCI.h"
+#include "E-UTRA-PCI.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum ServingCell_PCI_PR {
+	ServingCell_PCI_PR_NOTHING,	/* No components present */
+	ServingCell_PCI_PR_nR,
+	ServingCell_PCI_PR_eUTRA
+	/* Extensions may appear below */
+	
+} ServingCell_PCI_PR;
+
+/* ServingCell-PCI */
+typedef struct ServingCell_PCI {
+	ServingCell_PCI_PR present;
+	union ServingCell_PCI_u {
+		NR_PCI_t	 nR;
+		E_UTRA_PCI_t	 eUTRA;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} ServingCell_PCI_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_ServingCell_PCI;
+extern asn_CHOICE_specifics_t asn_SPC_ServingCell_PCI_specs_1;
+extern asn_TYPE_member_t asn_MBR_ServingCell_PCI_1[2];
+extern asn_per_constraints_t asn_PER_type_ServingCell_PCI_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _ServingCell_PCI_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/ServingCellMeasurements.h b/e2sm/headers/ServingCellMeasurements.h
deleted file mode 100644
index 22f8aa2..0000000
--- a/e2sm/headers/ServingCellMeasurements.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_ServingCellMeasurements_H_
-#define	_ServingCellMeasurements_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <constr_CHOICE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Dependencies */
-typedef enum ServingCellMeasurements_PR {
-	ServingCellMeasurements_PR_NOTHING,	/* No components present */
-	ServingCellMeasurements_PR_nr_measResultServingMOList,
-	ServingCellMeasurements_PR_eutra_measResultPCell
-	/* Extensions may appear below */
-	
-} ServingCellMeasurements_PR;
-
-/* Forward declarations */
-struct MeasResultServMOList;
-struct MeasResultPCell;
-
-/* ServingCellMeasurements */
-typedef struct ServingCellMeasurements {
-	ServingCellMeasurements_PR present;
-	union ServingCellMeasurements_u {
-		struct MeasResultServMOList	*nr_measResultServingMOList;
-		struct MeasResultPCell	*eutra_measResultPCell;
-		/*
-		 * This type is extensible,
-		 * possible extensions are below.
-		 */
-	} choice;
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} ServingCellMeasurements_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_ServingCellMeasurements;
-extern asn_CHOICE_specifics_t asn_SPC_ServingCellMeasurements_specs_1;
-extern asn_TYPE_member_t asn_MBR_ServingCellMeasurements_1[2];
-extern asn_per_constraints_t asn_PER_type_ServingCellMeasurements_constr_1;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _ServingCellMeasurements_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/SlicePerPlmnPerCellListItem.h b/e2sm/headers/SlicePerPlmnPerCellListItem.h
deleted file mode 100644
index 406a845..0000000
--- a/e2sm/headers/SlicePerPlmnPerCellListItem.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_SlicePerPlmnPerCellListItem_H_
-#define	_SlicePerPlmnPerCellListItem_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "S-NSSAI.h"
-#include <asn_SEQUENCE_OF.h>
-#include <constr_SEQUENCE_OF.h>
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Forward declarations */
-struct FQIPERSlicesPerPlmnPerCellListItem;
-
-/* SlicePerPlmnPerCellListItem */
-typedef struct SlicePerPlmnPerCellListItem {
-	S_NSSAI_t	 sliceID;
-	struct SlicePerPlmnPerCellListItem__fQIPERSlicesPerPlmnPerCellList {
-		A_SEQUENCE_OF(struct FQIPERSlicesPerPlmnPerCellListItem) list;
-		
-		/* Context for parsing across buffer boundaries */
-		asn_struct_ctx_t _asn_ctx;
-	} fQIPERSlicesPerPlmnPerCellList;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} SlicePerPlmnPerCellListItem_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_SlicePerPlmnPerCellListItem;
-extern asn_SEQUENCE_specifics_t asn_SPC_SlicePerPlmnPerCellListItem_specs_1;
-extern asn_TYPE_member_t asn_MBR_SlicePerPlmnPerCellListItem_1[2];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _SlicePerPlmnPerCellListItem_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/SliceToReportListItem.h b/e2sm/headers/SliceToReportListItem.h
deleted file mode 100644
index 9bc8c7e..0000000
--- a/e2sm/headers/SliceToReportListItem.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_SliceToReportListItem_H_
-#define	_SliceToReportListItem_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "S-NSSAI.h"
-#include <asn_SEQUENCE_OF.h>
-#include <constr_SEQUENCE_OF.h>
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Forward declarations */
-struct FQIPERSlicesPerPlmnListItem;
-
-/* SliceToReportListItem */
-typedef struct SliceToReportListItem {
-	S_NSSAI_t	 sliceID;
-	struct SliceToReportListItem__fQIPERSlicesPerPlmnList {
-		A_SEQUENCE_OF(struct FQIPERSlicesPerPlmnListItem) list;
-		
-		/* Context for parsing across buffer boundaries */
-		asn_struct_ctx_t _asn_ctx;
-	} fQIPERSlicesPerPlmnList;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} SliceToReportListItem_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_SliceToReportListItem;
-extern asn_SEQUENCE_specifics_t asn_SPC_SliceToReportListItem_specs_1;
-extern asn_TYPE_member_t asn_MBR_SliceToReportListItem_1[2];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _SliceToReportListItem_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/SubscriberProfileIDforRFP.h b/e2sm/headers/SubscriberProfileIDforRFP.h
new file mode 100755
index 0000000..3c05cb9
--- /dev/null
+++ b/e2sm/headers/SubscriberProfileIDforRFP.h
@@ -0,0 +1,45 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_SubscriberProfileIDforRFP_H_
+#define	_SubscriberProfileIDforRFP_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SubscriberProfileIDforRFP */
+typedef long	 SubscriberProfileIDforRFP_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SubscriberProfileIDforRFP;
+asn_struct_free_f SubscriberProfileIDforRFP_free;
+asn_struct_print_f SubscriberProfileIDforRFP_print;
+asn_constr_check_f SubscriberProfileIDforRFP_constraint;
+ber_type_decoder_f SubscriberProfileIDforRFP_decode_ber;
+der_type_encoder_f SubscriberProfileIDforRFP_encode_der;
+xer_type_decoder_f SubscriberProfileIDforRFP_decode_xer;
+xer_type_encoder_f SubscriberProfileIDforRFP_encode_xer;
+oer_type_decoder_f SubscriberProfileIDforRFP_decode_oer;
+oer_type_encoder_f SubscriberProfileIDforRFP_encode_oer;
+per_type_decoder_f SubscriberProfileIDforRFP_decode_uper;
+per_type_encoder_f SubscriberProfileIDforRFP_encode_uper;
+per_type_decoder_f SubscriberProfileIDforRFP_decode_aper;
+per_type_encoder_f SubscriberProfileIDforRFP_encode_aper;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _SubscriberProfileIDforRFP_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/SupportedSULBandList.h b/e2sm/headers/SupportedSULBandList.h
new file mode 100755
index 0000000..7985160
--- /dev/null
+++ b/e2sm/headers/SupportedSULBandList.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_SupportedSULBandList_H_
+#define	_SupportedSULBandList_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct SupportedSULFreqBandItem;
+
+/* SupportedSULBandList */
+typedef struct SupportedSULBandList {
+	A_SEQUENCE_OF(struct SupportedSULFreqBandItem) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} SupportedSULBandList_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SupportedSULBandList;
+extern asn_SET_OF_specifics_t asn_SPC_SupportedSULBandList_specs_1;
+extern asn_TYPE_member_t asn_MBR_SupportedSULBandList_1[1];
+extern asn_per_constraints_t asn_PER_type_SupportedSULBandList_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _SupportedSULBandList_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/SupportedSULFreqBandItem.h b/e2sm/headers/SupportedSULFreqBandItem.h
new file mode 100755
index 0000000..e4fc2c1
--- /dev/null
+++ b/e2sm/headers/SupportedSULFreqBandItem.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_SupportedSULFreqBandItem_H_
+#define	_SupportedSULFreqBandItem_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SupportedSULFreqBandItem */
+typedef struct SupportedSULFreqBandItem {
+	long	 freqBandIndicatorNr;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} SupportedSULFreqBandItem_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SupportedSULFreqBandItem;
+extern asn_SEQUENCE_specifics_t asn_SPC_SupportedSULFreqBandItem_specs_1;
+extern asn_TYPE_member_t asn_MBR_SupportedSULFreqBandItem_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _SupportedSULFreqBandItem_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/TimeStamp.h b/e2sm/headers/TimeStamp.h
deleted file mode 100644
index 71f9724..0000000
--- a/e2sm/headers/TimeStamp.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_TimeStamp_H_
-#define	_TimeStamp_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <OCTET_STRING.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* TimeStamp */
-typedef OCTET_STRING_t	 TimeStamp_t;
-
-/* Implementation */
-extern asn_per_constraints_t asn_PER_type_TimeStamp_constr_1;
-extern asn_TYPE_descriptor_t asn_DEF_TimeStamp;
-asn_struct_free_f TimeStamp_free;
-asn_struct_print_f TimeStamp_print;
-asn_constr_check_f TimeStamp_constraint;
-ber_type_decoder_f TimeStamp_decode_ber;
-der_type_encoder_f TimeStamp_encode_der;
-xer_type_decoder_f TimeStamp_decode_xer;
-xer_type_encoder_f TimeStamp_encode_xer;
-oer_type_decoder_f TimeStamp_decode_oer;
-oer_type_encoder_f TimeStamp_encode_oer;
-per_type_decoder_f TimeStamp_decode_uper;
-per_type_encoder_f TimeStamp_encode_uper;
-per_type_decoder_f TimeStamp_decode_aper;
-per_type_encoder_f TimeStamp_encode_aper;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _TimeStamp_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/Trigger-ConditionIE-Item.h b/e2sm/headers/Trigger-ConditionIE-Item.h
deleted file mode 100644
index fda0039..0000000
--- a/e2sm/headers/Trigger-ConditionIE-Item.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_Trigger_ConditionIE_Item_H_
-#define	_Trigger_ConditionIE_Item_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include "RT-Period-IE.h"
-#include <constr_SEQUENCE.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Trigger-ConditionIE-Item */
-typedef struct Trigger_ConditionIE_Item {
-	RT_Period_IE_t	 report_Period_IE;
-	/*
-	 * This type is extensible,
-	 * possible extensions are below.
-	 */
-	
-	/* Context for parsing across buffer boundaries */
-	asn_struct_ctx_t _asn_ctx;
-} Trigger_ConditionIE_Item_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_Trigger_ConditionIE_Item;
-extern asn_SEQUENCE_specifics_t asn_SPC_Trigger_ConditionIE_Item_specs_1;
-extern asn_TYPE_member_t asn_MBR_Trigger_ConditionIE_Item_1[1];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _Trigger_ConditionIE_Item_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/TriggerType-Choice-L2state.h b/e2sm/headers/TriggerType-Choice-L2state.h
new file mode 100755
index 0000000..d22cc96
--- /dev/null
+++ b/e2sm/headers/TriggerType-Choice-L2state.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_TriggerType_Choice_L2state_H_
+#define	_TriggerType_Choice_L2state_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANParameter-Testing.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* TriggerType-Choice-L2state */
+typedef struct TriggerType_Choice_L2state {
+	RANParameter_Testing_t	 associatedL2variables;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} TriggerType_Choice_L2state_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TriggerType_Choice_L2state;
+extern asn_SEQUENCE_specifics_t asn_SPC_TriggerType_Choice_L2state_specs_1;
+extern asn_TYPE_member_t asn_MBR_TriggerType_Choice_L2state_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _TriggerType_Choice_L2state_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/TriggerType-Choice-RRCstate-Item.h b/e2sm/headers/TriggerType-Choice-RRCstate-Item.h
new file mode 100755
index 0000000..0ab1f55
--- /dev/null
+++ b/e2sm/headers/TriggerType-Choice-RRCstate-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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_TriggerType_Choice_RRCstate_Item_H_
+#define	_TriggerType_Choice_RRCstate_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RRC-State.h"
+#include "LogicalOR.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* TriggerType-Choice-RRCstate-Item */
+typedef struct TriggerType_Choice_RRCstate_Item {
+	RRC_State_t	 stateChangedTo;
+	LogicalOR_t	*logicalOR;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} TriggerType_Choice_RRCstate_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TriggerType_Choice_RRCstate_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_TriggerType_Choice_RRCstate_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_TriggerType_Choice_RRCstate_Item_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _TriggerType_Choice_RRCstate_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/TriggerType-Choice-RRCstate.h b/e2sm/headers/TriggerType-Choice-RRCstate.h
new file mode 100755
index 0000000..ea2bcc5
--- /dev/null
+++ b/e2sm/headers/TriggerType-Choice-RRCstate.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_TriggerType_Choice_RRCstate_H_
+#define	_TriggerType_Choice_RRCstate_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 TriggerType_Choice_RRCstate_Item;
+
+/* TriggerType-Choice-RRCstate */
+typedef struct TriggerType_Choice_RRCstate {
+	struct TriggerType_Choice_RRCstate__rrcState_List {
+		A_SEQUENCE_OF(struct TriggerType_Choice_RRCstate_Item) list;
+		
+		/* Context for parsing across buffer boundaries */
+		asn_struct_ctx_t _asn_ctx;
+	} rrcState_List;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} TriggerType_Choice_RRCstate_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TriggerType_Choice_RRCstate;
+extern asn_SEQUENCE_specifics_t asn_SPC_TriggerType_Choice_RRCstate_specs_1;
+extern asn_TYPE_member_t asn_MBR_TriggerType_Choice_RRCstate_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _TriggerType_Choice_RRCstate_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/TriggerType-Choice-UEID.h b/e2sm/headers/TriggerType-Choice-UEID.h
new file mode 100755
index 0000000..ad50aaf
--- /dev/null
+++ b/e2sm/headers/TriggerType-Choice-UEID.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_TriggerType_Choice_UEID_H_
+#define	_TriggerType_Choice_UEID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <NativeInteger.h>
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* TriggerType-Choice-UEID */
+typedef struct TriggerType_Choice_UEID {
+	long	 ueIDchange_ID;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} TriggerType_Choice_UEID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TriggerType_Choice_UEID;
+extern asn_SEQUENCE_specifics_t asn_SPC_TriggerType_Choice_UEID_specs_1;
+extern asn_TYPE_member_t asn_MBR_TriggerType_Choice_UEID_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _TriggerType_Choice_UEID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/TriggerType-Choice.h b/e2sm/headers/TriggerType-Choice.h
new file mode 100755
index 0000000..41dbff4
--- /dev/null
+++ b/e2sm/headers/TriggerType-Choice.h
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_TriggerType_Choice_H_
+#define	_TriggerType_Choice_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum TriggerType_Choice_PR {
+	TriggerType_Choice_PR_NOTHING,	/* No components present */
+	TriggerType_Choice_PR_triggerType_Choice_RRCstate,
+	TriggerType_Choice_PR_triggerType_Choice_UEID,
+	TriggerType_Choice_PR_triggerType_Choice_L2state
+	/* Extensions may appear below */
+	
+} TriggerType_Choice_PR;
+
+/* Forward declarations */
+struct TriggerType_Choice_RRCstate;
+struct TriggerType_Choice_UEID;
+struct TriggerType_Choice_L2state;
+
+/* TriggerType-Choice */
+typedef struct TriggerType_Choice {
+	TriggerType_Choice_PR present;
+	union TriggerType_Choice_u {
+		struct TriggerType_Choice_RRCstate	*triggerType_Choice_RRCstate;
+		struct TriggerType_Choice_UEID	*triggerType_Choice_UEID;
+		struct TriggerType_Choice_L2state	*triggerType_Choice_L2state;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} TriggerType_Choice_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_TriggerType_Choice;
+extern asn_CHOICE_specifics_t asn_SPC_TriggerType_Choice_specs_1;
+extern asn_TYPE_member_t asn_MBR_TriggerType_Choice_1[3];
+extern asn_per_constraints_t asn_PER_type_TriggerType_Choice_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _TriggerType_Choice_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/TriggeringMessage.h b/e2sm/headers/TriggeringMessage.h
deleted file mode 100644
index c2c1987..0000000
--- a/e2sm/headers/TriggeringMessage.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_TriggeringMessage_H_
-#define	_TriggeringMessage_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <NativeEnumerated.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Dependencies */
-typedef enum TriggeringMessage {
-	TriggeringMessage_initiating_message	= 0,
-	TriggeringMessage_successful_outcome	= 1,
-	TriggeringMessage_unsuccessfull_outcome	= 2
-} e_TriggeringMessage;
-
-/* TriggeringMessage */
-typedef long	 TriggeringMessage_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_TriggeringMessage;
-asn_struct_free_f TriggeringMessage_free;
-asn_struct_print_f TriggeringMessage_print;
-asn_constr_check_f TriggeringMessage_constraint;
-ber_type_decoder_f TriggeringMessage_decode_ber;
-der_type_encoder_f TriggeringMessage_encode_der;
-xer_type_decoder_f TriggeringMessage_decode_xer;
-xer_type_encoder_f TriggeringMessage_encode_xer;
-oer_type_decoder_f TriggeringMessage_decode_oer;
-oer_type_encoder_f TriggeringMessage_encode_oer;
-per_type_decoder_f TriggeringMessage_decode_uper;
-per_type_encoder_f TriggeringMessage_encode_uper;
-per_type_decoder_f TriggeringMessage_decode_aper;
-per_type_encoder_f TriggeringMessage_encode_aper;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _TriggeringMessage_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/UE-Identity.h b/e2sm/headers/UE-Identity.h
deleted file mode 100644
index 9f62ee5..0000000
--- a/e2sm/headers/UE-Identity.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#ifndef	_UE_Identity_H_
-#define	_UE_Identity_H_
-
-
-#include <asn_application.h>
-
-/* Including external dependencies */
-#include <OCTET_STRING.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* UE-Identity */
-typedef OCTET_STRING_t	 UE_Identity_t;
-
-/* Implementation */
-extern asn_TYPE_descriptor_t asn_DEF_UE_Identity;
-asn_struct_free_f UE_Identity_free;
-asn_struct_print_f UE_Identity_print;
-asn_constr_check_f UE_Identity_constraint;
-ber_type_decoder_f UE_Identity_decode_ber;
-der_type_encoder_f UE_Identity_encode_der;
-xer_type_decoder_f UE_Identity_decode_xer;
-xer_type_encoder_f UE_Identity_encode_xer;
-oer_type_decoder_f UE_Identity_decode_oer;
-oer_type_encoder_f UE_Identity_encode_oer;
-per_type_decoder_f UE_Identity_decode_uper;
-per_type_encoder_f UE_Identity_encode_uper;
-per_type_decoder_f UE_Identity_decode_aper;
-per_type_encoder_f UE_Identity_encode_aper;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* _UE_Identity_H_ */
-#include <asn_internal.h>
diff --git a/e2sm/headers/UEID-EN-GNB.h b/e2sm/headers/UEID-EN-GNB.h
new file mode 100755
index 0000000..b8f6104
--- /dev/null
+++ b/e2sm/headers/UEID-EN-GNB.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_UEID_EN_GNB_H_
+#define	_UEID_EN_GNB_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "ENB-UE-X2AP-ID.h"
+#include "ENB-UE-X2AP-ID-Extension.h"
+#include "GlobalENB-ID.h"
+#include "GNB-CU-UE-F1AP-ID.h"
+#include "RANUEID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct UEID_GNB_CU_CP_E1AP_ID_List;
+
+/* UEID-EN-GNB */
+typedef struct UEID_EN_GNB {
+	ENB_UE_X2AP_ID_t	 m_eNB_UE_X2AP_ID;
+	ENB_UE_X2AP_ID_Extension_t	*m_eNB_UE_X2AP_ID_Extension;	/* OPTIONAL */
+	GlobalENB_ID_t	 globalENB_ID;
+	GNB_CU_UE_F1AP_ID_t	*gNB_CU_UE_F1AP_ID;	/* OPTIONAL */
+	struct UEID_GNB_CU_CP_E1AP_ID_List	*gNB_CU_CP_UE_E1AP_ID_List;	/* OPTIONAL */
+	RANUEID_t	*ran_UEID;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} UEID_EN_GNB_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UEID_EN_GNB;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEID_EN_GNB_specs_1;
+extern asn_TYPE_member_t asn_MBR_UEID_EN_GNB_1[6];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _UEID_EN_GNB_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/UEID-ENB.h b/e2sm/headers/UEID-ENB.h
new file mode 100755
index 0000000..0549076
--- /dev/null
+++ b/e2sm/headers/UEID-ENB.h
@@ -0,0 +1,54 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_UEID_ENB_H_
+#define	_UEID_ENB_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "MME-UE-S1AP-ID.h"
+#include "GUMMEI.h"
+#include "ENB-UE-X2AP-ID.h"
+#include "ENB-UE-X2AP-ID-Extension.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GlobalENB_ID;
+
+/* UEID-ENB */
+typedef struct UEID_ENB {
+	MME_UE_S1AP_ID_t	 mME_UE_S1AP_ID;
+	GUMMEI_t	 gUMMEI;
+	ENB_UE_X2AP_ID_t	*m_eNB_UE_X2AP_ID;	/* OPTIONAL */
+	ENB_UE_X2AP_ID_Extension_t	*m_eNB_UE_X2AP_ID_Extension;	/* OPTIONAL */
+	struct GlobalENB_ID	*globalENB_ID;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} UEID_ENB_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UEID_ENB;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEID_ENB_specs_1;
+extern asn_TYPE_member_t asn_MBR_UEID_ENB_1[5];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _UEID_ENB_H_ */
+#include <asn_internal.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
new file mode 100755
index 0000000..9818980
--- /dev/null
+++ b/e2sm/headers/UEID-GNB-CU-CP-E1AP-ID-Item.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_UEID_GNB_CU_CP_E1AP_ID_Item_H_
+#define	_UEID_GNB_CU_CP_E1AP_ID_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "GNB-CU-CP-UE-E1AP-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UEID-GNB-CU-CP-E1AP-ID-Item */
+typedef struct UEID_GNB_CU_CP_E1AP_ID_Item {
+	GNB_CU_CP_UE_E1AP_ID_t	 gNB_CU_CP_UE_E1AP_ID;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} UEID_GNB_CU_CP_E1AP_ID_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UEID_GNB_CU_CP_E1AP_ID_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEID_GNB_CU_CP_E1AP_ID_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_UEID_GNB_CU_CP_E1AP_ID_Item_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _UEID_GNB_CU_CP_E1AP_ID_Item_H_ */
+#include <asn_internal.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
new file mode 100755
index 0000000..faca51a
--- /dev/null
+++ b/e2sm/headers/UEID-GNB-CU-CP-E1AP-ID-List.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_UEID_GNB_CU_CP_E1AP_ID_List_H_
+#define	_UEID_GNB_CU_CP_E1AP_ID_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct UEID_GNB_CU_CP_E1AP_ID_Item;
+
+/* UEID-GNB-CU-CP-E1AP-ID-List */
+typedef struct UEID_GNB_CU_CP_E1AP_ID_List {
+	A_SEQUENCE_OF(struct UEID_GNB_CU_CP_E1AP_ID_Item) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} UEID_GNB_CU_CP_E1AP_ID_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UEID_GNB_CU_CP_E1AP_ID_List;
+extern asn_SET_OF_specifics_t asn_SPC_UEID_GNB_CU_CP_E1AP_ID_List_specs_1;
+extern asn_TYPE_member_t asn_MBR_UEID_GNB_CU_CP_E1AP_ID_List_1[1];
+extern asn_per_constraints_t asn_PER_type_UEID_GNB_CU_CP_E1AP_ID_List_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _UEID_GNB_CU_CP_E1AP_ID_List_H_ */
+#include <asn_internal.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
new file mode 100755
index 0000000..580de4c
--- /dev/null
+++ b/e2sm/headers/UEID-GNB-CU-CP-F1AP-ID-Item.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_UEID_GNB_CU_CP_F1AP_ID_Item_H_
+#define	_UEID_GNB_CU_CP_F1AP_ID_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "GNB-CU-UE-F1AP-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UEID-GNB-CU-CP-F1AP-ID-Item */
+typedef struct UEID_GNB_CU_CP_F1AP_ID_Item {
+	GNB_CU_UE_F1AP_ID_t	 gNB_CU_UE_F1AP_ID;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} UEID_GNB_CU_CP_F1AP_ID_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UEID_GNB_CU_CP_F1AP_ID_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEID_GNB_CU_CP_F1AP_ID_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_UEID_GNB_CU_CP_F1AP_ID_Item_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _UEID_GNB_CU_CP_F1AP_ID_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/UEID-GNB-CU-F1AP-ID-List.h b/e2sm/headers/UEID-GNB-CU-F1AP-ID-List.h
new file mode 100755
index 0000000..ff71811
--- /dev/null
+++ b/e2sm/headers/UEID-GNB-CU-F1AP-ID-List.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_UEID_GNB_CU_F1AP_ID_List_H_
+#define	_UEID_GNB_CU_F1AP_ID_List_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <asn_SEQUENCE_OF.h>
+#include <constr_SEQUENCE_OF.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct UEID_GNB_CU_CP_F1AP_ID_Item;
+
+/* UEID-GNB-CU-F1AP-ID-List */
+typedef struct UEID_GNB_CU_F1AP_ID_List {
+	A_SEQUENCE_OF(struct UEID_GNB_CU_CP_F1AP_ID_Item) list;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} UEID_GNB_CU_F1AP_ID_List_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UEID_GNB_CU_F1AP_ID_List;
+extern asn_SET_OF_specifics_t asn_SPC_UEID_GNB_CU_F1AP_ID_List_specs_1;
+extern asn_TYPE_member_t asn_MBR_UEID_GNB_CU_F1AP_ID_List_1[1];
+extern asn_per_constraints_t asn_PER_type_UEID_GNB_CU_F1AP_ID_List_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _UEID_GNB_CU_F1AP_ID_List_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/UEID-GNB-CU-UP.h b/e2sm/headers/UEID-GNB-CU-UP.h
new file mode 100755
index 0000000..d9e8fc0
--- /dev/null
+++ b/e2sm/headers/UEID-GNB-CU-UP.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_UEID_GNB_CU_UP_H_
+#define	_UEID_GNB_CU_UP_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "GNB-CU-CP-UE-E1AP-ID.h"
+#include "RANUEID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UEID-GNB-CU-UP */
+typedef struct UEID_GNB_CU_UP {
+	GNB_CU_CP_UE_E1AP_ID_t	 gNB_CU_CP_UE_E1AP_ID;
+	RANUEID_t	*ran_UEID;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} UEID_GNB_CU_UP_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UEID_GNB_CU_UP;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEID_GNB_CU_UP_specs_1;
+extern asn_TYPE_member_t asn_MBR_UEID_GNB_CU_UP_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _UEID_GNB_CU_UP_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/UEID-GNB-DU.h b/e2sm/headers/UEID-GNB-DU.h
new file mode 100755
index 0000000..bf224c4
--- /dev/null
+++ b/e2sm/headers/UEID-GNB-DU.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_UEID_GNB_DU_H_
+#define	_UEID_GNB_DU_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "GNB-CU-UE-F1AP-ID.h"
+#include "RANUEID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UEID-GNB-DU */
+typedef struct UEID_GNB_DU {
+	GNB_CU_UE_F1AP_ID_t	 gNB_CU_UE_F1AP_ID;
+	RANUEID_t	*ran_UEID;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} UEID_GNB_DU_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UEID_GNB_DU;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEID_GNB_DU_specs_1;
+extern asn_TYPE_member_t asn_MBR_UEID_GNB_DU_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _UEID_GNB_DU_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/UEID-GNB.h b/e2sm/headers/UEID-GNB.h
new file mode 100755
index 0000000..4a76f62
--- /dev/null
+++ b/e2sm/headers/UEID-GNB.h
@@ -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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_UEID_GNB_H_
+#define	_UEID_GNB_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "AMF-UE-NGAP-ID.h"
+#include "GUAMI.h"
+#include "RANUEID.h"
+#include "NG-RANnodeUEXnAPID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct UEID_GNB_CU_F1AP_ID_List;
+struct UEID_GNB_CU_CP_E1AP_ID_List;
+struct GlobalGNB_ID;
+struct GlobalNGRANNodeID;
+
+/* UEID-GNB */
+typedef struct UEID_GNB {
+	AMF_UE_NGAP_ID_t	 amf_UE_NGAP_ID;
+	GUAMI_t	 guami;
+	struct UEID_GNB_CU_F1AP_ID_List	*gNB_CU_UE_F1AP_ID_List;	/* OPTIONAL */
+	struct UEID_GNB_CU_CP_E1AP_ID_List	*gNB_CU_CP_UE_E1AP_ID_List;	/* OPTIONAL */
+	RANUEID_t	*ran_UEID;	/* OPTIONAL */
+	NG_RANnodeUEXnAPID_t	*m_NG_RAN_UE_XnAP_ID;	/* OPTIONAL */
+	struct GlobalGNB_ID	*globalGNB_ID;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	struct GlobalNGRANNodeID	*globalNG_RANNode_ID;	/* OPTIONAL */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} UEID_GNB_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UEID_GNB;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEID_GNB_specs_1;
+extern asn_TYPE_member_t asn_MBR_UEID_GNB_1[8];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _UEID_GNB_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/UEID-NG-ENB-DU.h b/e2sm/headers/UEID-NG-ENB-DU.h
new file mode 100755
index 0000000..1aa0b27
--- /dev/null
+++ b/e2sm/headers/UEID-NG-ENB-DU.h
@@ -0,0 +1,44 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_UEID_NG_ENB_DU_H_
+#define	_UEID_NG_ENB_DU_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "NGENB-CU-UE-W1AP-ID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* UEID-NG-ENB-DU */
+typedef struct UEID_NG_ENB_DU {
+	NGENB_CU_UE_W1AP_ID_t	 ng_eNB_CU_UE_W1AP_ID;
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} UEID_NG_ENB_DU_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UEID_NG_ENB_DU;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEID_NG_ENB_DU_specs_1;
+extern asn_TYPE_member_t asn_MBR_UEID_NG_ENB_DU_1[1];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _UEID_NG_ENB_DU_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/UEID-NG-ENB.h b/e2sm/headers/UEID-NG-ENB.h
new file mode 100755
index 0000000..bb19c7e
--- /dev/null
+++ b/e2sm/headers/UEID-NG-ENB.h
@@ -0,0 +1,56 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_UEID_NG_ENB_H_
+#define	_UEID_NG_ENB_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "AMF-UE-NGAP-ID.h"
+#include "GUAMI.h"
+#include "NGENB-CU-UE-W1AP-ID.h"
+#include "NG-RANnodeUEXnAPID.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct GlobalNgENB_ID;
+struct GlobalNGRANNodeID;
+
+/* UEID-NG-ENB */
+typedef struct UEID_NG_ENB {
+	AMF_UE_NGAP_ID_t	 amf_UE_NGAP_ID;
+	GUAMI_t	 guami;
+	NGENB_CU_UE_W1AP_ID_t	*ng_eNB_CU_UE_W1AP_ID;	/* OPTIONAL */
+	NG_RANnodeUEXnAPID_t	*m_NG_RAN_UE_XnAP_ID;	/* OPTIONAL */
+	struct GlobalNgENB_ID	*globalNgENB_ID;	/* OPTIONAL */
+	/*
+	 * This type is extensible,
+	 * possible extensions are below.
+	 */
+	struct GlobalNGRANNodeID	*globalNG_RANNode_ID;	/* OPTIONAL */
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} UEID_NG_ENB_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UEID_NG_ENB;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEID_NG_ENB_specs_1;
+extern asn_TYPE_member_t asn_MBR_UEID_NG_ENB_1[6];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _UEID_NG_ENB_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/UEID.h b/e2sm/headers/UEID.h
new file mode 100755
index 0000000..26988b5
--- /dev/null
+++ b/e2sm/headers/UEID.h
@@ -0,0 +1,76 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_UEID_H_
+#define	_UEID_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum UEID_PR {
+	UEID_PR_NOTHING,	/* No components present */
+	UEID_PR_gNB_UEID,
+	UEID_PR_gNB_DU_UEID,
+	UEID_PR_gNB_CU_UP_UEID,
+	UEID_PR_ng_eNB_UEID,
+	UEID_PR_ng_eNB_DU_UEID,
+	UEID_PR_en_gNB_UEID,
+	UEID_PR_eNB_UEID
+	/* Extensions may appear below */
+	
+} UEID_PR;
+
+/* Forward declarations */
+struct UEID_GNB;
+struct UEID_GNB_DU;
+struct UEID_GNB_CU_UP;
+struct UEID_NG_ENB;
+struct UEID_NG_ENB_DU;
+struct UEID_EN_GNB;
+struct UEID_ENB;
+
+/* UEID */
+typedef struct UEID {
+	UEID_PR present;
+	union UEID_u {
+		struct UEID_GNB	*gNB_UEID;
+		struct UEID_GNB_DU	*gNB_DU_UEID;
+		struct UEID_GNB_CU_UP	*gNB_CU_UP_UEID;
+		struct UEID_NG_ENB	*ng_eNB_UEID;
+		struct UEID_NG_ENB_DU	*ng_eNB_DU_UEID;
+		struct UEID_EN_GNB	*en_gNB_UEID;
+		struct UEID_ENB	*eNB_UEID;
+		/*
+		 * This type is extensible,
+		 * possible extensions are below.
+		 */
+	} choice;
+	
+	/* Context for parsing across buffer boundaries */
+	asn_struct_ctx_t _asn_ctx;
+} UEID_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UEID;
+extern asn_CHOICE_specifics_t asn_SPC_UEID_specs_1;
+extern asn_TYPE_member_t asn_MBR_UEID_1[7];
+extern asn_per_constraints_t asn_PER_type_UEID_constr_1;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _UEID_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/UEIdentification-RANParameter-Item.h b/e2sm/headers/UEIdentification-RANParameter-Item.h
new file mode 100755
index 0000000..75f461f
--- /dev/null
+++ b/e2sm/headers/UEIdentification-RANParameter-Item.h
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#ifndef	_UEIdentification_RANParameter_Item_H_
+#define	_UEIdentification_RANParameter_Item_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "RANParameter-ID.h"
+#include "RANParameter-Name.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declarations */
+struct RANParameter_Definition;
+
+/* UEIdentification-RANParameter-Item */
+typedef struct UEIdentification_RANParameter_Item {
+	RANParameter_ID_t	 ranParameter_ID;
+	RANParameter_Name_t	 ranParameter_name;
+	/*
+	 * 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;
+} UEIdentification_RANParameter_Item_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_UEIdentification_RANParameter_Item;
+extern asn_SEQUENCE_specifics_t asn_SPC_UEIdentification_RANParameter_Item_specs_1;
+extern asn_TYPE_member_t asn_MBR_UEIdentification_RANParameter_Item_1[3];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* _UEIdentification_RANParameter_Item_H_ */
+#include <asn_internal.h>
diff --git a/e2sm/headers/asn_SEQUENCE_OF.h b/e2sm/headers/asn_SEQUENCE_OF.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/asn_SET_OF.h b/e2sm/headers/asn_SET_OF.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/asn_application.h b/e2sm/headers/asn_application.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/asn_bit_data.h b/e2sm/headers/asn_bit_data.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/asn_codecs.h b/e2sm/headers/asn_codecs.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/asn_codecs_prim.h b/e2sm/headers/asn_codecs_prim.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/asn_constant.h b/e2sm/headers/asn_constant.h
old mode 100644
new mode 100755
index df0a143..4566a7a
--- a/e2sm/headers/asn_constant.h
+++ b/e2sm/headers/asn_constant.h
@@ -9,28 +9,34 @@
 extern "C" {
 #endif
 
-#define maxCellReport (8)
-#define maxNrofSSBs_1 (63)
-#define maxNrofCSI_RS_ResourcesRRM_1 (95)
-#define maxNrofServingCells (32)
-#define maxNrofServingCells_1 (31)
-#define maxNrofIndexesToReport2 (64)
-#define maxnoofMeasurementInfo (65535)
-#define maxofMessageProtocolTests (15)
-#define maxnoofQCI (256)
-#define maxnoofQoSFlows (64)
-#define maxnoofSliceItems (1024)
-#define maxnoofContainerListItems (3)
-#define maxCellingNBDU (512)
-#define maxofContainers (8)
-#define maxPLMN (12)
-#define maxnoofUEs (65535)
-#define maxnoofPMMeasurements (2147483647)
+#define maxE1APid (65535)
+#define maxF1APid (4)
+#define maxEARFCN (65535)
+#define maxNRARFCN (3279165)
+#define maxnoofNrCellBands (32)
+#define maxnoofMessages (65535)
+#define maxnoofE2InfoChanges (65535)
+#define maxnoofUEInfoChanges (65535)
+#define maxnoofRRCstate (8)
+#define maxnoofParametersToReport (65535)
+#define maxnoofPolicyConditions (65535)
+#define maxnoofAssociatedRANParameters (65535)
+#define maxnoofUEID (65535)
+#define maxnoofCellID (65535)
+#define maxnoofRANOutcomeParameters (255)
+#define maxnoofParametersinStructure (65535)
+#define maxnoofItemsinList (65535)
+#define maxnoofUEInfo (65535)
+#define maxnoofCellInfo (65535)
+#define maxnoofUEeventInfo (65535)
+#define maxnoofRANparamTest (255)
+#define maxnoofNeighbourCell (65535)
 #define maxnoofRICStyles (63)
-#define maxnoofAssociatedRANInfo (4294967295)
-#define maxnoofParametersInStructure (4294967295)
-#define maxnoofItemsInList (4294967295)
+#define maxnoofCallProcessTypes (65535)
+#define maxnoofCallProcessBreakpoints (65535)
+#define maxnoofInsertIndication (65535)
 #define maxnoofControlAction (65535)
+#define maxnoofPolicyAction (65535)
 
 
 #ifdef __cplusplus
diff --git a/e2sm/headers/asn_internal.h b/e2sm/headers/asn_internal.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/asn_ioc.h b/e2sm/headers/asn_ioc.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/asn_random_fill.h b/e2sm/headers/asn_random_fill.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/asn_system.h b/e2sm/headers/asn_system.h
old mode 100644
new mode 100755
index 898f122..fa8cf11
--- a/e2sm/headers/asn_system.h
+++ b/e2sm/headers/asn_system.h
@@ -63,11 +63,7 @@
 #define isnan _isnan
 #define finite _finite
 #define copysign _copysign
-#ifdef WIN32	//MCHECK
-	#define ilogb ilogb
-#else
-	#define	ilogb	_logb
-#endif
+#define	ilogb	_logb
 #else	/* !_MSC_VER */
 #include <stdint.h>
 #endif	/* _MSC_VER */
diff --git a/e2sm/headers/ber_decoder.h b/e2sm/headers/ber_decoder.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/ber_tlv_length.h b/e2sm/headers/ber_tlv_length.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/ber_tlv_tag.h b/e2sm/headers/ber_tlv_tag.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/constr_CHOICE.h b/e2sm/headers/constr_CHOICE.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/constr_SEQUENCE.h b/e2sm/headers/constr_SEQUENCE.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/constr_SEQUENCE_OF.h b/e2sm/headers/constr_SEQUENCE_OF.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/constr_SET_OF.h b/e2sm/headers/constr_SET_OF.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/constr_TYPE.h b/e2sm/headers/constr_TYPE.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/constraints.h b/e2sm/headers/constraints.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/der_encoder.h b/e2sm/headers/der_encoder.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/oer_decoder.h b/e2sm/headers/oer_decoder.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/oer_encoder.h b/e2sm/headers/oer_encoder.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/oer_support.h b/e2sm/headers/oer_support.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/per_decoder.h b/e2sm/headers/per_decoder.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/per_encoder.h b/e2sm/headers/per_encoder.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/per_opentype.h b/e2sm/headers/per_opentype.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/per_support.h b/e2sm/headers/per_support.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/tags b/e2sm/headers/tags
new file mode 100755
index 0000000..0f08eea
--- /dev/null
+++ b/e2sm/headers/tags
@@ -0,0 +1,11 @@
+!_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 100644
new mode 100755
diff --git a/e2sm/headers/xer_encoder.h b/e2sm/headers/xer_encoder.h
old mode 100644
new mode 100755
diff --git a/e2sm/headers/xer_support.h b/e2sm/headers/xer_support.h
old mode 100644
new mode 100755
diff --git a/e2sm/lib/AMF-UE-NGAP-ID.c b/e2sm/lib/AMF-UE-NGAP-ID.c
new file mode 100644
index 0000000..403bacf
--- /dev/null
+++ b/e2sm/lib/AMF-UE-NGAP-ID.c
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "AMF-UE-NGAP-ID.h"
+
+int
+AMF_UE_NGAP_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const INTEGER_t *st = (const INTEGER_t *)sptr;
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(asn_INTEGER2long(st, &value)) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value too large (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if((value >= 0 && value <= 1099511627775)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using INTEGER,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_AMF_UE_NGAP_ID_constr_1 CC_NOTUSED = {
+	{ 8, 1 }	/* (0..1099511627775) */,
+	-1};
+asn_per_constraints_t asn_PER_type_AMF_UE_NGAP_ID_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 40, -1,  0,  1099511627775 }	/* (0..1099511627775) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_AMF_UE_NGAP_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_AMF_UE_NGAP_ID = {
+	"AMF-UE-NGAP-ID",
+	"AMF-UE-NGAP-ID",
+	&asn_OP_INTEGER,
+	asn_DEF_AMF_UE_NGAP_ID_tags_1,
+	sizeof(asn_DEF_AMF_UE_NGAP_ID_tags_1)
+		/sizeof(asn_DEF_AMF_UE_NGAP_ID_tags_1[0]), /* 1 */
+	asn_DEF_AMF_UE_NGAP_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_AMF_UE_NGAP_ID_tags_1)
+		/sizeof(asn_DEF_AMF_UE_NGAP_ID_tags_1[0]), /* 1 */
+	{ &asn_OER_type_AMF_UE_NGAP_ID_constr_1, &asn_PER_type_AMF_UE_NGAP_ID_constr_1, AMF_UE_NGAP_ID_constraint },
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/e2sm/lib/AMFPointer.c b/e2sm/lib/AMFPointer.c
new file mode 100644
index 0000000..70592cd
--- /dev/null
+++ b/e2sm/lib/AMFPointer.c
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "AMFPointer.h"
+
+int
+AMFPointer_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size == 6)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using BIT_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_AMFPointer_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	6	/* (SIZE(6..6)) */};
+asn_per_constraints_t asn_PER_type_AMFPointer_constr_1 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  6,  6 }	/* (SIZE(6..6)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_AMFPointer_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_AMFPointer = {
+	"AMFPointer",
+	"AMFPointer",
+	&asn_OP_BIT_STRING,
+	asn_DEF_AMFPointer_tags_1,
+	sizeof(asn_DEF_AMFPointer_tags_1)
+		/sizeof(asn_DEF_AMFPointer_tags_1[0]), /* 1 */
+	asn_DEF_AMFPointer_tags_1,	/* Same as above */
+	sizeof(asn_DEF_AMFPointer_tags_1)
+		/sizeof(asn_DEF_AMFPointer_tags_1[0]), /* 1 */
+	{ &asn_OER_type_AMFPointer_constr_1, &asn_PER_type_AMFPointer_constr_1, AMFPointer_constraint },
+	0, 0,	/* No members */
+	&asn_SPC_BIT_STRING_specs	/* Additional specs */
+};
+
diff --git a/e2sm/lib/AMFRegionID.c b/e2sm/lib/AMFRegionID.c
new file mode 100644
index 0000000..f686a27
--- /dev/null
+++ b/e2sm/lib/AMFRegionID.c
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "AMFRegionID.h"
+
+int
+AMFRegionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size == 8)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using BIT_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_AMFRegionID_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	8	/* (SIZE(8..8)) */};
+asn_per_constraints_t asn_PER_type_AMFRegionID_constr_1 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  8,  8 }	/* (SIZE(8..8)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_AMFRegionID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_AMFRegionID = {
+	"AMFRegionID",
+	"AMFRegionID",
+	&asn_OP_BIT_STRING,
+	asn_DEF_AMFRegionID_tags_1,
+	sizeof(asn_DEF_AMFRegionID_tags_1)
+		/sizeof(asn_DEF_AMFRegionID_tags_1[0]), /* 1 */
+	asn_DEF_AMFRegionID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_AMFRegionID_tags_1)
+		/sizeof(asn_DEF_AMFRegionID_tags_1[0]), /* 1 */
+	{ &asn_OER_type_AMFRegionID_constr_1, &asn_PER_type_AMFRegionID_constr_1, AMFRegionID_constraint },
+	0, 0,	/* No members */
+	&asn_SPC_BIT_STRING_specs	/* Additional specs */
+};
+
diff --git a/e2sm/lib/AMFSetID.c b/e2sm/lib/AMFSetID.c
new file mode 100644
index 0000000..797bdba
--- /dev/null
+++ b/e2sm/lib/AMFSetID.c
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "AMFSetID.h"
+
+int
+AMFSetID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size == 10)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using BIT_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_AMFSetID_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	10	/* (SIZE(10..10)) */};
+asn_per_constraints_t asn_PER_type_AMFSetID_constr_1 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  10,  10 }	/* (SIZE(10..10)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_AMFSetID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_AMFSetID = {
+	"AMFSetID",
+	"AMFSetID",
+	&asn_OP_BIT_STRING,
+	asn_DEF_AMFSetID_tags_1,
+	sizeof(asn_DEF_AMFSetID_tags_1)
+		/sizeof(asn_DEF_AMFSetID_tags_1[0]), /* 1 */
+	asn_DEF_AMFSetID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_AMFSetID_tags_1)
+		/sizeof(asn_DEF_AMFSetID_tags_1[0]), /* 1 */
+	{ &asn_OER_type_AMFSetID_constr_1, &asn_PER_type_AMFSetID_constr_1, AMFSetID_constraint },
+	0, 0,	/* No members */
+	&asn_SPC_BIT_STRING_specs	/* Additional specs */
+};
+
diff --git a/e2sm/lib/CGI.c b/e2sm/lib/CGI.c
new file mode 100644
index 0000000..a0f0d66
--- /dev/null
+++ b/e2sm/lib/CGI.c
@@ -0,0 +1,67 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "CGI.h"
+
+#include "NR-CGI.h"
+#include "EUTRA-CGI.h"
+static asn_oer_constraints_t asn_OER_type_CGI_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_CGI_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_CGI_1[] = {
+	{ ATF_POINTER, 0, offsetof(struct CGI, choice.nR_CGI),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NR_CGI,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"nR-CGI"
+		},
+	{ ATF_POINTER, 0, offsetof(struct CGI, choice.eUTRA_CGI),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_EUTRA_CGI,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"eUTRA-CGI"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_CGI_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nR-CGI */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* eUTRA-CGI */
+};
+asn_CHOICE_specifics_t asn_SPC_CGI_specs_1 = {
+	sizeof(struct CGI),
+	offsetof(struct CGI, _asn_ctx),
+	offsetof(struct CGI, present),
+	sizeof(((struct CGI *)0)->present),
+	asn_MAP_CGI_tag2el_1,
+	2,	/* Count of tags in the map */
+	0, 0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_CGI = {
+	"CGI",
+	"CGI",
+	&asn_OP_CHOICE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ &asn_OER_type_CGI_constr_1, &asn_PER_type_CGI_constr_1, CHOICE_constraint },
+	asn_MBR_CGI_1,
+	2,	/* Elements count */
+	&asn_SPC_CGI_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/CSI-RS-Index.c b/e2sm/lib/CSI-RS-Index.c
deleted file mode 100644
index 327aeb9..0000000
--- a/e2sm/lib/CSI-RS-Index.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "CSI-RS-Index.h"
-
-int
-CSI_RS_Index_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	long value;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	value = *(const long *)sptr;
-	
-	if((value >= 0 && value <= 95)) {
-		/* Constraint check succeeded */
-		return 0;
-	} else {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: constraint failed (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-}
-
-/*
- * This type is implemented using NativeInteger,
- * so here we adjust the DEF accordingly.
- */
-static asn_oer_constraints_t asn_OER_type_CSI_RS_Index_constr_1 CC_NOTUSED = {
-	{ 1, 1 }	/* (0..95) */,
-	-1};
-asn_per_constraints_t asn_PER_type_CSI_RS_Index_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED,	 7,  7,  0,  95 }	/* (0..95) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static const ber_tlv_tag_t asn_DEF_CSI_RS_Index_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
-};
-asn_TYPE_descriptor_t asn_DEF_CSI_RS_Index = {
-	"CSI-RS-Index",
-	"CSI-RS-Index",
-	&asn_OP_NativeInteger,
-	asn_DEF_CSI_RS_Index_tags_1,
-	sizeof(asn_DEF_CSI_RS_Index_tags_1)
-		/sizeof(asn_DEF_CSI_RS_Index_tags_1[0]), /* 1 */
-	asn_DEF_CSI_RS_Index_tags_1,	/* Same as above */
-	sizeof(asn_DEF_CSI_RS_Index_tags_1)
-		/sizeof(asn_DEF_CSI_RS_Index_tags_1[0]), /* 1 */
-	{ &asn_OER_type_CSI_RS_Index_constr_1, &asn_PER_type_CSI_RS_Index_constr_1, CSI_RS_Index_constraint },
-	0, 0,	/* No members */
-	0	/* No specifics */
-};
-
diff --git a/e2sm/lib/CUUPMeasurement-Container.c b/e2sm/lib/CUUPMeasurement-Container.c
deleted file mode 100644
index 0e768d8..0000000
--- a/e2sm/lib/CUUPMeasurement-Container.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "CUUPMeasurement-Container.h"
-
-#include "PlmnID-Item.h"
-static int
-memb_plmnList_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 <= 12)) {
-		/* 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_plmnList_constr_2 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..12)) */};
-static asn_per_constraints_t asn_PER_type_plmnList_constr_2 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 4,  4,  1,  12 }	/* (SIZE(1..12)) */,
-	0, 0	/* No PER value map */
-};
-static asn_oer_constraints_t asn_OER_memb_plmnList_constr_2 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..12)) */};
-static asn_per_constraints_t asn_PER_memb_plmnList_constr_2 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 4,  4,  1,  12 }	/* (SIZE(1..12)) */,
-	0, 0	/* No PER value map */
-};
-static asn_TYPE_member_t asn_MBR_plmnList_2[] = {
-	{ ATF_POINTER, 0, 0,
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_PlmnID_Item,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		""
-		},
-};
-static const ber_tlv_tag_t asn_DEF_plmnList_tags_2[] = {
-	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static asn_SET_OF_specifics_t asn_SPC_plmnList_specs_2 = {
-	sizeof(struct CUUPMeasurement_Container__plmnList),
-	offsetof(struct CUUPMeasurement_Container__plmnList, _asn_ctx),
-	0,	/* XER encoding is XMLDelimitedItemList */
-};
-static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_plmnList_2 = {
-	"plmnList",
-	"plmnList",
-	&asn_OP_SEQUENCE_OF,
-	asn_DEF_plmnList_tags_2,
-	sizeof(asn_DEF_plmnList_tags_2)
-		/sizeof(asn_DEF_plmnList_tags_2[0]) - 1, /* 1 */
-	asn_DEF_plmnList_tags_2,	/* Same as above */
-	sizeof(asn_DEF_plmnList_tags_2)
-		/sizeof(asn_DEF_plmnList_tags_2[0]), /* 2 */
-	{ &asn_OER_type_plmnList_constr_2, &asn_PER_type_plmnList_constr_2, SEQUENCE_OF_constraint },
-	asn_MBR_plmnList_2,
-	1,	/* Single element */
-	&asn_SPC_plmnList_specs_2	/* Additional specs */
-};
-
-asn_TYPE_member_t asn_MBR_CUUPMeasurement_Container_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct CUUPMeasurement_Container, plmnList),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		0,
-		&asn_DEF_plmnList_2,
-		0,
-		{ &asn_OER_memb_plmnList_constr_2, &asn_PER_memb_plmnList_constr_2,  memb_plmnList_constraint_1 },
-		0, 0, /* No default value */
-		"plmnList"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_CUUPMeasurement_Container_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_CUUPMeasurement_Container_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* plmnList */
-};
-asn_SEQUENCE_specifics_t asn_SPC_CUUPMeasurement_Container_specs_1 = {
-	sizeof(struct CUUPMeasurement_Container),
-	offsetof(struct CUUPMeasurement_Container, _asn_ctx),
-	asn_MAP_CUUPMeasurement_Container_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_CUUPMeasurement_Container = {
-	"CUUPMeasurement-Container",
-	"CUUPMeasurement-Container",
-	&asn_OP_SEQUENCE,
-	asn_DEF_CUUPMeasurement_Container_tags_1,
-	sizeof(asn_DEF_CUUPMeasurement_Container_tags_1)
-		/sizeof(asn_DEF_CUUPMeasurement_Container_tags_1[0]), /* 1 */
-	asn_DEF_CUUPMeasurement_Container_tags_1,	/* Same as above */
-	sizeof(asn_DEF_CUUPMeasurement_Container_tags_1)
-		/sizeof(asn_DEF_CUUPMeasurement_Container_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_CUUPMeasurement_Container_1,
-	1,	/* Elements count */
-	&asn_SPC_CUUPMeasurement_Container_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/CallProcessBreakpoint-RANParameter-Item.c b/e2sm/lib/CallProcessBreakpoint-RANParameter-Item.c
new file mode 100644
index 0000000..4825bb7
--- /dev/null
+++ b/e2sm/lib/CallProcessBreakpoint-RANParameter-Item.c
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "CallProcessBreakpoint-RANParameter-Item.h"
+
+#include "RANParameter-Definition.h"
+asn_TYPE_member_t asn_MBR_CallProcessBreakpoint_RANParameter_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct CallProcessBreakpoint_RANParameter_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 CallProcessBreakpoint_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"
+		},
+	{ ATF_POINTER, 1, offsetof(struct CallProcessBreakpoint_RANParameter_Item, ranParameter_Definition),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 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_CallProcessBreakpoint_RANParameter_Item_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_CallProcessBreakpoint_RANParameter_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CallProcessBreakpoint_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 | (2 << 2)), 2, 0, 0 } /* ranParameter-Definition */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CallProcessBreakpoint_RANParameter_Item_specs_1 = {
+	sizeof(struct CallProcessBreakpoint_RANParameter_Item),
+	offsetof(struct CallProcessBreakpoint_RANParameter_Item, _asn_ctx),
+	asn_MAP_CallProcessBreakpoint_RANParameter_Item_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_CallProcessBreakpoint_RANParameter_Item_oms_1,	/* Optional members */
+	0, 1,	/* Root/Additions */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CallProcessBreakpoint_RANParameter_Item = {
+	"CallProcessBreakpoint-RANParameter-Item",
+	"CallProcessBreakpoint-RANParameter-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_CallProcessBreakpoint_RANParameter_Item_tags_1,
+	sizeof(asn_DEF_CallProcessBreakpoint_RANParameter_Item_tags_1)
+		/sizeof(asn_DEF_CallProcessBreakpoint_RANParameter_Item_tags_1[0]), /* 1 */
+	asn_DEF_CallProcessBreakpoint_RANParameter_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_CallProcessBreakpoint_RANParameter_Item_tags_1)
+		/sizeof(asn_DEF_CallProcessBreakpoint_RANParameter_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_CallProcessBreakpoint_RANParameter_Item_1,
+	3,	/* Elements count */
+	&asn_SPC_CallProcessBreakpoint_RANParameter_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/CellIdentification-RANParameter-Item.c b/e2sm/lib/CellIdentification-RANParameter-Item.c
new file mode 100644
index 0000000..8c6f787
--- /dev/null
+++ b/e2sm/lib/CellIdentification-RANParameter-Item.c
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "CellIdentification-RANParameter-Item.h"
+
+#include "RANParameter-Definition.h"
+asn_TYPE_member_t asn_MBR_CellIdentification_RANParameter_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct CellIdentification_RANParameter_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 CellIdentification_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"
+		},
+	{ ATF_POINTER, 1, offsetof(struct CellIdentification_RANParameter_Item, ranParameter_Definition),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 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_CellIdentification_RANParameter_Item_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_CellIdentification_RANParameter_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_CellIdentification_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 | (2 << 2)), 2, 0, 0 } /* ranParameter-Definition */
+};
+asn_SEQUENCE_specifics_t asn_SPC_CellIdentification_RANParameter_Item_specs_1 = {
+	sizeof(struct CellIdentification_RANParameter_Item),
+	offsetof(struct CellIdentification_RANParameter_Item, _asn_ctx),
+	asn_MAP_CellIdentification_RANParameter_Item_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_CellIdentification_RANParameter_Item_oms_1,	/* Optional members */
+	0, 1,	/* Root/Additions */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_CellIdentification_RANParameter_Item = {
+	"CellIdentification-RANParameter-Item",
+	"CellIdentification-RANParameter-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_CellIdentification_RANParameter_Item_tags_1,
+	sizeof(asn_DEF_CellIdentification_RANParameter_Item_tags_1)
+		/sizeof(asn_DEF_CellIdentification_RANParameter_Item_tags_1[0]), /* 1 */
+	asn_DEF_CellIdentification_RANParameter_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_CellIdentification_RANParameter_Item_tags_1)
+		/sizeof(asn_DEF_CellIdentification_RANParameter_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_CellIdentification_RANParameter_Item_1,
+	3,	/* Elements count */
+	&asn_SPC_CellIdentification_RANParameter_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/CellObjectID.c b/e2sm/lib/CellObjectID.c
deleted file mode 100644
index b6da12b..0000000
--- a/e2sm/lib/CellObjectID.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "CellObjectID.h"
-
-static const int permitted_alphabet_table_1[256] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/*                  */
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/*                  */
- 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9,	/* .      '() +,-./ */
-10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22,	/* 0123456789:  = ? */
- 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,	/*  ABCDEFGHIJKLMNO */
-38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0,	/* PQRSTUVWXYZ      */
- 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,	/*  abcdefghijklmno */
-64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0,	/* pqrstuvwxyz      */
-};
-static const int permitted_alphabet_code2value_1[74] = {
-32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54,
-55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74,
-75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,
-97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,
-113,114,115,116,117,118,119,120,121,122,};
-
-
-static int check_permitted_alphabet_1(const void *sptr) {
-	const int *table = permitted_alphabet_table_1;
-	/* The underlying type is PrintableString */
-	const PrintableString_t *st = (const PrintableString_t *)sptr;
-	const uint8_t *ch = st->buf;
-	const uint8_t *end = ch + st->size;
-	
-	for(; ch < end; ch++) {
-		uint8_t cv = *ch;
-		if(!table[cv]) return -1;
-	}
-	return 0;
-}
-
-int
-CellObjectID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	const PrintableString_t *st = (const PrintableString_t *)sptr;
-	size_t size;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	size = st->size;
-	
-	if((size <= 400)
-		 && !check_permitted_alphabet_1(st)) {
-		/* Constraint check succeeded */
-		return 0;
-	} else {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: constraint failed (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-}
-
-static int asn_PER_MAP_CellObjectID_1_v2c(unsigned int value) {
-	if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0]))
-		return -1;
-	return permitted_alphabet_table_1[value] - 1;
-}
-static int asn_PER_MAP_CellObjectID_1_c2v(unsigned int code) {
-	if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0]))
-		return -1;
-	return permitted_alphabet_code2value_1[code];
-}
-/*
- * This type is implemented using PrintableString,
- * so here we adjust the DEF accordingly.
- */
-static asn_oer_constraints_t asn_OER_type_CellObjectID_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(0..MAX)) */};
-asn_per_constraints_t asn_PER_type_CellObjectID_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED,	 7,  7,  32,  122 }	/* (32..122) */,
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  9,  9,  0,  400 }	/* (SIZE(0..400,...)) */,
-	asn_PER_MAP_CellObjectID_1_v2c,	/* Value to PER code map */
-	asn_PER_MAP_CellObjectID_1_c2v	/* PER code to value map */
-};
-static const ber_tlv_tag_t asn_DEF_CellObjectID_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (19 << 2))
-};
-asn_TYPE_descriptor_t asn_DEF_CellObjectID = {
-	"CellObjectID",
-	"CellObjectID",
-	&asn_OP_PrintableString,
-	asn_DEF_CellObjectID_tags_1,
-	sizeof(asn_DEF_CellObjectID_tags_1)
-		/sizeof(asn_DEF_CellObjectID_tags_1[0]), /* 1 */
-	asn_DEF_CellObjectID_tags_1,	/* Same as above */
-	sizeof(asn_DEF_CellObjectID_tags_1)
-		/sizeof(asn_DEF_CellObjectID_tags_1[0]), /* 1 */
-	{ &asn_OER_type_CellObjectID_constr_1, &asn_PER_type_CellObjectID_constr_1, CellObjectID_constraint },
-	0, 0,	/* No members */
-	0	/* No specifics */
-};
-
diff --git a/e2sm/lib/CellResourceReportListItem.c b/e2sm/lib/CellResourceReportListItem.c
deleted file mode 100644
index a7ce4ae..0000000
--- a/e2sm/lib/CellResourceReportListItem.c
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "CellResourceReportListItem.h"
-
-#include "ServedPlmnPerCellListItem.h"
-static int
-memb_dl_TotalofAvailablePRBs_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	long value;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	value = *(const long *)sptr;
-	
-	if((value >= 0 && value <= 273)) {
-		/* Constraint check succeeded */
-		return 0;
-	} else {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: constraint failed (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-}
-
-static int
-memb_ul_TotalofAvailablePRBs_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	long value;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	value = *(const long *)sptr;
-	
-	if((value >= 0 && value <= 273)) {
-		/* Constraint check succeeded */
-		return 0;
-	} else {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: constraint failed (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-}
-
-static int
-memb_servedPlmnPerCellList_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 <= 12)) {
-		/* 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_servedPlmnPerCellList_constr_5 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..12)) */};
-static asn_per_constraints_t asn_PER_type_servedPlmnPerCellList_constr_5 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 4,  4,  1,  12 }	/* (SIZE(1..12)) */,
-	0, 0	/* No PER value map */
-};
-static asn_oer_constraints_t asn_OER_memb_dl_TotalofAvailablePRBs_constr_3 CC_NOTUSED = {
-	{ 2, 1 }	/* (0..273) */,
-	-1};
-static asn_per_constraints_t asn_PER_memb_dl_TotalofAvailablePRBs_constr_3 CC_NOTUSED = {
-	{ APC_CONSTRAINED,	 9,  9,  0,  273 }	/* (0..273) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static asn_oer_constraints_t asn_OER_memb_ul_TotalofAvailablePRBs_constr_4 CC_NOTUSED = {
-	{ 2, 1 }	/* (0..273) */,
-	-1};
-static asn_per_constraints_t asn_PER_memb_ul_TotalofAvailablePRBs_constr_4 CC_NOTUSED = {
-	{ APC_CONSTRAINED,	 9,  9,  0,  273 }	/* (0..273) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static asn_oer_constraints_t asn_OER_memb_servedPlmnPerCellList_constr_5 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..12)) */};
-static asn_per_constraints_t asn_PER_memb_servedPlmnPerCellList_constr_5 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 4,  4,  1,  12 }	/* (SIZE(1..12)) */,
-	0, 0	/* No PER value map */
-};
-static asn_TYPE_member_t asn_MBR_servedPlmnPerCellList_5[] = {
-	{ ATF_POINTER, 0, 0,
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_ServedPlmnPerCellListItem,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		""
-		},
-};
-static const ber_tlv_tag_t asn_DEF_servedPlmnPerCellList_tags_5[] = {
-	(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static asn_SET_OF_specifics_t asn_SPC_servedPlmnPerCellList_specs_5 = {
-	sizeof(struct CellResourceReportListItem__servedPlmnPerCellList),
-	offsetof(struct CellResourceReportListItem__servedPlmnPerCellList, _asn_ctx),
-	0,	/* XER encoding is XMLDelimitedItemList */
-};
-static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_servedPlmnPerCellList_5 = {
-	"servedPlmnPerCellList",
-	"servedPlmnPerCellList",
-	&asn_OP_SEQUENCE_OF,
-	asn_DEF_servedPlmnPerCellList_tags_5,
-	sizeof(asn_DEF_servedPlmnPerCellList_tags_5)
-		/sizeof(asn_DEF_servedPlmnPerCellList_tags_5[0]) - 1, /* 1 */
-	asn_DEF_servedPlmnPerCellList_tags_5,	/* Same as above */
-	sizeof(asn_DEF_servedPlmnPerCellList_tags_5)
-		/sizeof(asn_DEF_servedPlmnPerCellList_tags_5[0]), /* 2 */
-	{ &asn_OER_type_servedPlmnPerCellList_constr_5, &asn_PER_type_servedPlmnPerCellList_constr_5, SEQUENCE_OF_constraint },
-	asn_MBR_servedPlmnPerCellList_5,
-	1,	/* Single element */
-	&asn_SPC_servedPlmnPerCellList_specs_5	/* Additional specs */
-};
-
-asn_TYPE_member_t asn_MBR_CellResourceReportListItem_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct CellResourceReportListItem, nRCGI),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_NRCGI,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"nRCGI"
-		},
-	{ ATF_POINTER, 2, offsetof(struct CellResourceReportListItem, dl_TotalofAvailablePRBs),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_NativeInteger,
-		0,
-		{ &asn_OER_memb_dl_TotalofAvailablePRBs_constr_3, &asn_PER_memb_dl_TotalofAvailablePRBs_constr_3,  memb_dl_TotalofAvailablePRBs_constraint_1 },
-		0, 0, /* No default value */
-		"dl-TotalofAvailablePRBs"
-		},
-	{ ATF_POINTER, 1, offsetof(struct CellResourceReportListItem, ul_TotalofAvailablePRBs),
-		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_NativeInteger,
-		0,
-		{ &asn_OER_memb_ul_TotalofAvailablePRBs_constr_4, &asn_PER_memb_ul_TotalofAvailablePRBs_constr_4,  memb_ul_TotalofAvailablePRBs_constraint_1 },
-		0, 0, /* No default value */
-		"ul-TotalofAvailablePRBs"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct CellResourceReportListItem, servedPlmnPerCellList),
-		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
-		0,
-		&asn_DEF_servedPlmnPerCellList_5,
-		0,
-		{ &asn_OER_memb_servedPlmnPerCellList_constr_5, &asn_PER_memb_servedPlmnPerCellList_constr_5,  memb_servedPlmnPerCellList_constraint_1 },
-		0, 0, /* No default value */
-		"servedPlmnPerCellList"
-		},
-};
-static const int asn_MAP_CellResourceReportListItem_oms_1[] = { 1, 2 };
-static const ber_tlv_tag_t asn_DEF_CellResourceReportListItem_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_CellResourceReportListItem_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nRCGI */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dl-TotalofAvailablePRBs */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ul-TotalofAvailablePRBs */
-    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* servedPlmnPerCellList */
-};
-asn_SEQUENCE_specifics_t asn_SPC_CellResourceReportListItem_specs_1 = {
-	sizeof(struct CellResourceReportListItem),
-	offsetof(struct CellResourceReportListItem, _asn_ctx),
-	asn_MAP_CellResourceReportListItem_tag2el_1,
-	4,	/* Count of tags in the map */
-	asn_MAP_CellResourceReportListItem_oms_1,	/* Optional members */
-	2, 0,	/* Root/Additions */
-	4,	/* First extension addition */
-};
-asn_TYPE_descriptor_t asn_DEF_CellResourceReportListItem = {
-	"CellResourceReportListItem",
-	"CellResourceReportListItem",
-	&asn_OP_SEQUENCE,
-	asn_DEF_CellResourceReportListItem_tags_1,
-	sizeof(asn_DEF_CellResourceReportListItem_tags_1)
-		/sizeof(asn_DEF_CellResourceReportListItem_tags_1[0]), /* 1 */
-	asn_DEF_CellResourceReportListItem_tags_1,	/* Same as above */
-	sizeof(asn_DEF_CellResourceReportListItem_tags_1)
-		/sizeof(asn_DEF_CellResourceReportListItem_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_CellResourceReportListItem_1,
-	4,	/* Elements count */
-	&asn_SPC_CellResourceReportListItem_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/ControlAction-RANParameter-Item.c b/e2sm/lib/ControlAction-RANParameter-Item.c
new file mode 100644
index 0000000..c9cca4f
--- /dev/null
+++ b/e2sm/lib/ControlAction-RANParameter-Item.c
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "ControlAction-RANParameter-Item.h"
+
+#include "RANParameter-Definition.h"
+asn_TYPE_member_t asn_MBR_ControlAction_RANParameter_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct ControlAction_RANParameter_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 ControlAction_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"
+		},
+	{ ATF_POINTER, 1, offsetof(struct ControlAction_RANParameter_Item, ranParameter_Definition),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 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_ControlAction_RANParameter_Item_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_ControlAction_RANParameter_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ControlAction_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 | (2 << 2)), 2, 0, 0 } /* ranParameter-Definition */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ControlAction_RANParameter_Item_specs_1 = {
+	sizeof(struct ControlAction_RANParameter_Item),
+	offsetof(struct ControlAction_RANParameter_Item, _asn_ctx),
+	asn_MAP_ControlAction_RANParameter_Item_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_ControlAction_RANParameter_Item_oms_1,	/* Optional members */
+	0, 1,	/* Root/Additions */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ControlAction_RANParameter_Item = {
+	"ControlAction-RANParameter-Item",
+	"ControlAction-RANParameter-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_ControlAction_RANParameter_Item_tags_1,
+	sizeof(asn_DEF_ControlAction_RANParameter_Item_tags_1)
+		/sizeof(asn_DEF_ControlAction_RANParameter_Item_tags_1[0]), /* 1 */
+	asn_DEF_ControlAction_RANParameter_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_ControlAction_RANParameter_Item_tags_1)
+		/sizeof(asn_DEF_ControlAction_RANParameter_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_ControlAction_RANParameter_Item_1,
+	3,	/* Elements count */
+	&asn_SPC_ControlAction_RANParameter_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/ControlOutcome-RANParameter-Item.c b/e2sm/lib/ControlOutcome-RANParameter-Item.c
new file mode 100644
index 0000000..30a3ff8
--- /dev/null
+++ b/e2sm/lib/ControlOutcome-RANParameter-Item.c
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "ControlOutcome-RANParameter-Item.h"
+
+#include "RANParameter-Definition.h"
+asn_TYPE_member_t asn_MBR_ControlOutcome_RANParameter_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct ControlOutcome_RANParameter_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 ControlOutcome_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"
+		},
+	{ ATF_POINTER, 1, offsetof(struct ControlOutcome_RANParameter_Item, ranParameter_Definition),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 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_ControlOutcome_RANParameter_Item_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_ControlOutcome_RANParameter_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_ControlOutcome_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 | (2 << 2)), 2, 0, 0 } /* ranParameter-Definition */
+};
+asn_SEQUENCE_specifics_t asn_SPC_ControlOutcome_RANParameter_Item_specs_1 = {
+	sizeof(struct ControlOutcome_RANParameter_Item),
+	offsetof(struct ControlOutcome_RANParameter_Item, _asn_ctx),
+	asn_MAP_ControlOutcome_RANParameter_Item_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_ControlOutcome_RANParameter_Item_oms_1,	/* Optional members */
+	0, 1,	/* Root/Additions */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_ControlOutcome_RANParameter_Item = {
+	"ControlOutcome-RANParameter-Item",
+	"ControlOutcome-RANParameter-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_ControlOutcome_RANParameter_Item_tags_1,
+	sizeof(asn_DEF_ControlOutcome_RANParameter_Item_tags_1)
+		/sizeof(asn_DEF_ControlOutcome_RANParameter_Item_tags_1[0]), /* 1 */
+	asn_DEF_ControlOutcome_RANParameter_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_ControlOutcome_RANParameter_Item_tags_1)
+		/sizeof(asn_DEF_ControlOutcome_RANParameter_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_ControlOutcome_RANParameter_Item_1,
+	3,	/* Elements count */
+	&asn_SPC_ControlOutcome_RANParameter_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/CoreCPID.c b/e2sm/lib/CoreCPID.c
new file mode 100644
index 0000000..1a5c8d4
--- /dev/null
+++ b/e2sm/lib/CoreCPID.c
@@ -0,0 +1,67 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "CoreCPID.h"
+
+#include "GUAMI.h"
+#include "GUMMEI.h"
+static asn_oer_constraints_t asn_OER_type_CoreCPID_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_type_CoreCPID_constr_1 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_TYPE_member_t asn_MBR_CoreCPID_1[] = {
+	{ ATF_POINTER, 0, offsetof(struct CoreCPID, choice.fiveGC),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GUAMI,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"fiveGC"
+		},
+	{ ATF_POINTER, 0, offsetof(struct CoreCPID, choice.ePC),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GUMMEI,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ePC"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_CoreCPID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fiveGC */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ePC */
+};
+static asn_CHOICE_specifics_t asn_SPC_CoreCPID_specs_1 = {
+	sizeof(struct CoreCPID),
+	offsetof(struct CoreCPID, _asn_ctx),
+	offsetof(struct CoreCPID, present),
+	sizeof(((struct CoreCPID *)0)->present),
+	asn_MAP_CoreCPID_tag2el_1,
+	2,	/* Count of tags in the map */
+	0, 0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_CoreCPID = {
+	"CoreCPID",
+	"CoreCPID",
+	&asn_OP_CHOICE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ &asn_OER_type_CoreCPID_constr_1, &asn_PER_type_CoreCPID_constr_1, CHOICE_constraint },
+	asn_MBR_CoreCPID_1,
+	2,	/* Elements count */
+	&asn_SPC_CoreCPID_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/Criticality.c b/e2sm/lib/Criticality.c
deleted file mode 100644
index 7f57c68..0000000
--- a/e2sm/lib/Criticality.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "Criticality.h"
-
-/*
- * This type is implemented using NativeEnumerated,
- * so here we adjust the DEF accordingly.
- */
-static asn_oer_constraints_t asn_OER_type_Criticality_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	-1};
-static asn_per_constraints_t asn_PER_type_Criticality_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED,	 2,  2,  0,  2 }	/* (0..2) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static const asn_INTEGER_enum_map_t asn_MAP_Criticality_value2enum_1[] = {
-	{ 0,	6,	"reject" },
-	{ 1,	6,	"ignore" },
-	{ 2,	6,	"notify" }
-};
-static const unsigned int asn_MAP_Criticality_enum2value_1[] = {
-	1,	/* ignore(1) */
-	2,	/* notify(2) */
-	0	/* reject(0) */
-};
-static const asn_INTEGER_specifics_t asn_SPC_Criticality_specs_1 = {
-	asn_MAP_Criticality_value2enum_1,	/* "tag" => N; sorted by tag */
-	asn_MAP_Criticality_enum2value_1,	/* N => "tag"; sorted by N */
-	3,	/* Number of elements in the maps */
-	0,	/* Enumeration is not extensible */
-	1,	/* Strict enumeration */
-	0,	/* Native long size */
-	0
-};
-static const ber_tlv_tag_t asn_DEF_Criticality_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
-};
-asn_TYPE_descriptor_t asn_DEF_Criticality = {
-	"Criticality",
-	"Criticality",
-	&asn_OP_NativeEnumerated,
-	asn_DEF_Criticality_tags_1,
-	sizeof(asn_DEF_Criticality_tags_1)
-		/sizeof(asn_DEF_Criticality_tags_1[0]), /* 1 */
-	asn_DEF_Criticality_tags_1,	/* Same as above */
-	sizeof(asn_DEF_Criticality_tags_1)
-		/sizeof(asn_DEF_Criticality_tags_1[0]), /* 1 */
-	{ &asn_OER_type_Criticality_constr_1, &asn_PER_type_Criticality_constr_1, NativeEnumerated_constraint },
-	0, 0,	/* Defined elsewhere */
-	&asn_SPC_Criticality_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/E-UTRA-ARFCN.c b/e2sm/lib/E-UTRA-ARFCN.c
new file mode 100644
index 0000000..6fa8a7e
--- /dev/null
+++ b/e2sm/lib/E-UTRA-ARFCN.c
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E-UTRA-ARFCN.h"
+
+int
+E_UTRA_ARFCN_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0 && value <= 65535)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_E_UTRA_ARFCN_constr_1 CC_NOTUSED = {
+	{ 2, 1 }	/* (0..65535) */,
+	-1};
+asn_per_constraints_t asn_PER_type_E_UTRA_ARFCN_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 16,  16,  0,  65535 }	/* (0..65535) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_E_UTRA_ARFCN_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_E_UTRA_ARFCN = {
+	"E-UTRA-ARFCN",
+	"E-UTRA-ARFCN",
+	&asn_OP_NativeInteger,
+	asn_DEF_E_UTRA_ARFCN_tags_1,
+	sizeof(asn_DEF_E_UTRA_ARFCN_tags_1)
+		/sizeof(asn_DEF_E_UTRA_ARFCN_tags_1[0]), /* 1 */
+	asn_DEF_E_UTRA_ARFCN_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E_UTRA_ARFCN_tags_1)
+		/sizeof(asn_DEF_E_UTRA_ARFCN_tags_1[0]), /* 1 */
+	{ &asn_OER_type_E_UTRA_ARFCN_constr_1, &asn_PER_type_E_UTRA_ARFCN_constr_1, E_UTRA_ARFCN_constraint },
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/e2sm/lib/E-UTRA-PCI.c b/e2sm/lib/E-UTRA-PCI.c
new file mode 100644
index 0000000..4d9f07d
--- /dev/null
+++ b/e2sm/lib/E-UTRA-PCI.c
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E-UTRA-PCI.h"
+
+int
+E_UTRA_PCI_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0 && value <= 503)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_E_UTRA_PCI_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_E_UTRA_PCI_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  9,  9,  0,  503 }	/* (0..503,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_E_UTRA_PCI_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_E_UTRA_PCI = {
+	"E-UTRA-PCI",
+	"E-UTRA-PCI",
+	&asn_OP_NativeInteger,
+	asn_DEF_E_UTRA_PCI_tags_1,
+	sizeof(asn_DEF_E_UTRA_PCI_tags_1)
+		/sizeof(asn_DEF_E_UTRA_PCI_tags_1[0]), /* 1 */
+	asn_DEF_E_UTRA_PCI_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E_UTRA_PCI_tags_1)
+		/sizeof(asn_DEF_E_UTRA_PCI_tags_1[0]), /* 1 */
+	{ &asn_OER_type_E_UTRA_PCI_constr_1, &asn_PER_type_E_UTRA_PCI_constr_1, E_UTRA_PCI_constraint },
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/e2sm/lib/E-UTRA-TAC.c b/e2sm/lib/E-UTRA-TAC.c
new file mode 100644
index 0000000..55ad809
--- /dev/null
+++ b/e2sm/lib/E-UTRA-TAC.c
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E-UTRA-TAC.h"
+
+int
+E_UTRA_TAC_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size == 2)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_E_UTRA_TAC_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	2	/* (SIZE(2..2)) */};
+asn_per_constraints_t asn_PER_type_E_UTRA_TAC_constr_1 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  2,  2 }	/* (SIZE(2..2)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_E_UTRA_TAC_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_E_UTRA_TAC = {
+	"E-UTRA-TAC",
+	"E-UTRA-TAC",
+	&asn_OP_OCTET_STRING,
+	asn_DEF_E_UTRA_TAC_tags_1,
+	sizeof(asn_DEF_E_UTRA_TAC_tags_1)
+		/sizeof(asn_DEF_E_UTRA_TAC_tags_1[0]), /* 1 */
+	asn_DEF_E_UTRA_TAC_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E_UTRA_TAC_tags_1)
+		/sizeof(asn_DEF_E_UTRA_TAC_tags_1[0]), /* 1 */
+	{ &asn_OER_type_E_UTRA_TAC_constr_1, &asn_PER_type_E_UTRA_TAC_constr_1, E_UTRA_TAC_constraint },
+	0, 0,	/* No members */
+	&asn_SPC_OCTET_STRING_specs	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-KPM-ActionDefinition-Format1.c b/e2sm/lib/E2SM-KPM-ActionDefinition-Format1.c
deleted file mode 100644
index 5d94a4d..0000000
--- a/e2sm/lib/E2SM-KPM-ActionDefinition-Format1.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "E2SM-KPM-ActionDefinition-Format1.h"
-
-asn_TYPE_member_t asn_MBR_E2SM_KPM_ActionDefinition_Format1_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_ActionDefinition_Format1, cellObjID),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_CellObjectID,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"cellObjID"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_ActionDefinition_Format1, measInfoList),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_MeasurementInfoList,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"measInfoList"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_E2SM_KPM_ActionDefinition_Format1_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_ActionDefinition_Format1_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellObjID */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* measInfoList */
-};
-asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_ActionDefinition_Format1_specs_1 = {
-	sizeof(struct E2SM_KPM_ActionDefinition_Format1),
-	offsetof(struct E2SM_KPM_ActionDefinition_Format1, _asn_ctx),
-	asn_MAP_E2SM_KPM_ActionDefinition_Format1_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_KPM_ActionDefinition_Format1 = {
-	"E2SM-KPM-ActionDefinition-Format1",
-	"E2SM-KPM-ActionDefinition-Format1",
-	&asn_OP_SEQUENCE,
-	asn_DEF_E2SM_KPM_ActionDefinition_Format1_tags_1,
-	sizeof(asn_DEF_E2SM_KPM_ActionDefinition_Format1_tags_1)
-		/sizeof(asn_DEF_E2SM_KPM_ActionDefinition_Format1_tags_1[0]), /* 1 */
-	asn_DEF_E2SM_KPM_ActionDefinition_Format1_tags_1,	/* Same as above */
-	sizeof(asn_DEF_E2SM_KPM_ActionDefinition_Format1_tags_1)
-		/sizeof(asn_DEF_E2SM_KPM_ActionDefinition_Format1_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_E2SM_KPM_ActionDefinition_Format1_1,
-	2,	/* Elements count */
-	&asn_SPC_E2SM_KPM_ActionDefinition_Format1_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/E2SM-KPM-ActionDefinition.c b/e2sm/lib/E2SM-KPM-ActionDefinition.c
deleted file mode 100644
index 1566aa5..0000000
--- a/e2sm/lib/E2SM-KPM-ActionDefinition.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "E2SM-KPM-ActionDefinition.h"
-
-#include "E2SM-KPM-ActionDefinition-Format1.h"
-static asn_oer_constraints_t asn_OER_type_actionDefinition_formats_constr_3 CC_NOTUSED = {
-	{ 0, 0 },
-	-1};
-static asn_per_constraints_t asn_PER_type_actionDefinition_formats_constr_3 CC_NOTUSED = {
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }	/* (0..0,...) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static asn_TYPE_member_t asn_MBR_actionDefinition_formats_3[] = {
-	{ ATF_POINTER, 0, offsetof(struct E2SM_KPM_ActionDefinition__actionDefinition_formats, choice.actionDefinition_Format1),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_E2SM_KPM_ActionDefinition_Format1,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"actionDefinition-Format1"
-		},
-};
-static const asn_TYPE_tag2member_t asn_MAP_actionDefinition_formats_tag2el_3[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* actionDefinition-Format1 */
-};
-static asn_CHOICE_specifics_t asn_SPC_actionDefinition_formats_specs_3 = {
-	sizeof(struct E2SM_KPM_ActionDefinition__actionDefinition_formats),
-	offsetof(struct E2SM_KPM_ActionDefinition__actionDefinition_formats, _asn_ctx),
-	offsetof(struct E2SM_KPM_ActionDefinition__actionDefinition_formats, present),
-	sizeof(((struct E2SM_KPM_ActionDefinition__actionDefinition_formats *)0)->present),
-	asn_MAP_actionDefinition_formats_tag2el_3,
-	1,	/* Count of tags in the map */
-	0, 0,
-	1	/* Extensions start */
-};
-static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_actionDefinition_formats_3 = {
-	"actionDefinition-formats",
-	"actionDefinition-formats",
-	&asn_OP_CHOICE,
-	0,	/* No effective tags (pointer) */
-	0,	/* No effective tags (count) */
-	0,	/* No tags (pointer) */
-	0,	/* No tags (count) */
-	{ &asn_OER_type_actionDefinition_formats_constr_3, &asn_PER_type_actionDefinition_formats_constr_3, CHOICE_constraint },
-	asn_MBR_actionDefinition_formats_3,
-	1,	/* Elements count */
-	&asn_SPC_actionDefinition_formats_specs_3	/* Additional specs */
-};
-
-static asn_TYPE_member_t asn_MBR_E2SM_KPM_ActionDefinition_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_ActionDefinition, ric_ReportStyle_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 */
-		"ric-ReportStyle-Type"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_ActionDefinition, actionDefinition_formats),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		+1,	/* EXPLICIT tag at current level */
-		&asn_DEF_actionDefinition_formats_3,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"actionDefinition-formats"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_E2SM_KPM_ActionDefinition_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_ActionDefinition_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-ReportStyle-Type */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* actionDefinition-formats */
-};
-static asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_ActionDefinition_specs_1 = {
-	sizeof(struct E2SM_KPM_ActionDefinition),
-	offsetof(struct E2SM_KPM_ActionDefinition, _asn_ctx),
-	asn_MAP_E2SM_KPM_ActionDefinition_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_KPM_ActionDefinition = {
-	"E2SM-KPM-ActionDefinition",
-	"E2SM-KPM-ActionDefinition",
-	&asn_OP_SEQUENCE,
-	asn_DEF_E2SM_KPM_ActionDefinition_tags_1,
-	sizeof(asn_DEF_E2SM_KPM_ActionDefinition_tags_1)
-		/sizeof(asn_DEF_E2SM_KPM_ActionDefinition_tags_1[0]), /* 1 */
-	asn_DEF_E2SM_KPM_ActionDefinition_tags_1,	/* Same as above */
-	sizeof(asn_DEF_E2SM_KPM_ActionDefinition_tags_1)
-		/sizeof(asn_DEF_E2SM_KPM_ActionDefinition_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_E2SM_KPM_ActionDefinition_1,
-	2,	/* Elements count */
-	&asn_SPC_E2SM_KPM_ActionDefinition_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/E2SM-KPM-EventTriggerDefinition-Format1.c b/e2sm/lib/E2SM-KPM-EventTriggerDefinition-Format1.c
deleted file mode 100644
index 314e7f6..0000000
--- a/e2sm/lib/E2SM-KPM-EventTriggerDefinition-Format1.c
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "E2SM-KPM-EventTriggerDefinition-Format1.h"
-
-#include "Trigger-ConditionIE-Item.h"
-static int
-memb_policyTest_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 <= 15)) {
-		/* 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_policyTest_List_constr_2 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..15)) */};
-static asn_per_constraints_t asn_PER_type_policyTest_List_constr_2 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 4,  4,  1,  15 }	/* (SIZE(1..15)) */,
-	0, 0	/* No PER value map */
-};
-static asn_oer_constraints_t asn_OER_memb_policyTest_List_constr_2 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..15)) */};
-static asn_per_constraints_t asn_PER_memb_policyTest_List_constr_2 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 4,  4,  1,  15 }	/* (SIZE(1..15)) */,
-	0, 0	/* No PER value map */
-};
-static asn_TYPE_member_t asn_MBR_policyTest_List_2[] = {
-	{ ATF_POINTER, 0, 0,
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_Trigger_ConditionIE_Item,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		""
-		},
-};
-static const ber_tlv_tag_t asn_DEF_policyTest_List_tags_2[] = {
-	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static asn_SET_OF_specifics_t asn_SPC_policyTest_List_specs_2 = {
-	sizeof(struct E2SM_KPM_EventTriggerDefinition_Format1__policyTest_List),
-	offsetof(struct E2SM_KPM_EventTriggerDefinition_Format1__policyTest_List, _asn_ctx),
-	0,	/* XER encoding is XMLDelimitedItemList */
-};
-static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_policyTest_List_2 = {
-	"policyTest-List",
-	"policyTest-List",
-	&asn_OP_SEQUENCE_OF,
-	asn_DEF_policyTest_List_tags_2,
-	sizeof(asn_DEF_policyTest_List_tags_2)
-		/sizeof(asn_DEF_policyTest_List_tags_2[0]) - 1, /* 1 */
-	asn_DEF_policyTest_List_tags_2,	/* Same as above */
-	sizeof(asn_DEF_policyTest_List_tags_2)
-		/sizeof(asn_DEF_policyTest_List_tags_2[0]), /* 2 */
-	{ &asn_OER_type_policyTest_List_constr_2, &asn_PER_type_policyTest_List_constr_2, SEQUENCE_OF_constraint },
-	asn_MBR_policyTest_List_2,
-	1,	/* Single element */
-	&asn_SPC_policyTest_List_specs_2	/* Additional specs */
-};
-
-asn_TYPE_member_t asn_MBR_E2SM_KPM_EventTriggerDefinition_Format1_1[] = {
-	{ ATF_POINTER, 1, offsetof(struct E2SM_KPM_EventTriggerDefinition_Format1, policyTest_List),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		0,
-		&asn_DEF_policyTest_List_2,
-		0,
-		{ &asn_OER_memb_policyTest_List_constr_2, &asn_PER_memb_policyTest_List_constr_2,  memb_policyTest_List_constraint_1 },
-		0, 0, /* No default value */
-		"policyTest-List"
-		},
-};
-static const int asn_MAP_E2SM_KPM_EventTriggerDefinition_Format1_oms_1[] = { 0 };
-static const ber_tlv_tag_t asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_EventTriggerDefinition_Format1_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* policyTest-List */
-};
-asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_EventTriggerDefinition_Format1_specs_1 = {
-	sizeof(struct E2SM_KPM_EventTriggerDefinition_Format1),
-	offsetof(struct E2SM_KPM_EventTriggerDefinition_Format1, _asn_ctx),
-	asn_MAP_E2SM_KPM_EventTriggerDefinition_Format1_tag2el_1,
-	1,	/* Count of tags in the map */
-	asn_MAP_E2SM_KPM_EventTriggerDefinition_Format1_oms_1,	/* Optional members */
-	1, 0,	/* Root/Additions */
-	1,	/* First extension addition */
-};
-asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1 = {
-	"E2SM-KPM-EventTriggerDefinition-Format1",
-	"E2SM-KPM-EventTriggerDefinition-Format1",
-	&asn_OP_SEQUENCE,
-	asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1,
-	sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1)
-		/sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1[0]), /* 1 */
-	asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1,	/* Same as above */
-	sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1)
-		/sizeof(asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_E2SM_KPM_EventTriggerDefinition_Format1_1,
-	1,	/* Elements count */
-	&asn_SPC_E2SM_KPM_EventTriggerDefinition_Format1_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/E2SM-KPM-EventTriggerDefinition.c b/e2sm/lib/E2SM-KPM-EventTriggerDefinition.c
deleted file mode 100644
index 144313d..0000000
--- a/e2sm/lib/E2SM-KPM-EventTriggerDefinition.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "E2SM-KPM-EventTriggerDefinition.h"
-
-#include "E2SM-KPM-EventTriggerDefinition-Format1.h"
-static asn_oer_constraints_t asn_OER_type_E2SM_KPM_EventTriggerDefinition_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	-1};
-static asn_per_constraints_t asn_PER_type_E2SM_KPM_EventTriggerDefinition_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }	/* (0..0,...) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static asn_TYPE_member_t asn_MBR_E2SM_KPM_EventTriggerDefinition_1[] = {
-	{ ATF_POINTER, 0, offsetof(struct E2SM_KPM_EventTriggerDefinition, choice.eventDefinition_Format1),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_E2SM_KPM_EventTriggerDefinition_Format1,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"eventDefinition-Format1"
-		},
-};
-static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_EventTriggerDefinition_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* eventDefinition-Format1 */
-};
-static asn_CHOICE_specifics_t asn_SPC_E2SM_KPM_EventTriggerDefinition_specs_1 = {
-	sizeof(struct E2SM_KPM_EventTriggerDefinition),
-	offsetof(struct E2SM_KPM_EventTriggerDefinition, _asn_ctx),
-	offsetof(struct E2SM_KPM_EventTriggerDefinition, present),
-	sizeof(((struct E2SM_KPM_EventTriggerDefinition *)0)->present),
-	asn_MAP_E2SM_KPM_EventTriggerDefinition_tag2el_1,
-	1,	/* Count of tags in the map */
-	0, 0,
-	1	/* Extensions start */
-};
-asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_EventTriggerDefinition = {
-	"E2SM-KPM-EventTriggerDefinition",
-	"E2SM-KPM-EventTriggerDefinition",
-	&asn_OP_CHOICE,
-	0,	/* No effective tags (pointer) */
-	0,	/* No effective tags (count) */
-	0,	/* No tags (pointer) */
-	0,	/* No tags (count) */
-	{ &asn_OER_type_E2SM_KPM_EventTriggerDefinition_constr_1, &asn_PER_type_E2SM_KPM_EventTriggerDefinition_constr_1, CHOICE_constraint },
-	asn_MBR_E2SM_KPM_EventTriggerDefinition_1,
-	1,	/* Elements count */
-	&asn_SPC_E2SM_KPM_EventTriggerDefinition_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/E2SM-KPM-IndicationHeader-Format1.c b/e2sm/lib/E2SM-KPM-IndicationHeader-Format1.c
deleted file mode 100644
index be23bda..0000000
--- a/e2sm/lib/E2SM-KPM-IndicationHeader-Format1.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "E2SM-KPM-IndicationHeader-Format1.h"
-
-asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationHeader_Format1_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationHeader_Format1, collectionStartTime),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_TimeStamp,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"collectionStartTime"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationHeader_Format1, id_GlobalE2node_ID),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		+1,	/* EXPLICIT tag at current level */
-		&asn_DEF_GlobalE2node_ID,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"id-GlobalE2node-ID"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_IndicationHeader_Format1_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* collectionStartTime */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* id-GlobalE2node-ID */
-};
-asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationHeader_Format1_specs_1 = {
-	sizeof(struct E2SM_KPM_IndicationHeader_Format1),
-	offsetof(struct E2SM_KPM_IndicationHeader_Format1, _asn_ctx),
-	asn_MAP_E2SM_KPM_IndicationHeader_Format1_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_KPM_IndicationHeader_Format1 = {
-	"E2SM-KPM-IndicationHeader-Format1",
-	"E2SM-KPM-IndicationHeader-Format1",
-	&asn_OP_SEQUENCE,
-	asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1,
-	sizeof(asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1)
-		/sizeof(asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1[0]), /* 1 */
-	asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1,	/* Same as above */
-	sizeof(asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1)
-		/sizeof(asn_DEF_E2SM_KPM_IndicationHeader_Format1_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_E2SM_KPM_IndicationHeader_Format1_1,
-	2,	/* Elements count */
-	&asn_SPC_E2SM_KPM_IndicationHeader_Format1_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/E2SM-KPM-IndicationHeader.c b/e2sm/lib/E2SM-KPM-IndicationHeader.c
deleted file mode 100644
index 40f09a3..0000000
--- a/e2sm/lib/E2SM-KPM-IndicationHeader.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "E2SM-KPM-IndicationHeader.h"
-
-#include "E2SM-KPM-IndicationHeader-Format1.h"
-static asn_oer_constraints_t asn_OER_type_E2SM_KPM_IndicationHeader_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	-1};
-static asn_per_constraints_t asn_PER_type_E2SM_KPM_IndicationHeader_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }	/* (0..0,...) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationHeader_1[] = {
-	{ ATF_POINTER, 0, offsetof(struct E2SM_KPM_IndicationHeader, choice.indicationHeader_Format1),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_E2SM_KPM_IndicationHeader_Format1,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"indicationHeader-Format1"
-		},
-};
-static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_IndicationHeader_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* indicationHeader-Format1 */
-};
-static asn_CHOICE_specifics_t asn_SPC_E2SM_KPM_IndicationHeader_specs_1 = {
-	sizeof(struct E2SM_KPM_IndicationHeader),
-	offsetof(struct E2SM_KPM_IndicationHeader, _asn_ctx),
-	offsetof(struct E2SM_KPM_IndicationHeader, present),
-	sizeof(((struct E2SM_KPM_IndicationHeader *)0)->present),
-	asn_MAP_E2SM_KPM_IndicationHeader_tag2el_1,
-	1,	/* Count of tags in the map */
-	0, 0,
-	1	/* Extensions start */
-};
-asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationHeader = {
-	"E2SM-KPM-IndicationHeader",
-	"E2SM-KPM-IndicationHeader",
-	&asn_OP_CHOICE,
-	0,	/* No effective tags (pointer) */
-	0,	/* No effective tags (count) */
-	0,	/* No tags (pointer) */
-	0,	/* No tags (count) */
-	{ &asn_OER_type_E2SM_KPM_IndicationHeader_constr_1, &asn_PER_type_E2SM_KPM_IndicationHeader_constr_1, CHOICE_constraint },
-	asn_MBR_E2SM_KPM_IndicationHeader_1,
-	1,	/* Elements count */
-	&asn_SPC_E2SM_KPM_IndicationHeader_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/E2SM-KPM-IndicationMessage-Format1.c b/e2sm/lib/E2SM-KPM-IndicationMessage-Format1.c
deleted file mode 100644
index ea21e14..0000000
--- a/e2sm/lib/E2SM-KPM-IndicationMessage-Format1.c
+++ /dev/null
@@ -1,322 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "E2SM-KPM-IndicationMessage-Format1.h"
-
-#include "PM-Containers-Item.h"
-#include "PM-Info-Item.h"
-#include "PerUE-PM-Item.h"
-static int
-memb_pm_Containers_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 <= 8)) {
-		/* 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 int
-memb_list_of_PM_Information_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 <= 2147483647)) {
-		/* 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 int
-memb_list_of_matched_UEs_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_pm_Containers_constr_2 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..8)) */};
-static asn_per_constraints_t asn_PER_type_pm_Containers_constr_2 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 3,  3,  1,  8 }	/* (SIZE(1..8)) */,
-	0, 0	/* No PER value map */
-};
-static asn_oer_constraints_t asn_OER_type_list_of_PM_Information_constr_5 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..2147483647)) */};
-static asn_per_constraints_t asn_PER_type_list_of_PM_Information_constr_5 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 31, -1,  1,  2147483647 }	/* (SIZE(1..2147483647)) */,
-	0, 0	/* No PER value map */
-};
-static asn_oer_constraints_t asn_OER_type_list_of_matched_UEs_constr_7 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..65535)) */};
-static asn_per_constraints_t asn_PER_type_list_of_matched_UEs_constr_7 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_pm_Containers_constr_2 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..8)) */};
-static asn_per_constraints_t asn_PER_memb_pm_Containers_constr_2 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 3,  3,  1,  8 }	/* (SIZE(1..8)) */,
-	0, 0	/* No PER value map */
-};
-static asn_oer_constraints_t asn_OER_memb_list_of_PM_Information_constr_5 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..2147483647)) */};
-static asn_per_constraints_t asn_PER_memb_list_of_PM_Information_constr_5 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 31, -1,  1,  2147483647 }	/* (SIZE(1..2147483647)) */,
-	0, 0	/* No PER value map */
-};
-static asn_oer_constraints_t asn_OER_memb_list_of_matched_UEs_constr_7 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..65535)) */};
-static asn_per_constraints_t asn_PER_memb_list_of_matched_UEs_constr_7 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_pm_Containers_2[] = {
-	{ ATF_POINTER, 0, 0,
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_PM_Containers_Item,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		""
-		},
-};
-static const ber_tlv_tag_t asn_DEF_pm_Containers_tags_2[] = {
-	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static asn_SET_OF_specifics_t asn_SPC_pm_Containers_specs_2 = {
-	sizeof(struct E2SM_KPM_IndicationMessage_Format1__pm_Containers),
-	offsetof(struct E2SM_KPM_IndicationMessage_Format1__pm_Containers, _asn_ctx),
-	0,	/* XER encoding is XMLDelimitedItemList */
-};
-static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_pm_Containers_2 = {
-	"pm-Containers",
-	"pm-Containers",
-	&asn_OP_SEQUENCE_OF,
-	asn_DEF_pm_Containers_tags_2,
-	sizeof(asn_DEF_pm_Containers_tags_2)
-		/sizeof(asn_DEF_pm_Containers_tags_2[0]) - 1, /* 1 */
-	asn_DEF_pm_Containers_tags_2,	/* Same as above */
-	sizeof(asn_DEF_pm_Containers_tags_2)
-		/sizeof(asn_DEF_pm_Containers_tags_2[0]), /* 2 */
-	{ &asn_OER_type_pm_Containers_constr_2, &asn_PER_type_pm_Containers_constr_2, SEQUENCE_OF_constraint },
-	asn_MBR_pm_Containers_2,
-	1,	/* Single element */
-	&asn_SPC_pm_Containers_specs_2	/* Additional specs */
-};
-
-static asn_TYPE_member_t asn_MBR_list_of_PM_Information_5[] = {
-	{ ATF_POINTER, 0, 0,
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_PM_Info_Item,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		""
-		},
-};
-static const ber_tlv_tag_t asn_DEF_list_of_PM_Information_tags_5[] = {
-	(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static asn_SET_OF_specifics_t asn_SPC_list_of_PM_Information_specs_5 = {
-	sizeof(struct E2SM_KPM_IndicationMessage_Format1__list_of_PM_Information),
-	offsetof(struct E2SM_KPM_IndicationMessage_Format1__list_of_PM_Information, _asn_ctx),
-	0,	/* XER encoding is XMLDelimitedItemList */
-};
-static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_list_of_PM_Information_5 = {
-	"list-of-PM-Information",
-	"list-of-PM-Information",
-	&asn_OP_SEQUENCE_OF,
-	asn_DEF_list_of_PM_Information_tags_5,
-	sizeof(asn_DEF_list_of_PM_Information_tags_5)
-		/sizeof(asn_DEF_list_of_PM_Information_tags_5[0]) - 1, /* 1 */
-	asn_DEF_list_of_PM_Information_tags_5,	/* Same as above */
-	sizeof(asn_DEF_list_of_PM_Information_tags_5)
-		/sizeof(asn_DEF_list_of_PM_Information_tags_5[0]), /* 2 */
-	{ &asn_OER_type_list_of_PM_Information_constr_5, &asn_PER_type_list_of_PM_Information_constr_5, SEQUENCE_OF_constraint },
-	asn_MBR_list_of_PM_Information_5,
-	1,	/* Single element */
-	&asn_SPC_list_of_PM_Information_specs_5	/* Additional specs */
-};
-
-static asn_TYPE_member_t asn_MBR_list_of_matched_UEs_7[] = {
-	{ ATF_POINTER, 0, 0,
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_PerUE_PM_Item,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		""
-		},
-};
-static const ber_tlv_tag_t asn_DEF_list_of_matched_UEs_tags_7[] = {
-	(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static asn_SET_OF_specifics_t asn_SPC_list_of_matched_UEs_specs_7 = {
-	sizeof(struct E2SM_KPM_IndicationMessage_Format1__list_of_matched_UEs),
-	offsetof(struct E2SM_KPM_IndicationMessage_Format1__list_of_matched_UEs, _asn_ctx),
-	0,	/* XER encoding is XMLDelimitedItemList */
-};
-static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_list_of_matched_UEs_7 = {
-	"list-of-matched-UEs",
-	"list-of-matched-UEs",
-	&asn_OP_SEQUENCE_OF,
-	asn_DEF_list_of_matched_UEs_tags_7,
-	sizeof(asn_DEF_list_of_matched_UEs_tags_7)
-		/sizeof(asn_DEF_list_of_matched_UEs_tags_7[0]) - 1, /* 1 */
-	asn_DEF_list_of_matched_UEs_tags_7,	/* Same as above */
-	sizeof(asn_DEF_list_of_matched_UEs_tags_7)
-		/sizeof(asn_DEF_list_of_matched_UEs_tags_7[0]), /* 2 */
-	{ &asn_OER_type_list_of_matched_UEs_constr_7, &asn_PER_type_list_of_matched_UEs_constr_7, SEQUENCE_OF_constraint },
-	asn_MBR_list_of_matched_UEs_7,
-	1,	/* Single element */
-	&asn_SPC_list_of_matched_UEs_specs_7	/* Additional specs */
-};
-
-asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationMessage_Format1_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationMessage_Format1, pm_Containers),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		0,
-		&asn_DEF_pm_Containers_2,
-		0,
-		{ &asn_OER_memb_pm_Containers_constr_2, &asn_PER_memb_pm_Containers_constr_2,  memb_pm_Containers_constraint_1 },
-		0, 0, /* No default value */
-		"pm-Containers"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_IndicationMessage_Format1, cellObjectID),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_CellObjectID,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"cellObjectID"
-		},
-	{ ATF_POINTER, 2, offsetof(struct E2SM_KPM_IndicationMessage_Format1, list_of_PM_Information),
-		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-		0,
-		&asn_DEF_list_of_PM_Information_5,
-		0,
-		{ &asn_OER_memb_list_of_PM_Information_constr_5, &asn_PER_memb_list_of_PM_Information_constr_5,  memb_list_of_PM_Information_constraint_1 },
-		0, 0, /* No default value */
-		"list-of-PM-Information"
-		},
-	{ ATF_POINTER, 1, offsetof(struct E2SM_KPM_IndicationMessage_Format1, list_of_matched_UEs),
-		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
-		0,
-		&asn_DEF_list_of_matched_UEs_7,
-		0,
-		{ &asn_OER_memb_list_of_matched_UEs_constr_7, &asn_PER_memb_list_of_matched_UEs_constr_7,  memb_list_of_matched_UEs_constraint_1 },
-		0, 0, /* No default value */
-		"list-of-matched-UEs"
-		},
-};
-static const int asn_MAP_E2SM_KPM_IndicationMessage_Format1_oms_1[] = { 2, 3 };
-static const ber_tlv_tag_t asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_IndicationMessage_Format1_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pm-Containers */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cellObjectID */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* list-of-PM-Information */
-    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* list-of-matched-UEs */
-};
-asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_IndicationMessage_Format1_specs_1 = {
-	sizeof(struct E2SM_KPM_IndicationMessage_Format1),
-	offsetof(struct E2SM_KPM_IndicationMessage_Format1, _asn_ctx),
-	asn_MAP_E2SM_KPM_IndicationMessage_Format1_tag2el_1,
-	4,	/* Count of tags in the map */
-	asn_MAP_E2SM_KPM_IndicationMessage_Format1_oms_1,	/* Optional members */
-	2, 0,	/* Root/Additions */
-	4,	/* First extension addition */
-};
-asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationMessage_Format1 = {
-	"E2SM-KPM-IndicationMessage-Format1",
-	"E2SM-KPM-IndicationMessage-Format1",
-	&asn_OP_SEQUENCE,
-	asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1,
-	sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1)
-		/sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1[0]), /* 1 */
-	asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1,	/* Same as above */
-	sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1)
-		/sizeof(asn_DEF_E2SM_KPM_IndicationMessage_Format1_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_E2SM_KPM_IndicationMessage_Format1_1,
-	4,	/* Elements count */
-	&asn_SPC_E2SM_KPM_IndicationMessage_Format1_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/E2SM-KPM-IndicationMessage.c b/e2sm/lib/E2SM-KPM-IndicationMessage.c
deleted file mode 100644
index 0b1e701..0000000
--- a/e2sm/lib/E2SM-KPM-IndicationMessage.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "E2SM-KPM-IndicationMessage.h"
-
-#include "E2SM-KPM-IndicationMessage-Format1.h"
-static asn_oer_constraints_t asn_OER_type_E2SM_KPM_IndicationMessage_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	-1};
-static asn_per_constraints_t asn_PER_type_E2SM_KPM_IndicationMessage_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }	/* (0..0,...) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static asn_TYPE_member_t asn_MBR_E2SM_KPM_IndicationMessage_1[] = {
-	{ ATF_POINTER, 0, offsetof(struct E2SM_KPM_IndicationMessage, choice.indicationMessage_Format1),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_E2SM_KPM_IndicationMessage_Format1,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"indicationMessage-Format1"
-		},
-};
-static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_IndicationMessage_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* indicationMessage-Format1 */
-};
-static asn_CHOICE_specifics_t asn_SPC_E2SM_KPM_IndicationMessage_specs_1 = {
-	sizeof(struct E2SM_KPM_IndicationMessage),
-	offsetof(struct E2SM_KPM_IndicationMessage, _asn_ctx),
-	offsetof(struct E2SM_KPM_IndicationMessage, present),
-	sizeof(((struct E2SM_KPM_IndicationMessage *)0)->present),
-	asn_MAP_E2SM_KPM_IndicationMessage_tag2el_1,
-	1,	/* Count of tags in the map */
-	0, 0,
-	1	/* Extensions start */
-};
-asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_IndicationMessage = {
-	"E2SM-KPM-IndicationMessage",
-	"E2SM-KPM-IndicationMessage",
-	&asn_OP_CHOICE,
-	0,	/* No effective tags (pointer) */
-	0,	/* No effective tags (count) */
-	0,	/* No tags (pointer) */
-	0,	/* No tags (count) */
-	{ &asn_OER_type_E2SM_KPM_IndicationMessage_constr_1, &asn_PER_type_E2SM_KPM_IndicationMessage_constr_1, CHOICE_constraint },
-	asn_MBR_E2SM_KPM_IndicationMessage_1,
-	1,	/* Elements count */
-	&asn_SPC_E2SM_KPM_IndicationMessage_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/E2SM-KPM-RANFunctionDefinition.c b/e2sm/lib/E2SM-KPM-RANFunctionDefinition.c
deleted file mode 100644
index d87fe15..0000000
--- a/e2sm/lib/E2SM-KPM-RANFunctionDefinition.c
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "E2SM-KPM-RANFunctionDefinition.h"
-
-#include "RIC-EventTriggerStyle-Item.h"
-#include "RIC-ReportStyle-Item.h"
-static int
-memb_ric_EventTriggerStyle_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 int
-memb_ric_ReportStyle_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_EventTriggerStyle_List_constr_3 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..63)) */};
-static asn_per_constraints_t asn_PER_type_ric_EventTriggerStyle_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_type_ric_ReportStyle_List_constr_5 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..63)) */};
-static asn_per_constraints_t asn_PER_type_ric_ReportStyle_List_constr_5 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_EventTriggerStyle_List_constr_3 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..63)) */};
-static asn_per_constraints_t asn_PER_memb_ric_EventTriggerStyle_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_ReportStyle_List_constr_5 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..63)) */};
-static asn_per_constraints_t asn_PER_memb_ric_ReportStyle_List_constr_5 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_EventTriggerStyle_List_3[] = {
-	{ ATF_POINTER, 0, 0,
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_RIC_EventTriggerStyle_Item,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		""
-		},
-};
-static const ber_tlv_tag_t asn_DEF_ric_EventTriggerStyle_List_tags_3[] = {
-	(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static asn_SET_OF_specifics_t asn_SPC_ric_EventTriggerStyle_List_specs_3 = {
-	sizeof(struct E2SM_KPM_RANFunctionDefinition__ric_EventTriggerStyle_List),
-	offsetof(struct E2SM_KPM_RANFunctionDefinition__ric_EventTriggerStyle_List, _asn_ctx),
-	0,	/* XER encoding is XMLDelimitedItemList */
-};
-static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_ric_EventTriggerStyle_List_3 = {
-	"ric-EventTriggerStyle-List",
-	"ric-EventTriggerStyle-List",
-	&asn_OP_SEQUENCE_OF,
-	asn_DEF_ric_EventTriggerStyle_List_tags_3,
-	sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_3)
-		/sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_3[0]) - 1, /* 1 */
-	asn_DEF_ric_EventTriggerStyle_List_tags_3,	/* Same as above */
-	sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_3)
-		/sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_3[0]), /* 2 */
-	{ &asn_OER_type_ric_EventTriggerStyle_List_constr_3, &asn_PER_type_ric_EventTriggerStyle_List_constr_3, SEQUENCE_OF_constraint },
-	asn_MBR_ric_EventTriggerStyle_List_3,
-	1,	/* Single element */
-	&asn_SPC_ric_EventTriggerStyle_List_specs_3	/* Additional specs */
-};
-
-static asn_TYPE_member_t asn_MBR_ric_ReportStyle_List_5[] = {
-	{ ATF_POINTER, 0, 0,
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_RIC_ReportStyle_Item,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		""
-		},
-};
-static const ber_tlv_tag_t asn_DEF_ric_ReportStyle_List_tags_5[] = {
-	(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static asn_SET_OF_specifics_t asn_SPC_ric_ReportStyle_List_specs_5 = {
-	sizeof(struct E2SM_KPM_RANFunctionDefinition__ric_ReportStyle_List),
-	offsetof(struct E2SM_KPM_RANFunctionDefinition__ric_ReportStyle_List, _asn_ctx),
-	0,	/* XER encoding is XMLDelimitedItemList */
-};
-static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_ric_ReportStyle_List_5 = {
-	"ric-ReportStyle-List",
-	"ric-ReportStyle-List",
-	&asn_OP_SEQUENCE_OF,
-	asn_DEF_ric_ReportStyle_List_tags_5,
-	sizeof(asn_DEF_ric_ReportStyle_List_tags_5)
-		/sizeof(asn_DEF_ric_ReportStyle_List_tags_5[0]) - 1, /* 1 */
-	asn_DEF_ric_ReportStyle_List_tags_5,	/* Same as above */
-	sizeof(asn_DEF_ric_ReportStyle_List_tags_5)
-		/sizeof(asn_DEF_ric_ReportStyle_List_tags_5[0]), /* 2 */
-	{ &asn_OER_type_ric_ReportStyle_List_constr_5, &asn_PER_type_ric_ReportStyle_List_constr_5, SEQUENCE_OF_constraint },
-	asn_MBR_ric_ReportStyle_List_5,
-	1,	/* Single element */
-	&asn_SPC_ric_ReportStyle_List_specs_5	/* Additional specs */
-};
-
-static asn_TYPE_member_t asn_MBR_E2SM_KPM_RANFunctionDefinition_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_KPM_RANFunctionDefinition, ranFunction_Name),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_RANfunction_Name,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"ranFunction-Name"
-		},
-	{ ATF_POINTER, 2, offsetof(struct E2SM_KPM_RANFunctionDefinition, ric_EventTriggerStyle_List),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		0,
-		&asn_DEF_ric_EventTriggerStyle_List_3,
-		0,
-		{ &asn_OER_memb_ric_EventTriggerStyle_List_constr_3, &asn_PER_memb_ric_EventTriggerStyle_List_constr_3,  memb_ric_EventTriggerStyle_List_constraint_1 },
-		0, 0, /* No default value */
-		"ric-EventTriggerStyle-List"
-		},
-	{ ATF_POINTER, 1, offsetof(struct E2SM_KPM_RANFunctionDefinition, ric_ReportStyle_List),
-		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-		0,
-		&asn_DEF_ric_ReportStyle_List_5,
-		0,
-		{ &asn_OER_memb_ric_ReportStyle_List_constr_5, &asn_PER_memb_ric_ReportStyle_List_constr_5,  memb_ric_ReportStyle_List_constraint_1 },
-		0, 0, /* No default value */
-		"ric-ReportStyle-List"
-		},
-};
-static const int asn_MAP_E2SM_KPM_RANFunctionDefinition_oms_1[] = { 1, 2 };
-static const ber_tlv_tag_t asn_DEF_E2SM_KPM_RANFunctionDefinition_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_E2SM_KPM_RANFunctionDefinition_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunction-Name */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-EventTriggerStyle-List */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ric-ReportStyle-List */
-};
-static asn_SEQUENCE_specifics_t asn_SPC_E2SM_KPM_RANFunctionDefinition_specs_1 = {
-	sizeof(struct E2SM_KPM_RANFunctionDefinition),
-	offsetof(struct E2SM_KPM_RANFunctionDefinition, _asn_ctx),
-	asn_MAP_E2SM_KPM_RANFunctionDefinition_tag2el_1,
-	3,	/* Count of tags in the map */
-	asn_MAP_E2SM_KPM_RANFunctionDefinition_oms_1,	/* Optional members */
-	2, 0,	/* Root/Additions */
-	3,	/* First extension addition */
-};
-asn_TYPE_descriptor_t asn_DEF_E2SM_KPM_RANFunctionDefinition = {
-	"E2SM-KPM-RANFunctionDefinition",
-	"E2SM-KPM-RANFunctionDefinition",
-	&asn_OP_SEQUENCE,
-	asn_DEF_E2SM_KPM_RANFunctionDefinition_tags_1,
-	sizeof(asn_DEF_E2SM_KPM_RANFunctionDefinition_tags_1)
-		/sizeof(asn_DEF_E2SM_KPM_RANFunctionDefinition_tags_1[0]), /* 1 */
-	asn_DEF_E2SM_KPM_RANFunctionDefinition_tags_1,	/* Same as above */
-	sizeof(asn_DEF_E2SM_KPM_RANFunctionDefinition_tags_1)
-		/sizeof(asn_DEF_E2SM_KPM_RANFunctionDefinition_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_E2SM_KPM_RANFunctionDefinition_1,
-	3,	/* Elements count */
-	&asn_SPC_E2SM_KPM_RANFunctionDefinition_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/E2SM-RC-ActionDefinition-Format1-Item.c b/e2sm/lib/E2SM-RC-ActionDefinition-Format1-Item.c
new file mode 100644
index 0000000..ae6439a
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-ActionDefinition-Format1-Item.c
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-ActionDefinition-Format1-Item.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)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANParameter_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranParameter-ID"
+		},
+};
+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_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) */
+	1,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ActionDefinition_Format1_Item = {
+	"E2SM-RC-ActionDefinition-Format1-Item",
+	"E2SM-RC-ActionDefinition-Format1-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_ActionDefinition_Format1_Item_tags_1,
+	sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format1_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format1_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_ActionDefinition_Format1_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format1_Item_tags_1)
+		/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 */
+	&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
new file mode 100644
index 0000000..cfe2b5c
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-ActionDefinition-Format1.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-ActionDefinition-Format1.h"
+
+#include "E2SM-RC-ActionDefinition-Format1-Item.h"
+static int
+memb_ranP_ToBeReported_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_ToBeReported_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_type_ranP_ToBeReported_List_constr_2 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_ToBeReported_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_memb_ranP_ToBeReported_List_constr_2 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_ToBeReported_List_2[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2SM_RC_ActionDefinition_Format1_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ranP_ToBeReported_List_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ranP_ToBeReported_List_specs_2 = {
+	sizeof(struct E2SM_RC_ActionDefinition_Format1__ranP_ToBeReported_List),
+	offsetof(struct E2SM_RC_ActionDefinition_Format1__ranP_ToBeReported_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ranP_ToBeReported_List_2 = {
+	"ranP-ToBeReported-List",
+	"ranP-ToBeReported-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ranP_ToBeReported_List_tags_2,
+	sizeof(asn_DEF_ranP_ToBeReported_List_tags_2)
+		/sizeof(asn_DEF_ranP_ToBeReported_List_tags_2[0]) - 1, /* 1 */
+	asn_DEF_ranP_ToBeReported_List_tags_2,	/* Same as above */
+	sizeof(asn_DEF_ranP_ToBeReported_List_tags_2)
+		/sizeof(asn_DEF_ranP_ToBeReported_List_tags_2[0]), /* 2 */
+	{ &asn_OER_type_ranP_ToBeReported_List_constr_2, &asn_PER_type_ranP_ToBeReported_List_constr_2, SEQUENCE_OF_constraint },
+	asn_MBR_ranP_ToBeReported_List_2,
+	1,	/* Single element */
+	&asn_SPC_ranP_ToBeReported_List_specs_2	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_ActionDefinition_Format1_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ActionDefinition_Format1, ranP_ToBeReported_List),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_ranP_ToBeReported_List_2,
+		0,
+		{ &asn_OER_memb_ranP_ToBeReported_List_constr_2, &asn_PER_memb_ranP_ToBeReported_List_constr_2,  memb_ranP_ToBeReported_List_constraint_1 },
+		0, 0, /* No default value */
+		"ranP-ToBeReported-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_ActionDefinition_Format1_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ActionDefinition_Format1_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ranP-ToBeReported-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ActionDefinition_Format1_specs_1 = {
+	sizeof(struct E2SM_RC_ActionDefinition_Format1),
+	offsetof(struct E2SM_RC_ActionDefinition_Format1, _asn_ctx),
+	asn_MAP_E2SM_RC_ActionDefinition_Format1_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_ActionDefinition_Format1 = {
+	"E2SM-RC-ActionDefinition-Format1",
+	"E2SM-RC-ActionDefinition-Format1",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_ActionDefinition_Format1_tags_1,
+	sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format1_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format1_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_ActionDefinition_Format1_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format1_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format1_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_ActionDefinition_Format1_1,
+	1,	/* Elements count */
+	&asn_SPC_E2SM_RC_ActionDefinition_Format1_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-ActionDefinition-Format2-Item.c b/e2sm/lib/E2SM-RC-ActionDefinition-Format2-Item.c
new file mode 100644
index 0000000..3b48569
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-ActionDefinition-Format2-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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-ActionDefinition-Format2-Item.h"
+
+#include "RANParameter-Testing.h"
+asn_TYPE_member_t asn_MBR_E2SM_RC_ActionDefinition_Format2_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ActionDefinition_Format2_Item, ric_PolicyAction),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_PolicyAction,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-PolicyAction"
+		},
+	{ ATF_POINTER, 1, offsetof(struct E2SM_RC_ActionDefinition_Format2_Item, ric_PolicyConditionDefinition),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANParameter_Testing,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-PolicyConditionDefinition"
+		},
+};
+static const int asn_MAP_E2SM_RC_ActionDefinition_Format2_Item_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_ActionDefinition_Format2_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ActionDefinition_Format2_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-PolicyAction */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ric-PolicyConditionDefinition */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ActionDefinition_Format2_Item_specs_1 = {
+	sizeof(struct E2SM_RC_ActionDefinition_Format2_Item),
+	offsetof(struct E2SM_RC_ActionDefinition_Format2_Item, _asn_ctx),
+	asn_MAP_E2SM_RC_ActionDefinition_Format2_Item_tag2el_1,
+	2,	/* Count of tags in the map */
+	asn_MAP_E2SM_RC_ActionDefinition_Format2_Item_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ActionDefinition_Format2_Item = {
+	"E2SM-RC-ActionDefinition-Format2-Item",
+	"E2SM-RC-ActionDefinition-Format2-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_ActionDefinition_Format2_Item_tags_1,
+	sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format2_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format2_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_ActionDefinition_Format2_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format2_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format2_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_ActionDefinition_Format2_Item_1,
+	2,	/* Elements count */
+	&asn_SPC_E2SM_RC_ActionDefinition_Format2_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-ActionDefinition-Format2.c b/e2sm/lib/E2SM-RC-ActionDefinition-Format2.c
new file mode 100644
index 0000000..f15018d
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-ActionDefinition-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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-ActionDefinition-Format2.h"
+
+#include "E2SM-RC-ActionDefinition-Format2-Item.h"
+static int
+memb_ric_PolicyConditions_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_ric_PolicyConditions_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_type_ric_PolicyConditions_List_constr_2 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_ric_PolicyConditions_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_memb_ric_PolicyConditions_List_constr_2 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_ric_PolicyConditions_List_2[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2SM_RC_ActionDefinition_Format2_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ric_PolicyConditions_List_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ric_PolicyConditions_List_specs_2 = {
+	sizeof(struct E2SM_RC_ActionDefinition_Format2__ric_PolicyConditions_List),
+	offsetof(struct E2SM_RC_ActionDefinition_Format2__ric_PolicyConditions_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ric_PolicyConditions_List_2 = {
+	"ric-PolicyConditions-List",
+	"ric-PolicyConditions-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ric_PolicyConditions_List_tags_2,
+	sizeof(asn_DEF_ric_PolicyConditions_List_tags_2)
+		/sizeof(asn_DEF_ric_PolicyConditions_List_tags_2[0]) - 1, /* 1 */
+	asn_DEF_ric_PolicyConditions_List_tags_2,	/* Same as above */
+	sizeof(asn_DEF_ric_PolicyConditions_List_tags_2)
+		/sizeof(asn_DEF_ric_PolicyConditions_List_tags_2[0]), /* 2 */
+	{ &asn_OER_type_ric_PolicyConditions_List_constr_2, &asn_PER_type_ric_PolicyConditions_List_constr_2, SEQUENCE_OF_constraint },
+	asn_MBR_ric_PolicyConditions_List_2,
+	1,	/* Single element */
+	&asn_SPC_ric_PolicyConditions_List_specs_2	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_ActionDefinition_Format2_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ActionDefinition_Format2, ric_PolicyConditions_List),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_ric_PolicyConditions_List_2,
+		0,
+		{ &asn_OER_memb_ric_PolicyConditions_List_constr_2, &asn_PER_memb_ric_PolicyConditions_List_constr_2,  memb_ric_PolicyConditions_List_constraint_1 },
+		0, 0, /* No default value */
+		"ric-PolicyConditions-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_ActionDefinition_Format2_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ActionDefinition_Format2_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ric-PolicyConditions-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ActionDefinition_Format2_specs_1 = {
+	sizeof(struct E2SM_RC_ActionDefinition_Format2),
+	offsetof(struct E2SM_RC_ActionDefinition_Format2, _asn_ctx),
+	asn_MAP_E2SM_RC_ActionDefinition_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_ActionDefinition_Format2 = {
+	"E2SM-RC-ActionDefinition-Format2",
+	"E2SM-RC-ActionDefinition-Format2",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_ActionDefinition_Format2_tags_1,
+	sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format2_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format2_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_ActionDefinition_Format2_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format2_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format2_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_ActionDefinition_Format2_1,
+	1,	/* Elements count */
+	&asn_SPC_E2SM_RC_ActionDefinition_Format2_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-ActionDefinition-Format3-Item.c b/e2sm/lib/E2SM-RC-ActionDefinition-Format3-Item.c
new file mode 100644
index 0000000..1390c44
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-ActionDefinition-Format3-Item.c
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-ActionDefinition-Format3-Item.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)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANParameter_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranParameter-ID"
+		},
+};
+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_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) */
+	1,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ActionDefinition_Format3_Item = {
+	"E2SM-RC-ActionDefinition-Format3-Item",
+	"E2SM-RC-ActionDefinition-Format3-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_ActionDefinition_Format3_Item_tags_1,
+	sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format3_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format3_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_ActionDefinition_Format3_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format3_Item_tags_1)
+		/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 */
+	&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
new file mode 100644
index 0000000..1413d05
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-ActionDefinition-Format3.c
@@ -0,0 +1,153 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-ActionDefinition-Format3.h"
+
+#include "UEID.h"
+#include "E2SM-RC-ActionDefinition-Format3-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_Format3_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_Format3__ranP_InsertIndication_List),
+	offsetof(struct E2SM_RC_ActionDefinition_Format3__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_Format3_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ActionDefinition_Format3, 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_Format3, 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"
+		},
+	{ ATF_POINTER, 1, offsetof(struct E2SM_RC_ActionDefinition_Format3, ueID),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 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_Format3_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_ActionDefinition_Format3_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ActionDefinition_Format3_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_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ueID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ActionDefinition_Format3_specs_1 = {
+	sizeof(struct E2SM_RC_ActionDefinition_Format3),
+	offsetof(struct E2SM_RC_ActionDefinition_Format3, _asn_ctx),
+	asn_MAP_E2SM_RC_ActionDefinition_Format3_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_E2SM_RC_ActionDefinition_Format3_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	3,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ActionDefinition_Format3 = {
+	"E2SM-RC-ActionDefinition-Format3",
+	"E2SM-RC-ActionDefinition-Format3",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_ActionDefinition_Format3_tags_1,
+	sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format3_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format3_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_ActionDefinition_Format3_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format3_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ActionDefinition_Format3_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_ActionDefinition_Format3_1,
+	3,	/* Elements count */
+	&asn_SPC_E2SM_RC_ActionDefinition_Format3_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-ActionDefinition.c b/e2sm/lib/E2SM-RC-ActionDefinition.c
new file mode 100644
index 0000000..a8e2a57
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-ActionDefinition.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-ActionDefinition.h"
+
+#include "E2SM-RC-ActionDefinition-Format1.h"
+#include "E2SM-RC-ActionDefinition-Format2.h"
+#include "E2SM-RC-ActionDefinition-Format3.h"
+static asn_oer_constraints_t asn_OER_type_ric_actionDefinition_formats_constr_3 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_type_ric_actionDefinition_formats_constr_3 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }	/* (0..2,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ric_actionDefinition_formats_3[] = {
+	{ ATF_POINTER, 0, offsetof(struct E2SM_RC_ActionDefinition__ric_actionDefinition_formats, choice.actionDefinition_Format1),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2SM_RC_ActionDefinition_Format1,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"actionDefinition-Format1"
+		},
+	{ ATF_POINTER, 0, offsetof(struct E2SM_RC_ActionDefinition__ric_actionDefinition_formats, choice.actionDefinition_Format2),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2SM_RC_ActionDefinition_Format2,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"actionDefinition-Format2"
+		},
+	{ ATF_POINTER, 0, offsetof(struct E2SM_RC_ActionDefinition__ric_actionDefinition_formats, choice.actionDefinition_Format3),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2SM_RC_ActionDefinition_Format3,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"actionDefinition-Format3"
+		},
+};
+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 */
+};
+static asn_CHOICE_specifics_t asn_SPC_ric_actionDefinition_formats_specs_3 = {
+	sizeof(struct E2SM_RC_ActionDefinition__ric_actionDefinition_formats),
+	offsetof(struct E2SM_RC_ActionDefinition__ric_actionDefinition_formats, _asn_ctx),
+	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 */
+	0, 0,
+	3	/* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ric_actionDefinition_formats_3 = {
+	"ric-actionDefinition-formats",
+	"ric-actionDefinition-formats",
+	&asn_OP_CHOICE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	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 */
+	&asn_SPC_ric_actionDefinition_formats_specs_3	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_E2SM_RC_ActionDefinition_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ActionDefinition, ric_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 */
+		"ric-Style-Type"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ActionDefinition, ric_actionDefinition_formats),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_ric_actionDefinition_formats_3,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-actionDefinition-formats"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_ActionDefinition_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ActionDefinition_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-Style-Type */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ric-actionDefinition-formats */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ActionDefinition_specs_1 = {
+	sizeof(struct E2SM_RC_ActionDefinition),
+	offsetof(struct E2SM_RC_ActionDefinition, _asn_ctx),
+	asn_MAP_E2SM_RC_ActionDefinition_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 = {
+	"E2SM-RC-ActionDefinition",
+	"E2SM-RC-ActionDefinition",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_ActionDefinition_tags_1,
+	sizeof(asn_DEF_E2SM_RC_ActionDefinition_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ActionDefinition_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_ActionDefinition_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_ActionDefinition_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ActionDefinition_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_ActionDefinition_1,
+	2,	/* Elements count */
+	&asn_SPC_E2SM_RC_ActionDefinition_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-CallProcessID-Format1.c b/e2sm/lib/E2SM-RC-CallProcessID-Format1.c
new file mode 100644
index 0000000..d3a25c1
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-CallProcessID-Format1.c
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-CallProcessID-Format1.h"
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_CallProcessID_Format1_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_CallProcessID_Format1, ric_callProcess_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RAN_CallProcess_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-callProcess-ID"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_CallProcessID_Format1_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_CallProcessID_Format1_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ric-callProcess-ID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_CallProcessID_Format1_specs_1 = {
+	sizeof(struct E2SM_RC_CallProcessID_Format1),
+	offsetof(struct E2SM_RC_CallProcessID_Format1, _asn_ctx),
+	asn_MAP_E2SM_RC_CallProcessID_Format1_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_CallProcessID_Format1 = {
+	"E2SM-RC-CallProcessID-Format1",
+	"E2SM-RC-CallProcessID-Format1",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_CallProcessID_Format1_tags_1,
+	sizeof(asn_DEF_E2SM_RC_CallProcessID_Format1_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_CallProcessID_Format1_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_CallProcessID_Format1_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_CallProcessID_Format1_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_CallProcessID_Format1_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_CallProcessID_Format1_1,
+	1,	/* Elements count */
+	&asn_SPC_E2SM_RC_CallProcessID_Format1_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-CallProcessID.c b/e2sm/lib/E2SM-RC-CallProcessID.c
new file mode 100644
index 0000000..f92d4aa
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-CallProcessID.c
@@ -0,0 +1,98 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-CallProcessID.h"
+
+#include "E2SM-RC-CallProcessID-Format1.h"
+static asn_oer_constraints_t asn_OER_type_ric_callProcessID_formats_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_type_ric_callProcessID_formats_constr_2 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }	/* (0..0,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ric_callProcessID_formats_2[] = {
+	{ ATF_POINTER, 0, offsetof(struct E2SM_RC_CallProcessID__ric_callProcessID_formats, choice.callProcessID_Format1),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2SM_RC_CallProcessID_Format1,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"callProcessID-Format1"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_ric_callProcessID_formats_tag2el_2[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* callProcessID-Format1 */
+};
+static asn_CHOICE_specifics_t asn_SPC_ric_callProcessID_formats_specs_2 = {
+	sizeof(struct E2SM_RC_CallProcessID__ric_callProcessID_formats),
+	offsetof(struct E2SM_RC_CallProcessID__ric_callProcessID_formats, _asn_ctx),
+	offsetof(struct E2SM_RC_CallProcessID__ric_callProcessID_formats, present),
+	sizeof(((struct E2SM_RC_CallProcessID__ric_callProcessID_formats *)0)->present),
+	asn_MAP_ric_callProcessID_formats_tag2el_2,
+	1,	/* Count of tags in the map */
+	0, 0,
+	1	/* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ric_callProcessID_formats_2 = {
+	"ric-callProcessID-formats",
+	"ric-callProcessID-formats",
+	&asn_OP_CHOICE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ &asn_OER_type_ric_callProcessID_formats_constr_2, &asn_PER_type_ric_callProcessID_formats_constr_2, CHOICE_constraint },
+	asn_MBR_ric_callProcessID_formats_2,
+	1,	/* Elements count */
+	&asn_SPC_ric_callProcessID_formats_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_E2SM_RC_CallProcessID_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_CallProcessID, ric_callProcessID_formats),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_ric_callProcessID_formats_2,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-callProcessID-formats"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_CallProcessID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_CallProcessID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ric-callProcessID-formats */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_CallProcessID_specs_1 = {
+	sizeof(struct E2SM_RC_CallProcessID),
+	offsetof(struct E2SM_RC_CallProcessID, _asn_ctx),
+	asn_MAP_E2SM_RC_CallProcessID_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_CallProcessID = {
+	"E2SM-RC-CallProcessID",
+	"E2SM-RC-CallProcessID",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_CallProcessID_tags_1,
+	sizeof(asn_DEF_E2SM_RC_CallProcessID_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_CallProcessID_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_CallProcessID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_CallProcessID_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_CallProcessID_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_CallProcessID_1,
+	1,	/* Elements count */
+	&asn_SPC_E2SM_RC_CallProcessID_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-ControlHeader-Format1.c b/e2sm/lib/E2SM-RC-ControlHeader-Format1.c
index e953ec7..7388ce6 100644
--- a/e2sm/lib/E2SM-RC-ControlHeader-Format1.c
+++ b/e2sm/lib/E2SM-RC-ControlHeader-Format1.c
@@ -1,30 +1,81 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "E2SM-RC-ControlHeader-Format1.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_5 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_type_ric_ControlDecision_constr_5 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_5[] = {
+	{ 0,	6,	"accept" },
+	{ 1,	6,	"reject" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_ric_ControlDecision_enum2value_5[] = {
+	0,	/* accept(0) */
+	1	/* reject(1) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_ric_ControlDecision_specs_5 = {
+	asn_MAP_ric_ControlDecision_value2enum_5,	/* "tag" => N; sorted by tag */
+	asn_MAP_ric_ControlDecision_enum2value_5,	/* 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_5[] = {
+	(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ric_ControlDecision_5 = {
+	"ric-ControlDecision",
+	"ric-ControlDecision",
+	&asn_OP_NativeEnumerated,
+	asn_DEF_ric_ControlDecision_tags_5,
+	sizeof(asn_DEF_ric_ControlDecision_tags_5)
+		/sizeof(asn_DEF_ric_ControlDecision_tags_5[0]) - 1, /* 1 */
+	asn_DEF_ric_ControlDecision_tags_5,	/* Same as above */
+	sizeof(asn_DEF_ric_ControlDecision_tags_5)
+		/sizeof(asn_DEF_ric_ControlDecision_tags_5[0]), /* 2 */
+	{ &asn_OER_type_ric_ControlDecision_constr_5, &asn_PER_type_ric_ControlDecision_constr_5, NativeEnumerated_constraint },
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_ric_ControlDecision_specs_5	/* Additional specs */
+};
+
 asn_TYPE_member_t asn_MBR_E2SM_RC_ControlHeader_Format1_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ControlHeader_Format1, ueId),
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ControlHeader_Format1, ueID),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_UE_Identity,
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_UEID,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
-		"ueId"
+		"ueID"
 		},
-	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ControlHeader_Format1, ric_ControlStyle_Type),
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ControlHeader_Format1, ric_Style_Type),
 		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
 		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_RIC_Style_Type,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
-		"ric-ControlStyle-Type"
+		"ric-Style-Type"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ControlHeader_Format1, ric_ControlAction_ID),
 		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
@@ -35,22 +86,34 @@
 		0, 0, /* No default value */
 		"ric-ControlAction-ID"
 		},
+	{ ATF_POINTER, 1, offsetof(struct E2SM_RC_ControlHeader_Format1, ric_ControlDecision),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_ric_ControlDecision_5,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-ControlDecision"
+		},
 };
+static const int asn_MAP_E2SM_RC_ControlHeader_Format1_oms_1[] = { 3 };
 static const ber_tlv_tag_t asn_DEF_E2SM_RC_ControlHeader_Format1_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
 static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ControlHeader_Format1_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ueId */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-ControlStyle-Type */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ric-ControlAction-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ueID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-Style-Type */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ric-ControlAction-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ric-ControlDecision */
 };
 asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlHeader_Format1_specs_1 = {
 	sizeof(struct E2SM_RC_ControlHeader_Format1),
 	offsetof(struct E2SM_RC_ControlHeader_Format1, _asn_ctx),
 	asn_MAP_E2SM_RC_ControlHeader_Format1_tag2el_1,
-	3,	/* Count of tags in the map */
-	0, 0, 0,	/* Optional elements (not needed) */
-	3,	/* First extension addition */
+	4,	/* Count of tags in the map */
+	asn_MAP_E2SM_RC_ControlHeader_Format1_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	4,	/* First extension addition */
 };
 asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlHeader_Format1 = {
 	"E2SM-RC-ControlHeader-Format1",
@@ -64,7 +127,7 @@
 		/sizeof(asn_DEF_E2SM_RC_ControlHeader_Format1_tags_1[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
 	asn_MBR_E2SM_RC_ControlHeader_Format1_1,
-	3,	/* Elements count */
+	4,	/* Elements count */
 	&asn_SPC_E2SM_RC_ControlHeader_Format1_specs_1	/* Additional specs */
 };
 
diff --git a/e2sm/lib/E2SM-RC-ControlHeader.c b/e2sm/lib/E2SM-RC-ControlHeader.c
index 8de1e6c..0a3ff61 100644
--- a/e2sm/lib/E2SM-RC-ControlHeader.c
+++ b/e2sm/lib/E2SM-RC-ControlHeader.c
@@ -1,23 +1,23 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "E2SM-RC-ControlHeader.h"
 
 #include "E2SM-RC-ControlHeader-Format1.h"
-static asn_oer_constraints_t asn_OER_type_E2SM_RC_ControlHeader_constr_1 CC_NOTUSED = {
+static asn_oer_constraints_t asn_OER_type_ric_controlHeader_formats_constr_2 CC_NOTUSED = {
 	{ 0, 0 },
 	-1};
-static asn_per_constraints_t asn_PER_type_E2SM_RC_ControlHeader_constr_1 CC_NOTUSED = {
+static asn_per_constraints_t asn_PER_type_ric_controlHeader_formats_constr_2 CC_NOTUSED = {
 	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }	/* (0..0,...) */,
 	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
 	0, 0	/* No PER value map */
 };
-static asn_TYPE_member_t asn_MBR_E2SM_RC_ControlHeader_1[] = {
-	{ ATF_POINTER, 0, offsetof(struct E2SM_RC_ControlHeader, choice.controlHeader_Format1),
+static asn_TYPE_member_t asn_MBR_ric_controlHeader_formats_2[] = {
+	{ ATF_POINTER, 0, offsetof(struct E2SM_RC_ControlHeader__ric_controlHeader_formats, choice.controlHeader_Format1),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_E2SM_RC_ControlHeader_Format1,
@@ -27,28 +27,70 @@
 		"controlHeader-Format1"
 		},
 };
-static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ControlHeader_tag2el_1[] = {
+static const asn_TYPE_tag2member_t asn_MAP_ric_controlHeader_formats_tag2el_2[] = {
     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* controlHeader-Format1 */
 };
-static asn_CHOICE_specifics_t asn_SPC_E2SM_RC_ControlHeader_specs_1 = {
-	sizeof(struct E2SM_RC_ControlHeader),
-	offsetof(struct E2SM_RC_ControlHeader, _asn_ctx),
-	offsetof(struct E2SM_RC_ControlHeader, present),
-	sizeof(((struct E2SM_RC_ControlHeader *)0)->present),
-	asn_MAP_E2SM_RC_ControlHeader_tag2el_1,
+static asn_CHOICE_specifics_t asn_SPC_ric_controlHeader_formats_specs_2 = {
+	sizeof(struct E2SM_RC_ControlHeader__ric_controlHeader_formats),
+	offsetof(struct E2SM_RC_ControlHeader__ric_controlHeader_formats, _asn_ctx),
+	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 */
 	0, 0,
 	1	/* Extensions start */
 };
-asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlHeader = {
-	"E2SM-RC-ControlHeader",
-	"E2SM-RC-ControlHeader",
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ric_controlHeader_formats_2 = {
+	"ric-controlHeader-formats",
+	"ric-controlHeader-formats",
 	&asn_OP_CHOICE,
 	0,	/* No effective tags (pointer) */
 	0,	/* No effective tags (count) */
 	0,	/* No tags (pointer) */
 	0,	/* No tags (count) */
-	{ &asn_OER_type_E2SM_RC_ControlHeader_constr_1, &asn_PER_type_E2SM_RC_ControlHeader_constr_1, CHOICE_constraint },
+	{ &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 */
+	&asn_SPC_ric_controlHeader_formats_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_E2SM_RC_ControlHeader_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ControlHeader, ric_controlHeader_formats),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_ric_controlHeader_formats_2,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-controlHeader-formats"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_ControlHeader_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ControlHeader_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ric-controlHeader-formats */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlHeader_specs_1 = {
+	sizeof(struct E2SM_RC_ControlHeader),
+	offsetof(struct E2SM_RC_ControlHeader, _asn_ctx),
+	asn_MAP_E2SM_RC_ControlHeader_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_ControlHeader = {
+	"E2SM-RC-ControlHeader",
+	"E2SM-RC-ControlHeader",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_ControlHeader_tags_1,
+	sizeof(asn_DEF_E2SM_RC_ControlHeader_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlHeader_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_ControlHeader_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_ControlHeader_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlHeader_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
 	asn_MBR_E2SM_RC_ControlHeader_1,
 	1,	/* Elements count */
 	&asn_SPC_E2SM_RC_ControlHeader_specs_1	/* Additional specs */
diff --git a/e2sm/lib/E2SM-RC-ControlMessage-Format1-Item.c b/e2sm/lib/E2SM-RC-ControlMessage-Format1-Item.c
new file mode 100644
index 0000000..4d3194c
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-ControlMessage-Format1-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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-ControlMessage-Format1-Item.h"
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_ControlMessage_Format1_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ControlMessage_Format1_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_ControlMessage_Format1_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_ControlMessage_Format1_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ControlMessage_Format1_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_ControlMessage_Format1_Item_specs_1 = {
+	sizeof(struct E2SM_RC_ControlMessage_Format1_Item),
+	offsetof(struct E2SM_RC_ControlMessage_Format1_Item, _asn_ctx),
+	asn_MAP_E2SM_RC_ControlMessage_Format1_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_Format1_Item = {
+	"E2SM-RC-ControlMessage-Format1-Item",
+	"E2SM-RC-ControlMessage-Format1-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_ControlMessage_Format1_Item_tags_1,
+	sizeof(asn_DEF_E2SM_RC_ControlMessage_Format1_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlMessage_Format1_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_ControlMessage_Format1_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_ControlMessage_Format1_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlMessage_Format1_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_ControlMessage_Format1_Item_1,
+	2,	/* Elements count */
+	&asn_SPC_E2SM_RC_ControlMessage_Format1_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-ControlMessage-Format1.c b/e2sm/lib/E2SM-RC-ControlMessage-Format1.c
index 7ba5bba..b7972a2 100644
--- a/e2sm/lib/E2SM-RC-ControlMessage-Format1.c
+++ b/e2sm/lib/E2SM-RC-ControlMessage-Format1.c
@@ -1,15 +1,15 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "E2SM-RC-ControlMessage-Format1.h"
 
-#include "RANParameter-Item.h"
+#include "E2SM-RC-ControlMessage-Format1-Item.h"
 static int
-memb_ranParameters_List_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+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;
 	
@@ -23,7 +23,7 @@
 	/* Determine the number of elements */
 	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
 	
-	if((size >= 1 && size <= 4294967295)) {
+	if((size <= 65535)) {
 		/* Perform validation of the inner elements */
 		return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
 	} else {
@@ -34,84 +34,82 @@
 	}
 }
 
-static asn_oer_constraints_t asn_OER_type_ranParameters_List_constr_2 CC_NOTUSED = {
+static asn_oer_constraints_t asn_OER_type_ranP_List_constr_2 CC_NOTUSED = {
 	{ 0, 0 },
-	-1	/* (SIZE(1..4294967295)) */};
-static asn_per_constraints_t asn_PER_type_ranParameters_List_constr_2 CC_NOTUSED = {
+	-1	/* (SIZE(0..65535)) */};
+static asn_per_constraints_t asn_PER_type_ranP_List_constr_2 CC_NOTUSED = {
 	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 32, -1,  1,  4294967295 }	/* (SIZE(1..4294967295)) */,
+	{ APC_CONSTRAINED,	 16,  16,  0,  65535 }	/* (SIZE(0..65535)) */,
 	0, 0	/* No PER value map */
 };
-static asn_oer_constraints_t asn_OER_memb_ranParameters_List_constr_2 CC_NOTUSED = {
+static asn_oer_constraints_t asn_OER_memb_ranP_List_constr_2 CC_NOTUSED = {
 	{ 0, 0 },
-	-1	/* (SIZE(1..4294967295)) */};
-static asn_per_constraints_t asn_PER_memb_ranParameters_List_constr_2 CC_NOTUSED = {
+	-1	/* (SIZE(0..65535)) */};
+static asn_per_constraints_t asn_PER_memb_ranP_List_constr_2 CC_NOTUSED = {
 	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 32, -1,  1,  4294967295 }	/* (SIZE(1..4294967295)) */,
+	{ APC_CONSTRAINED,	 16,  16,  0,  65535 }	/* (SIZE(0..65535)) */,
 	0, 0	/* No PER value map */
 };
-static asn_TYPE_member_t asn_MBR_ranParameters_List_2[] = {
+static asn_TYPE_member_t asn_MBR_ranP_List_2[] = {
 	{ ATF_POINTER, 0, 0,
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
-		&asn_DEF_RANParameter_Item,
+		&asn_DEF_E2SM_RC_ControlMessage_Format1_Item,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
 		""
 		},
 };
-static const ber_tlv_tag_t asn_DEF_ranParameters_List_tags_2[] = {
+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_ranParameters_List_specs_2 = {
-	sizeof(struct E2SM_RC_ControlMessage_Format1__ranParameters_List),
-	offsetof(struct E2SM_RC_ControlMessage_Format1__ranParameters_List, _asn_ctx),
+static asn_SET_OF_specifics_t asn_SPC_ranP_List_specs_2 = {
+	sizeof(struct E2SM_RC_ControlMessage_Format1__ranP_List),
+	offsetof(struct E2SM_RC_ControlMessage_Format1__ranP_List, _asn_ctx),
 	0,	/* XER encoding is XMLDelimitedItemList */
 };
 static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_ranParameters_List_2 = {
-	"ranParameters-List",
-	"ranParameters-List",
+asn_TYPE_descriptor_t asn_DEF_ranP_List_2 = {
+	"ranP-List",
+	"ranP-List",
 	&asn_OP_SEQUENCE_OF,
-	asn_DEF_ranParameters_List_tags_2,
-	sizeof(asn_DEF_ranParameters_List_tags_2)
-		/sizeof(asn_DEF_ranParameters_List_tags_2[0]) - 1, /* 1 */
-	asn_DEF_ranParameters_List_tags_2,	/* Same as above */
-	sizeof(asn_DEF_ranParameters_List_tags_2)
-		/sizeof(asn_DEF_ranParameters_List_tags_2[0]), /* 2 */
-	{ &asn_OER_type_ranParameters_List_constr_2, &asn_PER_type_ranParameters_List_constr_2, SEQUENCE_OF_constraint },
-	asn_MBR_ranParameters_List_2,
+	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_ranParameters_List_specs_2	/* Additional specs */
+	&asn_SPC_ranP_List_specs_2	/* Additional specs */
 };
 
 asn_TYPE_member_t asn_MBR_E2SM_RC_ControlMessage_Format1_1[] = {
-	{ ATF_POINTER, 1, offsetof(struct E2SM_RC_ControlMessage_Format1, ranParameters_List),
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ControlMessage_Format1, ranP_List),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		0,
-		&asn_DEF_ranParameters_List_2,
+		&asn_DEF_ranP_List_2,
 		0,
-		{ &asn_OER_memb_ranParameters_List_constr_2, &asn_PER_memb_ranParameters_List_constr_2,  memb_ranParameters_List_constraint_1 },
+		{ &asn_OER_memb_ranP_List_constr_2, &asn_PER_memb_ranP_List_constr_2,  memb_ranP_List_constraint_1 },
 		0, 0, /* No default value */
-		"ranParameters-List"
+		"ranP-List"
 		},
 };
-static const int asn_MAP_E2SM_RC_ControlMessage_Format1_oms_1[] = { 0 };
 static const ber_tlv_tag_t asn_DEF_E2SM_RC_ControlMessage_Format1_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
 static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ControlMessage_Format1_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ranParameters-List */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ranP-List */
 };
 asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlMessage_Format1_specs_1 = {
 	sizeof(struct E2SM_RC_ControlMessage_Format1),
 	offsetof(struct E2SM_RC_ControlMessage_Format1, _asn_ctx),
 	asn_MAP_E2SM_RC_ControlMessage_Format1_tag2el_1,
 	1,	/* Count of tags in the map */
-	asn_MAP_E2SM_RC_ControlMessage_Format1_oms_1,	/* Optional members */
-	1, 0,	/* Root/Additions */
+	0, 0, 0,	/* Optional elements (not needed) */
 	1,	/* First extension addition */
 };
 asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlMessage_Format1 = {
diff --git a/e2sm/lib/E2SM-RC-ControlMessage.c b/e2sm/lib/E2SM-RC-ControlMessage.c
index 15a6afe..295c133 100644
--- a/e2sm/lib/E2SM-RC-ControlMessage.c
+++ b/e2sm/lib/E2SM-RC-ControlMessage.c
@@ -1,23 +1,23 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "E2SM-RC-ControlMessage.h"
 
 #include "E2SM-RC-ControlMessage-Format1.h"
-static asn_oer_constraints_t asn_OER_type_E2SM_RC_ControlMessage_constr_1 CC_NOTUSED = {
+static asn_oer_constraints_t asn_OER_type_ric_controlMessage_formats_constr_2 CC_NOTUSED = {
 	{ 0, 0 },
 	-1};
-static asn_per_constraints_t asn_PER_type_E2SM_RC_ControlMessage_constr_1 CC_NOTUSED = {
+static asn_per_constraints_t asn_PER_type_ric_controlMessage_formats_constr_2 CC_NOTUSED = {
 	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }	/* (0..0,...) */,
 	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
 	0, 0	/* No PER value map */
 };
-static asn_TYPE_member_t asn_MBR_E2SM_RC_ControlMessage_1[] = {
-	{ ATF_POINTER, 0, offsetof(struct E2SM_RC_ControlMessage, choice.controlMessage_Format1),
+static asn_TYPE_member_t asn_MBR_ric_controlMessage_formats_2[] = {
+	{ ATF_POINTER, 0, offsetof(struct E2SM_RC_ControlMessage__ric_controlMessage_formats, choice.controlMessage_Format1),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_E2SM_RC_ControlMessage_Format1,
@@ -27,28 +27,70 @@
 		"controlMessage-Format1"
 		},
 };
-static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ControlMessage_tag2el_1[] = {
+static const asn_TYPE_tag2member_t asn_MAP_ric_controlMessage_formats_tag2el_2[] = {
     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* controlMessage-Format1 */
 };
-static asn_CHOICE_specifics_t asn_SPC_E2SM_RC_ControlMessage_specs_1 = {
-	sizeof(struct E2SM_RC_ControlMessage),
-	offsetof(struct E2SM_RC_ControlMessage, _asn_ctx),
-	offsetof(struct E2SM_RC_ControlMessage, present),
-	sizeof(((struct E2SM_RC_ControlMessage *)0)->present),
-	asn_MAP_E2SM_RC_ControlMessage_tag2el_1,
+static asn_CHOICE_specifics_t asn_SPC_ric_controlMessage_formats_specs_2 = {
+	sizeof(struct E2SM_RC_ControlMessage__ric_controlMessage_formats),
+	offsetof(struct E2SM_RC_ControlMessage__ric_controlMessage_formats, _asn_ctx),
+	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 */
 	0, 0,
 	1	/* Extensions start */
 };
-asn_TYPE_descriptor_t asn_DEF_E2SM_RC_ControlMessage = {
-	"E2SM-RC-ControlMessage",
-	"E2SM-RC-ControlMessage",
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ric_controlMessage_formats_2 = {
+	"ric-controlMessage-formats",
+	"ric-controlMessage-formats",
 	&asn_OP_CHOICE,
 	0,	/* No effective tags (pointer) */
 	0,	/* No effective tags (count) */
 	0,	/* No tags (pointer) */
 	0,	/* No tags (count) */
-	{ &asn_OER_type_E2SM_RC_ControlMessage_constr_1, &asn_PER_type_E2SM_RC_ControlMessage_constr_1, CHOICE_constraint },
+	{ &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 */
+	&asn_SPC_ric_controlMessage_formats_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_E2SM_RC_ControlMessage_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ControlMessage, ric_controlMessage_formats),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_ric_controlMessage_formats_2,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-controlMessage-formats"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_ControlMessage_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ControlMessage_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ric-controlMessage-formats */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlMessage_specs_1 = {
+	sizeof(struct E2SM_RC_ControlMessage),
+	offsetof(struct E2SM_RC_ControlMessage, _asn_ctx),
+	asn_MAP_E2SM_RC_ControlMessage_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 = {
+	"E2SM-RC-ControlMessage",
+	"E2SM-RC-ControlMessage",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_ControlMessage_tags_1,
+	sizeof(asn_DEF_E2SM_RC_ControlMessage_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlMessage_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_ControlMessage_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_ControlMessage_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlMessage_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
 	asn_MBR_E2SM_RC_ControlMessage_1,
 	1,	/* Elements count */
 	&asn_SPC_E2SM_RC_ControlMessage_specs_1	/* Additional specs */
diff --git a/e2sm/lib/E2SM-RC-ControlOutcome-Format1-Item.c b/e2sm/lib/E2SM-RC-ControlOutcome-Format1-Item.c
new file mode 100644
index 0000000..f9b0bfd
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-ControlOutcome-Format1-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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-ControlOutcome-Format1-Item.h"
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_ControlOutcome_Format1_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ControlOutcome_Format1_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_Format1_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_Format1_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ControlOutcome_Format1_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_Format1_Item_specs_1 = {
+	sizeof(struct E2SM_RC_ControlOutcome_Format1_Item),
+	offsetof(struct E2SM_RC_ControlOutcome_Format1_Item, _asn_ctx),
+	asn_MAP_E2SM_RC_ControlOutcome_Format1_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_Format1_Item = {
+	"E2SM-RC-ControlOutcome-Format1-Item",
+	"E2SM-RC-ControlOutcome-Format1-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_ControlOutcome_Format1_Item_tags_1,
+	sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format1_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format1_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_ControlOutcome_Format1_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format1_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format1_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_ControlOutcome_Format1_Item_1,
+	2,	/* Elements count */
+	&asn_SPC_E2SM_RC_ControlOutcome_Format1_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-ControlOutcome-Format1.c b/e2sm/lib/E2SM-RC-ControlOutcome-Format1.c
new file mode 100644
index 0000000..8b78e0f
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-ControlOutcome-Format1.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-ControlOutcome-Format1.h"
+
+#include "E2SM-RC-ControlOutcome-Format1-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_Format1_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_Format1__ranP_List),
+	offsetof(struct E2SM_RC_ControlOutcome_Format1__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_Format1_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ControlOutcome_Format1, 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_Format1_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ControlOutcome_Format1_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ranP-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlOutcome_Format1_specs_1 = {
+	sizeof(struct E2SM_RC_ControlOutcome_Format1),
+	offsetof(struct E2SM_RC_ControlOutcome_Format1, _asn_ctx),
+	asn_MAP_E2SM_RC_ControlOutcome_Format1_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_Format1 = {
+	"E2SM-RC-ControlOutcome-Format1",
+	"E2SM-RC-ControlOutcome-Format1",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_ControlOutcome_Format1_tags_1,
+	sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format1_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format1_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_ControlOutcome_Format1_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format1_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlOutcome_Format1_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_ControlOutcome_Format1_1,
+	1,	/* Elements count */
+	&asn_SPC_E2SM_RC_ControlOutcome_Format1_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-ControlOutcome.c b/e2sm/lib/E2SM-RC-ControlOutcome.c
new file mode 100644
index 0000000..8e6ce7b
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-ControlOutcome.c
@@ -0,0 +1,98 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-ControlOutcome.h"
+
+#include "E2SM-RC-ControlOutcome-Format1.h"
+static asn_oer_constraints_t asn_OER_type_ric_controlOutcome_formats_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_type_ric_controlOutcome_formats_constr_2 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }	/* (0..0,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ric_controlOutcome_formats_2[] = {
+	{ ATF_POINTER, 0, offsetof(struct E2SM_RC_ControlOutcome__ric_controlOutcome_formats, choice.controlOutcome_Format1),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2SM_RC_ControlOutcome_Format1,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"controlOutcome-Format1"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_ric_controlOutcome_formats_tag2el_2[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* controlOutcome-Format1 */
+};
+static asn_CHOICE_specifics_t asn_SPC_ric_controlOutcome_formats_specs_2 = {
+	sizeof(struct E2SM_RC_ControlOutcome__ric_controlOutcome_formats),
+	offsetof(struct E2SM_RC_ControlOutcome__ric_controlOutcome_formats, _asn_ctx),
+	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 */
+	0, 0,
+	1	/* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ric_controlOutcome_formats_2 = {
+	"ric-controlOutcome-formats",
+	"ric-controlOutcome-formats",
+	&asn_OP_CHOICE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	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 */
+	&asn_SPC_ric_controlOutcome_formats_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_E2SM_RC_ControlOutcome_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_ControlOutcome, ric_controlOutcome_formats),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_ric_controlOutcome_formats_2,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-controlOutcome-formats"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_ControlOutcome_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_ControlOutcome_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ric-controlOutcome-formats */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_ControlOutcome_specs_1 = {
+	sizeof(struct E2SM_RC_ControlOutcome),
+	offsetof(struct E2SM_RC_ControlOutcome, _asn_ctx),
+	asn_MAP_E2SM_RC_ControlOutcome_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 = {
+	"E2SM-RC-ControlOutcome",
+	"E2SM-RC-ControlOutcome",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_ControlOutcome_tags_1,
+	sizeof(asn_DEF_E2SM_RC_ControlOutcome_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlOutcome_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_ControlOutcome_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_ControlOutcome_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_ControlOutcome_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_ControlOutcome_1,
+	1,	/* Elements count */
+	&asn_SPC_E2SM_RC_ControlOutcome_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-EventTrigger-Format1-Item.c b/e2sm/lib/E2SM-RC-EventTrigger-Format1-Item.c
new file mode 100644
index 0000000..346cf2e
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-EventTrigger-Format1-Item.c
@@ -0,0 +1,155 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-EventTrigger-Format1-Item.h"
+
+#include "EventTrigger-UE-Info.h"
+#include "EventTrigger-UEevent-Info.h"
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_messageDirection_constr_4 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_type_messageDirection_constr_4 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_messageDirection_value2enum_4[] = {
+	{ 0,	8,	"incoming" },
+	{ 1,	8,	"outgoing" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_messageDirection_enum2value_4[] = {
+	0,	/* incoming(0) */
+	1	/* outgoing(1) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_messageDirection_specs_4 = {
+	asn_MAP_messageDirection_value2enum_4,	/* "tag" => N; sorted by tag */
+	asn_MAP_messageDirection_enum2value_4,	/* 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_messageDirection_tags_4[] = {
+	(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_messageDirection_4 = {
+	"messageDirection",
+	"messageDirection",
+	&asn_OP_NativeEnumerated,
+	asn_DEF_messageDirection_tags_4,
+	sizeof(asn_DEF_messageDirection_tags_4)
+		/sizeof(asn_DEF_messageDirection_tags_4[0]) - 1, /* 1 */
+	asn_DEF_messageDirection_tags_4,	/* Same as above */
+	sizeof(asn_DEF_messageDirection_tags_4)
+		/sizeof(asn_DEF_messageDirection_tags_4[0]), /* 2 */
+	{ &asn_OER_type_messageDirection_constr_4, &asn_PER_type_messageDirection_constr_4, NativeEnumerated_constraint },
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_messageDirection_specs_4	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_EventTrigger_Format1_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_EventTrigger_Format1_Item, 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_NOFLAGS, 0, offsetof(struct E2SM_RC_EventTrigger_Format1_Item, messageType),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_MessageType_Choice,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"messageType"
+		},
+	{ ATF_POINTER, 4, offsetof(struct E2SM_RC_EventTrigger_Format1_Item, messageDirection),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_messageDirection_4,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"messageDirection"
+		},
+	{ ATF_POINTER, 3, offsetof(struct E2SM_RC_EventTrigger_Format1_Item, associatedUEInfo),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_EventTrigger_UE_Info,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"associatedUEInfo"
+		},
+	{ ATF_POINTER, 2, offsetof(struct E2SM_RC_EventTrigger_Format1_Item, associatedUEEvent),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_EventTrigger_UEevent_Info,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"associatedUEEvent"
+		},
+	{ ATF_POINTER, 1, offsetof(struct E2SM_RC_EventTrigger_Format1_Item, logicalOR),
+		(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_LogicalOR,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"logicalOR"
+		},
+};
+static const int asn_MAP_E2SM_RC_EventTrigger_Format1_Item_oms_1[] = { 2, 3, 4, 5 };
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_EventTrigger_Format1_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_EventTrigger_Format1_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-eventTriggerCondition-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* messageType */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* messageDirection */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* associatedUEInfo */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* associatedUEEvent */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* logicalOR */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_EventTrigger_Format1_Item_specs_1 = {
+	sizeof(struct E2SM_RC_EventTrigger_Format1_Item),
+	offsetof(struct E2SM_RC_EventTrigger_Format1_Item, _asn_ctx),
+	asn_MAP_E2SM_RC_EventTrigger_Format1_Item_tag2el_1,
+	6,	/* Count of tags in the map */
+	asn_MAP_E2SM_RC_EventTrigger_Format1_Item_oms_1,	/* Optional members */
+	4, 0,	/* Root/Additions */
+	6,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_EventTrigger_Format1_Item = {
+	"E2SM-RC-EventTrigger-Format1-Item",
+	"E2SM-RC-EventTrigger-Format1-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_EventTrigger_Format1_Item_tags_1,
+	sizeof(asn_DEF_E2SM_RC_EventTrigger_Format1_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_EventTrigger_Format1_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_EventTrigger_Format1_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_EventTrigger_Format1_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_EventTrigger_Format1_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_EventTrigger_Format1_Item_1,
+	6,	/* Elements count */
+	&asn_SPC_E2SM_RC_EventTrigger_Format1_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-EventTrigger-Format1.c b/e2sm/lib/E2SM-RC-EventTrigger-Format1.c
new file mode 100644
index 0000000..c8911e9
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-EventTrigger-Format1.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-EventTrigger-Format1.h"
+
+#include "EventTrigger-UE-Info.h"
+#include "E2SM-RC-EventTrigger-Format1-Item.h"
+static int
+memb_message_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_message_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_type_message_List_constr_2 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_message_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_memb_message_List_constr_2 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_message_List_2[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2SM_RC_EventTrigger_Format1_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_message_List_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_message_List_specs_2 = {
+	sizeof(struct E2SM_RC_EventTrigger_Format1__message_List),
+	offsetof(struct E2SM_RC_EventTrigger_Format1__message_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_message_List_2 = {
+	"message-List",
+	"message-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_message_List_tags_2,
+	sizeof(asn_DEF_message_List_tags_2)
+		/sizeof(asn_DEF_message_List_tags_2[0]) - 1, /* 1 */
+	asn_DEF_message_List_tags_2,	/* Same as above */
+	sizeof(asn_DEF_message_List_tags_2)
+		/sizeof(asn_DEF_message_List_tags_2[0]), /* 2 */
+	{ &asn_OER_type_message_List_constr_2, &asn_PER_type_message_List_constr_2, SEQUENCE_OF_constraint },
+	asn_MBR_message_List_2,
+	1,	/* Single element */
+	&asn_SPC_message_List_specs_2	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_EventTrigger_Format1_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_EventTrigger_Format1, message_List),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_message_List_2,
+		0,
+		{ &asn_OER_memb_message_List_constr_2, &asn_PER_memb_message_List_constr_2,  memb_message_List_constraint_1 },
+		0, 0, /* No default value */
+		"message-List"
+		},
+	{ ATF_POINTER, 1, offsetof(struct E2SM_RC_EventTrigger_Format1, globalAssociatedUEInfo),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_EventTrigger_UE_Info,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"globalAssociatedUEInfo"
+		},
+};
+static const int asn_MAP_E2SM_RC_EventTrigger_Format1_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_EventTrigger_Format1_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_EventTrigger_Format1_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* message-List */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* globalAssociatedUEInfo */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_EventTrigger_Format1_specs_1 = {
+	sizeof(struct E2SM_RC_EventTrigger_Format1),
+	offsetof(struct E2SM_RC_EventTrigger_Format1, _asn_ctx),
+	asn_MAP_E2SM_RC_EventTrigger_Format1_tag2el_1,
+	2,	/* Count of tags in the map */
+	asn_MAP_E2SM_RC_EventTrigger_Format1_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_EventTrigger_Format1 = {
+	"E2SM-RC-EventTrigger-Format1",
+	"E2SM-RC-EventTrigger-Format1",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_EventTrigger_Format1_tags_1,
+	sizeof(asn_DEF_E2SM_RC_EventTrigger_Format1_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_EventTrigger_Format1_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_EventTrigger_Format1_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_EventTrigger_Format1_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_EventTrigger_Format1_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_EventTrigger_Format1_1,
+	2,	/* Elements count */
+	&asn_SPC_E2SM_RC_EventTrigger_Format1_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-EventTrigger-Format2.c b/e2sm/lib/E2SM-RC-EventTrigger-Format2.c
new file mode 100644
index 0000000..54a8e9d
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-EventTrigger-Format2.c
@@ -0,0 +1,84 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-EventTrigger-Format2.h"
+
+#include "RANParameter-Testing.h"
+#include "EventTrigger-UE-Info.h"
+asn_TYPE_member_t asn_MBR_E2SM_RC_EventTrigger_Format2_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_EventTrigger_Format2, ric_callProcessType_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_CallProcessType_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-callProcessType-ID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_EventTrigger_Format2, ric_callProcessBreakpoint_ID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_CallProcessBreakpoint_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-callProcessBreakpoint-ID"
+		},
+	{ ATF_POINTER, 2, offsetof(struct E2SM_RC_EventTrigger_Format2, associatedE2NodeInfo),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANParameter_Testing,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"associatedE2NodeInfo"
+		},
+	{ ATF_POINTER, 1, offsetof(struct E2SM_RC_EventTrigger_Format2, associatedUEInfo),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_EventTrigger_UE_Info,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"associatedUEInfo"
+		},
+};
+static const int asn_MAP_E2SM_RC_EventTrigger_Format2_oms_1[] = { 2, 3 };
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_EventTrigger_Format2_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_EventTrigger_Format2_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-callProcessType-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-callProcessBreakpoint-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* associatedE2NodeInfo */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* associatedUEInfo */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_EventTrigger_Format2_specs_1 = {
+	sizeof(struct E2SM_RC_EventTrigger_Format2),
+	offsetof(struct E2SM_RC_EventTrigger_Format2, _asn_ctx),
+	asn_MAP_E2SM_RC_EventTrigger_Format2_tag2el_1,
+	4,	/* Count of tags in the map */
+	asn_MAP_E2SM_RC_EventTrigger_Format2_oms_1,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	4,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_EventTrigger_Format2 = {
+	"E2SM-RC-EventTrigger-Format2",
+	"E2SM-RC-EventTrigger-Format2",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_EventTrigger_Format2_tags_1,
+	sizeof(asn_DEF_E2SM_RC_EventTrigger_Format2_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_EventTrigger_Format2_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_EventTrigger_Format2_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_EventTrigger_Format2_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_EventTrigger_Format2_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_EventTrigger_Format2_1,
+	4,	/* Elements count */
+	&asn_SPC_E2SM_RC_EventTrigger_Format2_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-EventTrigger-Format3-Item.c b/e2sm/lib/E2SM-RC-EventTrigger-Format3-Item.c
new file mode 100644
index 0000000..9781e8e
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-EventTrigger-Format3-Item.c
@@ -0,0 +1,116 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-EventTrigger-Format3-Item.h"
+
+#include "EventTrigger-Cell-Info.h"
+static int
+memb_e2NodeInfoChange_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1 && value <= 512)) {
+		/* Constraint check succeeded */
+		return 0;
+	} 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_memb_e2NodeInfoChange_ID_constr_3 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_memb_e2NodeInfoChange_ID_constr_3 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  9,  9,  1,  512 }	/* (1..512,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_E2SM_RC_EventTrigger_Format3_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_EventTrigger_Format3_Item, 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_NOFLAGS, 0, offsetof(struct E2SM_RC_EventTrigger_Format3_Item, e2NodeInfoChange_ID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		0,
+		{ &asn_OER_memb_e2NodeInfoChange_ID_constr_3, &asn_PER_memb_e2NodeInfoChange_ID_constr_3,  memb_e2NodeInfoChange_ID_constraint_1 },
+		0, 0, /* No default value */
+		"e2NodeInfoChange-ID"
+		},
+	{ ATF_POINTER, 2, offsetof(struct E2SM_RC_EventTrigger_Format3_Item, associatedCellInfo),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_EventTrigger_Cell_Info,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"associatedCellInfo"
+		},
+	{ ATF_POINTER, 1, offsetof(struct E2SM_RC_EventTrigger_Format3_Item, logicalOR),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_LogicalOR,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"logicalOR"
+		},
+};
+static const int asn_MAP_E2SM_RC_EventTrigger_Format3_Item_oms_1[] = { 2, 3 };
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_EventTrigger_Format3_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_EventTrigger_Format3_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-eventTriggerCondition-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e2NodeInfoChange-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* associatedCellInfo */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* logicalOR */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_EventTrigger_Format3_Item_specs_1 = {
+	sizeof(struct E2SM_RC_EventTrigger_Format3_Item),
+	offsetof(struct E2SM_RC_EventTrigger_Format3_Item, _asn_ctx),
+	asn_MAP_E2SM_RC_EventTrigger_Format3_Item_tag2el_1,
+	4,	/* Count of tags in the map */
+	asn_MAP_E2SM_RC_EventTrigger_Format3_Item_oms_1,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	4,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_EventTrigger_Format3_Item = {
+	"E2SM-RC-EventTrigger-Format3-Item",
+	"E2SM-RC-EventTrigger-Format3-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_EventTrigger_Format3_Item_tags_1,
+	sizeof(asn_DEF_E2SM_RC_EventTrigger_Format3_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_EventTrigger_Format3_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_EventTrigger_Format3_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_EventTrigger_Format3_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_EventTrigger_Format3_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_EventTrigger_Format3_Item_1,
+	4,	/* Elements count */
+	&asn_SPC_E2SM_RC_EventTrigger_Format3_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-EventTrigger-Format3.c b/e2sm/lib/E2SM-RC-EventTrigger-Format3.c
new file mode 100644
index 0000000..2f0efcd
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-EventTrigger-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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-EventTrigger-Format3.h"
+
+#include "E2SM-RC-EventTrigger-Format3-Item.h"
+static int
+memb_e2NodeInfoChange_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_e2NodeInfoChange_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_type_e2NodeInfoChange_List_constr_2 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_e2NodeInfoChange_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_memb_e2NodeInfoChange_List_constr_2 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_e2NodeInfoChange_List_2[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2SM_RC_EventTrigger_Format3_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_e2NodeInfoChange_List_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_e2NodeInfoChange_List_specs_2 = {
+	sizeof(struct E2SM_RC_EventTrigger_Format3__e2NodeInfoChange_List),
+	offsetof(struct E2SM_RC_EventTrigger_Format3__e2NodeInfoChange_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_e2NodeInfoChange_List_2 = {
+	"e2NodeInfoChange-List",
+	"e2NodeInfoChange-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_e2NodeInfoChange_List_tags_2,
+	sizeof(asn_DEF_e2NodeInfoChange_List_tags_2)
+		/sizeof(asn_DEF_e2NodeInfoChange_List_tags_2[0]) - 1, /* 1 */
+	asn_DEF_e2NodeInfoChange_List_tags_2,	/* Same as above */
+	sizeof(asn_DEF_e2NodeInfoChange_List_tags_2)
+		/sizeof(asn_DEF_e2NodeInfoChange_List_tags_2[0]), /* 2 */
+	{ &asn_OER_type_e2NodeInfoChange_List_constr_2, &asn_PER_type_e2NodeInfoChange_List_constr_2, SEQUENCE_OF_constraint },
+	asn_MBR_e2NodeInfoChange_List_2,
+	1,	/* Single element */
+	&asn_SPC_e2NodeInfoChange_List_specs_2	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_EventTrigger_Format3_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_EventTrigger_Format3, e2NodeInfoChange_List),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_e2NodeInfoChange_List_2,
+		0,
+		{ &asn_OER_memb_e2NodeInfoChange_List_constr_2, &asn_PER_memb_e2NodeInfoChange_List_constr_2,  memb_e2NodeInfoChange_List_constraint_1 },
+		0, 0, /* No default value */
+		"e2NodeInfoChange-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_EventTrigger_Format3_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_EventTrigger_Format3_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* e2NodeInfoChange-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_EventTrigger_Format3_specs_1 = {
+	sizeof(struct E2SM_RC_EventTrigger_Format3),
+	offsetof(struct E2SM_RC_EventTrigger_Format3, _asn_ctx),
+	asn_MAP_E2SM_RC_EventTrigger_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_EventTrigger_Format3 = {
+	"E2SM-RC-EventTrigger-Format3",
+	"E2SM-RC-EventTrigger-Format3",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_EventTrigger_Format3_tags_1,
+	sizeof(asn_DEF_E2SM_RC_EventTrigger_Format3_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_EventTrigger_Format3_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_EventTrigger_Format3_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_EventTrigger_Format3_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_EventTrigger_Format3_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_EventTrigger_Format3_1,
+	1,	/* Elements count */
+	&asn_SPC_E2SM_RC_EventTrigger_Format3_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-EventTrigger-Format4-Item.c b/e2sm/lib/E2SM-RC-EventTrigger-Format4-Item.c
new file mode 100644
index 0000000..35d496a
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-EventTrigger-Format4-Item.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-EventTrigger-Format4-Item.h"
+
+#include "EventTrigger-UE-Info.h"
+asn_TYPE_member_t asn_MBR_E2SM_RC_EventTrigger_Format4_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_EventTrigger_Format4_Item, 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_NOFLAGS, 0, offsetof(struct E2SM_RC_EventTrigger_Format4_Item, triggerType),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_TriggerType_Choice,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"triggerType"
+		},
+	{ ATF_POINTER, 2, offsetof(struct E2SM_RC_EventTrigger_Format4_Item, associatedUEInfo),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_EventTrigger_UE_Info,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"associatedUEInfo"
+		},
+	{ ATF_POINTER, 1, offsetof(struct E2SM_RC_EventTrigger_Format4_Item, logicalOR),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_LogicalOR,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"logicalOR"
+		},
+};
+static const int asn_MAP_E2SM_RC_EventTrigger_Format4_Item_oms_1[] = { 2, 3 };
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_EventTrigger_Format4_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_EventTrigger_Format4_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-eventTriggerCondition-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* triggerType */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* associatedUEInfo */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* logicalOR */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_EventTrigger_Format4_Item_specs_1 = {
+	sizeof(struct E2SM_RC_EventTrigger_Format4_Item),
+	offsetof(struct E2SM_RC_EventTrigger_Format4_Item, _asn_ctx),
+	asn_MAP_E2SM_RC_EventTrigger_Format4_Item_tag2el_1,
+	4,	/* Count of tags in the map */
+	asn_MAP_E2SM_RC_EventTrigger_Format4_Item_oms_1,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	4,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_EventTrigger_Format4_Item = {
+	"E2SM-RC-EventTrigger-Format4-Item",
+	"E2SM-RC-EventTrigger-Format4-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_EventTrigger_Format4_Item_tags_1,
+	sizeof(asn_DEF_E2SM_RC_EventTrigger_Format4_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_EventTrigger_Format4_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_EventTrigger_Format4_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_EventTrigger_Format4_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_EventTrigger_Format4_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_EventTrigger_Format4_Item_1,
+	4,	/* Elements count */
+	&asn_SPC_E2SM_RC_EventTrigger_Format4_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-EventTrigger-Format4.c b/e2sm/lib/E2SM-RC-EventTrigger-Format4.c
new file mode 100644
index 0000000..8fa15b7
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-EventTrigger-Format4.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-EventTrigger-Format4.h"
+
+#include "E2SM-RC-EventTrigger-Format4-Item.h"
+static int
+memb_uEInfoChange_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_uEInfoChange_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_type_uEInfoChange_List_constr_2 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_uEInfoChange_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_memb_uEInfoChange_List_constr_2 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_uEInfoChange_List_2[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2SM_RC_EventTrigger_Format4_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_uEInfoChange_List_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_uEInfoChange_List_specs_2 = {
+	sizeof(struct E2SM_RC_EventTrigger_Format4__uEInfoChange_List),
+	offsetof(struct E2SM_RC_EventTrigger_Format4__uEInfoChange_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_uEInfoChange_List_2 = {
+	"uEInfoChange-List",
+	"uEInfoChange-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_uEInfoChange_List_tags_2,
+	sizeof(asn_DEF_uEInfoChange_List_tags_2)
+		/sizeof(asn_DEF_uEInfoChange_List_tags_2[0]) - 1, /* 1 */
+	asn_DEF_uEInfoChange_List_tags_2,	/* Same as above */
+	sizeof(asn_DEF_uEInfoChange_List_tags_2)
+		/sizeof(asn_DEF_uEInfoChange_List_tags_2[0]), /* 2 */
+	{ &asn_OER_type_uEInfoChange_List_constr_2, &asn_PER_type_uEInfoChange_List_constr_2, SEQUENCE_OF_constraint },
+	asn_MBR_uEInfoChange_List_2,
+	1,	/* Single element */
+	&asn_SPC_uEInfoChange_List_specs_2	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_EventTrigger_Format4_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_EventTrigger_Format4, uEInfoChange_List),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_uEInfoChange_List_2,
+		0,
+		{ &asn_OER_memb_uEInfoChange_List_constr_2, &asn_PER_memb_uEInfoChange_List_constr_2,  memb_uEInfoChange_List_constraint_1 },
+		0, 0, /* No default value */
+		"uEInfoChange-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_EventTrigger_Format4_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_EventTrigger_Format4_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* uEInfoChange-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_EventTrigger_Format4_specs_1 = {
+	sizeof(struct E2SM_RC_EventTrigger_Format4),
+	offsetof(struct E2SM_RC_EventTrigger_Format4, _asn_ctx),
+	asn_MAP_E2SM_RC_EventTrigger_Format4_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_EventTrigger_Format4 = {
+	"E2SM-RC-EventTrigger-Format4",
+	"E2SM-RC-EventTrigger-Format4",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_EventTrigger_Format4_tags_1,
+	sizeof(asn_DEF_E2SM_RC_EventTrigger_Format4_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_EventTrigger_Format4_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_EventTrigger_Format4_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_EventTrigger_Format4_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_EventTrigger_Format4_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_EventTrigger_Format4_1,
+	1,	/* Elements count */
+	&asn_SPC_E2SM_RC_EventTrigger_Format4_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-EventTrigger-Format5.c b/e2sm/lib/E2SM-RC-EventTrigger-Format5.c
new file mode 100644
index 0000000..f7ebe17
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-EventTrigger-Format5.c
@@ -0,0 +1,123 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-EventTrigger-Format5.h"
+
+#include "EventTrigger-UE-Info.h"
+#include "EventTrigger-Cell-Info.h"
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_onDemand_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_type_onDemand_constr_2 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }	/* (0..0,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_onDemand_value2enum_2[] = {
+	{ 0,	4,	"true" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_onDemand_enum2value_2[] = {
+	0	/* true(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_onDemand_specs_2 = {
+	asn_MAP_onDemand_value2enum_2,	/* "tag" => N; sorted by tag */
+	asn_MAP_onDemand_enum2value_2,	/* N => "tag"; sorted by N */
+	1,	/* Number of elements in the maps */
+	2,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_onDemand_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_onDemand_2 = {
+	"onDemand",
+	"onDemand",
+	&asn_OP_NativeEnumerated,
+	asn_DEF_onDemand_tags_2,
+	sizeof(asn_DEF_onDemand_tags_2)
+		/sizeof(asn_DEF_onDemand_tags_2[0]) - 1, /* 1 */
+	asn_DEF_onDemand_tags_2,	/* Same as above */
+	sizeof(asn_DEF_onDemand_tags_2)
+		/sizeof(asn_DEF_onDemand_tags_2[0]), /* 2 */
+	{ &asn_OER_type_onDemand_constr_2, &asn_PER_type_onDemand_constr_2, NativeEnumerated_constraint },
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_onDemand_specs_2	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_EventTrigger_Format5_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_EventTrigger_Format5, onDemand),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_onDemand_2,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"onDemand"
+		},
+	{ ATF_POINTER, 2, offsetof(struct E2SM_RC_EventTrigger_Format5, associatedUEInfo),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_EventTrigger_UE_Info,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"associatedUEInfo"
+		},
+	{ ATF_POINTER, 1, offsetof(struct E2SM_RC_EventTrigger_Format5, associatedCellInfo),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_EventTrigger_Cell_Info,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"associatedCellInfo"
+		},
+};
+static const int asn_MAP_E2SM_RC_EventTrigger_Format5_oms_1[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_EventTrigger_Format5_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_EventTrigger_Format5_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* onDemand */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* associatedUEInfo */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* associatedCellInfo */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_EventTrigger_Format5_specs_1 = {
+	sizeof(struct E2SM_RC_EventTrigger_Format5),
+	offsetof(struct E2SM_RC_EventTrigger_Format5, _asn_ctx),
+	asn_MAP_E2SM_RC_EventTrigger_Format5_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_E2SM_RC_EventTrigger_Format5_oms_1,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	3,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_EventTrigger_Format5 = {
+	"E2SM-RC-EventTrigger-Format5",
+	"E2SM-RC-EventTrigger-Format5",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_EventTrigger_Format5_tags_1,
+	sizeof(asn_DEF_E2SM_RC_EventTrigger_Format5_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_EventTrigger_Format5_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_EventTrigger_Format5_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_EventTrigger_Format5_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_EventTrigger_Format5_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_EventTrigger_Format5_1,
+	3,	/* Elements count */
+	&asn_SPC_E2SM_RC_EventTrigger_Format5_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-EventTrigger.c b/e2sm/lib/E2SM-RC-EventTrigger.c
new file mode 100644
index 0000000..6991f39
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-EventTrigger.c
@@ -0,0 +1,142 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-EventTrigger.h"
+
+#include "E2SM-RC-EventTrigger-Format1.h"
+#include "E2SM-RC-EventTrigger-Format2.h"
+#include "E2SM-RC-EventTrigger-Format3.h"
+#include "E2SM-RC-EventTrigger-Format4.h"
+#include "E2SM-RC-EventTrigger-Format5.h"
+static asn_oer_constraints_t asn_OER_type_ric_eventTrigger_formats_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_type_ric_eventTrigger_formats_constr_2 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  4 }	/* (0..4,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ric_eventTrigger_formats_2[] = {
+	{ ATF_POINTER, 0, offsetof(struct E2SM_RC_EventTrigger__ric_eventTrigger_formats, choice.eventTrigger_Format1),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2SM_RC_EventTrigger_Format1,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"eventTrigger-Format1"
+		},
+	{ ATF_POINTER, 0, offsetof(struct E2SM_RC_EventTrigger__ric_eventTrigger_formats, choice.eventTrigger_Format2),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2SM_RC_EventTrigger_Format2,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"eventTrigger-Format2"
+		},
+	{ ATF_POINTER, 0, offsetof(struct E2SM_RC_EventTrigger__ric_eventTrigger_formats, choice.eventTrigger_Format3),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2SM_RC_EventTrigger_Format3,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"eventTrigger-Format3"
+		},
+	{ ATF_POINTER, 0, offsetof(struct E2SM_RC_EventTrigger__ric_eventTrigger_formats, choice.eventTrigger_Format4),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2SM_RC_EventTrigger_Format4,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"eventTrigger-Format4"
+		},
+	{ ATF_POINTER, 0, offsetof(struct E2SM_RC_EventTrigger__ric_eventTrigger_formats, choice.eventTrigger_Format5),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2SM_RC_EventTrigger_Format5,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"eventTrigger-Format5"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_ric_eventTrigger_formats_tag2el_2[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventTrigger-Format1 */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eventTrigger-Format2 */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* eventTrigger-Format3 */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* eventTrigger-Format4 */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* eventTrigger-Format5 */
+};
+static asn_CHOICE_specifics_t asn_SPC_ric_eventTrigger_formats_specs_2 = {
+	sizeof(struct E2SM_RC_EventTrigger__ric_eventTrigger_formats),
+	offsetof(struct E2SM_RC_EventTrigger__ric_eventTrigger_formats, _asn_ctx),
+	offsetof(struct E2SM_RC_EventTrigger__ric_eventTrigger_formats, present),
+	sizeof(((struct E2SM_RC_EventTrigger__ric_eventTrigger_formats *)0)->present),
+	asn_MAP_ric_eventTrigger_formats_tag2el_2,
+	5,	/* Count of tags in the map */
+	0, 0,
+	5	/* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ric_eventTrigger_formats_2 = {
+	"ric-eventTrigger-formats",
+	"ric-eventTrigger-formats",
+	&asn_OP_CHOICE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ &asn_OER_type_ric_eventTrigger_formats_constr_2, &asn_PER_type_ric_eventTrigger_formats_constr_2, CHOICE_constraint },
+	asn_MBR_ric_eventTrigger_formats_2,
+	5,	/* Elements count */
+	&asn_SPC_ric_eventTrigger_formats_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_E2SM_RC_EventTrigger_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_EventTrigger, ric_eventTrigger_formats),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_ric_eventTrigger_formats_2,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-eventTrigger-formats"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_EventTrigger_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_EventTrigger_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ric-eventTrigger-formats */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_EventTrigger_specs_1 = {
+	sizeof(struct E2SM_RC_EventTrigger),
+	offsetof(struct E2SM_RC_EventTrigger, _asn_ctx),
+	asn_MAP_E2SM_RC_EventTrigger_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_EventTrigger = {
+	"E2SM-RC-EventTrigger",
+	"E2SM-RC-EventTrigger",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_EventTrigger_tags_1,
+	sizeof(asn_DEF_E2SM_RC_EventTrigger_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_EventTrigger_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_EventTrigger_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_EventTrigger_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_EventTrigger_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_EventTrigger_1,
+	1,	/* Elements count */
+	&asn_SPC_E2SM_RC_EventTrigger_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-IndicationHeader-Format1.c b/e2sm/lib/E2SM-RC-IndicationHeader-Format1.c
new file mode 100644
index 0000000..7a880ae
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-IndicationHeader-Format1.c
@@ -0,0 +1,52 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-IndicationHeader-Format1.h"
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationHeader_Format1_1[] = {
+	{ ATF_POINTER, 1, offsetof(struct E2SM_RC_IndicationHeader_Format1, 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"
+		},
+};
+static const int asn_MAP_E2SM_RC_IndicationHeader_Format1_oms_1[] = { 0 };
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_IndicationHeader_Format1_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_IndicationHeader_Format1_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ric-eventTriggerCondition-ID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationHeader_Format1_specs_1 = {
+	sizeof(struct E2SM_RC_IndicationHeader_Format1),
+	offsetof(struct E2SM_RC_IndicationHeader_Format1, _asn_ctx),
+	asn_MAP_E2SM_RC_IndicationHeader_Format1_tag2el_1,
+	1,	/* Count of tags in the map */
+	asn_MAP_E2SM_RC_IndicationHeader_Format1_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	1,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_IndicationHeader_Format1 = {
+	"E2SM-RC-IndicationHeader-Format1",
+	"E2SM-RC-IndicationHeader-Format1",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_IndicationHeader_Format1_tags_1,
+	sizeof(asn_DEF_E2SM_RC_IndicationHeader_Format1_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationHeader_Format1_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_IndicationHeader_Format1_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_IndicationHeader_Format1_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationHeader_Format1_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_IndicationHeader_Format1_1,
+	1,	/* Elements count */
+	&asn_SPC_E2SM_RC_IndicationHeader_Format1_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-IndicationHeader-Format2.c b/e2sm/lib/E2SM-RC-IndicationHeader-Format2.c
new file mode 100644
index 0000000..4b7724c
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-IndicationHeader-Format2.c
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-IndicationHeader-Format2.h"
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationHeader_Format2_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_IndicationHeader_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_NOFLAGS, 0, offsetof(struct E2SM_RC_IndicationHeader_Format2, ric_InsertStyle_Type),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_Style_Type,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-InsertStyle-Type"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_IndicationHeader_Format2, ric_InsertIndication_ID),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_InsertIndication_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-InsertIndication-ID"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_IndicationHeader_Format2_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_IndicationHeader_Format2_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ueID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-InsertStyle-Type */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ric-InsertIndication-ID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationHeader_Format2_specs_1 = {
+	sizeof(struct E2SM_RC_IndicationHeader_Format2),
+	offsetof(struct E2SM_RC_IndicationHeader_Format2, _asn_ctx),
+	asn_MAP_E2SM_RC_IndicationHeader_Format2_tag2el_1,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	3,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_IndicationHeader_Format2 = {
+	"E2SM-RC-IndicationHeader-Format2",
+	"E2SM-RC-IndicationHeader-Format2",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_IndicationHeader_Format2_tags_1,
+	sizeof(asn_DEF_E2SM_RC_IndicationHeader_Format2_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationHeader_Format2_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_IndicationHeader_Format2_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_IndicationHeader_Format2_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationHeader_Format2_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_IndicationHeader_Format2_1,
+	3,	/* Elements count */
+	&asn_SPC_E2SM_RC_IndicationHeader_Format2_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-IndicationHeader.c b/e2sm/lib/E2SM-RC-IndicationHeader.c
new file mode 100644
index 0000000..c5764a4
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-IndicationHeader.c
@@ -0,0 +1,109 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-IndicationHeader.h"
+
+#include "E2SM-RC-IndicationHeader-Format1.h"
+#include "E2SM-RC-IndicationHeader-Format2.h"
+static asn_oer_constraints_t asn_OER_type_ric_indicationHeader_formats_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_type_ric_indicationHeader_formats_constr_2 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_TYPE_member_t asn_MBR_ric_indicationHeader_formats_2[] = {
+	{ ATF_POINTER, 0, offsetof(struct E2SM_RC_IndicationHeader__ric_indicationHeader_formats, choice.indicationHeader_Format1),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2SM_RC_IndicationHeader_Format1,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"indicationHeader-Format1"
+		},
+	{ ATF_POINTER, 0, offsetof(struct E2SM_RC_IndicationHeader__ric_indicationHeader_formats, choice.indicationHeader_Format2),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2SM_RC_IndicationHeader_Format2,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"indicationHeader-Format2"
+		},
+};
+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 */
+};
+static asn_CHOICE_specifics_t asn_SPC_ric_indicationHeader_formats_specs_2 = {
+	sizeof(struct E2SM_RC_IndicationHeader__ric_indicationHeader_formats),
+	offsetof(struct E2SM_RC_IndicationHeader__ric_indicationHeader_formats, _asn_ctx),
+	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 */
+	0, 0,
+	2	/* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ric_indicationHeader_formats_2 = {
+	"ric-indicationHeader-formats",
+	"ric-indicationHeader-formats",
+	&asn_OP_CHOICE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	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 */
+	&asn_SPC_ric_indicationHeader_formats_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationHeader_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_IndicationHeader, ric_indicationHeader_formats),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_ric_indicationHeader_formats_2,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-indicationHeader-formats"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_IndicationHeader_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_IndicationHeader_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ric-indicationHeader-formats */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationHeader_specs_1 = {
+	sizeof(struct E2SM_RC_IndicationHeader),
+	offsetof(struct E2SM_RC_IndicationHeader, _asn_ctx),
+	asn_MAP_E2SM_RC_IndicationHeader_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_IndicationHeader = {
+	"E2SM-RC-IndicationHeader",
+	"E2SM-RC-IndicationHeader",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_IndicationHeader_tags_1,
+	sizeof(asn_DEF_E2SM_RC_IndicationHeader_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationHeader_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_IndicationHeader_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_IndicationHeader_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationHeader_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_IndicationHeader_1,
+	1,	/* Elements count */
+	&asn_SPC_E2SM_RC_IndicationHeader_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-IndicationMessage-Format1-Item.c b/e2sm/lib/E2SM-RC-IndicationMessage-Format1-Item.c
new file mode 100644
index 0000000..b84dcc1
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-IndicationMessage-Format1-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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-IndicationMessage-Format1-Item.h"
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_Format1_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_IndicationMessage_Format1_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_Format1_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_Format1_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_IndicationMessage_Format1_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_Format1_Item_specs_1 = {
+	sizeof(struct E2SM_RC_IndicationMessage_Format1_Item),
+	offsetof(struct E2SM_RC_IndicationMessage_Format1_Item, _asn_ctx),
+	asn_MAP_E2SM_RC_IndicationMessage_Format1_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_Format1_Item = {
+	"E2SM-RC-IndicationMessage-Format1-Item",
+	"E2SM-RC-IndicationMessage-Format1-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_IndicationMessage_Format1_Item_tags_1,
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format1_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format1_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_IndicationMessage_Format1_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format1_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format1_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_IndicationMessage_Format1_Item_1,
+	2,	/* Elements count */
+	&asn_SPC_E2SM_RC_IndicationMessage_Format1_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-IndicationMessage-Format1.c b/e2sm/lib/E2SM-RC-IndicationMessage-Format1.c
new file mode 100644
index 0000000..0395dbd
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-IndicationMessage-Format1.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-IndicationMessage-Format1.h"
+
+#include "E2SM-RC-IndicationMessage-Format1-Item.h"
+static int
+memb_ranP_Reported_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_Reported_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_type_ranP_Reported_List_constr_2 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_Reported_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_memb_ranP_Reported_List_constr_2 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_Reported_List_2[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2SM_RC_IndicationMessage_Format1_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ranP_Reported_List_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ranP_Reported_List_specs_2 = {
+	sizeof(struct E2SM_RC_IndicationMessage_Format1__ranP_Reported_List),
+	offsetof(struct E2SM_RC_IndicationMessage_Format1__ranP_Reported_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ranP_Reported_List_2 = {
+	"ranP-Reported-List",
+	"ranP-Reported-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ranP_Reported_List_tags_2,
+	sizeof(asn_DEF_ranP_Reported_List_tags_2)
+		/sizeof(asn_DEF_ranP_Reported_List_tags_2[0]) - 1, /* 1 */
+	asn_DEF_ranP_Reported_List_tags_2,	/* Same as above */
+	sizeof(asn_DEF_ranP_Reported_List_tags_2)
+		/sizeof(asn_DEF_ranP_Reported_List_tags_2[0]), /* 2 */
+	{ &asn_OER_type_ranP_Reported_List_constr_2, &asn_PER_type_ranP_Reported_List_constr_2, SEQUENCE_OF_constraint },
+	asn_MBR_ranP_Reported_List_2,
+	1,	/* Single element */
+	&asn_SPC_ranP_Reported_List_specs_2	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_Format1_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_IndicationMessage_Format1, ranP_Reported_List),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_ranP_Reported_List_2,
+		0,
+		{ &asn_OER_memb_ranP_Reported_List_constr_2, &asn_PER_memb_ranP_Reported_List_constr_2,  memb_ranP_Reported_List_constraint_1 },
+		0, 0, /* No default value */
+		"ranP-Reported-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_IndicationMessage_Format1_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_IndicationMessage_Format1_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ranP-Reported-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationMessage_Format1_specs_1 = {
+	sizeof(struct E2SM_RC_IndicationMessage_Format1),
+	offsetof(struct E2SM_RC_IndicationMessage_Format1, _asn_ctx),
+	asn_MAP_E2SM_RC_IndicationMessage_Format1_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_Format1 = {
+	"E2SM-RC-IndicationMessage-Format1",
+	"E2SM-RC-IndicationMessage-Format1",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_IndicationMessage_Format1_tags_1,
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format1_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format1_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_IndicationMessage_Format1_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format1_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format1_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_IndicationMessage_Format1_1,
+	1,	/* Elements count */
+	&asn_SPC_E2SM_RC_IndicationMessage_Format1_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-IndicationMessage-Format2-Item.c b/e2sm/lib/E2SM-RC-IndicationMessage-Format2-Item.c
new file mode 100644
index 0000000..5091cd5
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-IndicationMessage-Format2-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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-IndicationMessage-Format2-Item.h"
+
+#include "E2SM-RC-IndicationMessage-Format2-RANParameter-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_IndicationMessage_Format2_RANParameter_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_IndicationMessage_Format2_Item__ranP_List),
+	offsetof(struct E2SM_RC_IndicationMessage_Format2_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_IndicationMessage_Format2_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_IndicationMessage_Format2_Item, 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_NOFLAGS, 0, offsetof(struct E2SM_RC_IndicationMessage_Format2_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_IndicationMessage_Format2_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_IndicationMessage_Format2_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ueID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranP-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationMessage_Format2_Item_specs_1 = {
+	sizeof(struct E2SM_RC_IndicationMessage_Format2_Item),
+	offsetof(struct E2SM_RC_IndicationMessage_Format2_Item, _asn_ctx),
+	asn_MAP_E2SM_RC_IndicationMessage_Format2_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_Format2_Item = {
+	"E2SM-RC-IndicationMessage-Format2-Item",
+	"E2SM-RC-IndicationMessage-Format2-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_IndicationMessage_Format2_Item_tags_1,
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format2_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format2_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_IndicationMessage_Format2_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format2_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format2_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_IndicationMessage_Format2_Item_1,
+	2,	/* Elements count */
+	&asn_SPC_E2SM_RC_IndicationMessage_Format2_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-IndicationMessage-Format2-RANParameter-Item.c b/e2sm/lib/E2SM-RC-IndicationMessage-Format2-RANParameter-Item.c
new file mode 100644
index 0000000..c750920
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-IndicationMessage-Format2-RANParameter-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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-IndicationMessage-Format2-RANParameter-Item.h"
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_Format2_RANParameter_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_IndicationMessage_Format2_RANParameter_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_Format2_RANParameter_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_Format2_RANParameter_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_IndicationMessage_Format2_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-valueType */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationMessage_Format2_RANParameter_Item_specs_1 = {
+	sizeof(struct E2SM_RC_IndicationMessage_Format2_RANParameter_Item),
+	offsetof(struct E2SM_RC_IndicationMessage_Format2_RANParameter_Item, _asn_ctx),
+	asn_MAP_E2SM_RC_IndicationMessage_Format2_RANParameter_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_Format2_RANParameter_Item = {
+	"E2SM-RC-IndicationMessage-Format2-RANParameter-Item",
+	"E2SM-RC-IndicationMessage-Format2-RANParameter-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_IndicationMessage_Format2_RANParameter_Item_tags_1,
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format2_RANParameter_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format2_RANParameter_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_IndicationMessage_Format2_RANParameter_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format2_RANParameter_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format2_RANParameter_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_IndicationMessage_Format2_RANParameter_Item_1,
+	2,	/* Elements count */
+	&asn_SPC_E2SM_RC_IndicationMessage_Format2_RANParameter_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-IndicationMessage-Format2.c b/e2sm/lib/E2SM-RC-IndicationMessage-Format2.c
new file mode 100644
index 0000000..a4210cc
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-IndicationMessage-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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-IndicationMessage-Format2.h"
+
+#include "E2SM-RC-IndicationMessage-Format2-Item.h"
+static int
+memb_ueParameter_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_ueParameter_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_type_ueParameter_List_constr_2 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_ueParameter_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_memb_ueParameter_List_constr_2 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_ueParameter_List_2[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2SM_RC_IndicationMessage_Format2_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ueParameter_List_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ueParameter_List_specs_2 = {
+	sizeof(struct E2SM_RC_IndicationMessage_Format2__ueParameter_List),
+	offsetof(struct E2SM_RC_IndicationMessage_Format2__ueParameter_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ueParameter_List_2 = {
+	"ueParameter-List",
+	"ueParameter-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ueParameter_List_tags_2,
+	sizeof(asn_DEF_ueParameter_List_tags_2)
+		/sizeof(asn_DEF_ueParameter_List_tags_2[0]) - 1, /* 1 */
+	asn_DEF_ueParameter_List_tags_2,	/* Same as above */
+	sizeof(asn_DEF_ueParameter_List_tags_2)
+		/sizeof(asn_DEF_ueParameter_List_tags_2[0]), /* 2 */
+	{ &asn_OER_type_ueParameter_List_constr_2, &asn_PER_type_ueParameter_List_constr_2, SEQUENCE_OF_constraint },
+	asn_MBR_ueParameter_List_2,
+	1,	/* Single element */
+	&asn_SPC_ueParameter_List_specs_2	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_Format2_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_IndicationMessage_Format2, ueParameter_List),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_ueParameter_List_2,
+		0,
+		{ &asn_OER_memb_ueParameter_List_constr_2, &asn_PER_memb_ueParameter_List_constr_2,  memb_ueParameter_List_constraint_1 },
+		0, 0, /* No default value */
+		"ueParameter-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_IndicationMessage_Format2_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_IndicationMessage_Format2_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ueParameter-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationMessage_Format2_specs_1 = {
+	sizeof(struct E2SM_RC_IndicationMessage_Format2),
+	offsetof(struct E2SM_RC_IndicationMessage_Format2, _asn_ctx),
+	asn_MAP_E2SM_RC_IndicationMessage_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_IndicationMessage_Format2 = {
+	"E2SM-RC-IndicationMessage-Format2",
+	"E2SM-RC-IndicationMessage-Format2",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_IndicationMessage_Format2_tags_1,
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format2_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format2_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_IndicationMessage_Format2_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format2_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format2_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_IndicationMessage_Format2_1,
+	1,	/* Elements count */
+	&asn_SPC_E2SM_RC_IndicationMessage_Format2_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-IndicationMessage-Format3-Item.c b/e2sm/lib/E2SM-RC-IndicationMessage-Format3-Item.c
new file mode 100644
index 0000000..2dd2b21
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-IndicationMessage-Format3-Item.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-IndicationMessage-Format3-Item.h"
+
+#include "NeighborRelation-Info.h"
+asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_Format3_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_IndicationMessage_Format3_Item, cellGlobal_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_CGI,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"cellGlobal-ID"
+		},
+	{ ATF_POINTER, 3, offsetof(struct E2SM_RC_IndicationMessage_Format3_Item, cellContextInfo),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_OCTET_STRING,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"cellContextInfo"
+		},
+	{ ATF_POINTER, 2, offsetof(struct E2SM_RC_IndicationMessage_Format3_Item, cellDeleted),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_BOOLEAN,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"cellDeleted"
+		},
+	{ ATF_POINTER, 1, offsetof(struct E2SM_RC_IndicationMessage_Format3_Item, neighborRelation_Table),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NeighborRelation_Info,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"neighborRelation-Table"
+		},
+};
+static const int asn_MAP_E2SM_RC_IndicationMessage_Format3_Item_oms_1[] = { 1, 2, 3 };
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_IndicationMessage_Format3_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_IndicationMessage_Format3_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellGlobal-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cellContextInfo */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* cellDeleted */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* neighborRelation-Table */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationMessage_Format3_Item_specs_1 = {
+	sizeof(struct E2SM_RC_IndicationMessage_Format3_Item),
+	offsetof(struct E2SM_RC_IndicationMessage_Format3_Item, _asn_ctx),
+	asn_MAP_E2SM_RC_IndicationMessage_Format3_Item_tag2el_1,
+	4,	/* Count of tags in the map */
+	asn_MAP_E2SM_RC_IndicationMessage_Format3_Item_oms_1,	/* Optional members */
+	3, 0,	/* Root/Additions */
+	4,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_IndicationMessage_Format3_Item = {
+	"E2SM-RC-IndicationMessage-Format3-Item",
+	"E2SM-RC-IndicationMessage-Format3-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_IndicationMessage_Format3_Item_tags_1,
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format3_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format3_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_IndicationMessage_Format3_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format3_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format3_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_IndicationMessage_Format3_Item_1,
+	4,	/* Elements count */
+	&asn_SPC_E2SM_RC_IndicationMessage_Format3_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-IndicationMessage-Format3.c b/e2sm/lib/E2SM-RC-IndicationMessage-Format3.c
new file mode 100644
index 0000000..2573d44
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-IndicationMessage-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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-IndicationMessage-Format3.h"
+
+#include "E2SM-RC-IndicationMessage-Format3-Item.h"
+static int
+memb_cellInfo_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_cellInfo_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_type_cellInfo_List_constr_2 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_cellInfo_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_memb_cellInfo_List_constr_2 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_cellInfo_List_2[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2SM_RC_IndicationMessage_Format3_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_cellInfo_List_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_cellInfo_List_specs_2 = {
+	sizeof(struct E2SM_RC_IndicationMessage_Format3__cellInfo_List),
+	offsetof(struct E2SM_RC_IndicationMessage_Format3__cellInfo_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_cellInfo_List_2 = {
+	"cellInfo-List",
+	"cellInfo-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_cellInfo_List_tags_2,
+	sizeof(asn_DEF_cellInfo_List_tags_2)
+		/sizeof(asn_DEF_cellInfo_List_tags_2[0]) - 1, /* 1 */
+	asn_DEF_cellInfo_List_tags_2,	/* Same as above */
+	sizeof(asn_DEF_cellInfo_List_tags_2)
+		/sizeof(asn_DEF_cellInfo_List_tags_2[0]), /* 2 */
+	{ &asn_OER_type_cellInfo_List_constr_2, &asn_PER_type_cellInfo_List_constr_2, SEQUENCE_OF_constraint },
+	asn_MBR_cellInfo_List_2,
+	1,	/* Single element */
+	&asn_SPC_cellInfo_List_specs_2	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_Format3_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_IndicationMessage_Format3, cellInfo_List),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_cellInfo_List_2,
+		0,
+		{ &asn_OER_memb_cellInfo_List_constr_2, &asn_PER_memb_cellInfo_List_constr_2,  memb_cellInfo_List_constraint_1 },
+		0, 0, /* No default value */
+		"cellInfo-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_IndicationMessage_Format3_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_IndicationMessage_Format3_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cellInfo-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationMessage_Format3_specs_1 = {
+	sizeof(struct E2SM_RC_IndicationMessage_Format3),
+	offsetof(struct E2SM_RC_IndicationMessage_Format3, _asn_ctx),
+	asn_MAP_E2SM_RC_IndicationMessage_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_IndicationMessage_Format3 = {
+	"E2SM-RC-IndicationMessage-Format3",
+	"E2SM-RC-IndicationMessage-Format3",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_IndicationMessage_Format3_tags_1,
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format3_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format3_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_IndicationMessage_Format3_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format3_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format3_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_IndicationMessage_Format3_1,
+	1,	/* Elements count */
+	&asn_SPC_E2SM_RC_IndicationMessage_Format3_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-IndicationMessage-Format4-ItemCell.c b/e2sm/lib/E2SM-RC-IndicationMessage-Format4-ItemCell.c
new file mode 100644
index 0000000..113d318
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-IndicationMessage-Format4-ItemCell.c
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-IndicationMessage-Format4-ItemCell.h"
+
+#include "NeighborRelation-Info.h"
+asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_Format4_ItemCell_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_IndicationMessage_Format4_ItemCell, cellGlobal_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_CGI,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"cellGlobal-ID"
+		},
+	{ ATF_POINTER, 2, offsetof(struct E2SM_RC_IndicationMessage_Format4_ItemCell, cellContextInfo),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_OCTET_STRING,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"cellContextInfo"
+		},
+	{ ATF_POINTER, 1, offsetof(struct E2SM_RC_IndicationMessage_Format4_ItemCell, neighborRelation_Table),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NeighborRelation_Info,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"neighborRelation-Table"
+		},
+};
+static const int asn_MAP_E2SM_RC_IndicationMessage_Format4_ItemCell_oms_1[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_IndicationMessage_Format4_ItemCell_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_IndicationMessage_Format4_ItemCell_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellGlobal-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cellContextInfo */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* neighborRelation-Table */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationMessage_Format4_ItemCell_specs_1 = {
+	sizeof(struct E2SM_RC_IndicationMessage_Format4_ItemCell),
+	offsetof(struct E2SM_RC_IndicationMessage_Format4_ItemCell, _asn_ctx),
+	asn_MAP_E2SM_RC_IndicationMessage_Format4_ItemCell_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_E2SM_RC_IndicationMessage_Format4_ItemCell_oms_1,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	3,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_IndicationMessage_Format4_ItemCell = {
+	"E2SM-RC-IndicationMessage-Format4-ItemCell",
+	"E2SM-RC-IndicationMessage-Format4-ItemCell",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_IndicationMessage_Format4_ItemCell_tags_1,
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format4_ItemCell_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format4_ItemCell_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_IndicationMessage_Format4_ItemCell_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format4_ItemCell_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format4_ItemCell_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_IndicationMessage_Format4_ItemCell_1,
+	3,	/* Elements count */
+	&asn_SPC_E2SM_RC_IndicationMessage_Format4_ItemCell_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-IndicationMessage-Format4-ItemUE.c b/e2sm/lib/E2SM-RC-IndicationMessage-Format4-ItemUE.c
new file mode 100644
index 0000000..857e906
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-IndicationMessage-Format4-ItemUE.c
@@ -0,0 +1,72 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-IndicationMessage-Format4-ItemUE.h"
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_Format4_ItemUE_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_IndicationMessage_Format4_ItemUE, 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_IndicationMessage_Format4_ItemUE, ueContextInfo),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_OCTET_STRING,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ueContextInfo"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_IndicationMessage_Format4_ItemUE, cellGlobal_ID),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_CGI,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"cellGlobal-ID"
+		},
+};
+static const int asn_MAP_E2SM_RC_IndicationMessage_Format4_ItemUE_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_IndicationMessage_Format4_ItemUE_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_IndicationMessage_Format4_ItemUE_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ueID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ueContextInfo */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* cellGlobal-ID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationMessage_Format4_ItemUE_specs_1 = {
+	sizeof(struct E2SM_RC_IndicationMessage_Format4_ItemUE),
+	offsetof(struct E2SM_RC_IndicationMessage_Format4_ItemUE, _asn_ctx),
+	asn_MAP_E2SM_RC_IndicationMessage_Format4_ItemUE_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_E2SM_RC_IndicationMessage_Format4_ItemUE_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	3,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_E2SM_RC_IndicationMessage_Format4_ItemUE = {
+	"E2SM-RC-IndicationMessage-Format4-ItemUE",
+	"E2SM-RC-IndicationMessage-Format4-ItemUE",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_IndicationMessage_Format4_ItemUE_tags_1,
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format4_ItemUE_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format4_ItemUE_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_IndicationMessage_Format4_ItemUE_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format4_ItemUE_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format4_ItemUE_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_IndicationMessage_Format4_ItemUE_1,
+	3,	/* Elements count */
+	&asn_SPC_E2SM_RC_IndicationMessage_Format4_ItemUE_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-IndicationMessage-Format4.c b/e2sm/lib/E2SM-RC-IndicationMessage-Format4.c
new file mode 100644
index 0000000..dfcc96a
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-IndicationMessage-Format4.c
@@ -0,0 +1,220 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-IndicationMessage-Format4.h"
+
+#include "E2SM-RC-IndicationMessage-Format4-ItemUE.h"
+#include "E2SM-RC-IndicationMessage-Format4-ItemCell.h"
+static int
+memb_ueInfo_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 int
+memb_cellInfo_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_ueInfo_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(0..65535)) */};
+static asn_per_constraints_t asn_PER_type_ueInfo_List_constr_2 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_type_cellInfo_List_constr_4 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(0..65535)) */};
+static asn_per_constraints_t asn_PER_type_cellInfo_List_constr_4 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_ueInfo_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(0..65535)) */};
+static asn_per_constraints_t asn_PER_memb_ueInfo_List_constr_2 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_cellInfo_List_constr_4 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(0..65535)) */};
+static asn_per_constraints_t asn_PER_memb_cellInfo_List_constr_4 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_ueInfo_List_2[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2SM_RC_IndicationMessage_Format4_ItemUE,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ueInfo_List_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ueInfo_List_specs_2 = {
+	sizeof(struct E2SM_RC_IndicationMessage_Format4__ueInfo_List),
+	offsetof(struct E2SM_RC_IndicationMessage_Format4__ueInfo_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ueInfo_List_2 = {
+	"ueInfo-List",
+	"ueInfo-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ueInfo_List_tags_2,
+	sizeof(asn_DEF_ueInfo_List_tags_2)
+		/sizeof(asn_DEF_ueInfo_List_tags_2[0]) - 1, /* 1 */
+	asn_DEF_ueInfo_List_tags_2,	/* Same as above */
+	sizeof(asn_DEF_ueInfo_List_tags_2)
+		/sizeof(asn_DEF_ueInfo_List_tags_2[0]), /* 2 */
+	{ &asn_OER_type_ueInfo_List_constr_2, &asn_PER_type_ueInfo_List_constr_2, SEQUENCE_OF_constraint },
+	asn_MBR_ueInfo_List_2,
+	1,	/* Single element */
+	&asn_SPC_ueInfo_List_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_cellInfo_List_4[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2SM_RC_IndicationMessage_Format4_ItemCell,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_cellInfo_List_tags_4[] = {
+	(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_cellInfo_List_specs_4 = {
+	sizeof(struct E2SM_RC_IndicationMessage_Format4__cellInfo_List),
+	offsetof(struct E2SM_RC_IndicationMessage_Format4__cellInfo_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_cellInfo_List_4 = {
+	"cellInfo-List",
+	"cellInfo-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_cellInfo_List_tags_4,
+	sizeof(asn_DEF_cellInfo_List_tags_4)
+		/sizeof(asn_DEF_cellInfo_List_tags_4[0]) - 1, /* 1 */
+	asn_DEF_cellInfo_List_tags_4,	/* Same as above */
+	sizeof(asn_DEF_cellInfo_List_tags_4)
+		/sizeof(asn_DEF_cellInfo_List_tags_4[0]), /* 2 */
+	{ &asn_OER_type_cellInfo_List_constr_4, &asn_PER_type_cellInfo_List_constr_4, SEQUENCE_OF_constraint },
+	asn_MBR_cellInfo_List_4,
+	1,	/* Single element */
+	&asn_SPC_cellInfo_List_specs_4	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_Format4_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_IndicationMessage_Format4, ueInfo_List),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_ueInfo_List_2,
+		0,
+		{ &asn_OER_memb_ueInfo_List_constr_2, &asn_PER_memb_ueInfo_List_constr_2,  memb_ueInfo_List_constraint_1 },
+		0, 0, /* No default value */
+		"ueInfo-List"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_IndicationMessage_Format4, cellInfo_List),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		0,
+		&asn_DEF_cellInfo_List_4,
+		0,
+		{ &asn_OER_memb_cellInfo_List_constr_4, &asn_PER_memb_cellInfo_List_constr_4,  memb_cellInfo_List_constraint_1 },
+		0, 0, /* No default value */
+		"cellInfo-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_IndicationMessage_Format4_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_IndicationMessage_Format4_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ueInfo-List */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cellInfo-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationMessage_Format4_specs_1 = {
+	sizeof(struct E2SM_RC_IndicationMessage_Format4),
+	offsetof(struct E2SM_RC_IndicationMessage_Format4, _asn_ctx),
+	asn_MAP_E2SM_RC_IndicationMessage_Format4_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_Format4 = {
+	"E2SM-RC-IndicationMessage-Format4",
+	"E2SM-RC-IndicationMessage-Format4",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_IndicationMessage_Format4_tags_1,
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format4_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format4_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_IndicationMessage_Format4_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format4_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format4_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_IndicationMessage_Format4_1,
+	2,	/* Elements count */
+	&asn_SPC_E2SM_RC_IndicationMessage_Format4_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-IndicationMessage-Format5-Item.c b/e2sm/lib/E2SM-RC-IndicationMessage-Format5-Item.c
new file mode 100644
index 0000000..3b9541d
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-IndicationMessage-Format5-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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-IndicationMessage-Format5-Item.h"
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_Format5_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_IndicationMessage_Format5_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_Format5_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_Format5_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_IndicationMessage_Format5_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_Format5_Item_specs_1 = {
+	sizeof(struct E2SM_RC_IndicationMessage_Format5_Item),
+	offsetof(struct E2SM_RC_IndicationMessage_Format5_Item, _asn_ctx),
+	asn_MAP_E2SM_RC_IndicationMessage_Format5_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_Format5_Item = {
+	"E2SM-RC-IndicationMessage-Format5-Item",
+	"E2SM-RC-IndicationMessage-Format5-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_IndicationMessage_Format5_Item_tags_1,
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format5_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format5_Item_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_IndicationMessage_Format5_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format5_Item_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format5_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_IndicationMessage_Format5_Item_1,
+	2,	/* Elements count */
+	&asn_SPC_E2SM_RC_IndicationMessage_Format5_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-IndicationMessage-Format5.c b/e2sm/lib/E2SM-RC-IndicationMessage-Format5.c
new file mode 100644
index 0000000..3a5f71b
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-IndicationMessage-Format5.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-IndicationMessage-Format5.h"
+
+#include "E2SM-RC-IndicationMessage-Format5-Item.h"
+static int
+memb_ranP_Requested_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_Requested_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(0..65535)) */};
+static asn_per_constraints_t asn_PER_type_ranP_Requested_List_constr_2 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_Requested_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(0..65535)) */};
+static asn_per_constraints_t asn_PER_memb_ranP_Requested_List_constr_2 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_Requested_List_2[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_E2SM_RC_IndicationMessage_Format5_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ranP_Requested_List_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ranP_Requested_List_specs_2 = {
+	sizeof(struct E2SM_RC_IndicationMessage_Format5__ranP_Requested_List),
+	offsetof(struct E2SM_RC_IndicationMessage_Format5__ranP_Requested_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ranP_Requested_List_2 = {
+	"ranP-Requested-List",
+	"ranP-Requested-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ranP_Requested_List_tags_2,
+	sizeof(asn_DEF_ranP_Requested_List_tags_2)
+		/sizeof(asn_DEF_ranP_Requested_List_tags_2[0]) - 1, /* 1 */
+	asn_DEF_ranP_Requested_List_tags_2,	/* Same as above */
+	sizeof(asn_DEF_ranP_Requested_List_tags_2)
+		/sizeof(asn_DEF_ranP_Requested_List_tags_2[0]), /* 2 */
+	{ &asn_OER_type_ranP_Requested_List_constr_2, &asn_PER_type_ranP_Requested_List_constr_2, SEQUENCE_OF_constraint },
+	asn_MBR_ranP_Requested_List_2,
+	1,	/* Single element */
+	&asn_SPC_ranP_Requested_List_specs_2	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_Format5_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_IndicationMessage_Format5, ranP_Requested_List),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_ranP_Requested_List_2,
+		0,
+		{ &asn_OER_memb_ranP_Requested_List_constr_2, &asn_PER_memb_ranP_Requested_List_constr_2,  memb_ranP_Requested_List_constraint_1 },
+		0, 0, /* No default value */
+		"ranP-Requested-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_IndicationMessage_Format5_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_IndicationMessage_Format5_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ranP-Requested-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationMessage_Format5_specs_1 = {
+	sizeof(struct E2SM_RC_IndicationMessage_Format5),
+	offsetof(struct E2SM_RC_IndicationMessage_Format5, _asn_ctx),
+	asn_MAP_E2SM_RC_IndicationMessage_Format5_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_Format5 = {
+	"E2SM-RC-IndicationMessage-Format5",
+	"E2SM-RC-IndicationMessage-Format5",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_IndicationMessage_Format5_tags_1,
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format5_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format5_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_IndicationMessage_Format5_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format5_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_Format5_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_IndicationMessage_Format5_1,
+	1,	/* Elements count */
+	&asn_SPC_E2SM_RC_IndicationMessage_Format5_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-IndicationMessage.c b/e2sm/lib/E2SM-RC-IndicationMessage.c
new file mode 100644
index 0000000..3a4cd00
--- /dev/null
+++ b/e2sm/lib/E2SM-RC-IndicationMessage.c
@@ -0,0 +1,142 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "E2SM-RC-IndicationMessage.h"
+
+#include "E2SM-RC-IndicationMessage-Format1.h"
+#include "E2SM-RC-IndicationMessage-Format2.h"
+#include "E2SM-RC-IndicationMessage-Format3.h"
+#include "E2SM-RC-IndicationMessage-Format4.h"
+#include "E2SM-RC-IndicationMessage-Format5.h"
+static asn_oer_constraints_t asn_OER_type_ric_indicationMessage_formats_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_type_ric_indicationMessage_formats_constr_2 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  4 }	/* (0..4,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ric_indicationMessage_formats_2[] = {
+	{ ATF_POINTER, 0, offsetof(struct E2SM_RC_IndicationMessage__ric_indicationMessage_formats, choice.indicationMessage_Format1),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2SM_RC_IndicationMessage_Format1,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"indicationMessage-Format1"
+		},
+	{ ATF_POINTER, 0, offsetof(struct E2SM_RC_IndicationMessage__ric_indicationMessage_formats, choice.indicationMessage_Format2),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2SM_RC_IndicationMessage_Format2,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"indicationMessage-Format2"
+		},
+	{ ATF_POINTER, 0, offsetof(struct E2SM_RC_IndicationMessage__ric_indicationMessage_formats, choice.indicationMessage_Format3),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2SM_RC_IndicationMessage_Format3,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"indicationMessage-Format3"
+		},
+	{ ATF_POINTER, 0, offsetof(struct E2SM_RC_IndicationMessage__ric_indicationMessage_formats, choice.indicationMessage_Format4),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2SM_RC_IndicationMessage_Format4,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"indicationMessage-Format4"
+		},
+	{ ATF_POINTER, 0, offsetof(struct E2SM_RC_IndicationMessage__ric_indicationMessage_formats, choice.indicationMessage_Format5),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E2SM_RC_IndicationMessage_Format5,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"indicationMessage-Format5"
+		},
+};
+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 */
+};
+static asn_CHOICE_specifics_t asn_SPC_ric_indicationMessage_formats_specs_2 = {
+	sizeof(struct E2SM_RC_IndicationMessage__ric_indicationMessage_formats),
+	offsetof(struct E2SM_RC_IndicationMessage__ric_indicationMessage_formats, _asn_ctx),
+	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 */
+	0, 0,
+	5	/* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ric_indicationMessage_formats_2 = {
+	"ric-indicationMessage-formats",
+	"ric-indicationMessage-formats",
+	&asn_OP_CHOICE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	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 */
+	&asn_SPC_ric_indicationMessage_formats_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_E2SM_RC_IndicationMessage_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_IndicationMessage, ric_indicationMessage_formats),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_ric_indicationMessage_formats_2,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-indicationMessage-formats"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_E2SM_RC_IndicationMessage_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_IndicationMessage_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ric-indicationMessage-formats */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_IndicationMessage_specs_1 = {
+	sizeof(struct E2SM_RC_IndicationMessage),
+	offsetof(struct E2SM_RC_IndicationMessage, _asn_ctx),
+	asn_MAP_E2SM_RC_IndicationMessage_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 = {
+	"E2SM-RC-IndicationMessage",
+	"E2SM-RC-IndicationMessage",
+	&asn_OP_SEQUENCE,
+	asn_DEF_E2SM_RC_IndicationMessage_tags_1,
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_tags_1[0]), /* 1 */
+	asn_DEF_E2SM_RC_IndicationMessage_tags_1,	/* Same as above */
+	sizeof(asn_DEF_E2SM_RC_IndicationMessage_tags_1)
+		/sizeof(asn_DEF_E2SM_RC_IndicationMessage_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_E2SM_RC_IndicationMessage_1,
+	1,	/* Elements count */
+	&asn_SPC_E2SM_RC_IndicationMessage_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/E2SM-RC-RANFunctionDefinition.c b/e2sm/lib/E2SM-RC-RANFunctionDefinition.c
index e3ff8fe..dddb336 100644
--- a/e2sm/lib/E2SM-RC-RANFunctionDefinition.c
+++ b/e2sm/lib/E2SM-RC-RANFunctionDefinition.c
@@ -1,172 +1,17 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "E2SM-RC-RANFunctionDefinition.h"
 
-#include "RIC-EventTriggerStyle-Item.h"
-#include "RIC-ControlStyle-Item.h"
-static int
-memb_ric_EventTriggerStyle_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 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_EventTriggerStyle_List_constr_3 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..63)) */};
-static asn_per_constraints_t asn_PER_type_ric_EventTriggerStyle_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_type_ric_ControlStyle_List_constr_5 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..63)) */};
-static asn_per_constraints_t asn_PER_type_ric_ControlStyle_List_constr_5 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_EventTriggerStyle_List_constr_3 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..63)) */};
-static asn_per_constraints_t asn_PER_memb_ric_EventTriggerStyle_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_ControlStyle_List_constr_5 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..63)) */};
-static asn_per_constraints_t asn_PER_memb_ric_ControlStyle_List_constr_5 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_EventTriggerStyle_List_3[] = {
-	{ ATF_POINTER, 0, 0,
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_RIC_EventTriggerStyle_Item,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		""
-		},
-};
-static const ber_tlv_tag_t asn_DEF_ric_EventTriggerStyle_List_tags_3[] = {
-	(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static asn_SET_OF_specifics_t asn_SPC_ric_EventTriggerStyle_List_specs_3 = {
-	sizeof(struct E2SM_RC_RANFunctionDefinition__ric_EventTriggerStyle_List),
-	offsetof(struct E2SM_RC_RANFunctionDefinition__ric_EventTriggerStyle_List, _asn_ctx),
-	0,	/* XER encoding is XMLDelimitedItemList */
-};
-static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_ric_EventTriggerStyle_List_3 = {
-	"ric-EventTriggerStyle-List",
-	"ric-EventTriggerStyle-List",
-	&asn_OP_SEQUENCE_OF,
-	asn_DEF_ric_EventTriggerStyle_List_tags_3,
-	sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_3)
-		/sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_3[0]) - 1, /* 1 */
-	asn_DEF_ric_EventTriggerStyle_List_tags_3,	/* Same as above */
-	sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_3)
-		/sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_3[0]), /* 2 */
-	{ &asn_OER_type_ric_EventTriggerStyle_List_constr_3, &asn_PER_type_ric_EventTriggerStyle_List_constr_3, SEQUENCE_OF_constraint },
-	asn_MBR_ric_EventTriggerStyle_List_3,
-	1,	/* Single element */
-	&asn_SPC_ric_EventTriggerStyle_List_specs_3	/* Additional specs */
-};
-
-static asn_TYPE_member_t asn_MBR_ric_ControlStyle_List_5[] = {
-	{ ATF_POINTER, 0, 0,
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_RIC_ControlStyle_Item,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		""
-		},
-};
-static const ber_tlv_tag_t asn_DEF_ric_ControlStyle_List_tags_5[] = {
-	(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static asn_SET_OF_specifics_t asn_SPC_ric_ControlStyle_List_specs_5 = {
-	sizeof(struct E2SM_RC_RANFunctionDefinition__ric_ControlStyle_List),
-	offsetof(struct E2SM_RC_RANFunctionDefinition__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_5 = {
-	"ric-ControlStyle-List",
-	"ric-ControlStyle-List",
-	&asn_OP_SEQUENCE_OF,
-	asn_DEF_ric_ControlStyle_List_tags_5,
-	sizeof(asn_DEF_ric_ControlStyle_List_tags_5)
-		/sizeof(asn_DEF_ric_ControlStyle_List_tags_5[0]) - 1, /* 1 */
-	asn_DEF_ric_ControlStyle_List_tags_5,	/* Same as above */
-	sizeof(asn_DEF_ric_ControlStyle_List_tags_5)
-		/sizeof(asn_DEF_ric_ControlStyle_List_tags_5[0]), /* 2 */
-	{ &asn_OER_type_ric_ControlStyle_List_constr_5, &asn_PER_type_ric_ControlStyle_List_constr_5, SEQUENCE_OF_constraint },
-	asn_MBR_ric_ControlStyle_List_5,
-	1,	/* Single element */
-	&asn_SPC_ric_ControlStyle_List_specs_5	/* Additional specs */
-};
-
+#include "RANFunctionDefinition-EventTrigger.h"
+#include "RANFunctionDefinition-Report.h"
+#include "RANFunctionDefinition-Insert.h"
+#include "RANFunctionDefinition-Control.h"
+#include "RANFunctionDefinition-Policy.h"
 static asn_TYPE_member_t asn_MBR_E2SM_RC_RANFunctionDefinition_1[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct E2SM_RC_RANFunctionDefinition, ranFunction_Name),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
@@ -177,42 +22,72 @@
 		0, 0, /* No default value */
 		"ranFunction-Name"
 		},
-	{ ATF_POINTER, 2, offsetof(struct E2SM_RC_RANFunctionDefinition, ric_EventTriggerStyle_List),
+	{ ATF_POINTER, 5, offsetof(struct E2SM_RC_RANFunctionDefinition, ranFunctionDefinition_EventTrigger),
 		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANFunctionDefinition_EventTrigger,
 		0,
-		&asn_DEF_ric_EventTriggerStyle_List_3,
-		0,
-		{ &asn_OER_memb_ric_EventTriggerStyle_List_constr_3, &asn_PER_memb_ric_EventTriggerStyle_List_constr_3,  memb_ric_EventTriggerStyle_List_constraint_1 },
+		{ 0, 0, 0 },
 		0, 0, /* No default value */
-		"ric-EventTriggerStyle-List"
+		"ranFunctionDefinition-EventTrigger"
 		},
-	{ ATF_POINTER, 1, offsetof(struct E2SM_RC_RANFunctionDefinition, ric_ControlStyle_List),
+	{ ATF_POINTER, 4, offsetof(struct E2SM_RC_RANFunctionDefinition, ranFunctionDefinition_Report),
 		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANFunctionDefinition_Report,
 		0,
-		&asn_DEF_ric_ControlStyle_List_5,
-		0,
-		{ &asn_OER_memb_ric_ControlStyle_List_constr_5, &asn_PER_memb_ric_ControlStyle_List_constr_5,  memb_ric_ControlStyle_List_constraint_1 },
+		{ 0, 0, 0 },
 		0, 0, /* No default value */
-		"ric-ControlStyle-List"
+		"ranFunctionDefinition-Report"
+		},
+	{ ATF_POINTER, 3, offsetof(struct E2SM_RC_RANFunctionDefinition, ranFunctionDefinition_Insert),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANFunctionDefinition_Insert,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranFunctionDefinition-Insert"
+		},
+	{ ATF_POINTER, 2, offsetof(struct E2SM_RC_RANFunctionDefinition, ranFunctionDefinition_Control),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANFunctionDefinition_Control,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranFunctionDefinition-Control"
+		},
+	{ ATF_POINTER, 1, offsetof(struct E2SM_RC_RANFunctionDefinition, ranFunctionDefinition_Policy),
+		(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANFunctionDefinition_Policy,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranFunctionDefinition-Policy"
 		},
 };
-static const int asn_MAP_E2SM_RC_RANFunctionDefinition_oms_1[] = { 1, 2 };
+static const int asn_MAP_E2SM_RC_RANFunctionDefinition_oms_1[] = { 1, 2, 3, 4, 5 };
 static const ber_tlv_tag_t asn_DEF_E2SM_RC_RANFunctionDefinition_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
 static const asn_TYPE_tag2member_t asn_MAP_E2SM_RC_RANFunctionDefinition_tag2el_1[] = {
     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunction-Name */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-EventTriggerStyle-List */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ric-ControlStyle-List */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ranFunctionDefinition-EventTrigger */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ranFunctionDefinition-Report */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ranFunctionDefinition-Insert */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* ranFunctionDefinition-Control */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* ranFunctionDefinition-Policy */
 };
 static asn_SEQUENCE_specifics_t asn_SPC_E2SM_RC_RANFunctionDefinition_specs_1 = {
 	sizeof(struct E2SM_RC_RANFunctionDefinition),
 	offsetof(struct E2SM_RC_RANFunctionDefinition, _asn_ctx),
 	asn_MAP_E2SM_RC_RANFunctionDefinition_tag2el_1,
-	3,	/* Count of tags in the map */
+	6,	/* Count of tags in the map */
 	asn_MAP_E2SM_RC_RANFunctionDefinition_oms_1,	/* Optional members */
-	2, 0,	/* Root/Additions */
-	3,	/* First extension addition */
+	5, 0,	/* Root/Additions */
+	6,	/* First extension addition */
 };
 asn_TYPE_descriptor_t asn_DEF_E2SM_RC_RANFunctionDefinition = {
 	"E2SM-RC-RANFunctionDefinition",
@@ -226,7 +101,7 @@
 		/sizeof(asn_DEF_E2SM_RC_RANFunctionDefinition_tags_1[0]), /* 1 */
 	{ 0, 0, SEQUENCE_constraint },
 	asn_MBR_E2SM_RC_RANFunctionDefinition_1,
-	3,	/* Elements count */
+	6,	/* Elements count */
 	&asn_SPC_E2SM_RC_RANFunctionDefinition_specs_1	/* Additional specs */
 };
 
diff --git a/e2sm/lib/EN-GNB-ID.c b/e2sm/lib/EN-GNB-ID.c
new file mode 100644
index 0000000..98b8263
--- /dev/null
+++ b/e2sm/lib/EN-GNB-ID.c
@@ -0,0 +1,94 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "EN-GNB-ID.h"
+
+static int
+memb_en_gNB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size >= 22 && size <= 32)) {
+		/* Constraint check succeeded */
+		return 0;
+	} 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_memb_en_gNB_ID_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(22..32)) */};
+static asn_per_constraints_t asn_PER_memb_en_gNB_ID_constr_2 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 4,  4,  22,  32 }	/* (SIZE(22..32)) */,
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_EN_GNB_ID_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_EN_GNB_ID_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }	/* (0..0,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_EN_GNB_ID_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct EN_GNB_ID, choice.en_gNB_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_BIT_STRING,
+		0,
+		{ &asn_OER_memb_en_gNB_ID_constr_2, &asn_PER_memb_en_gNB_ID_constr_2,  memb_en_gNB_ID_constraint_1 },
+		0, 0, /* No default value */
+		"en-gNB-ID"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_EN_GNB_ID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* en-gNB-ID */
+};
+asn_CHOICE_specifics_t asn_SPC_EN_GNB_ID_specs_1 = {
+	sizeof(struct EN_GNB_ID),
+	offsetof(struct EN_GNB_ID, _asn_ctx),
+	offsetof(struct EN_GNB_ID, present),
+	sizeof(((struct EN_GNB_ID *)0)->present),
+	asn_MAP_EN_GNB_ID_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0,
+	1	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_EN_GNB_ID = {
+	"EN-GNB-ID",
+	"EN-GNB-ID",
+	&asn_OP_CHOICE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ &asn_OER_type_EN_GNB_ID_constr_1, &asn_PER_type_EN_GNB_ID_constr_1, CHOICE_constraint },
+	asn_MBR_EN_GNB_ID_1,
+	1,	/* Elements count */
+	&asn_SPC_EN_GNB_ID_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/ENB-ID-Choice.c b/e2sm/lib/ENB-ID-Choice.c
deleted file mode 100644
index 8ce2abe..0000000
--- a/e2sm/lib/ENB-ID-Choice.c
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "ENB-ID-Choice.h"
-
-static int
-memb_enb_ID_macro_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
-	size_t size;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	if(st->size > 0) {
-		/* Size in bits */
-		size = 8 * st->size - (st->bits_unused & 0x07);
-	} else {
-		size = 0;
-	}
-	
-	if((size == 20)) {
-		/* Constraint check succeeded */
-		return 0;
-	} else {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: constraint failed (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-}
-
-static int
-memb_enb_ID_shortmacro_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
-	size_t size;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	if(st->size > 0) {
-		/* Size in bits */
-		size = 8 * st->size - (st->bits_unused & 0x07);
-	} else {
-		size = 0;
-	}
-	
-	if((size == 18)) {
-		/* Constraint check succeeded */
-		return 0;
-	} else {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: constraint failed (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-}
-
-static int
-memb_enb_ID_longmacro_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
-	size_t size;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	if(st->size > 0) {
-		/* Size in bits */
-		size = 8 * st->size - (st->bits_unused & 0x07);
-	} else {
-		size = 0;
-	}
-	
-	if((size == 21)) {
-		/* Constraint check succeeded */
-		return 0;
-	} 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_memb_enb_ID_macro_constr_2 CC_NOTUSED = {
-	{ 0, 0 },
-	20	/* (SIZE(20..20)) */};
-static asn_per_constraints_t asn_PER_memb_enb_ID_macro_constr_2 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 0,  0,  20,  20 }	/* (SIZE(20..20)) */,
-	0, 0	/* No PER value map */
-};
-static asn_oer_constraints_t asn_OER_memb_enb_ID_shortmacro_constr_3 CC_NOTUSED = {
-	{ 0, 0 },
-	18	/* (SIZE(18..18)) */};
-static asn_per_constraints_t asn_PER_memb_enb_ID_shortmacro_constr_3 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 0,  0,  18,  18 }	/* (SIZE(18..18)) */,
-	0, 0	/* No PER value map */
-};
-static asn_oer_constraints_t asn_OER_memb_enb_ID_longmacro_constr_4 CC_NOTUSED = {
-	{ 0, 0 },
-	21	/* (SIZE(21..21)) */};
-static asn_per_constraints_t asn_PER_memb_enb_ID_longmacro_constr_4 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 0,  0,  21,  21 }	/* (SIZE(21..21)) */,
-	0, 0	/* No PER value map */
-};
-static asn_oer_constraints_t asn_OER_type_ENB_ID_Choice_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	-1};
-asn_per_constraints_t asn_PER_type_ENB_ID_Choice_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }	/* (0..2,...) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-asn_TYPE_member_t asn_MBR_ENB_ID_Choice_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct ENB_ID_Choice, choice.enb_ID_macro),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_BIT_STRING,
-		0,
-		{ &asn_OER_memb_enb_ID_macro_constr_2, &asn_PER_memb_enb_ID_macro_constr_2,  memb_enb_ID_macro_constraint_1 },
-		0, 0, /* No default value */
-		"enb-ID-macro"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct ENB_ID_Choice, choice.enb_ID_shortmacro),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_BIT_STRING,
-		0,
-		{ &asn_OER_memb_enb_ID_shortmacro_constr_3, &asn_PER_memb_enb_ID_shortmacro_constr_3,  memb_enb_ID_shortmacro_constraint_1 },
-		0, 0, /* No default value */
-		"enb-ID-shortmacro"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct ENB_ID_Choice, choice.enb_ID_longmacro),
-		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_BIT_STRING,
-		0,
-		{ &asn_OER_memb_enb_ID_longmacro_constr_4, &asn_PER_memb_enb_ID_longmacro_constr_4,  memb_enb_ID_longmacro_constraint_1 },
-		0, 0, /* No default value */
-		"enb-ID-longmacro"
-		},
-};
-static const asn_TYPE_tag2member_t asn_MAP_ENB_ID_Choice_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* enb-ID-macro */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* enb-ID-shortmacro */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* enb-ID-longmacro */
-};
-asn_CHOICE_specifics_t asn_SPC_ENB_ID_Choice_specs_1 = {
-	sizeof(struct ENB_ID_Choice),
-	offsetof(struct ENB_ID_Choice, _asn_ctx),
-	offsetof(struct ENB_ID_Choice, present),
-	sizeof(((struct ENB_ID_Choice *)0)->present),
-	asn_MAP_ENB_ID_Choice_tag2el_1,
-	3,	/* Count of tags in the map */
-	0, 0,
-	3	/* Extensions start */
-};
-asn_TYPE_descriptor_t asn_DEF_ENB_ID_Choice = {
-	"ENB-ID-Choice",
-	"ENB-ID-Choice",
-	&asn_OP_CHOICE,
-	0,	/* No effective tags (pointer) */
-	0,	/* No effective tags (count) */
-	0,	/* No tags (pointer) */
-	0,	/* No tags (count) */
-	{ &asn_OER_type_ENB_ID_Choice_constr_1, &asn_PER_type_ENB_ID_Choice_constr_1, CHOICE_constraint },
-	asn_MBR_ENB_ID_Choice_1,
-	3,	/* Elements count */
-	&asn_SPC_ENB_ID_Choice_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/ENB-ID.c b/e2sm/lib/ENB-ID.c
index e2a5f89..faab5f7 100644
--- a/e2sm/lib/ENB-ID.c
+++ b/e2sm/lib/ENB-ID.c
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
diff --git a/e2sm/lib/ENB-UE-X2AP-ID-Extension.c b/e2sm/lib/ENB-UE-X2AP-ID-Extension.c
new file mode 100644
index 0000000..d9f8c31
--- /dev/null
+++ b/e2sm/lib/ENB-UE-X2AP-ID-Extension.c
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "ENB-UE-X2AP-ID-Extension.h"
+
+int
+ENB_UE_X2AP_ID_Extension_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0 && value <= 4095)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_ENB_UE_X2AP_ID_Extension_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_ENB_UE_X2AP_ID_Extension_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  12,  12,  0,  4095 }	/* (0..4095,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_ENB_UE_X2AP_ID_Extension_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ENB_UE_X2AP_ID_Extension = {
+	"ENB-UE-X2AP-ID-Extension",
+	"ENB-UE-X2AP-ID-Extension",
+	&asn_OP_NativeInteger,
+	asn_DEF_ENB_UE_X2AP_ID_Extension_tags_1,
+	sizeof(asn_DEF_ENB_UE_X2AP_ID_Extension_tags_1)
+		/sizeof(asn_DEF_ENB_UE_X2AP_ID_Extension_tags_1[0]), /* 1 */
+	asn_DEF_ENB_UE_X2AP_ID_Extension_tags_1,	/* Same as above */
+	sizeof(asn_DEF_ENB_UE_X2AP_ID_Extension_tags_1)
+		/sizeof(asn_DEF_ENB_UE_X2AP_ID_Extension_tags_1[0]), /* 1 */
+	{ &asn_OER_type_ENB_UE_X2AP_ID_Extension_constr_1, &asn_PER_type_ENB_UE_X2AP_ID_Extension_constr_1, ENB_UE_X2AP_ID_Extension_constraint },
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/e2sm/lib/ENB-UE-X2AP-ID.c b/e2sm/lib/ENB-UE-X2AP-ID.c
new file mode 100644
index 0000000..8af2e3f
--- /dev/null
+++ b/e2sm/lib/ENB-UE-X2AP-ID.c
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "ENB-UE-X2AP-ID.h"
+
+int
+ENB_UE_X2AP_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0 && value <= 4095)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_ENB_UE_X2AP_ID_constr_1 CC_NOTUSED = {
+	{ 2, 1 }	/* (0..4095) */,
+	-1};
+asn_per_constraints_t asn_PER_type_ENB_UE_X2AP_ID_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 12,  12,  0,  4095 }	/* (0..4095) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_ENB_UE_X2AP_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_ENB_UE_X2AP_ID = {
+	"ENB-UE-X2AP-ID",
+	"ENB-UE-X2AP-ID",
+	&asn_OP_NativeInteger,
+	asn_DEF_ENB_UE_X2AP_ID_tags_1,
+	sizeof(asn_DEF_ENB_UE_X2AP_ID_tags_1)
+		/sizeof(asn_DEF_ENB_UE_X2AP_ID_tags_1[0]), /* 1 */
+	asn_DEF_ENB_UE_X2AP_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_ENB_UE_X2AP_ID_tags_1)
+		/sizeof(asn_DEF_ENB_UE_X2AP_ID_tags_1[0]), /* 1 */
+	{ &asn_OER_type_ENB_UE_X2AP_ID_constr_1, &asn_PER_type_ENB_UE_X2AP_ID_constr_1, ENB_UE_X2AP_ID_constraint },
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/e2sm/lib/ENGNB-ID.c b/e2sm/lib/ENGNB-ID.c
deleted file mode 100644
index 5577266..0000000
--- a/e2sm/lib/ENGNB-ID.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "ENGNB-ID.h"
-
-static int
-memb_gNB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
-	size_t size;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	if(st->size > 0) {
-		/* Size in bits */
-		size = 8 * st->size - (st->bits_unused & 0x07);
-	} else {
-		size = 0;
-	}
-	
-	if((size >= 22 && size <= 32)) {
-		/* Constraint check succeeded */
-		return 0;
-	} 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_memb_gNB_ID_constr_2 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(22..32)) */};
-static asn_per_constraints_t asn_PER_memb_gNB_ID_constr_2 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 4,  4,  22,  32 }	/* (SIZE(22..32)) */,
-	0, 0	/* No PER value map */
-};
-static asn_oer_constraints_t asn_OER_type_ENGNB_ID_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	-1};
-asn_per_constraints_t asn_PER_type_ENGNB_ID_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }	/* (0..0,...) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-asn_TYPE_member_t asn_MBR_ENGNB_ID_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct ENGNB_ID, choice.gNB_ID),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_BIT_STRING,
-		0,
-		{ &asn_OER_memb_gNB_ID_constr_2, &asn_PER_memb_gNB_ID_constr_2,  memb_gNB_ID_constraint_1 },
-		0, 0, /* No default value */
-		"gNB-ID"
-		},
-};
-static const asn_TYPE_tag2member_t asn_MAP_ENGNB_ID_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gNB-ID */
-};
-asn_CHOICE_specifics_t asn_SPC_ENGNB_ID_specs_1 = {
-	sizeof(struct ENGNB_ID),
-	offsetof(struct ENGNB_ID, _asn_ctx),
-	offsetof(struct ENGNB_ID, present),
-	sizeof(((struct ENGNB_ID *)0)->present),
-	asn_MAP_ENGNB_ID_tag2el_1,
-	1,	/* Count of tags in the map */
-	0, 0,
-	1	/* Extensions start */
-};
-asn_TYPE_descriptor_t asn_DEF_ENGNB_ID = {
-	"ENGNB-ID",
-	"ENGNB-ID",
-	&asn_OP_CHOICE,
-	0,	/* No effective tags (pointer) */
-	0,	/* No effective tags (count) */
-	0,	/* No tags (pointer) */
-	0,	/* No tags (count) */
-	{ &asn_OER_type_ENGNB_ID_constr_1, &asn_PER_type_ENGNB_ID_constr_1, CHOICE_constraint },
-	asn_MBR_ENGNB_ID_1,
-	1,	/* Elements count */
-	&asn_SPC_ENGNB_ID_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/EPC-CUUP-PM-Format.c b/e2sm/lib/EPC-CUUP-PM-Format.c
deleted file mode 100644
index 5fb414a..0000000
--- a/e2sm/lib/EPC-CUUP-PM-Format.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "EPC-CUUP-PM-Format.h"
-
-#include "PerQCIReportListItemFormat.h"
-static int
-memb_perQCIReportList_cuup_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 <= 256)) {
-		/* 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_perQCIReportList_cuup_constr_2 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..256)) */};
-static asn_per_constraints_t asn_PER_type_perQCIReportList_cuup_constr_2 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 8,  8,  1,  256 }	/* (SIZE(1..256)) */,
-	0, 0	/* No PER value map */
-};
-static asn_oer_constraints_t asn_OER_memb_perQCIReportList_cuup_constr_2 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..256)) */};
-static asn_per_constraints_t asn_PER_memb_perQCIReportList_cuup_constr_2 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 8,  8,  1,  256 }	/* (SIZE(1..256)) */,
-	0, 0	/* No PER value map */
-};
-static asn_TYPE_member_t asn_MBR_perQCIReportList_cuup_2[] = {
-	{ ATF_POINTER, 0, 0,
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_PerQCIReportListItemFormat,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		""
-		},
-};
-static const ber_tlv_tag_t asn_DEF_perQCIReportList_cuup_tags_2[] = {
-	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static asn_SET_OF_specifics_t asn_SPC_perQCIReportList_cuup_specs_2 = {
-	sizeof(struct EPC_CUUP_PM_Format__perQCIReportList_cuup),
-	offsetof(struct EPC_CUUP_PM_Format__perQCIReportList_cuup, _asn_ctx),
-	0,	/* XER encoding is XMLDelimitedItemList */
-};
-static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_perQCIReportList_cuup_2 = {
-	"perQCIReportList-cuup",
-	"perQCIReportList-cuup",
-	&asn_OP_SEQUENCE_OF,
-	asn_DEF_perQCIReportList_cuup_tags_2,
-	sizeof(asn_DEF_perQCIReportList_cuup_tags_2)
-		/sizeof(asn_DEF_perQCIReportList_cuup_tags_2[0]) - 1, /* 1 */
-	asn_DEF_perQCIReportList_cuup_tags_2,	/* Same as above */
-	sizeof(asn_DEF_perQCIReportList_cuup_tags_2)
-		/sizeof(asn_DEF_perQCIReportList_cuup_tags_2[0]), /* 2 */
-	{ &asn_OER_type_perQCIReportList_cuup_constr_2, &asn_PER_type_perQCIReportList_cuup_constr_2, SEQUENCE_OF_constraint },
-	asn_MBR_perQCIReportList_cuup_2,
-	1,	/* Single element */
-	&asn_SPC_perQCIReportList_cuup_specs_2	/* Additional specs */
-};
-
-asn_TYPE_member_t asn_MBR_EPC_CUUP_PM_Format_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct EPC_CUUP_PM_Format, perQCIReportList_cuup),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		0,
-		&asn_DEF_perQCIReportList_cuup_2,
-		0,
-		{ &asn_OER_memb_perQCIReportList_cuup_constr_2, &asn_PER_memb_perQCIReportList_cuup_constr_2,  memb_perQCIReportList_cuup_constraint_1 },
-		0, 0, /* No default value */
-		"perQCIReportList-cuup"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_EPC_CUUP_PM_Format_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_EPC_CUUP_PM_Format_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* perQCIReportList-cuup */
-};
-asn_SEQUENCE_specifics_t asn_SPC_EPC_CUUP_PM_Format_specs_1 = {
-	sizeof(struct EPC_CUUP_PM_Format),
-	offsetof(struct EPC_CUUP_PM_Format, _asn_ctx),
-	asn_MAP_EPC_CUUP_PM_Format_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_EPC_CUUP_PM_Format = {
-	"EPC-CUUP-PM-Format",
-	"EPC-CUUP-PM-Format",
-	&asn_OP_SEQUENCE,
-	asn_DEF_EPC_CUUP_PM_Format_tags_1,
-	sizeof(asn_DEF_EPC_CUUP_PM_Format_tags_1)
-		/sizeof(asn_DEF_EPC_CUUP_PM_Format_tags_1[0]), /* 1 */
-	asn_DEF_EPC_CUUP_PM_Format_tags_1,	/* Same as above */
-	sizeof(asn_DEF_EPC_CUUP_PM_Format_tags_1)
-		/sizeof(asn_DEF_EPC_CUUP_PM_Format_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_EPC_CUUP_PM_Format_1,
-	1,	/* Elements count */
-	&asn_SPC_EPC_CUUP_PM_Format_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/EPC-DU-PM-Container.c b/e2sm/lib/EPC-DU-PM-Container.c
deleted file mode 100644
index 801080e..0000000
--- a/e2sm/lib/EPC-DU-PM-Container.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "EPC-DU-PM-Container.h"
-
-#include "PerQCIReportListItem.h"
-static int
-memb_perQCIReportList_du_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 <= 256)) {
-		/* 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_perQCIReportList_du_constr_2 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..256)) */};
-static asn_per_constraints_t asn_PER_type_perQCIReportList_du_constr_2 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 8,  8,  1,  256 }	/* (SIZE(1..256)) */,
-	0, 0	/* No PER value map */
-};
-static asn_oer_constraints_t asn_OER_memb_perQCIReportList_du_constr_2 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..256)) */};
-static asn_per_constraints_t asn_PER_memb_perQCIReportList_du_constr_2 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 8,  8,  1,  256 }	/* (SIZE(1..256)) */,
-	0, 0	/* No PER value map */
-};
-static asn_TYPE_member_t asn_MBR_perQCIReportList_du_2[] = {
-	{ ATF_POINTER, 0, 0,
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_PerQCIReportListItem,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		""
-		},
-};
-static const ber_tlv_tag_t asn_DEF_perQCIReportList_du_tags_2[] = {
-	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static asn_SET_OF_specifics_t asn_SPC_perQCIReportList_du_specs_2 = {
-	sizeof(struct EPC_DU_PM_Container__perQCIReportList_du),
-	offsetof(struct EPC_DU_PM_Container__perQCIReportList_du, _asn_ctx),
-	0,	/* XER encoding is XMLDelimitedItemList */
-};
-static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_perQCIReportList_du_2 = {
-	"perQCIReportList-du",
-	"perQCIReportList-du",
-	&asn_OP_SEQUENCE_OF,
-	asn_DEF_perQCIReportList_du_tags_2,
-	sizeof(asn_DEF_perQCIReportList_du_tags_2)
-		/sizeof(asn_DEF_perQCIReportList_du_tags_2[0]) - 1, /* 1 */
-	asn_DEF_perQCIReportList_du_tags_2,	/* Same as above */
-	sizeof(asn_DEF_perQCIReportList_du_tags_2)
-		/sizeof(asn_DEF_perQCIReportList_du_tags_2[0]), /* 2 */
-	{ &asn_OER_type_perQCIReportList_du_constr_2, &asn_PER_type_perQCIReportList_du_constr_2, SEQUENCE_OF_constraint },
-	asn_MBR_perQCIReportList_du_2,
-	1,	/* Single element */
-	&asn_SPC_perQCIReportList_du_specs_2	/* Additional specs */
-};
-
-asn_TYPE_member_t asn_MBR_EPC_DU_PM_Container_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct EPC_DU_PM_Container, perQCIReportList_du),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		0,
-		&asn_DEF_perQCIReportList_du_2,
-		0,
-		{ &asn_OER_memb_perQCIReportList_du_constr_2, &asn_PER_memb_perQCIReportList_du_constr_2,  memb_perQCIReportList_du_constraint_1 },
-		0, 0, /* No default value */
-		"perQCIReportList-du"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_EPC_DU_PM_Container_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_EPC_DU_PM_Container_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* perQCIReportList-du */
-};
-asn_SEQUENCE_specifics_t asn_SPC_EPC_DU_PM_Container_specs_1 = {
-	sizeof(struct EPC_DU_PM_Container),
-	offsetof(struct EPC_DU_PM_Container, _asn_ctx),
-	asn_MAP_EPC_DU_PM_Container_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_EPC_DU_PM_Container = {
-	"EPC-DU-PM-Container",
-	"EPC-DU-PM-Container",
-	&asn_OP_SEQUENCE,
-	asn_DEF_EPC_DU_PM_Container_tags_1,
-	sizeof(asn_DEF_EPC_DU_PM_Container_tags_1)
-		/sizeof(asn_DEF_EPC_DU_PM_Container_tags_1[0]), /* 1 */
-	asn_DEF_EPC_DU_PM_Container_tags_1,	/* Same as above */
-	sizeof(asn_DEF_EPC_DU_PM_Container_tags_1)
-		/sizeof(asn_DEF_EPC_DU_PM_Container_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_EPC_DU_PM_Container_1,
-	1,	/* Elements count */
-	&asn_SPC_EPC_DU_PM_Container_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/EUTRA-CGI.c b/e2sm/lib/EUTRA-CGI.c
new file mode 100644
index 0000000..985c769
--- /dev/null
+++ b/e2sm/lib/EUTRA-CGI.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "EUTRA-CGI.h"
+
+asn_TYPE_member_t asn_MBR_EUTRA_CGI_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct EUTRA_CGI, pLMNIdentity),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_PLMNIdentity,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"pLMNIdentity"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct EUTRA_CGI, eUTRACellIdentity),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_EUTRACellIdentity,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"eUTRACellIdentity"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_EUTRA_CGI_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_EUTRA_CGI_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNIdentity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* eUTRACellIdentity */
+};
+asn_SEQUENCE_specifics_t asn_SPC_EUTRA_CGI_specs_1 = {
+	sizeof(struct EUTRA_CGI),
+	offsetof(struct EUTRA_CGI, _asn_ctx),
+	asn_MAP_EUTRA_CGI_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_EUTRA_CGI = {
+	"EUTRA-CGI",
+	"EUTRA-CGI",
+	&asn_OP_SEQUENCE,
+	asn_DEF_EUTRA_CGI_tags_1,
+	sizeof(asn_DEF_EUTRA_CGI_tags_1)
+		/sizeof(asn_DEF_EUTRA_CGI_tags_1[0]), /* 1 */
+	asn_DEF_EUTRA_CGI_tags_1,	/* Same as above */
+	sizeof(asn_DEF_EUTRA_CGI_tags_1)
+		/sizeof(asn_DEF_EUTRA_CGI_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_EUTRA_CGI_1,
+	2,	/* Elements count */
+	&asn_SPC_EUTRA_CGI_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/EUTRACellIdentity.c b/e2sm/lib/EUTRACellIdentity.c
new file mode 100644
index 0000000..cefaeb9
--- /dev/null
+++ b/e2sm/lib/EUTRACellIdentity.c
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "EUTRACellIdentity.h"
+
+int
+EUTRACellIdentity_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size == 28)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using BIT_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_EUTRACellIdentity_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	28	/* (SIZE(28..28)) */};
+asn_per_constraints_t asn_PER_type_EUTRACellIdentity_constr_1 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  28,  28 }	/* (SIZE(28..28)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_EUTRACellIdentity_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (3 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_EUTRACellIdentity = {
+	"EUTRACellIdentity",
+	"EUTRACellIdentity",
+	&asn_OP_BIT_STRING,
+	asn_DEF_EUTRACellIdentity_tags_1,
+	sizeof(asn_DEF_EUTRACellIdentity_tags_1)
+		/sizeof(asn_DEF_EUTRACellIdentity_tags_1[0]), /* 1 */
+	asn_DEF_EUTRACellIdentity_tags_1,	/* Same as above */
+	sizeof(asn_DEF_EUTRACellIdentity_tags_1)
+		/sizeof(asn_DEF_EUTRACellIdentity_tags_1[0]), /* 1 */
+	{ &asn_OER_type_EUTRACellIdentity_constr_1, &asn_PER_type_EUTRACellIdentity_constr_1, EUTRACellIdentity_constraint },
+	0, 0,	/* No members */
+	&asn_SPC_BIT_STRING_specs	/* Additional specs */
+};
+
diff --git a/e2sm/lib/EventTrigger-Cell-Info-Item-Choice-Group.c b/e2sm/lib/EventTrigger-Cell-Info-Item-Choice-Group.c
new file mode 100644
index 0000000..2f6269f
--- /dev/null
+++ b/e2sm/lib/EventTrigger-Cell-Info-Item-Choice-Group.c
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "EventTrigger-Cell-Info-Item-Choice-Group.h"
+
+asn_TYPE_member_t asn_MBR_EventTrigger_Cell_Info_Item_Choice_Group_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct EventTrigger_Cell_Info_Item_Choice_Group, ranParameterTesting),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANParameter_Testing,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranParameterTesting"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_EventTrigger_Cell_Info_Item_Choice_Group_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_EventTrigger_Cell_Info_Item_Choice_Group_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ranParameterTesting */
+};
+asn_SEQUENCE_specifics_t asn_SPC_EventTrigger_Cell_Info_Item_Choice_Group_specs_1 = {
+	sizeof(struct EventTrigger_Cell_Info_Item_Choice_Group),
+	offsetof(struct EventTrigger_Cell_Info_Item_Choice_Group, _asn_ctx),
+	asn_MAP_EventTrigger_Cell_Info_Item_Choice_Group_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_EventTrigger_Cell_Info_Item_Choice_Group = {
+	"EventTrigger-Cell-Info-Item-Choice-Group",
+	"EventTrigger-Cell-Info-Item-Choice-Group",
+	&asn_OP_SEQUENCE,
+	asn_DEF_EventTrigger_Cell_Info_Item_Choice_Group_tags_1,
+	sizeof(asn_DEF_EventTrigger_Cell_Info_Item_Choice_Group_tags_1)
+		/sizeof(asn_DEF_EventTrigger_Cell_Info_Item_Choice_Group_tags_1[0]), /* 1 */
+	asn_DEF_EventTrigger_Cell_Info_Item_Choice_Group_tags_1,	/* Same as above */
+	sizeof(asn_DEF_EventTrigger_Cell_Info_Item_Choice_Group_tags_1)
+		/sizeof(asn_DEF_EventTrigger_Cell_Info_Item_Choice_Group_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_EventTrigger_Cell_Info_Item_Choice_Group_1,
+	1,	/* Elements count */
+	&asn_SPC_EventTrigger_Cell_Info_Item_Choice_Group_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/EventTrigger-Cell-Info-Item-Choice-Individual.c b/e2sm/lib/EventTrigger-Cell-Info-Item-Choice-Individual.c
new file mode 100644
index 0000000..1cf5866
--- /dev/null
+++ b/e2sm/lib/EventTrigger-Cell-Info-Item-Choice-Individual.c
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "EventTrigger-Cell-Info-Item-Choice-Individual.h"
+
+asn_TYPE_member_t asn_MBR_EventTrigger_Cell_Info_Item_Choice_Individual_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct EventTrigger_Cell_Info_Item_Choice_Individual, cellGlobalID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_CGI,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"cellGlobalID"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_EventTrigger_Cell_Info_Item_Choice_Individual_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_EventTrigger_Cell_Info_Item_Choice_Individual_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cellGlobalID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_EventTrigger_Cell_Info_Item_Choice_Individual_specs_1 = {
+	sizeof(struct EventTrigger_Cell_Info_Item_Choice_Individual),
+	offsetof(struct EventTrigger_Cell_Info_Item_Choice_Individual, _asn_ctx),
+	asn_MAP_EventTrigger_Cell_Info_Item_Choice_Individual_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_EventTrigger_Cell_Info_Item_Choice_Individual = {
+	"EventTrigger-Cell-Info-Item-Choice-Individual",
+	"EventTrigger-Cell-Info-Item-Choice-Individual",
+	&asn_OP_SEQUENCE,
+	asn_DEF_EventTrigger_Cell_Info_Item_Choice_Individual_tags_1,
+	sizeof(asn_DEF_EventTrigger_Cell_Info_Item_Choice_Individual_tags_1)
+		/sizeof(asn_DEF_EventTrigger_Cell_Info_Item_Choice_Individual_tags_1[0]), /* 1 */
+	asn_DEF_EventTrigger_Cell_Info_Item_Choice_Individual_tags_1,	/* Same as above */
+	sizeof(asn_DEF_EventTrigger_Cell_Info_Item_Choice_Individual_tags_1)
+		/sizeof(asn_DEF_EventTrigger_Cell_Info_Item_Choice_Individual_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_EventTrigger_Cell_Info_Item_Choice_Individual_1,
+	1,	/* Elements count */
+	&asn_SPC_EventTrigger_Cell_Info_Item_Choice_Individual_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/EventTrigger-Cell-Info-Item.c b/e2sm/lib/EventTrigger-Cell-Info-Item.c
new file mode 100644
index 0000000..e96053a
--- /dev/null
+++ b/e2sm/lib/EventTrigger-Cell-Info-Item.c
@@ -0,0 +1,131 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "EventTrigger-Cell-Info-Item.h"
+
+#include "EventTrigger-Cell-Info-Item-Choice-Individual.h"
+#include "EventTrigger-Cell-Info-Item-Choice-Group.h"
+static asn_oer_constraints_t asn_OER_type_cellType_constr_3 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_type_cellType_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 asn_TYPE_member_t asn_MBR_cellType_3[] = {
+	{ ATF_POINTER, 0, offsetof(struct EventTrigger_Cell_Info_Item__cellType, choice.cellType_Choice_Individual),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_EventTrigger_Cell_Info_Item_Choice_Individual,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"cellType-Choice-Individual"
+		},
+	{ ATF_POINTER, 0, offsetof(struct EventTrigger_Cell_Info_Item__cellType, choice.cellType_Choice_Group),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_EventTrigger_Cell_Info_Item_Choice_Group,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"cellType-Choice-Group"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_cellType_tag2el_3[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellType-Choice-Individual */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cellType-Choice-Group */
+};
+static asn_CHOICE_specifics_t asn_SPC_cellType_specs_3 = {
+	sizeof(struct EventTrigger_Cell_Info_Item__cellType),
+	offsetof(struct EventTrigger_Cell_Info_Item__cellType, _asn_ctx),
+	offsetof(struct EventTrigger_Cell_Info_Item__cellType, present),
+	sizeof(((struct EventTrigger_Cell_Info_Item__cellType *)0)->present),
+	asn_MAP_cellType_tag2el_3,
+	2,	/* Count of tags in the map */
+	0, 0,
+	2	/* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_cellType_3 = {
+	"cellType",
+	"cellType",
+	&asn_OP_CHOICE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ &asn_OER_type_cellType_constr_3, &asn_PER_type_cellType_constr_3, CHOICE_constraint },
+	asn_MBR_cellType_3,
+	2,	/* Elements count */
+	&asn_SPC_cellType_specs_3	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_EventTrigger_Cell_Info_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct EventTrigger_Cell_Info_Item, eventTriggerCellID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_EventTrigger_Cell_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"eventTriggerCellID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct EventTrigger_Cell_Info_Item, cellType),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_cellType_3,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"cellType"
+		},
+	{ ATF_POINTER, 1, offsetof(struct EventTrigger_Cell_Info_Item, logicalOR),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_LogicalOR,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"logicalOR"
+		},
+};
+static const int asn_MAP_EventTrigger_Cell_Info_Item_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_EventTrigger_Cell_Info_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_EventTrigger_Cell_Info_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventTriggerCellID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cellType */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* logicalOR */
+};
+asn_SEQUENCE_specifics_t asn_SPC_EventTrigger_Cell_Info_Item_specs_1 = {
+	sizeof(struct EventTrigger_Cell_Info_Item),
+	offsetof(struct EventTrigger_Cell_Info_Item, _asn_ctx),
+	asn_MAP_EventTrigger_Cell_Info_Item_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_EventTrigger_Cell_Info_Item_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	3,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_EventTrigger_Cell_Info_Item = {
+	"EventTrigger-Cell-Info-Item",
+	"EventTrigger-Cell-Info-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_EventTrigger_Cell_Info_Item_tags_1,
+	sizeof(asn_DEF_EventTrigger_Cell_Info_Item_tags_1)
+		/sizeof(asn_DEF_EventTrigger_Cell_Info_Item_tags_1[0]), /* 1 */
+	asn_DEF_EventTrigger_Cell_Info_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_EventTrigger_Cell_Info_Item_tags_1)
+		/sizeof(asn_DEF_EventTrigger_Cell_Info_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_EventTrigger_Cell_Info_Item_1,
+	3,	/* Elements count */
+	&asn_SPC_EventTrigger_Cell_Info_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/EventTrigger-Cell-Info.c b/e2sm/lib/EventTrigger-Cell-Info.c
new file mode 100644
index 0000000..30273f7
--- /dev/null
+++ b/e2sm/lib/EventTrigger-Cell-Info.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "EventTrigger-Cell-Info.h"
+
+#include "EventTrigger-Cell-Info-Item.h"
+static int
+memb_cellInfo_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_cellInfo_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_type_cellInfo_List_constr_2 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_cellInfo_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_memb_cellInfo_List_constr_2 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_cellInfo_List_2[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_EventTrigger_Cell_Info_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_cellInfo_List_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_cellInfo_List_specs_2 = {
+	sizeof(struct EventTrigger_Cell_Info__cellInfo_List),
+	offsetof(struct EventTrigger_Cell_Info__cellInfo_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_cellInfo_List_2 = {
+	"cellInfo-List",
+	"cellInfo-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_cellInfo_List_tags_2,
+	sizeof(asn_DEF_cellInfo_List_tags_2)
+		/sizeof(asn_DEF_cellInfo_List_tags_2[0]) - 1, /* 1 */
+	asn_DEF_cellInfo_List_tags_2,	/* Same as above */
+	sizeof(asn_DEF_cellInfo_List_tags_2)
+		/sizeof(asn_DEF_cellInfo_List_tags_2[0]), /* 2 */
+	{ &asn_OER_type_cellInfo_List_constr_2, &asn_PER_type_cellInfo_List_constr_2, SEQUENCE_OF_constraint },
+	asn_MBR_cellInfo_List_2,
+	1,	/* Single element */
+	&asn_SPC_cellInfo_List_specs_2	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_EventTrigger_Cell_Info_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct EventTrigger_Cell_Info, cellInfo_List),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_cellInfo_List_2,
+		0,
+		{ &asn_OER_memb_cellInfo_List_constr_2, &asn_PER_memb_cellInfo_List_constr_2,  memb_cellInfo_List_constraint_1 },
+		0, 0, /* No default value */
+		"cellInfo-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_EventTrigger_Cell_Info_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_EventTrigger_Cell_Info_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cellInfo-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_EventTrigger_Cell_Info_specs_1 = {
+	sizeof(struct EventTrigger_Cell_Info),
+	offsetof(struct EventTrigger_Cell_Info, _asn_ctx),
+	asn_MAP_EventTrigger_Cell_Info_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_EventTrigger_Cell_Info = {
+	"EventTrigger-Cell-Info",
+	"EventTrigger-Cell-Info",
+	&asn_OP_SEQUENCE,
+	asn_DEF_EventTrigger_Cell_Info_tags_1,
+	sizeof(asn_DEF_EventTrigger_Cell_Info_tags_1)
+		/sizeof(asn_DEF_EventTrigger_Cell_Info_tags_1[0]), /* 1 */
+	asn_DEF_EventTrigger_Cell_Info_tags_1,	/* Same as above */
+	sizeof(asn_DEF_EventTrigger_Cell_Info_tags_1)
+		/sizeof(asn_DEF_EventTrigger_Cell_Info_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_EventTrigger_Cell_Info_1,
+	1,	/* Elements count */
+	&asn_SPC_EventTrigger_Cell_Info_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/EventTrigger-UE-Info-Item-Choice-Group.c b/e2sm/lib/EventTrigger-UE-Info-Item-Choice-Group.c
new file mode 100644
index 0000000..d819bc1
--- /dev/null
+++ b/e2sm/lib/EventTrigger-UE-Info-Item-Choice-Group.c
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "EventTrigger-UE-Info-Item-Choice-Group.h"
+
+asn_TYPE_member_t asn_MBR_EventTrigger_UE_Info_Item_Choice_Group_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct EventTrigger_UE_Info_Item_Choice_Group, ranParameterTesting),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANParameter_Testing,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranParameterTesting"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_EventTrigger_UE_Info_Item_Choice_Group_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_EventTrigger_UE_Info_Item_Choice_Group_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ranParameterTesting */
+};
+asn_SEQUENCE_specifics_t asn_SPC_EventTrigger_UE_Info_Item_Choice_Group_specs_1 = {
+	sizeof(struct EventTrigger_UE_Info_Item_Choice_Group),
+	offsetof(struct EventTrigger_UE_Info_Item_Choice_Group, _asn_ctx),
+	asn_MAP_EventTrigger_UE_Info_Item_Choice_Group_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_EventTrigger_UE_Info_Item_Choice_Group = {
+	"EventTrigger-UE-Info-Item-Choice-Group",
+	"EventTrigger-UE-Info-Item-Choice-Group",
+	&asn_OP_SEQUENCE,
+	asn_DEF_EventTrigger_UE_Info_Item_Choice_Group_tags_1,
+	sizeof(asn_DEF_EventTrigger_UE_Info_Item_Choice_Group_tags_1)
+		/sizeof(asn_DEF_EventTrigger_UE_Info_Item_Choice_Group_tags_1[0]), /* 1 */
+	asn_DEF_EventTrigger_UE_Info_Item_Choice_Group_tags_1,	/* Same as above */
+	sizeof(asn_DEF_EventTrigger_UE_Info_Item_Choice_Group_tags_1)
+		/sizeof(asn_DEF_EventTrigger_UE_Info_Item_Choice_Group_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_EventTrigger_UE_Info_Item_Choice_Group_1,
+	1,	/* Elements count */
+	&asn_SPC_EventTrigger_UE_Info_Item_Choice_Group_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/EventTrigger-UE-Info-Item-Choice-Individual.c b/e2sm/lib/EventTrigger-UE-Info-Item-Choice-Individual.c
new file mode 100644
index 0000000..d822187
--- /dev/null
+++ b/e2sm/lib/EventTrigger-UE-Info-Item-Choice-Individual.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "EventTrigger-UE-Info-Item-Choice-Individual.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)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_UEID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ueID"
+		},
+	{ ATF_NOFLAGS, 0, 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,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranParameterTesting"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_EventTrigger_UE_Info_Item_Choice_Individual_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_EventTrigger_UE_Info_Item_Choice_Individual_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ueID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranParameterTesting */
+};
+asn_SEQUENCE_specifics_t asn_SPC_EventTrigger_UE_Info_Item_Choice_Individual_specs_1 = {
+	sizeof(struct EventTrigger_UE_Info_Item_Choice_Individual),
+	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) */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_EventTrigger_UE_Info_Item_Choice_Individual = {
+	"EventTrigger-UE-Info-Item-Choice-Individual",
+	"EventTrigger-UE-Info-Item-Choice-Individual",
+	&asn_OP_SEQUENCE,
+	asn_DEF_EventTrigger_UE_Info_Item_Choice_Individual_tags_1,
+	sizeof(asn_DEF_EventTrigger_UE_Info_Item_Choice_Individual_tags_1)
+		/sizeof(asn_DEF_EventTrigger_UE_Info_Item_Choice_Individual_tags_1[0]), /* 1 */
+	asn_DEF_EventTrigger_UE_Info_Item_Choice_Individual_tags_1,	/* Same as above */
+	sizeof(asn_DEF_EventTrigger_UE_Info_Item_Choice_Individual_tags_1)
+		/sizeof(asn_DEF_EventTrigger_UE_Info_Item_Choice_Individual_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_EventTrigger_UE_Info_Item_Choice_Individual_1,
+	2,	/* Elements count */
+	&asn_SPC_EventTrigger_UE_Info_Item_Choice_Individual_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/EventTrigger-UE-Info-Item.c b/e2sm/lib/EventTrigger-UE-Info-Item.c
new file mode 100644
index 0000000..dfb34d0
--- /dev/null
+++ b/e2sm/lib/EventTrigger-UE-Info-Item.c
@@ -0,0 +1,131 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "EventTrigger-UE-Info-Item.h"
+
+#include "EventTrigger-UE-Info-Item-Choice-Individual.h"
+#include "EventTrigger-UE-Info-Item-Choice-Group.h"
+static asn_oer_constraints_t asn_OER_type_ueType_constr_3 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_type_ueType_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 asn_TYPE_member_t asn_MBR_ueType_3[] = {
+	{ ATF_POINTER, 0, offsetof(struct EventTrigger_UE_Info_Item__ueType, choice.ueType_Choice_Individual),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_EventTrigger_UE_Info_Item_Choice_Individual,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ueType-Choice-Individual"
+		},
+	{ ATF_POINTER, 0, offsetof(struct EventTrigger_UE_Info_Item__ueType, choice.ueType_Choice_Group),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_EventTrigger_UE_Info_Item_Choice_Group,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ueType-Choice-Group"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_ueType_tag2el_3[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ueType-Choice-Individual */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ueType-Choice-Group */
+};
+static asn_CHOICE_specifics_t asn_SPC_ueType_specs_3 = {
+	sizeof(struct EventTrigger_UE_Info_Item__ueType),
+	offsetof(struct EventTrigger_UE_Info_Item__ueType, _asn_ctx),
+	offsetof(struct EventTrigger_UE_Info_Item__ueType, present),
+	sizeof(((struct EventTrigger_UE_Info_Item__ueType *)0)->present),
+	asn_MAP_ueType_tag2el_3,
+	2,	/* Count of tags in the map */
+	0, 0,
+	2	/* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ueType_3 = {
+	"ueType",
+	"ueType",
+	&asn_OP_CHOICE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ &asn_OER_type_ueType_constr_3, &asn_PER_type_ueType_constr_3, CHOICE_constraint },
+	asn_MBR_ueType_3,
+	2,	/* Elements count */
+	&asn_SPC_ueType_specs_3	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_EventTrigger_UE_Info_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct EventTrigger_UE_Info_Item, eventTriggerUEID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_EventTrigger_UE_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"eventTriggerUEID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct EventTrigger_UE_Info_Item, ueType),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_ueType_3,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ueType"
+		},
+	{ ATF_POINTER, 1, offsetof(struct EventTrigger_UE_Info_Item, logicalOR),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_LogicalOR,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"logicalOR"
+		},
+};
+static const int asn_MAP_EventTrigger_UE_Info_Item_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_EventTrigger_UE_Info_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_EventTrigger_UE_Info_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventTriggerUEID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ueType */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* logicalOR */
+};
+asn_SEQUENCE_specifics_t asn_SPC_EventTrigger_UE_Info_Item_specs_1 = {
+	sizeof(struct EventTrigger_UE_Info_Item),
+	offsetof(struct EventTrigger_UE_Info_Item, _asn_ctx),
+	asn_MAP_EventTrigger_UE_Info_Item_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_EventTrigger_UE_Info_Item_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	3,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_EventTrigger_UE_Info_Item = {
+	"EventTrigger-UE-Info-Item",
+	"EventTrigger-UE-Info-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_EventTrigger_UE_Info_Item_tags_1,
+	sizeof(asn_DEF_EventTrigger_UE_Info_Item_tags_1)
+		/sizeof(asn_DEF_EventTrigger_UE_Info_Item_tags_1[0]), /* 1 */
+	asn_DEF_EventTrigger_UE_Info_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_EventTrigger_UE_Info_Item_tags_1)
+		/sizeof(asn_DEF_EventTrigger_UE_Info_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_EventTrigger_UE_Info_Item_1,
+	3,	/* Elements count */
+	&asn_SPC_EventTrigger_UE_Info_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/EventTrigger-UE-Info.c b/e2sm/lib/EventTrigger-UE-Info.c
new file mode 100644
index 0000000..85a6492
--- /dev/null
+++ b/e2sm/lib/EventTrigger-UE-Info.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "EventTrigger-UE-Info.h"
+
+#include "EventTrigger-UE-Info-Item.h"
+static int
+memb_ueInfo_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_ueInfo_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_type_ueInfo_List_constr_2 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_ueInfo_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_memb_ueInfo_List_constr_2 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_ueInfo_List_2[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_EventTrigger_UE_Info_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ueInfo_List_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ueInfo_List_specs_2 = {
+	sizeof(struct EventTrigger_UE_Info__ueInfo_List),
+	offsetof(struct EventTrigger_UE_Info__ueInfo_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ueInfo_List_2 = {
+	"ueInfo-List",
+	"ueInfo-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ueInfo_List_tags_2,
+	sizeof(asn_DEF_ueInfo_List_tags_2)
+		/sizeof(asn_DEF_ueInfo_List_tags_2[0]) - 1, /* 1 */
+	asn_DEF_ueInfo_List_tags_2,	/* Same as above */
+	sizeof(asn_DEF_ueInfo_List_tags_2)
+		/sizeof(asn_DEF_ueInfo_List_tags_2[0]), /* 2 */
+	{ &asn_OER_type_ueInfo_List_constr_2, &asn_PER_type_ueInfo_List_constr_2, SEQUENCE_OF_constraint },
+	asn_MBR_ueInfo_List_2,
+	1,	/* Single element */
+	&asn_SPC_ueInfo_List_specs_2	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_EventTrigger_UE_Info_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct EventTrigger_UE_Info, ueInfo_List),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_ueInfo_List_2,
+		0,
+		{ &asn_OER_memb_ueInfo_List_constr_2, &asn_PER_memb_ueInfo_List_constr_2,  memb_ueInfo_List_constraint_1 },
+		0, 0, /* No default value */
+		"ueInfo-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_EventTrigger_UE_Info_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_EventTrigger_UE_Info_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ueInfo-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_EventTrigger_UE_Info_specs_1 = {
+	sizeof(struct EventTrigger_UE_Info),
+	offsetof(struct EventTrigger_UE_Info, _asn_ctx),
+	asn_MAP_EventTrigger_UE_Info_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_EventTrigger_UE_Info = {
+	"EventTrigger-UE-Info",
+	"EventTrigger-UE-Info",
+	&asn_OP_SEQUENCE,
+	asn_DEF_EventTrigger_UE_Info_tags_1,
+	sizeof(asn_DEF_EventTrigger_UE_Info_tags_1)
+		/sizeof(asn_DEF_EventTrigger_UE_Info_tags_1[0]), /* 1 */
+	asn_DEF_EventTrigger_UE_Info_tags_1,	/* Same as above */
+	sizeof(asn_DEF_EventTrigger_UE_Info_tags_1)
+		/sizeof(asn_DEF_EventTrigger_UE_Info_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_EventTrigger_UE_Info_1,
+	1,	/* Elements count */
+	&asn_SPC_EventTrigger_UE_Info_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/EventTrigger-UEevent-Info-Item.c b/e2sm/lib/EventTrigger-UEevent-Info-Item.c
new file mode 100644
index 0000000..868fa6b
--- /dev/null
+++ b/e2sm/lib/EventTrigger-UEevent-Info-Item.c
@@ -0,0 +1,62 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "EventTrigger-UEevent-Info-Item.h"
+
+asn_TYPE_member_t asn_MBR_EventTrigger_UEevent_Info_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct EventTrigger_UEevent_Info_Item, ueEventID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_EventTrigger_UEevent_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ueEventID"
+		},
+	{ ATF_POINTER, 1, offsetof(struct EventTrigger_UEevent_Info_Item, logicalOR),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_LogicalOR,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"logicalOR"
+		},
+};
+static const int asn_MAP_EventTrigger_UEevent_Info_Item_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_EventTrigger_UEevent_Info_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_EventTrigger_UEevent_Info_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ueEventID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* logicalOR */
+};
+asn_SEQUENCE_specifics_t asn_SPC_EventTrigger_UEevent_Info_Item_specs_1 = {
+	sizeof(struct EventTrigger_UEevent_Info_Item),
+	offsetof(struct EventTrigger_UEevent_Info_Item, _asn_ctx),
+	asn_MAP_EventTrigger_UEevent_Info_Item_tag2el_1,
+	2,	/* Count of tags in the map */
+	asn_MAP_EventTrigger_UEevent_Info_Item_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_EventTrigger_UEevent_Info_Item = {
+	"EventTrigger-UEevent-Info-Item",
+	"EventTrigger-UEevent-Info-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_EventTrigger_UEevent_Info_Item_tags_1,
+	sizeof(asn_DEF_EventTrigger_UEevent_Info_Item_tags_1)
+		/sizeof(asn_DEF_EventTrigger_UEevent_Info_Item_tags_1[0]), /* 1 */
+	asn_DEF_EventTrigger_UEevent_Info_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_EventTrigger_UEevent_Info_Item_tags_1)
+		/sizeof(asn_DEF_EventTrigger_UEevent_Info_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_EventTrigger_UEevent_Info_Item_1,
+	2,	/* Elements count */
+	&asn_SPC_EventTrigger_UEevent_Info_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/EventTrigger-UEevent-Info.c b/e2sm/lib/EventTrigger-UEevent-Info.c
new file mode 100644
index 0000000..77a5ed7
--- /dev/null
+++ b/e2sm/lib/EventTrigger-UEevent-Info.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "EventTrigger-UEevent-Info.h"
+
+#include "EventTrigger-UEevent-Info-Item.h"
+static int
+memb_ueEvent_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_ueEvent_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_type_ueEvent_List_constr_2 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_ueEvent_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_memb_ueEvent_List_constr_2 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_ueEvent_List_2[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_EventTrigger_UEevent_Info_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ueEvent_List_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ueEvent_List_specs_2 = {
+	sizeof(struct EventTrigger_UEevent_Info__ueEvent_List),
+	offsetof(struct EventTrigger_UEevent_Info__ueEvent_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ueEvent_List_2 = {
+	"ueEvent-List",
+	"ueEvent-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ueEvent_List_tags_2,
+	sizeof(asn_DEF_ueEvent_List_tags_2)
+		/sizeof(asn_DEF_ueEvent_List_tags_2[0]) - 1, /* 1 */
+	asn_DEF_ueEvent_List_tags_2,	/* Same as above */
+	sizeof(asn_DEF_ueEvent_List_tags_2)
+		/sizeof(asn_DEF_ueEvent_List_tags_2[0]), /* 2 */
+	{ &asn_OER_type_ueEvent_List_constr_2, &asn_PER_type_ueEvent_List_constr_2, SEQUENCE_OF_constraint },
+	asn_MBR_ueEvent_List_2,
+	1,	/* Single element */
+	&asn_SPC_ueEvent_List_specs_2	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_EventTrigger_UEevent_Info_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct EventTrigger_UEevent_Info, ueEvent_List),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_ueEvent_List_2,
+		0,
+		{ &asn_OER_memb_ueEvent_List_constr_2, &asn_PER_memb_ueEvent_List_constr_2,  memb_ueEvent_List_constraint_1 },
+		0, 0, /* No default value */
+		"ueEvent-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_EventTrigger_UEevent_Info_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_EventTrigger_UEevent_Info_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ueEvent-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_EventTrigger_UEevent_Info_specs_1 = {
+	sizeof(struct EventTrigger_UEevent_Info),
+	offsetof(struct EventTrigger_UEevent_Info, _asn_ctx),
+	asn_MAP_EventTrigger_UEevent_Info_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_EventTrigger_UEevent_Info = {
+	"EventTrigger-UEevent-Info",
+	"EventTrigger-UEevent-Info",
+	&asn_OP_SEQUENCE,
+	asn_DEF_EventTrigger_UEevent_Info_tags_1,
+	sizeof(asn_DEF_EventTrigger_UEevent_Info_tags_1)
+		/sizeof(asn_DEF_EventTrigger_UEevent_Info_tags_1[0]), /* 1 */
+	asn_DEF_EventTrigger_UEevent_Info_tags_1,	/* Same as above */
+	sizeof(asn_DEF_EventTrigger_UEevent_Info_tags_1)
+		/sizeof(asn_DEF_EventTrigger_UEevent_Info_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_EventTrigger_UEevent_Info_1,
+	1,	/* Elements count */
+	&asn_SPC_EventTrigger_UEevent_Info_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/FGC-CUUP-PM-Format.c b/e2sm/lib/FGC-CUUP-PM-Format.c
deleted file mode 100644
index 634e092..0000000
--- a/e2sm/lib/FGC-CUUP-PM-Format.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "FGC-CUUP-PM-Format.h"
-
-#include "SliceToReportListItem.h"
-static int
-memb_sliceToReportList_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 <= 1024)) {
-		/* 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_sliceToReportList_constr_2 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..1024)) */};
-static asn_per_constraints_t asn_PER_type_sliceToReportList_constr_2 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 10,  10,  1,  1024 }	/* (SIZE(1..1024)) */,
-	0, 0	/* No PER value map */
-};
-static asn_oer_constraints_t asn_OER_memb_sliceToReportList_constr_2 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..1024)) */};
-static asn_per_constraints_t asn_PER_memb_sliceToReportList_constr_2 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 10,  10,  1,  1024 }	/* (SIZE(1..1024)) */,
-	0, 0	/* No PER value map */
-};
-static asn_TYPE_member_t asn_MBR_sliceToReportList_2[] = {
-	{ ATF_POINTER, 0, 0,
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_SliceToReportListItem,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		""
-		},
-};
-static const ber_tlv_tag_t asn_DEF_sliceToReportList_tags_2[] = {
-	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static asn_SET_OF_specifics_t asn_SPC_sliceToReportList_specs_2 = {
-	sizeof(struct FGC_CUUP_PM_Format__sliceToReportList),
-	offsetof(struct FGC_CUUP_PM_Format__sliceToReportList, _asn_ctx),
-	0,	/* XER encoding is XMLDelimitedItemList */
-};
-static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_sliceToReportList_2 = {
-	"sliceToReportList",
-	"sliceToReportList",
-	&asn_OP_SEQUENCE_OF,
-	asn_DEF_sliceToReportList_tags_2,
-	sizeof(asn_DEF_sliceToReportList_tags_2)
-		/sizeof(asn_DEF_sliceToReportList_tags_2[0]) - 1, /* 1 */
-	asn_DEF_sliceToReportList_tags_2,	/* Same as above */
-	sizeof(asn_DEF_sliceToReportList_tags_2)
-		/sizeof(asn_DEF_sliceToReportList_tags_2[0]), /* 2 */
-	{ &asn_OER_type_sliceToReportList_constr_2, &asn_PER_type_sliceToReportList_constr_2, SEQUENCE_OF_constraint },
-	asn_MBR_sliceToReportList_2,
-	1,	/* Single element */
-	&asn_SPC_sliceToReportList_specs_2	/* Additional specs */
-};
-
-asn_TYPE_member_t asn_MBR_FGC_CUUP_PM_Format_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct FGC_CUUP_PM_Format, sliceToReportList),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		0,
-		&asn_DEF_sliceToReportList_2,
-		0,
-		{ &asn_OER_memb_sliceToReportList_constr_2, &asn_PER_memb_sliceToReportList_constr_2,  memb_sliceToReportList_constraint_1 },
-		0, 0, /* No default value */
-		"sliceToReportList"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_FGC_CUUP_PM_Format_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_FGC_CUUP_PM_Format_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* sliceToReportList */
-};
-asn_SEQUENCE_specifics_t asn_SPC_FGC_CUUP_PM_Format_specs_1 = {
-	sizeof(struct FGC_CUUP_PM_Format),
-	offsetof(struct FGC_CUUP_PM_Format, _asn_ctx),
-	asn_MAP_FGC_CUUP_PM_Format_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_FGC_CUUP_PM_Format = {
-	"FGC-CUUP-PM-Format",
-	"FGC-CUUP-PM-Format",
-	&asn_OP_SEQUENCE,
-	asn_DEF_FGC_CUUP_PM_Format_tags_1,
-	sizeof(asn_DEF_FGC_CUUP_PM_Format_tags_1)
-		/sizeof(asn_DEF_FGC_CUUP_PM_Format_tags_1[0]), /* 1 */
-	asn_DEF_FGC_CUUP_PM_Format_tags_1,	/* Same as above */
-	sizeof(asn_DEF_FGC_CUUP_PM_Format_tags_1)
-		/sizeof(asn_DEF_FGC_CUUP_PM_Format_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_FGC_CUUP_PM_Format_1,
-	1,	/* Elements count */
-	&asn_SPC_FGC_CUUP_PM_Format_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/FGC-DU-PM-Container.c b/e2sm/lib/FGC-DU-PM-Container.c
deleted file mode 100644
index 859867f..0000000
--- a/e2sm/lib/FGC-DU-PM-Container.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "FGC-DU-PM-Container.h"
-
-#include "SlicePerPlmnPerCellListItem.h"
-static int
-memb_slicePerPlmnPerCellList_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 <= 1024)) {
-		/* 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_slicePerPlmnPerCellList_constr_2 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..1024)) */};
-static asn_per_constraints_t asn_PER_type_slicePerPlmnPerCellList_constr_2 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 10,  10,  1,  1024 }	/* (SIZE(1..1024)) */,
-	0, 0	/* No PER value map */
-};
-static asn_oer_constraints_t asn_OER_memb_slicePerPlmnPerCellList_constr_2 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..1024)) */};
-static asn_per_constraints_t asn_PER_memb_slicePerPlmnPerCellList_constr_2 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 10,  10,  1,  1024 }	/* (SIZE(1..1024)) */,
-	0, 0	/* No PER value map */
-};
-static asn_TYPE_member_t asn_MBR_slicePerPlmnPerCellList_2[] = {
-	{ ATF_POINTER, 0, 0,
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_SlicePerPlmnPerCellListItem,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		""
-		},
-};
-static const ber_tlv_tag_t asn_DEF_slicePerPlmnPerCellList_tags_2[] = {
-	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static asn_SET_OF_specifics_t asn_SPC_slicePerPlmnPerCellList_specs_2 = {
-	sizeof(struct FGC_DU_PM_Container__slicePerPlmnPerCellList),
-	offsetof(struct FGC_DU_PM_Container__slicePerPlmnPerCellList, _asn_ctx),
-	0,	/* XER encoding is XMLDelimitedItemList */
-};
-static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_slicePerPlmnPerCellList_2 = {
-	"slicePerPlmnPerCellList",
-	"slicePerPlmnPerCellList",
-	&asn_OP_SEQUENCE_OF,
-	asn_DEF_slicePerPlmnPerCellList_tags_2,
-	sizeof(asn_DEF_slicePerPlmnPerCellList_tags_2)
-		/sizeof(asn_DEF_slicePerPlmnPerCellList_tags_2[0]) - 1, /* 1 */
-	asn_DEF_slicePerPlmnPerCellList_tags_2,	/* Same as above */
-	sizeof(asn_DEF_slicePerPlmnPerCellList_tags_2)
-		/sizeof(asn_DEF_slicePerPlmnPerCellList_tags_2[0]), /* 2 */
-	{ &asn_OER_type_slicePerPlmnPerCellList_constr_2, &asn_PER_type_slicePerPlmnPerCellList_constr_2, SEQUENCE_OF_constraint },
-	asn_MBR_slicePerPlmnPerCellList_2,
-	1,	/* Single element */
-	&asn_SPC_slicePerPlmnPerCellList_specs_2	/* Additional specs */
-};
-
-asn_TYPE_member_t asn_MBR_FGC_DU_PM_Container_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct FGC_DU_PM_Container, slicePerPlmnPerCellList),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		0,
-		&asn_DEF_slicePerPlmnPerCellList_2,
-		0,
-		{ &asn_OER_memb_slicePerPlmnPerCellList_constr_2, &asn_PER_memb_slicePerPlmnPerCellList_constr_2,  memb_slicePerPlmnPerCellList_constraint_1 },
-		0, 0, /* No default value */
-		"slicePerPlmnPerCellList"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_FGC_DU_PM_Container_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_FGC_DU_PM_Container_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* slicePerPlmnPerCellList */
-};
-asn_SEQUENCE_specifics_t asn_SPC_FGC_DU_PM_Container_specs_1 = {
-	sizeof(struct FGC_DU_PM_Container),
-	offsetof(struct FGC_DU_PM_Container, _asn_ctx),
-	asn_MAP_FGC_DU_PM_Container_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_FGC_DU_PM_Container = {
-	"FGC-DU-PM-Container",
-	"FGC-DU-PM-Container",
-	&asn_OP_SEQUENCE,
-	asn_DEF_FGC_DU_PM_Container_tags_1,
-	sizeof(asn_DEF_FGC_DU_PM_Container_tags_1)
-		/sizeof(asn_DEF_FGC_DU_PM_Container_tags_1[0]), /* 1 */
-	asn_DEF_FGC_DU_PM_Container_tags_1,	/* Same as above */
-	sizeof(asn_DEF_FGC_DU_PM_Container_tags_1)
-		/sizeof(asn_DEF_FGC_DU_PM_Container_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_FGC_DU_PM_Container_1,
-	1,	/* Elements count */
-	&asn_SPC_FGC_DU_PM_Container_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/FQIPERSlicesPerPlmnListItem.c b/e2sm/lib/FQIPERSlicesPerPlmnListItem.c
deleted file mode 100644
index e875ee2..0000000
--- a/e2sm/lib/FQIPERSlicesPerPlmnListItem.c
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "FQIPERSlicesPerPlmnListItem.h"
-
-static int
-memb_pDCPBytesDL_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	const INTEGER_t *st = (const INTEGER_t *)sptr;
-	long value;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	if(asn_INTEGER2long(st, &value)) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value too large (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	if((value >= 0 && value <= 10000000000)) {
-		/* Constraint check succeeded */
-		return 0;
-	} else {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: constraint failed (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-}
-
-static int
-memb_pDCPBytesUL_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	const INTEGER_t *st = (const INTEGER_t *)sptr;
-	long value;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	if(asn_INTEGER2long(st, &value)) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value too large (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	if((value >= 0 && value <= 10000000000)) {
-		/* Constraint check succeeded */
-		return 0;
-	} 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_memb_pDCPBytesDL_constr_3 CC_NOTUSED = {
-	{ 0, 0 },
-	-1};
-static asn_per_constraints_t asn_PER_memb_pDCPBytesDL_constr_3 CC_NOTUSED = {
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  34, -1,  0,  10000000000 }	/* (0..10000000000,...) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static asn_oer_constraints_t asn_OER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = {
-	{ 0, 0 },
-	-1};
-static asn_per_constraints_t asn_PER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = {
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  34, -1,  0,  10000000000 }	/* (0..10000000000,...) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-asn_TYPE_member_t asn_MBR_FQIPERSlicesPerPlmnListItem_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct FQIPERSlicesPerPlmnListItem, fiveQI),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_FiveQI,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"fiveQI"
-		},
-	{ ATF_POINTER, 2, offsetof(struct FQIPERSlicesPerPlmnListItem, pDCPBytesDL),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_INTEGER,
-		0,
-		{ &asn_OER_memb_pDCPBytesDL_constr_3, &asn_PER_memb_pDCPBytesDL_constr_3,  memb_pDCPBytesDL_constraint_1 },
-		0, 0, /* No default value */
-		"pDCPBytesDL"
-		},
-	{ ATF_POINTER, 1, offsetof(struct FQIPERSlicesPerPlmnListItem, pDCPBytesUL),
-		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_INTEGER,
-		0,
-		{ &asn_OER_memb_pDCPBytesUL_constr_4, &asn_PER_memb_pDCPBytesUL_constr_4,  memb_pDCPBytesUL_constraint_1 },
-		0, 0, /* No default value */
-		"pDCPBytesUL"
-		},
-};
-static const int asn_MAP_FQIPERSlicesPerPlmnListItem_oms_1[] = { 1, 2 };
-static const ber_tlv_tag_t asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_FQIPERSlicesPerPlmnListItem_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fiveQI */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDCPBytesDL */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* pDCPBytesUL */
-};
-asn_SEQUENCE_specifics_t asn_SPC_FQIPERSlicesPerPlmnListItem_specs_1 = {
-	sizeof(struct FQIPERSlicesPerPlmnListItem),
-	offsetof(struct FQIPERSlicesPerPlmnListItem, _asn_ctx),
-	asn_MAP_FQIPERSlicesPerPlmnListItem_tag2el_1,
-	3,	/* Count of tags in the map */
-	asn_MAP_FQIPERSlicesPerPlmnListItem_oms_1,	/* Optional members */
-	2, 0,	/* Root/Additions */
-	3,	/* First extension addition */
-};
-asn_TYPE_descriptor_t asn_DEF_FQIPERSlicesPerPlmnListItem = {
-	"FQIPERSlicesPerPlmnListItem",
-	"FQIPERSlicesPerPlmnListItem",
-	&asn_OP_SEQUENCE,
-	asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1,
-	sizeof(asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1)
-		/sizeof(asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1[0]), /* 1 */
-	asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1,	/* Same as above */
-	sizeof(asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1)
-		/sizeof(asn_DEF_FQIPERSlicesPerPlmnListItem_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_FQIPERSlicesPerPlmnListItem_1,
-	3,	/* Elements count */
-	&asn_SPC_FQIPERSlicesPerPlmnListItem_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/FQIPERSlicesPerPlmnPerCellListItem.c b/e2sm/lib/FQIPERSlicesPerPlmnPerCellListItem.c
deleted file mode 100644
index d69f8a1..0000000
--- a/e2sm/lib/FQIPERSlicesPerPlmnPerCellListItem.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "FQIPERSlicesPerPlmnPerCellListItem.h"
-
-static int
-memb_dl_PRBUsage_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	long value;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	value = *(const long *)sptr;
-	
-	if((value >= 0 && value <= 273)) {
-		/* Constraint check succeeded */
-		return 0;
-	} else {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: constraint failed (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-}
-
-static int
-memb_ul_PRBUsage_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	long value;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	value = *(const long *)sptr;
-	
-	if((value >= 0 && value <= 273)) {
-		/* Constraint check succeeded */
-		return 0;
-	} 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_memb_dl_PRBUsage_constr_3 CC_NOTUSED = {
-	{ 2, 1 }	/* (0..273) */,
-	-1};
-static asn_per_constraints_t asn_PER_memb_dl_PRBUsage_constr_3 CC_NOTUSED = {
-	{ APC_CONSTRAINED,	 9,  9,  0,  273 }	/* (0..273) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static asn_oer_constraints_t asn_OER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = {
-	{ 2, 1 }	/* (0..273) */,
-	-1};
-static asn_per_constraints_t asn_PER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = {
-	{ APC_CONSTRAINED,	 9,  9,  0,  273 }	/* (0..273) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-asn_TYPE_member_t asn_MBR_FQIPERSlicesPerPlmnPerCellListItem_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct FQIPERSlicesPerPlmnPerCellListItem, fiveQI),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_FiveQI,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"fiveQI"
-		},
-	{ ATF_POINTER, 2, offsetof(struct FQIPERSlicesPerPlmnPerCellListItem, dl_PRBUsage),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_NativeInteger,
-		0,
-		{ &asn_OER_memb_dl_PRBUsage_constr_3, &asn_PER_memb_dl_PRBUsage_constr_3,  memb_dl_PRBUsage_constraint_1 },
-		0, 0, /* No default value */
-		"dl-PRBUsage"
-		},
-	{ ATF_POINTER, 1, offsetof(struct FQIPERSlicesPerPlmnPerCellListItem, ul_PRBUsage),
-		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_NativeInteger,
-		0,
-		{ &asn_OER_memb_ul_PRBUsage_constr_4, &asn_PER_memb_ul_PRBUsage_constr_4,  memb_ul_PRBUsage_constraint_1 },
-		0, 0, /* No default value */
-		"ul-PRBUsage"
-		},
-};
-static const int asn_MAP_FQIPERSlicesPerPlmnPerCellListItem_oms_1[] = { 1, 2 };
-static const ber_tlv_tag_t asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_FQIPERSlicesPerPlmnPerCellListItem_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fiveQI */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dl-PRBUsage */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ul-PRBUsage */
-};
-asn_SEQUENCE_specifics_t asn_SPC_FQIPERSlicesPerPlmnPerCellListItem_specs_1 = {
-	sizeof(struct FQIPERSlicesPerPlmnPerCellListItem),
-	offsetof(struct FQIPERSlicesPerPlmnPerCellListItem, _asn_ctx),
-	asn_MAP_FQIPERSlicesPerPlmnPerCellListItem_tag2el_1,
-	3,	/* Count of tags in the map */
-	asn_MAP_FQIPERSlicesPerPlmnPerCellListItem_oms_1,	/* Optional members */
-	2, 0,	/* Root/Additions */
-	3,	/* First extension addition */
-};
-asn_TYPE_descriptor_t asn_DEF_FQIPERSlicesPerPlmnPerCellListItem = {
-	"FQIPERSlicesPerPlmnPerCellListItem",
-	"FQIPERSlicesPerPlmnPerCellListItem",
-	&asn_OP_SEQUENCE,
-	asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1,
-	sizeof(asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1)
-		/sizeof(asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1[0]), /* 1 */
-	asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1,	/* Same as above */
-	sizeof(asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1)
-		/sizeof(asn_DEF_FQIPERSlicesPerPlmnPerCellListItem_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_FQIPERSlicesPerPlmnPerCellListItem_1,
-	3,	/* Elements count */
-	&asn_SPC_FQIPERSlicesPerPlmnPerCellListItem_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/FiveGS-TAC.c b/e2sm/lib/FiveGS-TAC.c
new file mode 100644
index 0000000..48ff439
--- /dev/null
+++ b/e2sm/lib/FiveGS-TAC.c
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "FiveGS-TAC.h"
+
+int
+FiveGS_TAC_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size == 3)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_FiveGS_TAC_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	3	/* (SIZE(3..3)) */};
+asn_per_constraints_t asn_PER_type_FiveGS_TAC_constr_1 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  3,  3 }	/* (SIZE(3..3)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_FiveGS_TAC_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_FiveGS_TAC = {
+	"FiveGS-TAC",
+	"FiveGS-TAC",
+	&asn_OP_OCTET_STRING,
+	asn_DEF_FiveGS_TAC_tags_1,
+	sizeof(asn_DEF_FiveGS_TAC_tags_1)
+		/sizeof(asn_DEF_FiveGS_TAC_tags_1[0]), /* 1 */
+	asn_DEF_FiveGS_TAC_tags_1,	/* Same as above */
+	sizeof(asn_DEF_FiveGS_TAC_tags_1)
+		/sizeof(asn_DEF_FiveGS_TAC_tags_1[0]), /* 1 */
+	{ &asn_OER_type_FiveGS_TAC_constr_1, &asn_PER_type_FiveGS_TAC_constr_1, FiveGS_TAC_constraint },
+	0, 0,	/* No members */
+	&asn_SPC_OCTET_STRING_specs	/* Additional specs */
+};
+
diff --git a/e2sm/lib/FiveQI.c b/e2sm/lib/FiveQI.c
index 15d32c9..c19218b 100644
--- a/e2sm/lib/FiveQI.c
+++ b/e2sm/lib/FiveQI.c
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
diff --git a/e2sm/lib/FreqBandNrItem.c b/e2sm/lib/FreqBandNrItem.c
new file mode 100644
index 0000000..d5cff17
--- /dev/null
+++ b/e2sm/lib/FreqBandNrItem.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "FreqBandNrItem.h"
+
+static int
+memb_freqBandIndicatorNr_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1 && value <= 1024)) {
+		/* Constraint check succeeded */
+		return 0;
+	} 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_memb_freqBandIndicatorNr_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_memb_freqBandIndicatorNr_constr_2 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  10,  10,  1,  1024 }	/* (1..1024,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_FreqBandNrItem_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct FreqBandNrItem, freqBandIndicatorNr),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		0,
+		{ &asn_OER_memb_freqBandIndicatorNr_constr_2, &asn_PER_memb_freqBandIndicatorNr_constr_2,  memb_freqBandIndicatorNr_constraint_1 },
+		0, 0, /* No default value */
+		"freqBandIndicatorNr"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_FreqBandNrItem_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_FreqBandNrItem_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* freqBandIndicatorNr */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_FreqBandNrItem_specs_1 = {
+	sizeof(struct FreqBandNrItem),
+	offsetof(struct FreqBandNrItem, _asn_ctx),
+	asn_MAP_FreqBandNrItem_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_FreqBandNrItem = {
+	"FreqBandNrItem",
+	"FreqBandNrItem",
+	&asn_OP_SEQUENCE,
+	asn_DEF_FreqBandNrItem_tags_1,
+	sizeof(asn_DEF_FreqBandNrItem_tags_1)
+		/sizeof(asn_DEF_FreqBandNrItem_tags_1[0]), /* 1 */
+	asn_DEF_FreqBandNrItem_tags_1,	/* Same as above */
+	sizeof(asn_DEF_FreqBandNrItem_tags_1)
+		/sizeof(asn_DEF_FreqBandNrItem_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_FreqBandNrItem_1,
+	1,	/* Elements count */
+	&asn_SPC_FreqBandNrItem_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/GNB-CU-CP-UE-E1AP-ID.c b/e2sm/lib/GNB-CU-CP-UE-E1AP-ID.c
new file mode 100644
index 0000000..d18a479
--- /dev/null
+++ b/e2sm/lib/GNB-CU-CP-UE-E1AP-ID.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "GNB-CU-CP-UE-E1AP-ID.h"
+
+int
+GNB_CU_CP_UE_E1AP_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	/* Constraint check succeeded */
+	return 0;
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_GNB_CU_CP_UE_E1AP_ID_constr_1 CC_NOTUSED = {
+	{ 4, 1 }	/* (0..4294967295) */,
+	-1};
+asn_per_constraints_t asn_PER_type_GNB_CU_CP_UE_E1AP_ID_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 32, -1,  0,  4294967295 }	/* (0..4294967295) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+const asn_INTEGER_specifics_t asn_SPC_GNB_CU_CP_UE_E1AP_ID_specs_1 = {
+	0,	0,	0,	0,	0,
+	0,	/* Native long size */
+	1	/* Unsigned representation */
+};
+static const ber_tlv_tag_t asn_DEF_GNB_CU_CP_UE_E1AP_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_GNB_CU_CP_UE_E1AP_ID = {
+	"GNB-CU-CP-UE-E1AP-ID",
+	"GNB-CU-CP-UE-E1AP-ID",
+	&asn_OP_NativeInteger,
+	asn_DEF_GNB_CU_CP_UE_E1AP_ID_tags_1,
+	sizeof(asn_DEF_GNB_CU_CP_UE_E1AP_ID_tags_1)
+		/sizeof(asn_DEF_GNB_CU_CP_UE_E1AP_ID_tags_1[0]), /* 1 */
+	asn_DEF_GNB_CU_CP_UE_E1AP_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_GNB_CU_CP_UE_E1AP_ID_tags_1)
+		/sizeof(asn_DEF_GNB_CU_CP_UE_E1AP_ID_tags_1[0]), /* 1 */
+	{ &asn_OER_type_GNB_CU_CP_UE_E1AP_ID_constr_1, &asn_PER_type_GNB_CU_CP_UE_E1AP_ID_constr_1, GNB_CU_CP_UE_E1AP_ID_constraint },
+	0, 0,	/* No members */
+	&asn_SPC_GNB_CU_CP_UE_E1AP_ID_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/GNB-CU-UE-F1AP-ID.c b/e2sm/lib/GNB-CU-UE-F1AP-ID.c
new file mode 100644
index 0000000..5b6c575
--- /dev/null
+++ b/e2sm/lib/GNB-CU-UE-F1AP-ID.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "GNB-CU-UE-F1AP-ID.h"
+
+int
+GNB_CU_UE_F1AP_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	/* Constraint check succeeded */
+	return 0;
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_GNB_CU_UE_F1AP_ID_constr_1 CC_NOTUSED = {
+	{ 4, 1 }	/* (0..4294967295) */,
+	-1};
+asn_per_constraints_t asn_PER_type_GNB_CU_UE_F1AP_ID_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 32, -1,  0,  4294967295 }	/* (0..4294967295) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+const asn_INTEGER_specifics_t asn_SPC_GNB_CU_UE_F1AP_ID_specs_1 = {
+	0,	0,	0,	0,	0,
+	0,	/* Native long size */
+	1	/* Unsigned representation */
+};
+static const ber_tlv_tag_t asn_DEF_GNB_CU_UE_F1AP_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_GNB_CU_UE_F1AP_ID = {
+	"GNB-CU-UE-F1AP-ID",
+	"GNB-CU-UE-F1AP-ID",
+	&asn_OP_NativeInteger,
+	asn_DEF_GNB_CU_UE_F1AP_ID_tags_1,
+	sizeof(asn_DEF_GNB_CU_UE_F1AP_ID_tags_1)
+		/sizeof(asn_DEF_GNB_CU_UE_F1AP_ID_tags_1[0]), /* 1 */
+	asn_DEF_GNB_CU_UE_F1AP_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_GNB_CU_UE_F1AP_ID_tags_1)
+		/sizeof(asn_DEF_GNB_CU_UE_F1AP_ID_tags_1[0]), /* 1 */
+	{ &asn_OER_type_GNB_CU_UE_F1AP_ID_constr_1, &asn_PER_type_GNB_CU_UE_F1AP_ID_constr_1, GNB_CU_UE_F1AP_ID_constraint },
+	0, 0,	/* No members */
+	&asn_SPC_GNB_CU_UE_F1AP_ID_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/GNB-CU-UP-ID.c b/e2sm/lib/GNB-CU-UP-ID.c
index a6e0e86..f4c8012 100644
--- a/e2sm/lib/GNB-CU-UP-ID.c
+++ b/e2sm/lib/GNB-CU-UP-ID.c
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
diff --git a/e2sm/lib/GNB-DU-ID.c b/e2sm/lib/GNB-DU-ID.c
index bae29c8..3bbd52c 100644
--- a/e2sm/lib/GNB-DU-ID.c
+++ b/e2sm/lib/GNB-DU-ID.c
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
diff --git a/e2sm/lib/GNB-ID-Choice.c b/e2sm/lib/GNB-ID-Choice.c
deleted file mode 100644
index 34d5450..0000000
--- a/e2sm/lib/GNB-ID-Choice.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "GNB-ID-Choice.h"
-
-static int
-memb_gnb_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
-	size_t size;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	if(st->size > 0) {
-		/* Size in bits */
-		size = 8 * st->size - (st->bits_unused & 0x07);
-	} else {
-		size = 0;
-	}
-	
-	if((size >= 22 && size <= 32)) {
-		/* Constraint check succeeded */
-		return 0;
-	} 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_memb_gnb_ID_constr_2 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(22..32)) */};
-static asn_per_constraints_t asn_PER_memb_gnb_ID_constr_2 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 4,  4,  22,  32 }	/* (SIZE(22..32)) */,
-	0, 0	/* No PER value map */
-};
-static asn_oer_constraints_t asn_OER_type_GNB_ID_Choice_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	-1};
-asn_per_constraints_t asn_PER_type_GNB_ID_Choice_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }	/* (0..0,...) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-asn_TYPE_member_t asn_MBR_GNB_ID_Choice_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct GNB_ID_Choice, choice.gnb_ID),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_BIT_STRING,
-		0,
-		{ &asn_OER_memb_gnb_ID_constr_2, &asn_PER_memb_gnb_ID_constr_2,  memb_gnb_ID_constraint_1 },
-		0, 0, /* No default value */
-		"gnb-ID"
-		},
-};
-static const asn_TYPE_tag2member_t asn_MAP_GNB_ID_Choice_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gnb-ID */
-};
-asn_CHOICE_specifics_t asn_SPC_GNB_ID_Choice_specs_1 = {
-	sizeof(struct GNB_ID_Choice),
-	offsetof(struct GNB_ID_Choice, _asn_ctx),
-	offsetof(struct GNB_ID_Choice, present),
-	sizeof(((struct GNB_ID_Choice *)0)->present),
-	asn_MAP_GNB_ID_Choice_tag2el_1,
-	1,	/* Count of tags in the map */
-	0, 0,
-	1	/* Extensions start */
-};
-asn_TYPE_descriptor_t asn_DEF_GNB_ID_Choice = {
-	"GNB-ID-Choice",
-	"GNB-ID-Choice",
-	&asn_OP_CHOICE,
-	0,	/* No effective tags (pointer) */
-	0,	/* No effective tags (count) */
-	0,	/* No tags (pointer) */
-	0,	/* No tags (count) */
-	{ &asn_OER_type_GNB_ID_Choice_constr_1, &asn_PER_type_GNB_ID_Choice_constr_1, CHOICE_constraint },
-	asn_MBR_GNB_ID_Choice_1,
-	1,	/* Elements count */
-	&asn_SPC_GNB_ID_Choice_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/GNB-ID.c b/e2sm/lib/GNB-ID.c
new file mode 100644
index 0000000..ccde106
--- /dev/null
+++ b/e2sm/lib/GNB-ID.c
@@ -0,0 +1,94 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "GNB-ID.h"
+
+static int
+memb_gNB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size >= 22 && size <= 32)) {
+		/* Constraint check succeeded */
+		return 0;
+	} 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_memb_gNB_ID_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(22..32)) */};
+static asn_per_constraints_t asn_PER_memb_gNB_ID_constr_2 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 4,  4,  22,  32 }	/* (SIZE(22..32)) */,
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_GNB_ID_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_GNB_ID_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }	/* (0..0,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_GNB_ID_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct GNB_ID, choice.gNB_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_BIT_STRING,
+		0,
+		{ &asn_OER_memb_gNB_ID_constr_2, &asn_PER_memb_gNB_ID_constr_2,  memb_gNB_ID_constraint_1 },
+		0, 0, /* No default value */
+		"gNB-ID"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_GNB_ID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gNB-ID */
+};
+asn_CHOICE_specifics_t asn_SPC_GNB_ID_specs_1 = {
+	sizeof(struct GNB_ID),
+	offsetof(struct GNB_ID, _asn_ctx),
+	offsetof(struct GNB_ID, present),
+	sizeof(((struct GNB_ID *)0)->present),
+	asn_MAP_GNB_ID_tag2el_1,
+	1,	/* Count of tags in the map */
+	0, 0,
+	1	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_GNB_ID = {
+	"GNB-ID",
+	"GNB-ID",
+	&asn_OP_CHOICE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ &asn_OER_type_GNB_ID_constr_1, &asn_PER_type_GNB_ID_constr_1, CHOICE_constraint },
+	asn_MBR_GNB_ID_1,
+	1,	/* Elements count */
+	&asn_SPC_GNB_ID_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/GUAMI.c b/e2sm/lib/GUAMI.c
new file mode 100644
index 0000000..05040f5
--- /dev/null
+++ b/e2sm/lib/GUAMI.c
@@ -0,0 +1,80 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "GUAMI.h"
+
+asn_TYPE_member_t asn_MBR_GUAMI_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct GUAMI, pLMNIdentity),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_PLMNIdentity,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"pLMNIdentity"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct GUAMI, aMFRegionID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_AMFRegionID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"aMFRegionID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct GUAMI, aMFSetID),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_AMFSetID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"aMFSetID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct GUAMI, aMFPointer),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_AMFPointer,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"aMFPointer"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_GUAMI_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_GUAMI_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNIdentity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* aMFRegionID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* aMFSetID */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* aMFPointer */
+};
+asn_SEQUENCE_specifics_t asn_SPC_GUAMI_specs_1 = {
+	sizeof(struct GUAMI),
+	offsetof(struct GUAMI, _asn_ctx),
+	asn_MAP_GUAMI_tag2el_1,
+	4,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	4,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_GUAMI = {
+	"GUAMI",
+	"GUAMI",
+	&asn_OP_SEQUENCE,
+	asn_DEF_GUAMI_tags_1,
+	sizeof(asn_DEF_GUAMI_tags_1)
+		/sizeof(asn_DEF_GUAMI_tags_1[0]), /* 1 */
+	asn_DEF_GUAMI_tags_1,	/* Same as above */
+	sizeof(asn_DEF_GUAMI_tags_1)
+		/sizeof(asn_DEF_GUAMI_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_GUAMI_1,
+	4,	/* Elements count */
+	&asn_SPC_GUAMI_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/GUMMEI.c b/e2sm/lib/GUMMEI.c
new file mode 100644
index 0000000..ac0bf5b
--- /dev/null
+++ b/e2sm/lib/GUMMEI.c
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "GUMMEI.h"
+
+asn_TYPE_member_t asn_MBR_GUMMEI_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct GUMMEI, pLMN_Identity),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_PLMNIdentity,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"pLMN-Identity"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct GUMMEI, mME_Group_ID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_MME_Group_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"mME-Group-ID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct GUMMEI, mME_Code),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_MME_Code,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"mME-Code"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_GUMMEI_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_GUMMEI_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mME-Group-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* mME-Code */
+};
+asn_SEQUENCE_specifics_t asn_SPC_GUMMEI_specs_1 = {
+	sizeof(struct GUMMEI),
+	offsetof(struct GUMMEI, _asn_ctx),
+	asn_MAP_GUMMEI_tag2el_1,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	3,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_GUMMEI = {
+	"GUMMEI",
+	"GUMMEI",
+	&asn_OP_SEQUENCE,
+	asn_DEF_GUMMEI_tags_1,
+	sizeof(asn_DEF_GUMMEI_tags_1)
+		/sizeof(asn_DEF_GUMMEI_tags_1[0]), /* 1 */
+	asn_DEF_GUMMEI_tags_1,	/* Same as above */
+	sizeof(asn_DEF_GUMMEI_tags_1)
+		/sizeof(asn_DEF_GUMMEI_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_GUMMEI_1,
+	3,	/* Elements count */
+	&asn_SPC_GUMMEI_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/GlobalE2node-ID.c b/e2sm/lib/GlobalE2node-ID.c
deleted file mode 100644
index 07879f0..0000000
--- a/e2sm/lib/GlobalE2node-ID.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "GlobalE2node-ID.h"
-
-#include "GlobalE2node-gNB-ID.h"
-#include "GlobalE2node-en-gNB-ID.h"
-#include "GlobalE2node-ng-eNB-ID.h"
-#include "GlobalE2node-eNB-ID.h"
-static asn_oer_constraints_t asn_OER_type_GlobalE2node_ID_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	-1};
-asn_per_constraints_t asn_PER_type_GlobalE2node_ID_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  3 }	/* (0..3,...) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-asn_TYPE_member_t asn_MBR_GlobalE2node_ID_1[] = {
-	{ ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.gNB),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_GlobalE2node_gNB_ID,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"gNB"
-		},
-	{ ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.en_gNB),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_GlobalE2node_en_gNB_ID,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"en-gNB"
-		},
-	{ ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.ng_eNB),
-		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_GlobalE2node_ng_eNB_ID,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"ng-eNB"
-		},
-	{ ATF_POINTER, 0, offsetof(struct GlobalE2node_ID, choice.eNB),
-		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_GlobalE2node_eNB_ID,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"eNB"
-		},
-};
-static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_ID_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-gNB */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ng-eNB */
-    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* eNB */
-};
-asn_CHOICE_specifics_t asn_SPC_GlobalE2node_ID_specs_1 = {
-	sizeof(struct GlobalE2node_ID),
-	offsetof(struct GlobalE2node_ID, _asn_ctx),
-	offsetof(struct GlobalE2node_ID, present),
-	sizeof(((struct GlobalE2node_ID *)0)->present),
-	asn_MAP_GlobalE2node_ID_tag2el_1,
-	4,	/* Count of tags in the map */
-	0, 0,
-	4	/* Extensions start */
-};
-asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ID = {
-	"GlobalE2node-ID",
-	"GlobalE2node-ID",
-	&asn_OP_CHOICE,
-	0,	/* No effective tags (pointer) */
-	0,	/* No effective tags (count) */
-	0,	/* No tags (pointer) */
-	0,	/* No tags (count) */
-	{ &asn_OER_type_GlobalE2node_ID_constr_1, &asn_PER_type_GlobalE2node_ID_constr_1, CHOICE_constraint },
-	asn_MBR_GlobalE2node_ID_1,
-	4,	/* Elements count */
-	&asn_SPC_GlobalE2node_ID_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/GlobalE2node-eNB-ID.c b/e2sm/lib/GlobalE2node-eNB-ID.c
deleted file mode 100644
index 5848da9..0000000
--- a/e2sm/lib/GlobalE2node-eNB-ID.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "GlobalE2node-eNB-ID.h"
-
-asn_TYPE_member_t asn_MBR_GlobalE2node_eNB_ID_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_eNB_ID, global_eNB_ID),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_GlobalENB_ID,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"global-eNB-ID"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_GlobalE2node_eNB_ID_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_eNB_ID_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-eNB-ID */
-};
-asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_eNB_ID_specs_1 = {
-	sizeof(struct GlobalE2node_eNB_ID),
-	offsetof(struct GlobalE2node_eNB_ID, _asn_ctx),
-	asn_MAP_GlobalE2node_eNB_ID_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_GlobalE2node_eNB_ID = {
-	"GlobalE2node-eNB-ID",
-	"GlobalE2node-eNB-ID",
-	&asn_OP_SEQUENCE,
-	asn_DEF_GlobalE2node_eNB_ID_tags_1,
-	sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1)
-		/sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1[0]), /* 1 */
-	asn_DEF_GlobalE2node_eNB_ID_tags_1,	/* Same as above */
-	sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1)
-		/sizeof(asn_DEF_GlobalE2node_eNB_ID_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_GlobalE2node_eNB_ID_1,
-	1,	/* Elements count */
-	&asn_SPC_GlobalE2node_eNB_ID_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/GlobalE2node-en-gNB-ID.c b/e2sm/lib/GlobalE2node-en-gNB-ID.c
deleted file mode 100644
index 53c81ad..0000000
--- a/e2sm/lib/GlobalE2node-en-gNB-ID.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "GlobalE2node-en-gNB-ID.h"
-
-asn_TYPE_member_t asn_MBR_GlobalE2node_en_gNB_ID_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_en_gNB_ID, global_gNB_ID),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_GlobalenGNB_ID,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"global-gNB-ID"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_GlobalE2node_en_gNB_ID_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_en_gNB_ID_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-gNB-ID */
-};
-asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_en_gNB_ID_specs_1 = {
-	sizeof(struct GlobalE2node_en_gNB_ID),
-	offsetof(struct GlobalE2node_en_gNB_ID, _asn_ctx),
-	asn_MAP_GlobalE2node_en_gNB_ID_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_GlobalE2node_en_gNB_ID = {
-	"GlobalE2node-en-gNB-ID",
-	"GlobalE2node-en-gNB-ID",
-	&asn_OP_SEQUENCE,
-	asn_DEF_GlobalE2node_en_gNB_ID_tags_1,
-	sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1)
-		/sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1[0]), /* 1 */
-	asn_DEF_GlobalE2node_en_gNB_ID_tags_1,	/* Same as above */
-	sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1)
-		/sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_GlobalE2node_en_gNB_ID_1,
-	1,	/* Elements count */
-	&asn_SPC_GlobalE2node_en_gNB_ID_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/GlobalE2node-gNB-ID.c b/e2sm/lib/GlobalE2node-gNB-ID.c
deleted file mode 100644
index 6be7447..0000000
--- a/e2sm/lib/GlobalE2node-gNB-ID.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "GlobalE2node-gNB-ID.h"
-
-asn_TYPE_member_t asn_MBR_GlobalE2node_gNB_ID_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_gNB_ID, global_gNB_ID),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_GlobalgNB_ID,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"global-gNB-ID"
-		},
-	{ ATF_POINTER, 2, offsetof(struct GlobalE2node_gNB_ID, gNB_CU_UP_ID),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_GNB_CU_UP_ID,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"gNB-CU-UP-ID"
-		},
-	{ ATF_POINTER, 1, offsetof(struct GlobalE2node_gNB_ID, gNB_DU_ID),
-		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_GNB_DU_ID,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"gNB-DU-ID"
-		},
-};
-static const int asn_MAP_GlobalE2node_gNB_ID_oms_1[] = { 1, 2 };
-static const ber_tlv_tag_t asn_DEF_GlobalE2node_gNB_ID_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_gNB_ID_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* global-gNB-ID */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* gNB-CU-UP-ID */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* gNB-DU-ID */
-};
-asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_gNB_ID_specs_1 = {
-	sizeof(struct GlobalE2node_gNB_ID),
-	offsetof(struct GlobalE2node_gNB_ID, _asn_ctx),
-	asn_MAP_GlobalE2node_gNB_ID_tag2el_1,
-	3,	/* Count of tags in the map */
-	asn_MAP_GlobalE2node_gNB_ID_oms_1,	/* Optional members */
-	2, 0,	/* Root/Additions */
-	3,	/* First extension addition */
-};
-asn_TYPE_descriptor_t asn_DEF_GlobalE2node_gNB_ID = {
-	"GlobalE2node-gNB-ID",
-	"GlobalE2node-gNB-ID",
-	&asn_OP_SEQUENCE,
-	asn_DEF_GlobalE2node_gNB_ID_tags_1,
-	sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1)
-		/sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1[0]), /* 1 */
-	asn_DEF_GlobalE2node_gNB_ID_tags_1,	/* Same as above */
-	sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1)
-		/sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_GlobalE2node_gNB_ID_1,
-	3,	/* Elements count */
-	&asn_SPC_GlobalE2node_gNB_ID_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/GlobalE2node-ng-eNB-ID.c b/e2sm/lib/GlobalE2node-ng-eNB-ID.c
deleted file mode 100644
index 8ae9e02..0000000
--- a/e2sm/lib/GlobalE2node-ng-eNB-ID.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "GlobalE2node-ng-eNB-ID.h"
-
-asn_TYPE_member_t asn_MBR_GlobalE2node_ng_eNB_ID_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_ng_eNB_ID, global_ng_eNB_ID),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_GlobalngeNB_ID,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"global-ng-eNB-ID"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_GlobalE2node_ng_eNB_ID_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_ng_eNB_ID_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-ng-eNB-ID */
-};
-asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_ng_eNB_ID_specs_1 = {
-	sizeof(struct GlobalE2node_ng_eNB_ID),
-	offsetof(struct GlobalE2node_ng_eNB_ID, _asn_ctx),
-	asn_MAP_GlobalE2node_ng_eNB_ID_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_GlobalE2node_ng_eNB_ID = {
-	"GlobalE2node-ng-eNB-ID",
-	"GlobalE2node-ng-eNB-ID",
-	&asn_OP_SEQUENCE,
-	asn_DEF_GlobalE2node_ng_eNB_ID_tags_1,
-	sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1)
-		/sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1[0]), /* 1 */
-	asn_DEF_GlobalE2node_ng_eNB_ID_tags_1,	/* Same as above */
-	sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1)
-		/sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_GlobalE2node_ng_eNB_ID_1,
-	1,	/* Elements count */
-	&asn_SPC_GlobalE2node_ng_eNB_ID_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/GlobalENB-ID.c b/e2sm/lib/GlobalENB-ID.c
index fccb2e0..731c16e 100644
--- a/e2sm/lib/GlobalENB-ID.c
+++ b/e2sm/lib/GlobalENB-ID.c
@@ -1,21 +1,21 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "GlobalENB-ID.h"
 
 asn_TYPE_member_t asn_MBR_GlobalENB_ID_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct GlobalENB_ID, pLMN_Identity),
+	{ ATF_NOFLAGS, 0, offsetof(struct GlobalENB_ID, pLMNIdentity),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_PLMN_Identity,
+		&asn_DEF_PLMNIdentity,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
-		"pLMN-Identity"
+		"pLMNIdentity"
 		},
 	{ ATF_NOFLAGS, 0, offsetof(struct GlobalENB_ID, eNB_ID),
 		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
@@ -31,7 +31,7 @@
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
 static const asn_TYPE_tag2member_t asn_MAP_GlobalENB_ID_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNIdentity */
     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* eNB-ID */
 };
 asn_SEQUENCE_specifics_t asn_SPC_GlobalENB_ID_specs_1 = {
diff --git a/e2sm/lib/GlobalGNB-ID.c b/e2sm/lib/GlobalGNB-ID.c
new file mode 100644
index 0000000..47f17dd
--- /dev/null
+++ b/e2sm/lib/GlobalGNB-ID.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "GlobalGNB-ID.h"
+
+asn_TYPE_member_t asn_MBR_GlobalGNB_ID_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct GlobalGNB_ID, pLMNIdentity),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_PLMNIdentity,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"pLMNIdentity"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct GlobalGNB_ID, gNB_ID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_GNB_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"gNB-ID"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_GlobalGNB_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_GlobalGNB_ID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNIdentity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* gNB-ID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_GlobalGNB_ID_specs_1 = {
+	sizeof(struct GlobalGNB_ID),
+	offsetof(struct GlobalGNB_ID, _asn_ctx),
+	asn_MAP_GlobalGNB_ID_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_GlobalGNB_ID = {
+	"GlobalGNB-ID",
+	"GlobalGNB-ID",
+	&asn_OP_SEQUENCE,
+	asn_DEF_GlobalGNB_ID_tags_1,
+	sizeof(asn_DEF_GlobalGNB_ID_tags_1)
+		/sizeof(asn_DEF_GlobalGNB_ID_tags_1[0]), /* 1 */
+	asn_DEF_GlobalGNB_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_GlobalGNB_ID_tags_1)
+		/sizeof(asn_DEF_GlobalGNB_ID_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_GlobalGNB_ID_1,
+	2,	/* Elements count */
+	&asn_SPC_GlobalGNB_ID_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/GlobalKPMnode-ID.c b/e2sm/lib/GlobalKPMnode-ID.c
deleted file mode 100644
index db52419..0000000
--- a/e2sm/lib/GlobalKPMnode-ID.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-IEs"
- * 	found in "E2SM-KPM-Prespec.asn"
- * 	`asn1c -D ./e2sm-kpm -gen-PER`
- */
-
-#include "GlobalKPMnode-ID.h"
-
-static asn_oer_constraints_t asn_OER_type_GlobalKPMnode_ID_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	-1};
-asn_per_constraints_t asn_PER_type_GlobalKPMnode_ID_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  3 }	/* (0..3,...) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-asn_TYPE_member_t asn_MBR_GlobalKPMnode_ID_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_ID, choice.gNB),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_GlobalKPMnode_gNB_ID,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"gNB"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_ID, choice.en_gNB),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_GlobalKPMnode_en_gNB_ID,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"en-gNB"
-		},
-
-	{ ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_ID, choice.ng_eNB),
-		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_GlobalKPMnode_ng_eNB_ID,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"ng-eNB"
-		},
-
-	{ ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_ID, choice.eNB),
-		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_GlobalKPMnode_eNB_ID,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"eNB"
-		},
-};
-static const asn_TYPE_tag2member_t asn_MAP_GlobalKPMnode_ID_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-gNB */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ng-eNB */
-    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* eNB */
-};
-asn_CHOICE_specifics_t asn_SPC_GlobalKPMnode_ID_specs_1 = {
-	sizeof(struct GlobalKPMnode_ID),
-	offsetof(struct GlobalKPMnode_ID, _asn_ctx),
-	offsetof(struct GlobalKPMnode_ID, present),
-	sizeof(((struct GlobalKPMnode_ID *)0)->present),
-	asn_MAP_GlobalKPMnode_ID_tag2el_1,
-	4,	/* Count of tags in the map */
-	0, 0,
-	4	/* Extensions start */
-};
-asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_ID = {
-	"GlobalKPMnode-ID",
-	"GlobalKPMnode-ID",
-	&asn_OP_CHOICE,
-	0,	/* No effective tags (pointer) */
-	0,	/* No effective tags (count) */
-	0,	/* No tags (pointer) */
-	0,	/* No tags (count) */
-	{ &asn_OER_type_GlobalKPMnode_ID_constr_1, &asn_PER_type_GlobalKPMnode_ID_constr_1, CHOICE_constraint },
-	asn_MBR_GlobalKPMnode_ID_1,
-	4,	/* Elements count */
-	&asn_SPC_GlobalKPMnode_ID_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/GlobalKPMnode-eNB-ID.c b/e2sm/lib/GlobalKPMnode-eNB-ID.c
deleted file mode 100644
index 5d6e935..0000000
--- a/e2sm/lib/GlobalKPMnode-eNB-ID.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-IEs"
- * 	found in "E2SM-KPM-Prespec.asn"
- * 	`asn1c -D ./e2sm-kpm -gen-PER`
- */
-
-#include "GlobalKPMnode-eNB-ID.h"
-
-asn_TYPE_member_t asn_MBR_GlobalKPMnode_eNB_ID_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_eNB_ID, global_eNB_ID),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_GlobalENB_ID,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"global-eNB-ID"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_GlobalKPMnode_eNB_ID_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_GlobalKPMnode_eNB_ID_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-eNB-ID */
-};
-asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_eNB_ID_specs_1 = {
-	sizeof(struct GlobalKPMnode_eNB_ID),
-	offsetof(struct GlobalKPMnode_eNB_ID, _asn_ctx),
-	asn_MAP_GlobalKPMnode_eNB_ID_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_GlobalKPMnode_eNB_ID = {
-	"GlobalKPMnode-eNB-ID",
-	"GlobalKPMnode-eNB-ID",
-	&asn_OP_SEQUENCE,
-	asn_DEF_GlobalKPMnode_eNB_ID_tags_1,
-	sizeof(asn_DEF_GlobalKPMnode_eNB_ID_tags_1)
-		/sizeof(asn_DEF_GlobalKPMnode_eNB_ID_tags_1[0]), /* 1 */
-	asn_DEF_GlobalKPMnode_eNB_ID_tags_1,	/* Same as above */
-	sizeof(asn_DEF_GlobalKPMnode_eNB_ID_tags_1)
-		/sizeof(asn_DEF_GlobalKPMnode_eNB_ID_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_GlobalKPMnode_eNB_ID_1,
-	1,	/* Elements count */
-	&asn_SPC_GlobalKPMnode_eNB_ID_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/GlobalKPMnode-en-gNB-ID.c b/e2sm/lib/GlobalKPMnode-en-gNB-ID.c
deleted file mode 100644
index 4c4f222..0000000
--- a/e2sm/lib/GlobalKPMnode-en-gNB-ID.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-IEs"
- * 	found in "E2SM-KPM-Prespec.asn"
- * 	`asn1c -D ./e2sm-kpm -gen-PER`
- */
-
-#include "GlobalKPMnode-en-gNB-ID.h"
-
-asn_TYPE_member_t asn_MBR_GlobalKPMnode_en_gNB_ID_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_en_gNB_ID, global_gNB_ID),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_GlobalenGNB_ID,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"global-gNB-ID"
-		},
-};
-
-static const ber_tlv_tag_t asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_GlobalKPMnode_en_gNB_ID_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-gNB-ID */
-};
-asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_en_gNB_ID_specs_1 = {
-	sizeof(struct GlobalKPMnode_en_gNB_ID),
-	offsetof(struct GlobalKPMnode_en_gNB_ID, _asn_ctx),
-	asn_MAP_GlobalKPMnode_en_gNB_ID_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_GlobalKPMnode_en_gNB_ID = {
-	"GlobalKPMnode-en-gNB-ID",
-	"GlobalKPMnode-en-gNB-ID",
-	&asn_OP_SEQUENCE,
-	asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1,
-	sizeof(asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1)
-		/sizeof(asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1[0]), /* 1 */
-	asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1,	/* Same as above */
-	sizeof(asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1)
-		/sizeof(asn_DEF_GlobalKPMnode_en_gNB_ID_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_GlobalKPMnode_en_gNB_ID_1,
-	1,	/* Elements count */
-	&asn_SPC_GlobalKPMnode_en_gNB_ID_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/GlobalKPMnode-gNB-ID.c b/e2sm/lib/GlobalKPMnode-gNB-ID.c
deleted file mode 100644
index 19f2769..0000000
--- a/e2sm/lib/GlobalKPMnode-gNB-ID.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-IEs"
- * 	found in "E2SM-KPM-Prespec.asn"
- * 	`asn1c -D ./e2sm-kpm -gen-PER`
- */
-
-#include "GlobalKPMnode-gNB-ID.h"
-
-asn_TYPE_member_t asn_MBR_GlobalKPMnode_gNB_ID_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_gNB_ID, global_gNB_ID),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_GlobalgNB_ID,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"global-gNB-ID"
-		},
-	{ ATF_POINTER, 2, offsetof(struct GlobalKPMnode_gNB_ID, gNB_CU_UP_ID),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_GNB_CU_UP_ID,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"gNB-CU-UP-ID"
-		},
-	{ ATF_POINTER, 1, offsetof(struct GlobalKPMnode_gNB_ID, gNB_DU_ID),
-		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_GNB_DU_ID,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"gNB-DU-ID"
-		},
-};
-static const int asn_MAP_GlobalKPMnode_gNB_ID_oms_1[] = { 1, 2 };
-static const ber_tlv_tag_t asn_DEF_GlobalKPMnode_gNB_ID_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_GlobalKPMnode_gNB_ID_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* global-gNB-ID */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* gNB-CU-UP-ID */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* gNB-DU-ID */
-};
-asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_gNB_ID_specs_1 = {
-	sizeof(struct GlobalKPMnode_gNB_ID),
-	offsetof(struct GlobalKPMnode_gNB_ID, _asn_ctx),
-	asn_MAP_GlobalKPMnode_gNB_ID_tag2el_1,
-	3,	/* Count of tags in the map */
-	asn_MAP_GlobalKPMnode_gNB_ID_oms_1,	/* Optional members */
-	2, 0,	/* Root/Additions */
-	3,	/* First extension addition */
-};
-asn_TYPE_descriptor_t asn_DEF_GlobalKPMnode_gNB_ID = {
-	"GlobalKPMnode-gNB-ID",
-	"GlobalKPMnode-gNB-ID",
-	&asn_OP_SEQUENCE,
-	asn_DEF_GlobalKPMnode_gNB_ID_tags_1,
-	sizeof(asn_DEF_GlobalKPMnode_gNB_ID_tags_1)
-		/sizeof(asn_DEF_GlobalKPMnode_gNB_ID_tags_1[0]), /* 1 */
-	asn_DEF_GlobalKPMnode_gNB_ID_tags_1,	/* Same as above */
-	sizeof(asn_DEF_GlobalKPMnode_gNB_ID_tags_1)
-		/sizeof(asn_DEF_GlobalKPMnode_gNB_ID_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_GlobalKPMnode_gNB_ID_1,
-	3,	/* Elements count */
-	&asn_SPC_GlobalKPMnode_gNB_ID_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/GlobalKPMnode-ng-eNB-ID.c b/e2sm/lib/GlobalKPMnode-ng-eNB-ID.c
deleted file mode 100644
index 6d04929..0000000
--- a/e2sm/lib/GlobalKPMnode-ng-eNB-ID.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-IEs"
- * 	found in "E2SM-KPM-Prespec.asn"
- * 	`asn1c -D ./e2sm-kpm -gen-PER`
- */
-
-#include "GlobalKPMnode-ng-eNB-ID.h"
-
-asn_TYPE_member_t asn_MBR_GlobalKPMnode_ng_eNB_ID_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct GlobalKPMnode_ng_eNB_ID, global_ng_eNB_ID),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_GlobalngeNB_ID,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"global-ng-eNB-ID"
-		},
-};
-
-static const ber_tlv_tag_t asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_GlobalKPMnode_ng_eNB_ID_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-ng-eNB-ID */
-};
-asn_SEQUENCE_specifics_t asn_SPC_GlobalKPMnode_ng_eNB_ID_specs_1 = {
-	sizeof(struct GlobalKPMnode_ng_eNB_ID),
-	offsetof(struct GlobalKPMnode_ng_eNB_ID, _asn_ctx),
-	asn_MAP_GlobalKPMnode_ng_eNB_ID_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_GlobalKPMnode_ng_eNB_ID = {
-	"GlobalKPMnode-ng-eNB-ID",
-	"GlobalKPMnode-ng-eNB-ID",
-	&asn_OP_SEQUENCE,
-	asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1,
-	sizeof(asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1)
-		/sizeof(asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1[0]), /* 1 */
-	asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1,	/* Same as above */
-	sizeof(asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1)
-		/sizeof(asn_DEF_GlobalKPMnode_ng_eNB_ID_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_GlobalKPMnode_ng_eNB_ID_1,
-	1,	/* Elements count */
-	&asn_SPC_GlobalKPMnode_ng_eNB_ID_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/GlobalNGRANNodeID.c b/e2sm/lib/GlobalNGRANNodeID.c
new file mode 100644
index 0000000..58de505
--- /dev/null
+++ b/e2sm/lib/GlobalNGRANNodeID.c
@@ -0,0 +1,67 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "GlobalNGRANNodeID.h"
+
+#include "GlobalGNB-ID.h"
+#include "GlobalNgENB-ID.h"
+static asn_oer_constraints_t asn_OER_type_GlobalNGRANNodeID_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_GlobalNGRANNodeID_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_GlobalNGRANNodeID_1[] = {
+	{ ATF_POINTER, 0, offsetof(struct GlobalNGRANNodeID, choice.gNB),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GlobalGNB_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"gNB"
+		},
+	{ ATF_POINTER, 0, offsetof(struct GlobalNGRANNodeID, choice.ng_eNB),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GlobalNgENB_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ng-eNB"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_GlobalNGRANNodeID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ng-eNB */
+};
+asn_CHOICE_specifics_t asn_SPC_GlobalNGRANNodeID_specs_1 = {
+	sizeof(struct GlobalNGRANNodeID),
+	offsetof(struct GlobalNGRANNodeID, _asn_ctx),
+	offsetof(struct GlobalNGRANNodeID, present),
+	sizeof(((struct GlobalNGRANNodeID *)0)->present),
+	asn_MAP_GlobalNGRANNodeID_tag2el_1,
+	2,	/* Count of tags in the map */
+	0, 0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_GlobalNGRANNodeID = {
+	"GlobalNGRANNodeID",
+	"GlobalNGRANNodeID",
+	&asn_OP_CHOICE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ &asn_OER_type_GlobalNGRANNodeID_constr_1, &asn_PER_type_GlobalNGRANNodeID_constr_1, CHOICE_constraint },
+	asn_MBR_GlobalNGRANNodeID_1,
+	2,	/* Elements count */
+	&asn_SPC_GlobalNGRANNodeID_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/GlobalNgENB-ID.c b/e2sm/lib/GlobalNgENB-ID.c
new file mode 100644
index 0000000..549617a
--- /dev/null
+++ b/e2sm/lib/GlobalNgENB-ID.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "GlobalNgENB-ID.h"
+
+asn_TYPE_member_t asn_MBR_GlobalNgENB_ID_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct GlobalNgENB_ID, pLMNIdentity),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_PLMNIdentity,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"pLMNIdentity"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct GlobalNgENB_ID, ngENB_ID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_NgENB_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ngENB-ID"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_GlobalNgENB_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_GlobalNgENB_ID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNIdentity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ngENB-ID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_GlobalNgENB_ID_specs_1 = {
+	sizeof(struct GlobalNgENB_ID),
+	offsetof(struct GlobalNgENB_ID, _asn_ctx),
+	asn_MAP_GlobalNgENB_ID_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_GlobalNgENB_ID = {
+	"GlobalNgENB-ID",
+	"GlobalNgENB-ID",
+	&asn_OP_SEQUENCE,
+	asn_DEF_GlobalNgENB_ID_tags_1,
+	sizeof(asn_DEF_GlobalNgENB_ID_tags_1)
+		/sizeof(asn_DEF_GlobalNgENB_ID_tags_1[0]), /* 1 */
+	asn_DEF_GlobalNgENB_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_GlobalNgENB_ID_tags_1)
+		/sizeof(asn_DEF_GlobalNgENB_ID_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_GlobalNgENB_ID_1,
+	2,	/* Elements count */
+	&asn_SPC_GlobalNgENB_ID_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/GlobalenGNB-ID.c b/e2sm/lib/GlobalenGNB-ID.c
index 1824a11..887b8a4 100644
--- a/e2sm/lib/GlobalenGNB-ID.c
+++ b/e2sm/lib/GlobalenGNB-ID.c
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
@@ -11,20 +11,20 @@
 	{ ATF_NOFLAGS, 0, offsetof(struct GlobalenGNB_ID, pLMN_Identity),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_PLMN_Identity,
+		&asn_DEF_PLMNIdentity,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
 		"pLMN-Identity"
 		},
-	{ ATF_NOFLAGS, 0, offsetof(struct GlobalenGNB_ID, gNB_ID),
+	{ ATF_NOFLAGS, 0, offsetof(struct GlobalenGNB_ID, en_gNB_ID),
 		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
 		+1,	/* EXPLICIT tag at current level */
-		&asn_DEF_ENGNB_ID,
+		&asn_DEF_EN_GNB_ID,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
-		"gNB-ID"
+		"en-gNB-ID"
 		},
 };
 static const ber_tlv_tag_t asn_DEF_GlobalenGNB_ID_tags_1[] = {
@@ -32,7 +32,7 @@
 };
 static const asn_TYPE_tag2member_t asn_MAP_GlobalenGNB_ID_tag2el_1[] = {
     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* gNB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* en-gNB-ID */
 };
 asn_SEQUENCE_specifics_t asn_SPC_GlobalenGNB_ID_specs_1 = {
 	sizeof(struct GlobalenGNB_ID),
diff --git a/e2sm/lib/GlobalgNB-ID.c b/e2sm/lib/GlobalgNB-ID.c
deleted file mode 100644
index 40d7462..0000000
--- a/e2sm/lib/GlobalgNB-ID.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "GlobalgNB-ID.h"
-
-asn_TYPE_member_t asn_MBR_GlobalgNB_ID_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct GlobalgNB_ID, plmn_id),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_PLMN_Identity,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"plmn-id"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct GlobalgNB_ID, gnb_id),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		+1,	/* EXPLICIT tag at current level */
-		&asn_DEF_GNB_ID_Choice,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"gnb-id"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_GlobalgNB_ID_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_GlobalgNB_ID_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmn-id */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* gnb-id */
-};
-asn_SEQUENCE_specifics_t asn_SPC_GlobalgNB_ID_specs_1 = {
-	sizeof(struct GlobalgNB_ID),
-	offsetof(struct GlobalgNB_ID, _asn_ctx),
-	asn_MAP_GlobalgNB_ID_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_GlobalgNB_ID = {
-	"GlobalgNB-ID",
-	"GlobalgNB-ID",
-	&asn_OP_SEQUENCE,
-	asn_DEF_GlobalgNB_ID_tags_1,
-	sizeof(asn_DEF_GlobalgNB_ID_tags_1)
-		/sizeof(asn_DEF_GlobalgNB_ID_tags_1[0]), /* 1 */
-	asn_DEF_GlobalgNB_ID_tags_1,	/* Same as above */
-	sizeof(asn_DEF_GlobalgNB_ID_tags_1)
-		/sizeof(asn_DEF_GlobalgNB_ID_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_GlobalgNB_ID_1,
-	2,	/* Elements count */
-	&asn_SPC_GlobalgNB_ID_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/GlobalngeNB-ID.c b/e2sm/lib/GlobalngeNB-ID.c
deleted file mode 100644
index 91873a1..0000000
--- a/e2sm/lib/GlobalngeNB-ID.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "GlobalngeNB-ID.h"
-
-asn_TYPE_member_t asn_MBR_GlobalngeNB_ID_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct GlobalngeNB_ID, plmn_id),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_PLMN_Identity,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"plmn-id"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct GlobalngeNB_ID, enb_id),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		+1,	/* EXPLICIT tag at current level */
-		&asn_DEF_ENB_ID_Choice,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"enb-id"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_GlobalngeNB_ID_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_GlobalngeNB_ID_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmn-id */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* enb-id */
-};
-asn_SEQUENCE_specifics_t asn_SPC_GlobalngeNB_ID_specs_1 = {
-	sizeof(struct GlobalngeNB_ID),
-	offsetof(struct GlobalngeNB_ID, _asn_ctx),
-	asn_MAP_GlobalngeNB_ID_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_GlobalngeNB_ID = {
-	"GlobalngeNB-ID",
-	"GlobalngeNB-ID",
-	&asn_OP_SEQUENCE,
-	asn_DEF_GlobalngeNB_ID_tags_1,
-	sizeof(asn_DEF_GlobalngeNB_ID_tags_1)
-		/sizeof(asn_DEF_GlobalngeNB_ID_tags_1[0]), /* 1 */
-	asn_DEF_GlobalngeNB_ID_tags_1,	/* Same as above */
-	sizeof(asn_DEF_GlobalngeNB_ID_tags_1)
-		/sizeof(asn_DEF_GlobalngeNB_ID_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_GlobalngeNB_ID_1,
-	2,	/* Elements count */
-	&asn_SPC_GlobalngeNB_ID_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/GroupID.c b/e2sm/lib/GroupID.c
new file mode 100644
index 0000000..4fe3f18
--- /dev/null
+++ b/e2sm/lib/GroupID.c
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "GroupID.h"
+
+static asn_oer_constraints_t asn_OER_type_GroupID_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_type_GroupID_constr_1 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_TYPE_member_t asn_MBR_GroupID_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct GroupID, choice.fiveGC),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_FiveQI,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"fiveGC"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct GroupID, choice.ePC),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_QCI,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ePC"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_GroupID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fiveGC */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ePC */
+};
+static asn_CHOICE_specifics_t asn_SPC_GroupID_specs_1 = {
+	sizeof(struct GroupID),
+	offsetof(struct GroupID, _asn_ctx),
+	offsetof(struct GroupID, present),
+	sizeof(((struct GroupID *)0)->present),
+	asn_MAP_GroupID_tag2el_1,
+	2,	/* Count of tags in the map */
+	0, 0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_GroupID = {
+	"GroupID",
+	"GroupID",
+	&asn_OP_CHOICE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ &asn_OER_type_GroupID_constr_1, &asn_PER_type_GroupID_constr_1, CHOICE_constraint },
+	asn_MBR_GroupID_1,
+	2,	/* Elements count */
+	&asn_SPC_GroupID_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/IndexToRFSP.c b/e2sm/lib/IndexToRFSP.c
new file mode 100644
index 0000000..cd7b378
--- /dev/null
+++ b/e2sm/lib/IndexToRFSP.c
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "IndexToRFSP.h"
+
+int
+IndexToRFSP_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1 && value <= 256)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_IndexToRFSP_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_type_IndexToRFSP_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  8,  8,  1,  256 }	/* (1..256,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_IndexToRFSP_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_IndexToRFSP = {
+	"IndexToRFSP",
+	"IndexToRFSP",
+	&asn_OP_NativeInteger,
+	asn_DEF_IndexToRFSP_tags_1,
+	sizeof(asn_DEF_IndexToRFSP_tags_1)
+		/sizeof(asn_DEF_IndexToRFSP_tags_1[0]), /* 1 */
+	asn_DEF_IndexToRFSP_tags_1,	/* Same as above */
+	sizeof(asn_DEF_IndexToRFSP_tags_1)
+		/sizeof(asn_DEF_IndexToRFSP_tags_1[0]), /* 1 */
+	{ &asn_OER_type_IndexToRFSP_constr_1, &asn_PER_type_IndexToRFSP_constr_1, IndexToRFSP_constraint },
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/e2sm/lib/InsertIndication-RANParameter-Item.c b/e2sm/lib/InsertIndication-RANParameter-Item.c
new file mode 100644
index 0000000..0577b21
--- /dev/null
+++ b/e2sm/lib/InsertIndication-RANParameter-Item.c
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "InsertIndication-RANParameter-Item.h"
+
+#include "RANParameter-Definition.h"
+asn_TYPE_member_t asn_MBR_InsertIndication_RANParameter_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct InsertIndication_RANParameter_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 InsertIndication_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"
+		},
+	{ ATF_POINTER, 1, offsetof(struct InsertIndication_RANParameter_Item, ranParameter_Definition),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 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_InsertIndication_RANParameter_Item_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_InsertIndication_RANParameter_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_InsertIndication_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 | (2 << 2)), 2, 0, 0 } /* ranParameter-Definition */
+};
+asn_SEQUENCE_specifics_t asn_SPC_InsertIndication_RANParameter_Item_specs_1 = {
+	sizeof(struct InsertIndication_RANParameter_Item),
+	offsetof(struct InsertIndication_RANParameter_Item, _asn_ctx),
+	asn_MAP_InsertIndication_RANParameter_Item_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_InsertIndication_RANParameter_Item_oms_1,	/* Optional members */
+	0, 1,	/* Root/Additions */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_InsertIndication_RANParameter_Item = {
+	"InsertIndication-RANParameter-Item",
+	"InsertIndication-RANParameter-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_InsertIndication_RANParameter_Item_tags_1,
+	sizeof(asn_DEF_InsertIndication_RANParameter_Item_tags_1)
+		/sizeof(asn_DEF_InsertIndication_RANParameter_Item_tags_1[0]), /* 1 */
+	asn_DEF_InsertIndication_RANParameter_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_InsertIndication_RANParameter_Item_tags_1)
+		/sizeof(asn_DEF_InsertIndication_RANParameter_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_InsertIndication_RANParameter_Item_1,
+	3,	/* Elements count */
+	&asn_SPC_InsertIndication_RANParameter_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/Interface-MessageID.c b/e2sm/lib/Interface-MessageID.c
new file mode 100644
index 0000000..6f78561
--- /dev/null
+++ b/e2sm/lib/Interface-MessageID.c
@@ -0,0 +1,113 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "Interface-MessageID.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_messageType_constr_3 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_type_messageType_constr_3 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }	/* (0..2,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_messageType_value2enum_3[] = {
+	{ 0,	17,	"initiatingMessage" },
+	{ 1,	17,	"successfulOutcome" },
+	{ 2,	19,	"unsuccessfulOutcome" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_messageType_enum2value_3[] = {
+	0,	/* initiatingMessage(0) */
+	1,	/* successfulOutcome(1) */
+	2	/* unsuccessfulOutcome(2) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_messageType_specs_3 = {
+	asn_MAP_messageType_value2enum_3,	/* "tag" => N; sorted by tag */
+	asn_MAP_messageType_enum2value_3,	/* N => "tag"; sorted by N */
+	3,	/* Number of elements in the maps */
+	4,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_messageType_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_messageType_3 = {
+	"messageType",
+	"messageType",
+	&asn_OP_NativeEnumerated,
+	asn_DEF_messageType_tags_3,
+	sizeof(asn_DEF_messageType_tags_3)
+		/sizeof(asn_DEF_messageType_tags_3[0]) - 1, /* 1 */
+	asn_DEF_messageType_tags_3,	/* Same as above */
+	sizeof(asn_DEF_messageType_tags_3)
+		/sizeof(asn_DEF_messageType_tags_3[0]), /* 2 */
+	{ &asn_OER_type_messageType_constr_3, &asn_PER_type_messageType_constr_3, NativeEnumerated_constraint },
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_messageType_specs_3	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_Interface_MessageID_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct Interface_MessageID, interfaceProcedureID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"interfaceProcedureID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct Interface_MessageID, messageType),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_messageType_3,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"messageType"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_Interface_MessageID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_Interface_MessageID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* interfaceProcedureID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* messageType */
+};
+asn_SEQUENCE_specifics_t asn_SPC_Interface_MessageID_specs_1 = {
+	sizeof(struct Interface_MessageID),
+	offsetof(struct Interface_MessageID, _asn_ctx),
+	asn_MAP_Interface_MessageID_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_Interface_MessageID = {
+	"Interface-MessageID",
+	"Interface-MessageID",
+	&asn_OP_SEQUENCE,
+	asn_DEF_Interface_MessageID_tags_1,
+	sizeof(asn_DEF_Interface_MessageID_tags_1)
+		/sizeof(asn_DEF_Interface_MessageID_tags_1[0]), /* 1 */
+	asn_DEF_Interface_MessageID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_Interface_MessageID_tags_1)
+		/sizeof(asn_DEF_Interface_MessageID_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_Interface_MessageID_1,
+	2,	/* Elements count */
+	&asn_SPC_Interface_MessageID_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/InterfaceID-E1.c b/e2sm/lib/InterfaceID-E1.c
new file mode 100644
index 0000000..3c6109f
--- /dev/null
+++ b/e2sm/lib/InterfaceID-E1.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "InterfaceID-E1.h"
+
+asn_TYPE_member_t asn_MBR_InterfaceID_E1_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct InterfaceID_E1, globalGNB_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GlobalGNB_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"globalGNB-ID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct InterfaceID_E1, gNB_CU_UP_ID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GNB_CU_UP_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"gNB-CU-UP-ID"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_InterfaceID_E1_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_InterfaceID_E1_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* globalGNB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* gNB-CU-UP-ID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_InterfaceID_E1_specs_1 = {
+	sizeof(struct InterfaceID_E1),
+	offsetof(struct InterfaceID_E1, _asn_ctx),
+	asn_MAP_InterfaceID_E1_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_InterfaceID_E1 = {
+	"InterfaceID-E1",
+	"InterfaceID-E1",
+	&asn_OP_SEQUENCE,
+	asn_DEF_InterfaceID_E1_tags_1,
+	sizeof(asn_DEF_InterfaceID_E1_tags_1)
+		/sizeof(asn_DEF_InterfaceID_E1_tags_1[0]), /* 1 */
+	asn_DEF_InterfaceID_E1_tags_1,	/* Same as above */
+	sizeof(asn_DEF_InterfaceID_E1_tags_1)
+		/sizeof(asn_DEF_InterfaceID_E1_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_InterfaceID_E1_1,
+	2,	/* Elements count */
+	&asn_SPC_InterfaceID_E1_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/InterfaceID-F1.c b/e2sm/lib/InterfaceID-F1.c
new file mode 100644
index 0000000..cd36650
--- /dev/null
+++ b/e2sm/lib/InterfaceID-F1.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "InterfaceID-F1.h"
+
+asn_TYPE_member_t asn_MBR_InterfaceID_F1_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct InterfaceID_F1, globalGNB_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GlobalGNB_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"globalGNB-ID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct InterfaceID_F1, gNB_DU_ID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GNB_DU_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"gNB-DU-ID"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_InterfaceID_F1_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_InterfaceID_F1_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* globalGNB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* gNB-DU-ID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_InterfaceID_F1_specs_1 = {
+	sizeof(struct InterfaceID_F1),
+	offsetof(struct InterfaceID_F1, _asn_ctx),
+	asn_MAP_InterfaceID_F1_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_InterfaceID_F1 = {
+	"InterfaceID-F1",
+	"InterfaceID-F1",
+	&asn_OP_SEQUENCE,
+	asn_DEF_InterfaceID_F1_tags_1,
+	sizeof(asn_DEF_InterfaceID_F1_tags_1)
+		/sizeof(asn_DEF_InterfaceID_F1_tags_1[0]), /* 1 */
+	asn_DEF_InterfaceID_F1_tags_1,	/* Same as above */
+	sizeof(asn_DEF_InterfaceID_F1_tags_1)
+		/sizeof(asn_DEF_InterfaceID_F1_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_InterfaceID_F1_1,
+	2,	/* Elements count */
+	&asn_SPC_InterfaceID_F1_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/InterfaceID-NG.c b/e2sm/lib/InterfaceID-NG.c
new file mode 100644
index 0000000..a1cc25c
--- /dev/null
+++ b/e2sm/lib/InterfaceID-NG.c
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "InterfaceID-NG.h"
+
+asn_TYPE_member_t asn_MBR_InterfaceID_NG_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct InterfaceID_NG, guami),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GUAMI,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"guami"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_InterfaceID_NG_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_InterfaceID_NG_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* guami */
+};
+asn_SEQUENCE_specifics_t asn_SPC_InterfaceID_NG_specs_1 = {
+	sizeof(struct InterfaceID_NG),
+	offsetof(struct InterfaceID_NG, _asn_ctx),
+	asn_MAP_InterfaceID_NG_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_InterfaceID_NG = {
+	"InterfaceID-NG",
+	"InterfaceID-NG",
+	&asn_OP_SEQUENCE,
+	asn_DEF_InterfaceID_NG_tags_1,
+	sizeof(asn_DEF_InterfaceID_NG_tags_1)
+		/sizeof(asn_DEF_InterfaceID_NG_tags_1[0]), /* 1 */
+	asn_DEF_InterfaceID_NG_tags_1,	/* Same as above */
+	sizeof(asn_DEF_InterfaceID_NG_tags_1)
+		/sizeof(asn_DEF_InterfaceID_NG_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_InterfaceID_NG_1,
+	1,	/* Elements count */
+	&asn_SPC_InterfaceID_NG_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/InterfaceID-S1.c b/e2sm/lib/InterfaceID-S1.c
new file mode 100644
index 0000000..2710359
--- /dev/null
+++ b/e2sm/lib/InterfaceID-S1.c
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "InterfaceID-S1.h"
+
+asn_TYPE_member_t asn_MBR_InterfaceID_S1_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct InterfaceID_S1, gUMMEI),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GUMMEI,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"gUMMEI"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_InterfaceID_S1_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_InterfaceID_S1_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gUMMEI */
+};
+asn_SEQUENCE_specifics_t asn_SPC_InterfaceID_S1_specs_1 = {
+	sizeof(struct InterfaceID_S1),
+	offsetof(struct InterfaceID_S1, _asn_ctx),
+	asn_MAP_InterfaceID_S1_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_InterfaceID_S1 = {
+	"InterfaceID-S1",
+	"InterfaceID-S1",
+	&asn_OP_SEQUENCE,
+	asn_DEF_InterfaceID_S1_tags_1,
+	sizeof(asn_DEF_InterfaceID_S1_tags_1)
+		/sizeof(asn_DEF_InterfaceID_S1_tags_1[0]), /* 1 */
+	asn_DEF_InterfaceID_S1_tags_1,	/* Same as above */
+	sizeof(asn_DEF_InterfaceID_S1_tags_1)
+		/sizeof(asn_DEF_InterfaceID_S1_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_InterfaceID_S1_1,
+	1,	/* Elements count */
+	&asn_SPC_InterfaceID_S1_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/InterfaceID-W1.c b/e2sm/lib/InterfaceID-W1.c
new file mode 100644
index 0000000..4bbd6a6
--- /dev/null
+++ b/e2sm/lib/InterfaceID-W1.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "InterfaceID-W1.h"
+
+asn_TYPE_member_t asn_MBR_InterfaceID_W1_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct InterfaceID_W1, global_ng_eNB_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GlobalNgENB_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"global-ng-eNB-ID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct InterfaceID_W1, ng_eNB_DU_ID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NGENB_DU_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ng-eNB-DU-ID"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_InterfaceID_W1_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_InterfaceID_W1_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* global-ng-eNB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ng-eNB-DU-ID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_InterfaceID_W1_specs_1 = {
+	sizeof(struct InterfaceID_W1),
+	offsetof(struct InterfaceID_W1, _asn_ctx),
+	asn_MAP_InterfaceID_W1_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_InterfaceID_W1 = {
+	"InterfaceID-W1",
+	"InterfaceID-W1",
+	&asn_OP_SEQUENCE,
+	asn_DEF_InterfaceID_W1_tags_1,
+	sizeof(asn_DEF_InterfaceID_W1_tags_1)
+		/sizeof(asn_DEF_InterfaceID_W1_tags_1[0]), /* 1 */
+	asn_DEF_InterfaceID_W1_tags_1,	/* Same as above */
+	sizeof(asn_DEF_InterfaceID_W1_tags_1)
+		/sizeof(asn_DEF_InterfaceID_W1_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_InterfaceID_W1_1,
+	2,	/* Elements count */
+	&asn_SPC_InterfaceID_W1_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/InterfaceID-X2.c b/e2sm/lib/InterfaceID-X2.c
new file mode 100644
index 0000000..f410123
--- /dev/null
+++ b/e2sm/lib/InterfaceID-X2.c
@@ -0,0 +1,109 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "InterfaceID-X2.h"
+
+#include "GlobalENB-ID.h"
+#include "GlobalenGNB-ID.h"
+static asn_oer_constraints_t asn_OER_type_nodeType_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_type_nodeType_constr_2 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_TYPE_member_t asn_MBR_nodeType_2[] = {
+	{ ATF_POINTER, 0, offsetof(struct InterfaceID_X2__nodeType, choice.global_eNB_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GlobalENB_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"global-eNB-ID"
+		},
+	{ ATF_POINTER, 0, offsetof(struct InterfaceID_X2__nodeType, choice.global_en_gNB_ID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GlobalenGNB_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"global-en-gNB-ID"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_nodeType_tag2el_2[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* global-eNB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* global-en-gNB-ID */
+};
+static asn_CHOICE_specifics_t asn_SPC_nodeType_specs_2 = {
+	sizeof(struct InterfaceID_X2__nodeType),
+	offsetof(struct InterfaceID_X2__nodeType, _asn_ctx),
+	offsetof(struct InterfaceID_X2__nodeType, present),
+	sizeof(((struct InterfaceID_X2__nodeType *)0)->present),
+	asn_MAP_nodeType_tag2el_2,
+	2,	/* Count of tags in the map */
+	0, 0,
+	2	/* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_nodeType_2 = {
+	"nodeType",
+	"nodeType",
+	&asn_OP_CHOICE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ &asn_OER_type_nodeType_constr_2, &asn_PER_type_nodeType_constr_2, CHOICE_constraint },
+	asn_MBR_nodeType_2,
+	2,	/* Elements count */
+	&asn_SPC_nodeType_specs_2	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_InterfaceID_X2_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct InterfaceID_X2, nodeType),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_nodeType_2,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"nodeType"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_InterfaceID_X2_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_InterfaceID_X2_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* nodeType */
+};
+asn_SEQUENCE_specifics_t asn_SPC_InterfaceID_X2_specs_1 = {
+	sizeof(struct InterfaceID_X2),
+	offsetof(struct InterfaceID_X2, _asn_ctx),
+	asn_MAP_InterfaceID_X2_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_InterfaceID_X2 = {
+	"InterfaceID-X2",
+	"InterfaceID-X2",
+	&asn_OP_SEQUENCE,
+	asn_DEF_InterfaceID_X2_tags_1,
+	sizeof(asn_DEF_InterfaceID_X2_tags_1)
+		/sizeof(asn_DEF_InterfaceID_X2_tags_1[0]), /* 1 */
+	asn_DEF_InterfaceID_X2_tags_1,	/* Same as above */
+	sizeof(asn_DEF_InterfaceID_X2_tags_1)
+		/sizeof(asn_DEF_InterfaceID_X2_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_InterfaceID_X2_1,
+	1,	/* Elements count */
+	&asn_SPC_InterfaceID_X2_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/InterfaceID-Xn.c b/e2sm/lib/InterfaceID-Xn.c
new file mode 100644
index 0000000..de8e414
--- /dev/null
+++ b/e2sm/lib/InterfaceID-Xn.c
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "InterfaceID-Xn.h"
+
+asn_TYPE_member_t asn_MBR_InterfaceID_Xn_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct InterfaceID_Xn, global_NG_RAN_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_GlobalNGRANNodeID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"global-NG-RAN-ID"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_InterfaceID_Xn_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_InterfaceID_Xn_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-NG-RAN-ID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_InterfaceID_Xn_specs_1 = {
+	sizeof(struct InterfaceID_Xn),
+	offsetof(struct InterfaceID_Xn, _asn_ctx),
+	asn_MAP_InterfaceID_Xn_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_InterfaceID_Xn = {
+	"InterfaceID-Xn",
+	"InterfaceID-Xn",
+	&asn_OP_SEQUENCE,
+	asn_DEF_InterfaceID_Xn_tags_1,
+	sizeof(asn_DEF_InterfaceID_Xn_tags_1)
+		/sizeof(asn_DEF_InterfaceID_Xn_tags_1[0]), /* 1 */
+	asn_DEF_InterfaceID_Xn_tags_1,	/* Same as above */
+	sizeof(asn_DEF_InterfaceID_Xn_tags_1)
+		/sizeof(asn_DEF_InterfaceID_Xn_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_InterfaceID_Xn_1,
+	1,	/* Elements count */
+	&asn_SPC_InterfaceID_Xn_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/InterfaceIdentifier.c b/e2sm/lib/InterfaceIdentifier.c
new file mode 100644
index 0000000..b04564e
--- /dev/null
+++ b/e2sm/lib/InterfaceIdentifier.c
@@ -0,0 +1,122 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "InterfaceIdentifier.h"
+
+#include "InterfaceID-NG.h"
+#include "InterfaceID-Xn.h"
+#include "InterfaceID-F1.h"
+#include "InterfaceID-E1.h"
+#include "InterfaceID-S1.h"
+#include "InterfaceID-X2.h"
+#include "InterfaceID-W1.h"
+static asn_oer_constraints_t asn_OER_type_InterfaceIdentifier_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_InterfaceIdentifier_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  6 }	/* (0..6,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_InterfaceIdentifier_1[] = {
+	{ ATF_POINTER, 0, offsetof(struct InterfaceIdentifier, choice.nG),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_InterfaceID_NG,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"nG"
+		},
+	{ ATF_POINTER, 0, offsetof(struct InterfaceIdentifier, choice.xN),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_InterfaceID_Xn,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"xN"
+		},
+	{ ATF_POINTER, 0, offsetof(struct InterfaceIdentifier, choice.f1),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_InterfaceID_F1,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"f1"
+		},
+	{ ATF_POINTER, 0, offsetof(struct InterfaceIdentifier, choice.e1),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_InterfaceID_E1,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"e1"
+		},
+	{ ATF_POINTER, 0, offsetof(struct InterfaceIdentifier, choice.s1),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_InterfaceID_S1,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"s1"
+		},
+	{ ATF_POINTER, 0, offsetof(struct InterfaceIdentifier, choice.x2),
+		(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_InterfaceID_X2,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"x2"
+		},
+	{ ATF_POINTER, 0, offsetof(struct InterfaceIdentifier, choice.w1),
+		(ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_InterfaceID_W1,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"w1"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_InterfaceIdentifier_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nG */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* xN */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* f1 */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* e1 */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* s1 */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* x2 */
+    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* w1 */
+};
+asn_CHOICE_specifics_t asn_SPC_InterfaceIdentifier_specs_1 = {
+	sizeof(struct InterfaceIdentifier),
+	offsetof(struct InterfaceIdentifier, _asn_ctx),
+	offsetof(struct InterfaceIdentifier, present),
+	sizeof(((struct InterfaceIdentifier *)0)->present),
+	asn_MAP_InterfaceIdentifier_tag2el_1,
+	7,	/* Count of tags in the map */
+	0, 0,
+	7	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_InterfaceIdentifier = {
+	"InterfaceIdentifier",
+	"InterfaceIdentifier",
+	&asn_OP_CHOICE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ &asn_OER_type_InterfaceIdentifier_constr_1, &asn_PER_type_InterfaceIdentifier_constr_1, CHOICE_constraint },
+	asn_MBR_InterfaceIdentifier_1,
+	7,	/* Elements count */
+	&asn_SPC_InterfaceIdentifier_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/InterfaceType.c b/e2sm/lib/InterfaceType.c
new file mode 100644
index 0000000..359cad7
--- /dev/null
+++ b/e2sm/lib/InterfaceType.c
@@ -0,0 +1,68 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "InterfaceType.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_InterfaceType_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_InterfaceType_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  6 }	/* (0..6,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_InterfaceType_value2enum_1[] = {
+	{ 0,	2,	"nG" },
+	{ 1,	2,	"xn" },
+	{ 2,	2,	"f1" },
+	{ 3,	2,	"e1" },
+	{ 4,	2,	"s1" },
+	{ 5,	2,	"x2" },
+	{ 6,	2,	"w1" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_InterfaceType_enum2value_1[] = {
+	3,	/* e1(3) */
+	2,	/* f1(2) */
+	0,	/* nG(0) */
+	4,	/* s1(4) */
+	6,	/* w1(6) */
+	5,	/* x2(5) */
+	1	/* xn(1) */
+	/* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_InterfaceType_specs_1 = {
+	asn_MAP_InterfaceType_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_InterfaceType_enum2value_1,	/* N => "tag"; sorted by N */
+	7,	/* Number of elements in the maps */
+	8,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_InterfaceType_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_InterfaceType = {
+	"InterfaceType",
+	"InterfaceType",
+	&asn_OP_NativeEnumerated,
+	asn_DEF_InterfaceType_tags_1,
+	sizeof(asn_DEF_InterfaceType_tags_1)
+		/sizeof(asn_DEF_InterfaceType_tags_1[0]), /* 1 */
+	asn_DEF_InterfaceType_tags_1,	/* Same as above */
+	sizeof(asn_DEF_InterfaceType_tags_1)
+		/sizeof(asn_DEF_InterfaceType_tags_1[0]), /* 1 */
+	{ &asn_OER_type_InterfaceType_constr_1, &asn_PER_type_InterfaceType_constr_1, NativeEnumerated_constraint },
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_InterfaceType_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/L2Parameters-RANParameter-Item.c b/e2sm/lib/L2Parameters-RANParameter-Item.c
new file mode 100644
index 0000000..929135d
--- /dev/null
+++ b/e2sm/lib/L2Parameters-RANParameter-Item.c
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "L2Parameters-RANParameter-Item.h"
+
+#include "RANParameter-Definition.h"
+asn_TYPE_member_t asn_MBR_L2Parameters_RANParameter_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct L2Parameters_RANParameter_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 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"
+		},
+	{ ATF_POINTER, 1, offsetof(struct L2Parameters_RANParameter_Item, ranParameter_Definition),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 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_L2Parameters_RANParameter_Item_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_L2Parameters_RANParameter_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+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 | (2 << 2)), 2, 0, 0 } /* ranParameter-Definition */
+};
+asn_SEQUENCE_specifics_t asn_SPC_L2Parameters_RANParameter_Item_specs_1 = {
+	sizeof(struct L2Parameters_RANParameter_Item),
+	offsetof(struct L2Parameters_RANParameter_Item, _asn_ctx),
+	asn_MAP_L2Parameters_RANParameter_Item_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_L2Parameters_RANParameter_Item_oms_1,	/* Optional members */
+	0, 1,	/* Root/Additions */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_L2Parameters_RANParameter_Item = {
+	"L2Parameters-RANParameter-Item",
+	"L2Parameters-RANParameter-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_L2Parameters_RANParameter_Item_tags_1,
+	sizeof(asn_DEF_L2Parameters_RANParameter_Item_tags_1)
+		/sizeof(asn_DEF_L2Parameters_RANParameter_Item_tags_1[0]), /* 1 */
+	asn_DEF_L2Parameters_RANParameter_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_L2Parameters_RANParameter_Item_tags_1)
+		/sizeof(asn_DEF_L2Parameters_RANParameter_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_L2Parameters_RANParameter_Item_1,
+	3,	/* Elements count */
+	&asn_SPC_L2Parameters_RANParameter_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/L3-RRC-Measurements.c b/e2sm/lib/L3-RRC-Measurements.c
deleted file mode 100644
index df7009d..0000000
--- a/e2sm/lib/L3-RRC-Measurements.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "L3-RRC-Measurements.h"
-
-#include "ServingCellMeasurements.h"
-#include "MeasResultNeighCells.h"
-asn_TYPE_member_t asn_MBR_L3_RRC_Measurements_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct L3_RRC_Measurements, rrcEvent),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_RRCEvent,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"rrcEvent"
-		},
-	{ ATF_POINTER, 2, offsetof(struct L3_RRC_Measurements, servingCellMeasurements),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		+1,	/* EXPLICIT tag at current level */
-		&asn_DEF_ServingCellMeasurements,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"servingCellMeasurements"
-		},
-	{ ATF_POINTER, 1, offsetof(struct L3_RRC_Measurements, measResultNeighCells),
-		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-		+1,	/* EXPLICIT tag at current level */
-		&asn_DEF_MeasResultNeighCells,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"measResultNeighCells"
-		},
-};
-static const int asn_MAP_L3_RRC_Measurements_oms_1[] = { 1, 2 };
-static const ber_tlv_tag_t asn_DEF_L3_RRC_Measurements_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_L3_RRC_Measurements_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrcEvent */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* servingCellMeasurements */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* measResultNeighCells */
-};
-asn_SEQUENCE_specifics_t asn_SPC_L3_RRC_Measurements_specs_1 = {
-	sizeof(struct L3_RRC_Measurements),
-	offsetof(struct L3_RRC_Measurements, _asn_ctx),
-	asn_MAP_L3_RRC_Measurements_tag2el_1,
-	3,	/* Count of tags in the map */
-	asn_MAP_L3_RRC_Measurements_oms_1,	/* Optional members */
-	2, 0,	/* Root/Additions */
-	3,	/* First extension addition */
-};
-asn_TYPE_descriptor_t asn_DEF_L3_RRC_Measurements = {
-	"L3-RRC-Measurements",
-	"L3-RRC-Measurements",
-	&asn_OP_SEQUENCE,
-	asn_DEF_L3_RRC_Measurements_tags_1,
-	sizeof(asn_DEF_L3_RRC_Measurements_tags_1)
-		/sizeof(asn_DEF_L3_RRC_Measurements_tags_1[0]), /* 1 */
-	asn_DEF_L3_RRC_Measurements_tags_1,	/* Same as above */
-	sizeof(asn_DEF_L3_RRC_Measurements_tags_1)
-		/sizeof(asn_DEF_L3_RRC_Measurements_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_L3_RRC_Measurements_1,
-	3,	/* Elements count */
-	&asn_SPC_L3_RRC_Measurements_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/LogicalOR.c b/e2sm/lib/LogicalOR.c
new file mode 100644
index 0000000..4201a8e
--- /dev/null
+++ b/e2sm/lib/LogicalOR.c
@@ -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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "LogicalOR.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_LogicalOR_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_LogicalOR_constr_1 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_LogicalOR_value2enum_1[] = {
+	{ 0,	4,	"true" },
+	{ 1,	5,	"false" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_LogicalOR_enum2value_1[] = {
+	1,	/* false(1) */
+	0	/* true(0) */
+	/* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_LogicalOR_specs_1 = {
+	asn_MAP_LogicalOR_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_LogicalOR_enum2value_1,	/* 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_LogicalOR_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_LogicalOR = {
+	"LogicalOR",
+	"LogicalOR",
+	&asn_OP_NativeEnumerated,
+	asn_DEF_LogicalOR_tags_1,
+	sizeof(asn_DEF_LogicalOR_tags_1)
+		/sizeof(asn_DEF_LogicalOR_tags_1[0]), /* 1 */
+	asn_DEF_LogicalOR_tags_1,	/* Same as above */
+	sizeof(asn_DEF_LogicalOR_tags_1)
+		/sizeof(asn_DEF_LogicalOR_tags_1[0]), /* 1 */
+	{ &asn_OER_type_LogicalOR_constr_1, &asn_PER_type_LogicalOR_constr_1, NativeEnumerated_constraint },
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_LogicalOR_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/MME-Code.c b/e2sm/lib/MME-Code.c
new file mode 100644
index 0000000..193d640
--- /dev/null
+++ b/e2sm/lib/MME-Code.c
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "MME-Code.h"
+
+int
+MME_Code_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size == 1)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_MME_Code_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	1	/* (SIZE(1..1)) */};
+asn_per_constraints_t asn_PER_type_MME_Code_constr_1 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  1,  1 }	/* (SIZE(1..1)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_MME_Code_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_MME_Code = {
+	"MME-Code",
+	"MME-Code",
+	&asn_OP_OCTET_STRING,
+	asn_DEF_MME_Code_tags_1,
+	sizeof(asn_DEF_MME_Code_tags_1)
+		/sizeof(asn_DEF_MME_Code_tags_1[0]), /* 1 */
+	asn_DEF_MME_Code_tags_1,	/* Same as above */
+	sizeof(asn_DEF_MME_Code_tags_1)
+		/sizeof(asn_DEF_MME_Code_tags_1[0]), /* 1 */
+	{ &asn_OER_type_MME_Code_constr_1, &asn_PER_type_MME_Code_constr_1, MME_Code_constraint },
+	0, 0,	/* No members */
+	&asn_SPC_OCTET_STRING_specs	/* Additional specs */
+};
+
diff --git a/e2sm/lib/MME-Group-ID.c b/e2sm/lib/MME-Group-ID.c
new file mode 100644
index 0000000..cc5af21
--- /dev/null
+++ b/e2sm/lib/MME-Group-ID.c
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "MME-Group-ID.h"
+
+int
+MME_Group_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size == 2)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_MME_Group_ID_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	2	/* (SIZE(2..2)) */};
+asn_per_constraints_t asn_PER_type_MME_Group_ID_constr_1 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  2,  2 }	/* (SIZE(2..2)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_MME_Group_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_MME_Group_ID = {
+	"MME-Group-ID",
+	"MME-Group-ID",
+	&asn_OP_OCTET_STRING,
+	asn_DEF_MME_Group_ID_tags_1,
+	sizeof(asn_DEF_MME_Group_ID_tags_1)
+		/sizeof(asn_DEF_MME_Group_ID_tags_1[0]), /* 1 */
+	asn_DEF_MME_Group_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_MME_Group_ID_tags_1)
+		/sizeof(asn_DEF_MME_Group_ID_tags_1[0]), /* 1 */
+	{ &asn_OER_type_MME_Group_ID_constr_1, &asn_PER_type_MME_Group_ID_constr_1, MME_Group_ID_constraint },
+	0, 0,	/* No members */
+	&asn_SPC_OCTET_STRING_specs	/* Additional specs */
+};
+
diff --git a/e2sm/lib/MME-UE-S1AP-ID.c b/e2sm/lib/MME-UE-S1AP-ID.c
new file mode 100644
index 0000000..5e89d7f
--- /dev/null
+++ b/e2sm/lib/MME-UE-S1AP-ID.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "MME-UE-S1AP-ID.h"
+
+int
+MME_UE_S1AP_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	/* Constraint check succeeded */
+	return 0;
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_MME_UE_S1AP_ID_constr_1 CC_NOTUSED = {
+	{ 4, 1 }	/* (0..4294967295) */,
+	-1};
+asn_per_constraints_t asn_PER_type_MME_UE_S1AP_ID_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 32, -1,  0,  4294967295 }	/* (0..4294967295) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+const asn_INTEGER_specifics_t asn_SPC_MME_UE_S1AP_ID_specs_1 = {
+	0,	0,	0,	0,	0,
+	0,	/* Native long size */
+	1	/* Unsigned representation */
+};
+static const ber_tlv_tag_t asn_DEF_MME_UE_S1AP_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_MME_UE_S1AP_ID = {
+	"MME-UE-S1AP-ID",
+	"MME-UE-S1AP-ID",
+	&asn_OP_NativeInteger,
+	asn_DEF_MME_UE_S1AP_ID_tags_1,
+	sizeof(asn_DEF_MME_UE_S1AP_ID_tags_1)
+		/sizeof(asn_DEF_MME_UE_S1AP_ID_tags_1[0]), /* 1 */
+	asn_DEF_MME_UE_S1AP_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_MME_UE_S1AP_ID_tags_1)
+		/sizeof(asn_DEF_MME_UE_S1AP_ID_tags_1[0]), /* 1 */
+	{ &asn_OER_type_MME_UE_S1AP_ID_constr_1, &asn_PER_type_MME_UE_S1AP_ID_constr_1, MME_UE_S1AP_ID_constraint },
+	0, 0,	/* No members */
+	&asn_SPC_MME_UE_S1AP_ID_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/Makefile.am.libasncodec b/e2sm/lib/Makefile.am.libasncodec
new file mode 100644
index 0000000..dca4816
--- /dev/null
+++ b/e2sm/lib/Makefile.am.libasncodec
@@ -0,0 +1,544 @@
+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/MeasQuantityResults.c b/e2sm/lib/MeasQuantityResults.c
deleted file mode 100644
index 71a2de9..0000000
--- a/e2sm/lib/MeasQuantityResults.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "MeasQuantityResults.h"
-
-asn_TYPE_member_t asn_MBR_MeasQuantityResults_1[] = {
-	{ ATF_POINTER, 3, offsetof(struct MeasQuantityResults, rsrp),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_RSRP_Range,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"rsrp"
-		},
-	{ ATF_POINTER, 2, offsetof(struct MeasQuantityResults, rsrq),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_RSRQ_Range,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"rsrq"
-		},
-	{ ATF_POINTER, 1, offsetof(struct MeasQuantityResults, sinr),
-		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_SINR_Range,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"sinr"
-		},
-};
-static const int asn_MAP_MeasQuantityResults_oms_1[] = { 0, 1, 2 };
-static const ber_tlv_tag_t asn_DEF_MeasQuantityResults_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_MeasQuantityResults_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rsrp */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rsrq */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* sinr */
-};
-asn_SEQUENCE_specifics_t asn_SPC_MeasQuantityResults_specs_1 = {
-	sizeof(struct MeasQuantityResults),
-	offsetof(struct MeasQuantityResults, _asn_ctx),
-	asn_MAP_MeasQuantityResults_tag2el_1,
-	3,	/* Count of tags in the map */
-	asn_MAP_MeasQuantityResults_oms_1,	/* Optional members */
-	3, 0,	/* Root/Additions */
-	3,	/* First extension addition */
-};
-asn_TYPE_descriptor_t asn_DEF_MeasQuantityResults = {
-	"MeasQuantityResults",
-	"MeasQuantityResults",
-	&asn_OP_SEQUENCE,
-	asn_DEF_MeasQuantityResults_tags_1,
-	sizeof(asn_DEF_MeasQuantityResults_tags_1)
-		/sizeof(asn_DEF_MeasQuantityResults_tags_1[0]), /* 1 */
-	asn_DEF_MeasQuantityResults_tags_1,	/* Same as above */
-	sizeof(asn_DEF_MeasQuantityResults_tags_1)
-		/sizeof(asn_DEF_MeasQuantityResults_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_MeasQuantityResults_1,
-	3,	/* Elements count */
-	&asn_SPC_MeasQuantityResults_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/MeasQuantityResultsEUTRA.c b/e2sm/lib/MeasQuantityResultsEUTRA.c
deleted file mode 100644
index 8dfe36d..0000000
--- a/e2sm/lib/MeasQuantityResultsEUTRA.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "MeasQuantityResultsEUTRA.h"
-
-asn_TYPE_member_t asn_MBR_MeasQuantityResultsEUTRA_1[] = {
-	{ ATF_POINTER, 3, offsetof(struct MeasQuantityResultsEUTRA, rsrp),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_RSRP_RangeEUTRA,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"rsrp"
-		},
-	{ ATF_POINTER, 2, offsetof(struct MeasQuantityResultsEUTRA, rsrq),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_RSRQ_RangeEUTRA,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"rsrq"
-		},
-	{ ATF_POINTER, 1, offsetof(struct MeasQuantityResultsEUTRA, sinr),
-		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_SINR_RangeEUTRA,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"sinr"
-		},
-};
-static const int asn_MAP_MeasQuantityResultsEUTRA_oms_1[] = { 0, 1, 2 };
-static const ber_tlv_tag_t asn_DEF_MeasQuantityResultsEUTRA_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_MeasQuantityResultsEUTRA_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rsrp */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rsrq */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* sinr */
-};
-asn_SEQUENCE_specifics_t asn_SPC_MeasQuantityResultsEUTRA_specs_1 = {
-	sizeof(struct MeasQuantityResultsEUTRA),
-	offsetof(struct MeasQuantityResultsEUTRA, _asn_ctx),
-	asn_MAP_MeasQuantityResultsEUTRA_tag2el_1,
-	3,	/* Count of tags in the map */
-	asn_MAP_MeasQuantityResultsEUTRA_oms_1,	/* Optional members */
-	3, 0,	/* Root/Additions */
-	3,	/* First extension addition */
-};
-asn_TYPE_descriptor_t asn_DEF_MeasQuantityResultsEUTRA = {
-	"MeasQuantityResultsEUTRA",
-	"MeasQuantityResultsEUTRA",
-	&asn_OP_SEQUENCE,
-	asn_DEF_MeasQuantityResultsEUTRA_tags_1,
-	sizeof(asn_DEF_MeasQuantityResultsEUTRA_tags_1)
-		/sizeof(asn_DEF_MeasQuantityResultsEUTRA_tags_1[0]), /* 1 */
-	asn_DEF_MeasQuantityResultsEUTRA_tags_1,	/* Same as above */
-	sizeof(asn_DEF_MeasQuantityResultsEUTRA_tags_1)
-		/sizeof(asn_DEF_MeasQuantityResultsEUTRA_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_MeasQuantityResultsEUTRA_1,
-	3,	/* Elements count */
-	&asn_SPC_MeasQuantityResultsEUTRA_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/MeasResultEUTRA.c b/e2sm/lib/MeasResultEUTRA.c
deleted file mode 100644
index b3713d9..0000000
--- a/e2sm/lib/MeasResultEUTRA.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "MeasResultEUTRA.h"
-
-asn_TYPE_member_t asn_MBR_MeasResultEUTRA_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct MeasResultEUTRA, eutra_PhysCellId),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_PhysCellId,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"eutra-PhysCellId"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct MeasResultEUTRA, measResult),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_MeasQuantityResultsEUTRA,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"measResult"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_MeasResultEUTRA_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_MeasResultEUTRA_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eutra-PhysCellId */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* measResult */
-};
-asn_SEQUENCE_specifics_t asn_SPC_MeasResultEUTRA_specs_1 = {
-	sizeof(struct MeasResultEUTRA),
-	offsetof(struct MeasResultEUTRA, _asn_ctx),
-	asn_MAP_MeasResultEUTRA_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_MeasResultEUTRA = {
-	"MeasResultEUTRA",
-	"MeasResultEUTRA",
-	&asn_OP_SEQUENCE,
-	asn_DEF_MeasResultEUTRA_tags_1,
-	sizeof(asn_DEF_MeasResultEUTRA_tags_1)
-		/sizeof(asn_DEF_MeasResultEUTRA_tags_1[0]), /* 1 */
-	asn_DEF_MeasResultEUTRA_tags_1,	/* Same as above */
-	sizeof(asn_DEF_MeasResultEUTRA_tags_1)
-		/sizeof(asn_DEF_MeasResultEUTRA_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_MeasResultEUTRA_1,
-	2,	/* Elements count */
-	&asn_SPC_MeasResultEUTRA_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/MeasResultListEUTRA.c b/e2sm/lib/MeasResultListEUTRA.c
deleted file mode 100644
index b7a963e..0000000
--- a/e2sm/lib/MeasResultListEUTRA.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "MeasResultListEUTRA.h"
-
-#include "MeasResultEUTRA.h"
-static asn_oer_constraints_t asn_OER_type_MeasResultListEUTRA_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..8)) */};
-asn_per_constraints_t asn_PER_type_MeasResultListEUTRA_constr_1 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 3,  3,  1,  8 }	/* (SIZE(1..8)) */,
-	0, 0	/* No PER value map */
-};
-asn_TYPE_member_t asn_MBR_MeasResultListEUTRA_1[] = {
-	{ ATF_POINTER, 0, 0,
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_MeasResultEUTRA,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		""
-		},
-};
-static const ber_tlv_tag_t asn_DEF_MeasResultListEUTRA_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-asn_SET_OF_specifics_t asn_SPC_MeasResultListEUTRA_specs_1 = {
-	sizeof(struct MeasResultListEUTRA),
-	offsetof(struct MeasResultListEUTRA, _asn_ctx),
-	0,	/* XER encoding is XMLDelimitedItemList */
-};
-asn_TYPE_descriptor_t asn_DEF_MeasResultListEUTRA = {
-	"MeasResultListEUTRA",
-	"MeasResultListEUTRA",
-	&asn_OP_SEQUENCE_OF,
-	asn_DEF_MeasResultListEUTRA_tags_1,
-	sizeof(asn_DEF_MeasResultListEUTRA_tags_1)
-		/sizeof(asn_DEF_MeasResultListEUTRA_tags_1[0]), /* 1 */
-	asn_DEF_MeasResultListEUTRA_tags_1,	/* Same as above */
-	sizeof(asn_DEF_MeasResultListEUTRA_tags_1)
-		/sizeof(asn_DEF_MeasResultListEUTRA_tags_1[0]), /* 1 */
-	{ &asn_OER_type_MeasResultListEUTRA_constr_1, &asn_PER_type_MeasResultListEUTRA_constr_1, SEQUENCE_OF_constraint },
-	asn_MBR_MeasResultListEUTRA_1,
-	1,	/* Single element */
-	&asn_SPC_MeasResultListEUTRA_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/MeasResultListNR.c b/e2sm/lib/MeasResultListNR.c
deleted file mode 100644
index d5edda9..0000000
--- a/e2sm/lib/MeasResultListNR.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "MeasResultListNR.h"
-
-#include "MeasResultNR.h"
-static asn_oer_constraints_t asn_OER_type_MeasResultListNR_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..8)) */};
-asn_per_constraints_t asn_PER_type_MeasResultListNR_constr_1 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 3,  3,  1,  8 }	/* (SIZE(1..8)) */,
-	0, 0	/* No PER value map */
-};
-asn_TYPE_member_t asn_MBR_MeasResultListNR_1[] = {
-	{ ATF_POINTER, 0, 0,
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_MeasResultNR,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		""
-		},
-};
-static const ber_tlv_tag_t asn_DEF_MeasResultListNR_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-asn_SET_OF_specifics_t asn_SPC_MeasResultListNR_specs_1 = {
-	sizeof(struct MeasResultListNR),
-	offsetof(struct MeasResultListNR, _asn_ctx),
-	0,	/* XER encoding is XMLDelimitedItemList */
-};
-asn_TYPE_descriptor_t asn_DEF_MeasResultListNR = {
-	"MeasResultListNR",
-	"MeasResultListNR",
-	&asn_OP_SEQUENCE_OF,
-	asn_DEF_MeasResultListNR_tags_1,
-	sizeof(asn_DEF_MeasResultListNR_tags_1)
-		/sizeof(asn_DEF_MeasResultListNR_tags_1[0]), /* 1 */
-	asn_DEF_MeasResultListNR_tags_1,	/* Same as above */
-	sizeof(asn_DEF_MeasResultListNR_tags_1)
-		/sizeof(asn_DEF_MeasResultListNR_tags_1[0]), /* 1 */
-	{ &asn_OER_type_MeasResultListNR_constr_1, &asn_PER_type_MeasResultListNR_constr_1, SEQUENCE_OF_constraint },
-	asn_MBR_MeasResultListNR_1,
-	1,	/* Single element */
-	&asn_SPC_MeasResultListNR_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/MeasResultNR.c b/e2sm/lib/MeasResultNR.c
deleted file mode 100644
index fa4dae8..0000000
--- a/e2sm/lib/MeasResultNR.c
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "MeasResultNR.h"
-
-#include "MeasQuantityResults.h"
-#include "ResultsPerSSB-IndexList.h"
-#include "ResultsPerCSI-RS-IndexList.h"
-static asn_TYPE_member_t asn_MBR_cellResults_4[] = {
-	{ ATF_POINTER, 2, offsetof(struct MeasResultNR__measResult__cellResults, resultsSSB_Cell),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_MeasQuantityResults,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"resultsSSB-Cell"
-		},
-	{ ATF_POINTER, 1, offsetof(struct MeasResultNR__measResult__cellResults, resultsCSI_RS_Cell),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_MeasQuantityResults,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"resultsCSI-RS-Cell"
-		},
-};
-static const int asn_MAP_cellResults_oms_4[] = { 0, 1 };
-static const ber_tlv_tag_t asn_DEF_cellResults_tags_4[] = {
-	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_cellResults_tag2el_4[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* resultsSSB-Cell */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* resultsCSI-RS-Cell */
-};
-static asn_SEQUENCE_specifics_t asn_SPC_cellResults_specs_4 = {
-	sizeof(struct MeasResultNR__measResult__cellResults),
-	offsetof(struct MeasResultNR__measResult__cellResults, _asn_ctx),
-	asn_MAP_cellResults_tag2el_4,
-	2,	/* Count of tags in the map */
-	asn_MAP_cellResults_oms_4,	/* Optional members */
-	2, 0,	/* Root/Additions */
-	-1,	/* First extension addition */
-};
-static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_cellResults_4 = {
-	"cellResults",
-	"cellResults",
-	&asn_OP_SEQUENCE,
-	asn_DEF_cellResults_tags_4,
-	sizeof(asn_DEF_cellResults_tags_4)
-		/sizeof(asn_DEF_cellResults_tags_4[0]) - 1, /* 1 */
-	asn_DEF_cellResults_tags_4,	/* Same as above */
-	sizeof(asn_DEF_cellResults_tags_4)
-		/sizeof(asn_DEF_cellResults_tags_4[0]), /* 2 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_cellResults_4,
-	2,	/* Elements count */
-	&asn_SPC_cellResults_specs_4	/* Additional specs */
-};
-
-static asn_TYPE_member_t asn_MBR_rsIndexResults_7[] = {
-	{ ATF_POINTER, 2, offsetof(struct MeasResultNR__measResult__rsIndexResults, resultsSSB_Indexes),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_ResultsPerSSB_IndexList,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"resultsSSB-Indexes"
-		},
-	{ ATF_POINTER, 1, offsetof(struct MeasResultNR__measResult__rsIndexResults, resultsCSI_RS_Indexes),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_ResultsPerCSI_RS_IndexList,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"resultsCSI-RS-Indexes"
-		},
-};
-static const int asn_MAP_rsIndexResults_oms_7[] = { 0, 1 };
-static const ber_tlv_tag_t asn_DEF_rsIndexResults_tags_7[] = {
-	(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_rsIndexResults_tag2el_7[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* resultsSSB-Indexes */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* resultsCSI-RS-Indexes */
-};
-static asn_SEQUENCE_specifics_t asn_SPC_rsIndexResults_specs_7 = {
-	sizeof(struct MeasResultNR__measResult__rsIndexResults),
-	offsetof(struct MeasResultNR__measResult__rsIndexResults, _asn_ctx),
-	asn_MAP_rsIndexResults_tag2el_7,
-	2,	/* Count of tags in the map */
-	asn_MAP_rsIndexResults_oms_7,	/* Optional members */
-	2, 0,	/* Root/Additions */
-	-1,	/* First extension addition */
-};
-static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_rsIndexResults_7 = {
-	"rsIndexResults",
-	"rsIndexResults",
-	&asn_OP_SEQUENCE,
-	asn_DEF_rsIndexResults_tags_7,
-	sizeof(asn_DEF_rsIndexResults_tags_7)
-		/sizeof(asn_DEF_rsIndexResults_tags_7[0]) - 1, /* 1 */
-	asn_DEF_rsIndexResults_tags_7,	/* Same as above */
-	sizeof(asn_DEF_rsIndexResults_tags_7)
-		/sizeof(asn_DEF_rsIndexResults_tags_7[0]), /* 2 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_rsIndexResults_7,
-	2,	/* Elements count */
-	&asn_SPC_rsIndexResults_specs_7	/* Additional specs */
-};
-
-static asn_TYPE_member_t asn_MBR_measResult_3[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct MeasResultNR__measResult, cellResults),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		0,
-		&asn_DEF_cellResults_4,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"cellResults"
-		},
-	{ ATF_POINTER, 1, offsetof(struct MeasResultNR__measResult, rsIndexResults),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		0,
-		&asn_DEF_rsIndexResults_7,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"rsIndexResults"
-		},
-};
-static const int asn_MAP_measResult_oms_3[] = { 1 };
-static const ber_tlv_tag_t asn_DEF_measResult_tags_3[] = {
-	(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_measResult_tag2el_3[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellResults */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* rsIndexResults */
-};
-static asn_SEQUENCE_specifics_t asn_SPC_measResult_specs_3 = {
-	sizeof(struct MeasResultNR__measResult),
-	offsetof(struct MeasResultNR__measResult, _asn_ctx),
-	asn_MAP_measResult_tag2el_3,
-	2,	/* Count of tags in the map */
-	asn_MAP_measResult_oms_3,	/* Optional members */
-	1, 0,	/* Root/Additions */
-	-1,	/* First extension addition */
-};
-static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_measResult_3 = {
-	"measResult",
-	"measResult",
-	&asn_OP_SEQUENCE,
-	asn_DEF_measResult_tags_3,
-	sizeof(asn_DEF_measResult_tags_3)
-		/sizeof(asn_DEF_measResult_tags_3[0]) - 1, /* 1 */
-	asn_DEF_measResult_tags_3,	/* Same as above */
-	sizeof(asn_DEF_measResult_tags_3)
-		/sizeof(asn_DEF_measResult_tags_3[0]), /* 2 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_measResult_3,
-	2,	/* Elements count */
-	&asn_SPC_measResult_specs_3	/* Additional specs */
-};
-
-asn_TYPE_member_t asn_MBR_MeasResultNR_1[] = {
-	{ ATF_POINTER, 1, offsetof(struct MeasResultNR, physCellId),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_PhysCellId,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"physCellId"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct MeasResultNR, measResult),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		0,
-		&asn_DEF_measResult_3,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"measResult"
-		},
-};
-static const int asn_MAP_MeasResultNR_oms_1[] = { 0 };
-static const ber_tlv_tag_t asn_DEF_MeasResultNR_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_MeasResultNR_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* physCellId */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* measResult */
-};
-asn_SEQUENCE_specifics_t asn_SPC_MeasResultNR_specs_1 = {
-	sizeof(struct MeasResultNR),
-	offsetof(struct MeasResultNR, _asn_ctx),
-	asn_MAP_MeasResultNR_tag2el_1,
-	2,	/* Count of tags in the map */
-	asn_MAP_MeasResultNR_oms_1,	/* Optional members */
-	1, 0,	/* Root/Additions */
-	2,	/* First extension addition */
-};
-asn_TYPE_descriptor_t asn_DEF_MeasResultNR = {
-	"MeasResultNR",
-	"MeasResultNR",
-	&asn_OP_SEQUENCE,
-	asn_DEF_MeasResultNR_tags_1,
-	sizeof(asn_DEF_MeasResultNR_tags_1)
-		/sizeof(asn_DEF_MeasResultNR_tags_1[0]), /* 1 */
-	asn_DEF_MeasResultNR_tags_1,	/* Same as above */
-	sizeof(asn_DEF_MeasResultNR_tags_1)
-		/sizeof(asn_DEF_MeasResultNR_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_MeasResultNR_1,
-	2,	/* Elements count */
-	&asn_SPC_MeasResultNR_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/MeasResultNeighCells.c b/e2sm/lib/MeasResultNeighCells.c
deleted file mode 100644
index 3f87d70..0000000
--- a/e2sm/lib/MeasResultNeighCells.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "MeasResultNeighCells.h"
-
-#include "MeasResultListNR.h"
-#include "MeasResultListEUTRA.h"
-static asn_oer_constraints_t asn_OER_type_MeasResultNeighCells_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	-1};
-asn_per_constraints_t asn_PER_type_MeasResultNeighCells_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }	/* (0..1,...) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-asn_TYPE_member_t asn_MBR_MeasResultNeighCells_1[] = {
-	{ ATF_POINTER, 0, offsetof(struct MeasResultNeighCells, choice.measResultListNR),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_MeasResultListNR,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"measResultListNR"
-		},
-	{ ATF_POINTER, 0, offsetof(struct MeasResultNeighCells, choice.measResultListEUTRA),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_MeasResultListEUTRA,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"measResultListEUTRA"
-		},
-};
-static const asn_TYPE_tag2member_t asn_MAP_MeasResultNeighCells_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measResultListNR */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* measResultListEUTRA */
-};
-asn_CHOICE_specifics_t asn_SPC_MeasResultNeighCells_specs_1 = {
-	sizeof(struct MeasResultNeighCells),
-	offsetof(struct MeasResultNeighCells, _asn_ctx),
-	offsetof(struct MeasResultNeighCells, present),
-	sizeof(((struct MeasResultNeighCells *)0)->present),
-	asn_MAP_MeasResultNeighCells_tag2el_1,
-	2,	/* Count of tags in the map */
-	0, 0,
-	2	/* Extensions start */
-};
-asn_TYPE_descriptor_t asn_DEF_MeasResultNeighCells = {
-	"MeasResultNeighCells",
-	"MeasResultNeighCells",
-	&asn_OP_CHOICE,
-	0,	/* No effective tags (pointer) */
-	0,	/* No effective tags (count) */
-	0,	/* No tags (pointer) */
-	0,	/* No tags (count) */
-	{ &asn_OER_type_MeasResultNeighCells_constr_1, &asn_PER_type_MeasResultNeighCells_constr_1, CHOICE_constraint },
-	asn_MBR_MeasResultNeighCells_1,
-	2,	/* Elements count */
-	&asn_SPC_MeasResultNeighCells_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/MeasResultPCell.c b/e2sm/lib/MeasResultPCell.c
deleted file mode 100644
index cbd74f8..0000000
--- a/e2sm/lib/MeasResultPCell.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "MeasResultPCell.h"
-
-asn_TYPE_member_t asn_MBR_MeasResultPCell_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct MeasResultPCell, eutra_PhysCellId),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_PhysCellId,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"eutra-PhysCellId"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct MeasResultPCell, rsrpResult),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_RSRP_Range,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"rsrpResult"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct MeasResultPCell, rsrqResult),
-		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_RSRQ_Range,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"rsrqResult"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_MeasResultPCell_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_MeasResultPCell_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eutra-PhysCellId */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rsrpResult */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* rsrqResult */
-};
-asn_SEQUENCE_specifics_t asn_SPC_MeasResultPCell_specs_1 = {
-	sizeof(struct MeasResultPCell),
-	offsetof(struct MeasResultPCell, _asn_ctx),
-	asn_MAP_MeasResultPCell_tag2el_1,
-	3,	/* Count of tags in the map */
-	0, 0, 0,	/* Optional elements (not needed) */
-	3,	/* First extension addition */
-};
-asn_TYPE_descriptor_t asn_DEF_MeasResultPCell = {
-	"MeasResultPCell",
-	"MeasResultPCell",
-	&asn_OP_SEQUENCE,
-	asn_DEF_MeasResultPCell_tags_1,
-	sizeof(asn_DEF_MeasResultPCell_tags_1)
-		/sizeof(asn_DEF_MeasResultPCell_tags_1[0]), /* 1 */
-	asn_DEF_MeasResultPCell_tags_1,	/* Same as above */
-	sizeof(asn_DEF_MeasResultPCell_tags_1)
-		/sizeof(asn_DEF_MeasResultPCell_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_MeasResultPCell_1,
-	3,	/* Elements count */
-	&asn_SPC_MeasResultPCell_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/MeasResultServMO.c b/e2sm/lib/MeasResultServMO.c
deleted file mode 100644
index 346f5fe..0000000
--- a/e2sm/lib/MeasResultServMO.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "MeasResultServMO.h"
-
-#include "MeasResultNR.h"
-asn_TYPE_member_t asn_MBR_MeasResultServMO_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct MeasResultServMO, servCellId),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_ServCellIndex,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"servCellId"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct MeasResultServMO, measResultServingCell),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_MeasResultNR,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"measResultServingCell"
-		},
-	{ ATF_POINTER, 1, offsetof(struct MeasResultServMO, measResultBestNeighCell),
-		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_MeasResultNR,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"measResultBestNeighCell"
-		},
-};
-static const int asn_MAP_MeasResultServMO_oms_1[] = { 2 };
-static const ber_tlv_tag_t asn_DEF_MeasResultServMO_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_MeasResultServMO_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* servCellId */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* measResultServingCell */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* measResultBestNeighCell */
-};
-asn_SEQUENCE_specifics_t asn_SPC_MeasResultServMO_specs_1 = {
-	sizeof(struct MeasResultServMO),
-	offsetof(struct MeasResultServMO, _asn_ctx),
-	asn_MAP_MeasResultServMO_tag2el_1,
-	3,	/* Count of tags in the map */
-	asn_MAP_MeasResultServMO_oms_1,	/* Optional members */
-	1, 0,	/* Root/Additions */
-	3,	/* First extension addition */
-};
-asn_TYPE_descriptor_t asn_DEF_MeasResultServMO = {
-	"MeasResultServMO",
-	"MeasResultServMO",
-	&asn_OP_SEQUENCE,
-	asn_DEF_MeasResultServMO_tags_1,
-	sizeof(asn_DEF_MeasResultServMO_tags_1)
-		/sizeof(asn_DEF_MeasResultServMO_tags_1[0]), /* 1 */
-	asn_DEF_MeasResultServMO_tags_1,	/* Same as above */
-	sizeof(asn_DEF_MeasResultServMO_tags_1)
-		/sizeof(asn_DEF_MeasResultServMO_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_MeasResultServMO_1,
-	3,	/* Elements count */
-	&asn_SPC_MeasResultServMO_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/MeasResultServMOList.c b/e2sm/lib/MeasResultServMOList.c
deleted file mode 100644
index 2798a7e..0000000
--- a/e2sm/lib/MeasResultServMOList.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "MeasResultServMOList.h"
-
-#include "MeasResultServMO.h"
-static asn_oer_constraints_t asn_OER_type_MeasResultServMOList_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..32)) */};
-asn_per_constraints_t asn_PER_type_MeasResultServMOList_constr_1 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 5,  5,  1,  32 }	/* (SIZE(1..32)) */,
-	0, 0	/* No PER value map */
-};
-asn_TYPE_member_t asn_MBR_MeasResultServMOList_1[] = {
-	{ ATF_POINTER, 0, 0,
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_MeasResultServMO,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		""
-		},
-};
-static const ber_tlv_tag_t asn_DEF_MeasResultServMOList_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-asn_SET_OF_specifics_t asn_SPC_MeasResultServMOList_specs_1 = {
-	sizeof(struct MeasResultServMOList),
-	offsetof(struct MeasResultServMOList, _asn_ctx),
-	0,	/* XER encoding is XMLDelimitedItemList */
-};
-asn_TYPE_descriptor_t asn_DEF_MeasResultServMOList = {
-	"MeasResultServMOList",
-	"MeasResultServMOList",
-	&asn_OP_SEQUENCE_OF,
-	asn_DEF_MeasResultServMOList_tags_1,
-	sizeof(asn_DEF_MeasResultServMOList_tags_1)
-		/sizeof(asn_DEF_MeasResultServMOList_tags_1[0]), /* 1 */
-	asn_DEF_MeasResultServMOList_tags_1,	/* Same as above */
-	sizeof(asn_DEF_MeasResultServMOList_tags_1)
-		/sizeof(asn_DEF_MeasResultServMOList_tags_1[0]), /* 1 */
-	{ &asn_OER_type_MeasResultServMOList_constr_1, &asn_PER_type_MeasResultServMOList_constr_1, SEQUENCE_OF_constraint },
-	asn_MBR_MeasResultServMOList_1,
-	1,	/* Single element */
-	&asn_SPC_MeasResultServMOList_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/MeasurementInfoItem.c b/e2sm/lib/MeasurementInfoItem.c
deleted file mode 100644
index 5edae52..0000000
--- a/e2sm/lib/MeasurementInfoItem.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "MeasurementInfoItem.h"
-
-asn_TYPE_member_t asn_MBR_MeasurementInfoItem_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct MeasurementInfoItem, measType),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		+1,	/* EXPLICIT tag at current level */
-		&asn_DEF_MeasurementType,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"measType"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_MeasurementInfoItem_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_MeasurementInfoItem_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* measType */
-};
-asn_SEQUENCE_specifics_t asn_SPC_MeasurementInfoItem_specs_1 = {
-	sizeof(struct MeasurementInfoItem),
-	offsetof(struct MeasurementInfoItem, _asn_ctx),
-	asn_MAP_MeasurementInfoItem_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_MeasurementInfoItem = {
-	"MeasurementInfoItem",
-	"MeasurementInfoItem",
-	&asn_OP_SEQUENCE,
-	asn_DEF_MeasurementInfoItem_tags_1,
-	sizeof(asn_DEF_MeasurementInfoItem_tags_1)
-		/sizeof(asn_DEF_MeasurementInfoItem_tags_1[0]), /* 1 */
-	asn_DEF_MeasurementInfoItem_tags_1,	/* Same as above */
-	sizeof(asn_DEF_MeasurementInfoItem_tags_1)
-		/sizeof(asn_DEF_MeasurementInfoItem_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_MeasurementInfoItem_1,
-	1,	/* Elements count */
-	&asn_SPC_MeasurementInfoItem_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/MeasurementInfoList.c b/e2sm/lib/MeasurementInfoList.c
deleted file mode 100644
index 9e7aed9..0000000
--- a/e2sm/lib/MeasurementInfoList.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "MeasurementInfoList.h"
-
-#include "MeasurementInfoItem.h"
-static asn_oer_constraints_t asn_OER_type_MeasurementInfoList_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..65535)) */};
-asn_per_constraints_t asn_PER_type_MeasurementInfoList_constr_1 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 16,  16,  1,  65535 }	/* (SIZE(1..65535)) */,
-	0, 0	/* No PER value map */
-};
-asn_TYPE_member_t asn_MBR_MeasurementInfoList_1[] = {
-	{ ATF_POINTER, 0, 0,
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_MeasurementInfoItem,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		""
-		},
-};
-static const ber_tlv_tag_t asn_DEF_MeasurementInfoList_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-asn_SET_OF_specifics_t asn_SPC_MeasurementInfoList_specs_1 = {
-	sizeof(struct MeasurementInfoList),
-	offsetof(struct MeasurementInfoList, _asn_ctx),
-	0,	/* XER encoding is XMLDelimitedItemList */
-};
-asn_TYPE_descriptor_t asn_DEF_MeasurementInfoList = {
-	"MeasurementInfoList",
-	"MeasurementInfoList",
-	&asn_OP_SEQUENCE_OF,
-	asn_DEF_MeasurementInfoList_tags_1,
-	sizeof(asn_DEF_MeasurementInfoList_tags_1)
-		/sizeof(asn_DEF_MeasurementInfoList_tags_1[0]), /* 1 */
-	asn_DEF_MeasurementInfoList_tags_1,	/* Same as above */
-	sizeof(asn_DEF_MeasurementInfoList_tags_1)
-		/sizeof(asn_DEF_MeasurementInfoList_tags_1[0]), /* 1 */
-	{ &asn_OER_type_MeasurementInfoList_constr_1, &asn_PER_type_MeasurementInfoList_constr_1, SEQUENCE_OF_constraint },
-	asn_MBR_MeasurementInfoList_1,
-	1,	/* Single element */
-	&asn_SPC_MeasurementInfoList_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/MeasurementType.c b/e2sm/lib/MeasurementType.c
deleted file mode 100644
index 2d3e1f7..0000000
--- a/e2sm/lib/MeasurementType.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "MeasurementType.h"
-
-static asn_oer_constraints_t asn_OER_type_MeasurementType_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	-1};
-asn_per_constraints_t asn_PER_type_MeasurementType_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }	/* (0..1,...) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-asn_TYPE_member_t asn_MBR_MeasurementType_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct MeasurementType, choice.measName),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_MeasurementTypeName,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"measName"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct MeasurementType, choice.measID),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_MeasurementTypeID,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"measID"
-		},
-};
-static const asn_TYPE_tag2member_t asn_MAP_MeasurementType_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measName */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* measID */
-};
-asn_CHOICE_specifics_t asn_SPC_MeasurementType_specs_1 = {
-	sizeof(struct MeasurementType),
-	offsetof(struct MeasurementType, _asn_ctx),
-	offsetof(struct MeasurementType, present),
-	sizeof(((struct MeasurementType *)0)->present),
-	asn_MAP_MeasurementType_tag2el_1,
-	2,	/* Count of tags in the map */
-	0, 0,
-	2	/* Extensions start */
-};
-asn_TYPE_descriptor_t asn_DEF_MeasurementType = {
-	"MeasurementType",
-	"MeasurementType",
-	&asn_OP_CHOICE,
-	0,	/* No effective tags (pointer) */
-	0,	/* No effective tags (count) */
-	0,	/* No tags (pointer) */
-	0,	/* No tags (count) */
-	{ &asn_OER_type_MeasurementType_constr_1, &asn_PER_type_MeasurementType_constr_1, CHOICE_constraint },
-	asn_MBR_MeasurementType_1,
-	2,	/* Elements count */
-	&asn_SPC_MeasurementType_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/MeasurementTypeID.c b/e2sm/lib/MeasurementTypeID.c
deleted file mode 100644
index 62a8a79..0000000
--- a/e2sm/lib/MeasurementTypeID.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "MeasurementTypeID.h"
-
-int
-MeasurementTypeID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	long value;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	value = *(const long *)sptr;
-	
-	if((value >= 1 && value <= 65535)) {
-		/* Constraint check succeeded */
-		return 0;
-	} else {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: constraint failed (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-}
-
-/*
- * This type is implemented using NativeInteger,
- * so here we adjust the DEF accordingly.
- */
-static asn_oer_constraints_t asn_OER_type_MeasurementTypeID_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	-1};
-asn_per_constraints_t asn_PER_type_MeasurementTypeID_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  16,  16,  1,  65535 }	/* (1..65535,...) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static const ber_tlv_tag_t asn_DEF_MeasurementTypeID_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
-};
-asn_TYPE_descriptor_t asn_DEF_MeasurementTypeID = {
-	"MeasurementTypeID",
-	"MeasurementTypeID",
-	&asn_OP_NativeInteger,
-	asn_DEF_MeasurementTypeID_tags_1,
-	sizeof(asn_DEF_MeasurementTypeID_tags_1)
-		/sizeof(asn_DEF_MeasurementTypeID_tags_1[0]), /* 1 */
-	asn_DEF_MeasurementTypeID_tags_1,	/* Same as above */
-	sizeof(asn_DEF_MeasurementTypeID_tags_1)
-		/sizeof(asn_DEF_MeasurementTypeID_tags_1[0]), /* 1 */
-	{ &asn_OER_type_MeasurementTypeID_constr_1, &asn_PER_type_MeasurementTypeID_constr_1, MeasurementTypeID_constraint },
-	0, 0,	/* No members */
-	0	/* No specifics */
-};
-
diff --git a/e2sm/lib/MeasurementTypeName.c b/e2sm/lib/MeasurementTypeName.c
deleted file mode 100644
index 1b5fd5a..0000000
--- a/e2sm/lib/MeasurementTypeName.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "MeasurementTypeName.h"
-
-static const int permitted_alphabet_table_1[256] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/*                  */
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/*                  */
- 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9,	/* .      '() +,-./ */
-10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22,	/* 0123456789:  = ? */
- 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,	/*  ABCDEFGHIJKLMNO */
-38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0,	/* PQRSTUVWXYZ      */
- 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,	/*  abcdefghijklmno */
-64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0,	/* pqrstuvwxyz      */
-};
-static const int permitted_alphabet_code2value_1[74] = {
-32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54,
-55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74,
-75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,
-97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,
-113,114,115,116,117,118,119,120,121,122,};
-
-
-static int check_permitted_alphabet_1(const void *sptr) {
-	const int *table = permitted_alphabet_table_1;
-	/* The underlying type is PrintableString */
-	const PrintableString_t *st = (const PrintableString_t *)sptr;
-	const uint8_t *ch = st->buf;
-	const uint8_t *end = ch + st->size;
-	
-	for(; ch < end; ch++) {
-		uint8_t cv = *ch;
-		if(!table[cv]) return -1;
-	}
-	return 0;
-}
-
-int
-MeasurementTypeName_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	const PrintableString_t *st = (const PrintableString_t *)sptr;
-	size_t size;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	size = st->size;
-	
-	if((size >= 1 && size <= 150)
-		 && !check_permitted_alphabet_1(st)) {
-		/* Constraint check succeeded */
-		return 0;
-	} else {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: constraint failed (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-}
-
-static int asn_PER_MAP_MeasurementTypeName_1_v2c(unsigned int value) {
-	if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0]))
-		return -1;
-	return permitted_alphabet_table_1[value] - 1;
-}
-static int asn_PER_MAP_MeasurementTypeName_1_c2v(unsigned int code) {
-	if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0]))
-		return -1;
-	return permitted_alphabet_code2value_1[code];
-}
-/*
- * This type is implemented using PrintableString,
- * so here we adjust the DEF accordingly.
- */
-static asn_oer_constraints_t asn_OER_type_MeasurementTypeName_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(0..MAX)) */};
-asn_per_constraints_t asn_PER_type_MeasurementTypeName_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED,	 7,  7,  32,  122 }	/* (32..122) */,
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  8,  8,  1,  150 }	/* (SIZE(1..150,...)) */,
-	asn_PER_MAP_MeasurementTypeName_1_v2c,	/* Value to PER code map */
-	asn_PER_MAP_MeasurementTypeName_1_c2v	/* PER code to value map */
-};
-static const ber_tlv_tag_t asn_DEF_MeasurementTypeName_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (19 << 2))
-};
-asn_TYPE_descriptor_t asn_DEF_MeasurementTypeName = {
-	"MeasurementTypeName",
-	"MeasurementTypeName",
-	&asn_OP_PrintableString,
-	asn_DEF_MeasurementTypeName_tags_1,
-	sizeof(asn_DEF_MeasurementTypeName_tags_1)
-		/sizeof(asn_DEF_MeasurementTypeName_tags_1[0]), /* 1 */
-	asn_DEF_MeasurementTypeName_tags_1,	/* Same as above */
-	sizeof(asn_DEF_MeasurementTypeName_tags_1)
-		/sizeof(asn_DEF_MeasurementTypeName_tags_1[0]), /* 1 */
-	{ &asn_OER_type_MeasurementTypeName_constr_1, &asn_PER_type_MeasurementTypeName_constr_1, MeasurementTypeName_constraint },
-	0, 0,	/* No members */
-	0	/* No specifics */
-};
-
diff --git a/e2sm/lib/MeasurementValue.c b/e2sm/lib/MeasurementValue.c
deleted file mode 100644
index ed03a0b..0000000
--- a/e2sm/lib/MeasurementValue.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "MeasurementValue.h"
-
-#include "L3-RRC-Measurements.h"
-static asn_oer_constraints_t asn_OER_type_MeasurementValue_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	-1};
-asn_per_constraints_t asn_PER_type_MeasurementValue_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  3 }	/* (0..3,...) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-asn_TYPE_member_t asn_MBR_MeasurementValue_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct MeasurementValue, choice.valueInt),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_NativeInteger,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"valueInt"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct MeasurementValue, choice.valueReal),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_NativeReal,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"valueReal"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct MeasurementValue, choice.noValue),
-		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_NULL,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"noValue"
-		},
-	{ ATF_POINTER, 0, offsetof(struct MeasurementValue, choice.valueRRC),
-		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_L3_RRC_Measurements,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"valueRRC"
-		},
-};
-static const asn_TYPE_tag2member_t asn_MAP_MeasurementValue_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* valueInt */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* valueReal */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* noValue */
-    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* valueRRC */
-};
-asn_CHOICE_specifics_t asn_SPC_MeasurementValue_specs_1 = {
-	sizeof(struct MeasurementValue),
-	offsetof(struct MeasurementValue, _asn_ctx),
-	offsetof(struct MeasurementValue, present),
-	sizeof(((struct MeasurementValue *)0)->present),
-	asn_MAP_MeasurementValue_tag2el_1,
-	4,	/* Count of tags in the map */
-	0, 0,
-	4	/* Extensions start */
-};
-asn_TYPE_descriptor_t asn_DEF_MeasurementValue = {
-	"MeasurementValue",
-	"MeasurementValue",
-	&asn_OP_CHOICE,
-	0,	/* No effective tags (pointer) */
-	0,	/* No effective tags (count) */
-	0,	/* No tags (pointer) */
-	0,	/* No tags (count) */
-	{ &asn_OER_type_MeasurementValue_constr_1, &asn_PER_type_MeasurementValue_constr_1, CHOICE_constraint },
-	asn_MBR_MeasurementValue_1,
-	4,	/* Elements count */
-	&asn_SPC_MeasurementValue_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/MessageType-Choice-NI.c b/e2sm/lib/MessageType-Choice-NI.c
new file mode 100644
index 0000000..7c6ded8
--- /dev/null
+++ b/e2sm/lib/MessageType-Choice-NI.c
@@ -0,0 +1,74 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "MessageType-Choice-NI.h"
+
+#include "InterfaceIdentifier.h"
+#include "Interface-MessageID.h"
+asn_TYPE_member_t asn_MBR_MessageType_Choice_NI_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct MessageType_Choice_NI, nI_Type),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_InterfaceType,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"nI-Type"
+		},
+	{ ATF_POINTER, 2, offsetof(struct MessageType_Choice_NI, nI_Identifier),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_InterfaceIdentifier,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"nI-Identifier"
+		},
+	{ ATF_POINTER, 1, offsetof(struct MessageType_Choice_NI, nI_Message),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_Interface_MessageID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"nI-Message"
+		},
+};
+static const int asn_MAP_MessageType_Choice_NI_oms_1[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_MessageType_Choice_NI_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_MessageType_Choice_NI_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nI-Type */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nI-Identifier */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* nI-Message */
+};
+asn_SEQUENCE_specifics_t asn_SPC_MessageType_Choice_NI_specs_1 = {
+	sizeof(struct MessageType_Choice_NI),
+	offsetof(struct MessageType_Choice_NI, _asn_ctx),
+	asn_MAP_MessageType_Choice_NI_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_MessageType_Choice_NI_oms_1,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	3,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_MessageType_Choice_NI = {
+	"MessageType-Choice-NI",
+	"MessageType-Choice-NI",
+	&asn_OP_SEQUENCE,
+	asn_DEF_MessageType_Choice_NI_tags_1,
+	sizeof(asn_DEF_MessageType_Choice_NI_tags_1)
+		/sizeof(asn_DEF_MessageType_Choice_NI_tags_1[0]), /* 1 */
+	asn_DEF_MessageType_Choice_NI_tags_1,	/* Same as above */
+	sizeof(asn_DEF_MessageType_Choice_NI_tags_1)
+		/sizeof(asn_DEF_MessageType_Choice_NI_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_MessageType_Choice_NI_1,
+	3,	/* Elements count */
+	&asn_SPC_MessageType_Choice_NI_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/MessageType-Choice-RRC.c b/e2sm/lib/MessageType-Choice-RRC.c
new file mode 100644
index 0000000..8de8dfc
--- /dev/null
+++ b/e2sm/lib/MessageType-Choice-RRC.c
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "MessageType-Choice-RRC.h"
+
+asn_TYPE_member_t asn_MBR_MessageType_Choice_RRC_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct MessageType_Choice_RRC, rRC_Message),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RRC_MessageID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"rRC-Message"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_MessageType_Choice_RRC_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_MessageType_Choice_RRC_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* rRC-Message */
+};
+asn_SEQUENCE_specifics_t asn_SPC_MessageType_Choice_RRC_specs_1 = {
+	sizeof(struct MessageType_Choice_RRC),
+	offsetof(struct MessageType_Choice_RRC, _asn_ctx),
+	asn_MAP_MessageType_Choice_RRC_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_MessageType_Choice_RRC = {
+	"MessageType-Choice-RRC",
+	"MessageType-Choice-RRC",
+	&asn_OP_SEQUENCE,
+	asn_DEF_MessageType_Choice_RRC_tags_1,
+	sizeof(asn_DEF_MessageType_Choice_RRC_tags_1)
+		/sizeof(asn_DEF_MessageType_Choice_RRC_tags_1[0]), /* 1 */
+	asn_DEF_MessageType_Choice_RRC_tags_1,	/* Same as above */
+	sizeof(asn_DEF_MessageType_Choice_RRC_tags_1)
+		/sizeof(asn_DEF_MessageType_Choice_RRC_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_MessageType_Choice_RRC_1,
+	1,	/* Elements count */
+	&asn_SPC_MessageType_Choice_RRC_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/MessageType-Choice.c b/e2sm/lib/MessageType-Choice.c
new file mode 100644
index 0000000..3be3635
--- /dev/null
+++ b/e2sm/lib/MessageType-Choice.c
@@ -0,0 +1,67 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "MessageType-Choice.h"
+
+#include "MessageType-Choice-NI.h"
+#include "MessageType-Choice-RRC.h"
+static asn_oer_constraints_t asn_OER_type_MessageType_Choice_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_MessageType_Choice_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_MessageType_Choice_1[] = {
+	{ ATF_POINTER, 0, offsetof(struct MessageType_Choice, choice.messageType_Choice_NI),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_MessageType_Choice_NI,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"messageType-Choice-NI"
+		},
+	{ ATF_POINTER, 0, offsetof(struct MessageType_Choice, choice.messageType_Choice_RRC),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_MessageType_Choice_RRC,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"messageType-Choice-RRC"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_MessageType_Choice_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* messageType-Choice-NI */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* messageType-Choice-RRC */
+};
+asn_CHOICE_specifics_t asn_SPC_MessageType_Choice_specs_1 = {
+	sizeof(struct MessageType_Choice),
+	offsetof(struct MessageType_Choice, _asn_ctx),
+	offsetof(struct MessageType_Choice, present),
+	sizeof(((struct MessageType_Choice *)0)->present),
+	asn_MAP_MessageType_Choice_tag2el_1,
+	2,	/* Count of tags in the map */
+	0, 0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_MessageType_Choice = {
+	"MessageType-Choice",
+	"MessageType-Choice",
+	&asn_OP_CHOICE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ &asn_OER_type_MessageType_Choice_constr_1, &asn_PER_type_MessageType_Choice_constr_1, CHOICE_constraint },
+	asn_MBR_MessageType_Choice_1,
+	2,	/* Elements count */
+	&asn_SPC_MessageType_Choice_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/NG-RANnodeUEXnAPID.c b/e2sm/lib/NG-RANnodeUEXnAPID.c
new file mode 100644
index 0000000..6a7a9b6
--- /dev/null
+++ b/e2sm/lib/NG-RANnodeUEXnAPID.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "NG-RANnodeUEXnAPID.h"
+
+int
+NG_RANnodeUEXnAPID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	/* Constraint check succeeded */
+	return 0;
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_NG_RANnodeUEXnAPID_constr_1 CC_NOTUSED = {
+	{ 4, 1 }	/* (0..4294967295) */,
+	-1};
+asn_per_constraints_t asn_PER_type_NG_RANnodeUEXnAPID_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 32, -1,  0,  4294967295 }	/* (0..4294967295) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+const asn_INTEGER_specifics_t asn_SPC_NG_RANnodeUEXnAPID_specs_1 = {
+	0,	0,	0,	0,	0,
+	0,	/* Native long size */
+	1	/* Unsigned representation */
+};
+static const ber_tlv_tag_t asn_DEF_NG_RANnodeUEXnAPID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_NG_RANnodeUEXnAPID = {
+	"NG-RANnodeUEXnAPID",
+	"NG-RANnodeUEXnAPID",
+	&asn_OP_NativeInteger,
+	asn_DEF_NG_RANnodeUEXnAPID_tags_1,
+	sizeof(asn_DEF_NG_RANnodeUEXnAPID_tags_1)
+		/sizeof(asn_DEF_NG_RANnodeUEXnAPID_tags_1[0]), /* 1 */
+	asn_DEF_NG_RANnodeUEXnAPID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_NG_RANnodeUEXnAPID_tags_1)
+		/sizeof(asn_DEF_NG_RANnodeUEXnAPID_tags_1[0]), /* 1 */
+	{ &asn_OER_type_NG_RANnodeUEXnAPID_constr_1, &asn_PER_type_NG_RANnodeUEXnAPID_constr_1, NG_RANnodeUEXnAPID_constraint },
+	0, 0,	/* No members */
+	&asn_SPC_NG_RANnodeUEXnAPID_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/NGENB-CU-UE-W1AP-ID.c b/e2sm/lib/NGENB-CU-UE-W1AP-ID.c
new file mode 100644
index 0000000..fa15e70
--- /dev/null
+++ b/e2sm/lib/NGENB-CU-UE-W1AP-ID.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "NGENB-CU-UE-W1AP-ID.h"
+
+int
+NGENB_CU_UE_W1AP_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	
+	/* Constraint check succeeded */
+	return 0;
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_NGENB_CU_UE_W1AP_ID_constr_1 CC_NOTUSED = {
+	{ 4, 1 }	/* (0..4294967295) */,
+	-1};
+asn_per_constraints_t asn_PER_type_NGENB_CU_UE_W1AP_ID_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 32, -1,  0,  4294967295 }	/* (0..4294967295) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+const asn_INTEGER_specifics_t asn_SPC_NGENB_CU_UE_W1AP_ID_specs_1 = {
+	0,	0,	0,	0,	0,
+	0,	/* Native long size */
+	1	/* Unsigned representation */
+};
+static const ber_tlv_tag_t asn_DEF_NGENB_CU_UE_W1AP_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_NGENB_CU_UE_W1AP_ID = {
+	"NGENB-CU-UE-W1AP-ID",
+	"NGENB-CU-UE-W1AP-ID",
+	&asn_OP_NativeInteger,
+	asn_DEF_NGENB_CU_UE_W1AP_ID_tags_1,
+	sizeof(asn_DEF_NGENB_CU_UE_W1AP_ID_tags_1)
+		/sizeof(asn_DEF_NGENB_CU_UE_W1AP_ID_tags_1[0]), /* 1 */
+	asn_DEF_NGENB_CU_UE_W1AP_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_NGENB_CU_UE_W1AP_ID_tags_1)
+		/sizeof(asn_DEF_NGENB_CU_UE_W1AP_ID_tags_1[0]), /* 1 */
+	{ &asn_OER_type_NGENB_CU_UE_W1AP_ID_constr_1, &asn_PER_type_NGENB_CU_UE_W1AP_ID_constr_1, NGENB_CU_UE_W1AP_ID_constraint },
+	0, 0,	/* No members */
+	&asn_SPC_NGENB_CU_UE_W1AP_ID_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/NGENB-DU-ID.c b/e2sm/lib/NGENB-DU-ID.c
new file mode 100644
index 0000000..2effacf
--- /dev/null
+++ b/e2sm/lib/NGENB-DU-ID.c
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "NGENB-DU-ID.h"
+
+int
+NGENB_DU_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const INTEGER_t *st = (const INTEGER_t *)sptr;
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(asn_INTEGER2long(st, &value)) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value too large (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if((value >= 0 && value <= 68719476735)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using INTEGER,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_NGENB_DU_ID_constr_1 CC_NOTUSED = {
+	{ 8, 1 }	/* (0..68719476735) */,
+	-1};
+asn_per_constraints_t asn_PER_type_NGENB_DU_ID_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 36, -1,  0,  68719476735 }	/* (0..68719476735) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_NGENB_DU_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_NGENB_DU_ID = {
+	"NGENB-DU-ID",
+	"NGENB-DU-ID",
+	&asn_OP_INTEGER,
+	asn_DEF_NGENB_DU_ID_tags_1,
+	sizeof(asn_DEF_NGENB_DU_ID_tags_1)
+		/sizeof(asn_DEF_NGENB_DU_ID_tags_1[0]), /* 1 */
+	asn_DEF_NGENB_DU_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_NGENB_DU_ID_tags_1)
+		/sizeof(asn_DEF_NGENB_DU_ID_tags_1[0]), /* 1 */
+	{ &asn_OER_type_NGENB_DU_ID_constr_1, &asn_PER_type_NGENB_DU_ID_constr_1, NGENB_DU_ID_constraint },
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/e2sm/lib/NI-Type.c b/e2sm/lib/NI-Type.c
deleted file mode 100644
index 06ba425..0000000
--- a/e2sm/lib/NI-Type.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "NI-Type.h"
-
-/*
- * This type is implemented using NativeEnumerated,
- * so here we adjust the DEF accordingly.
- */
-static asn_oer_constraints_t asn_OER_type_NI_Type_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	-1};
-asn_per_constraints_t asn_PER_type_NI_Type_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }	/* (0..2,...) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static const asn_INTEGER_enum_map_t asn_MAP_NI_Type_value2enum_1[] = {
-	{ 0,	4,	"x2-u" },
-	{ 1,	4,	"xn-u" },
-	{ 2,	4,	"f1-u" }
-	/* This list is extensible */
-};
-static const unsigned int asn_MAP_NI_Type_enum2value_1[] = {
-	2,	/* f1-u(2) */
-	0,	/* x2-u(0) */
-	1	/* xn-u(1) */
-	/* This list is extensible */
-};
-const asn_INTEGER_specifics_t asn_SPC_NI_Type_specs_1 = {
-	asn_MAP_NI_Type_value2enum_1,	/* "tag" => N; sorted by tag */
-	asn_MAP_NI_Type_enum2value_1,	/* N => "tag"; sorted by N */
-	3,	/* Number of elements in the maps */
-	4,	/* Extensions before this member */
-	1,	/* Strict enumeration */
-	0,	/* Native long size */
-	0
-};
-static const ber_tlv_tag_t asn_DEF_NI_Type_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
-};
-asn_TYPE_descriptor_t asn_DEF_NI_Type = {
-	"NI-Type",
-	"NI-Type",
-	&asn_OP_NativeEnumerated,
-	asn_DEF_NI_Type_tags_1,
-	sizeof(asn_DEF_NI_Type_tags_1)
-		/sizeof(asn_DEF_NI_Type_tags_1[0]), /* 1 */
-	asn_DEF_NI_Type_tags_1,	/* Same as above */
-	sizeof(asn_DEF_NI_Type_tags_1)
-		/sizeof(asn_DEF_NI_Type_tags_1[0]), /* 1 */
-	{ &asn_OER_type_NI_Type_constr_1, &asn_PER_type_NI_Type_constr_1, NativeEnumerated_constraint },
-	0, 0,	/* Defined elsewhere */
-	&asn_SPC_NI_Type_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/NR-ARFCN.c b/e2sm/lib/NR-ARFCN.c
new file mode 100644
index 0000000..eaaffa4
--- /dev/null
+++ b/e2sm/lib/NR-ARFCN.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "NR-ARFCN.h"
+
+static int
+memb_nRARFCN_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0 && value <= 3279165)) {
+		/* Constraint check succeeded */
+		return 0;
+	} 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_memb_nRARFCN_constr_2 CC_NOTUSED = {
+	{ 4, 1 }	/* (0..3279165) */,
+	-1};
+static asn_per_constraints_t asn_PER_memb_nRARFCN_constr_2 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 22, -1,  0,  3279165 }	/* (0..3279165) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_NR_ARFCN_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct NR_ARFCN, nRARFCN),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		0,
+		{ &asn_OER_memb_nRARFCN_constr_2, &asn_PER_memb_nRARFCN_constr_2,  memb_nRARFCN_constraint_1 },
+		0, 0, /* No default value */
+		"nRARFCN"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_NR_ARFCN_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_NR_ARFCN_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* nRARFCN */
+};
+asn_SEQUENCE_specifics_t asn_SPC_NR_ARFCN_specs_1 = {
+	sizeof(struct NR_ARFCN),
+	offsetof(struct NR_ARFCN, _asn_ctx),
+	asn_MAP_NR_ARFCN_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_NR_ARFCN = {
+	"NR-ARFCN",
+	"NR-ARFCN",
+	&asn_OP_SEQUENCE,
+	asn_DEF_NR_ARFCN_tags_1,
+	sizeof(asn_DEF_NR_ARFCN_tags_1)
+		/sizeof(asn_DEF_NR_ARFCN_tags_1[0]), /* 1 */
+	asn_DEF_NR_ARFCN_tags_1,	/* Same as above */
+	sizeof(asn_DEF_NR_ARFCN_tags_1)
+		/sizeof(asn_DEF_NR_ARFCN_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_NR_ARFCN_1,
+	1,	/* Elements count */
+	&asn_SPC_NR_ARFCN_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/NR-CGI.c b/e2sm/lib/NR-CGI.c
new file mode 100644
index 0000000..e2a5d69
--- /dev/null
+++ b/e2sm/lib/NR-CGI.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "NR-CGI.h"
+
+asn_TYPE_member_t asn_MBR_NR_CGI_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct NR_CGI, pLMNIdentity),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_PLMNIdentity,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"pLMNIdentity"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct NR_CGI, nRCellIdentity),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NRCellIdentity,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"nRCellIdentity"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_NR_CGI_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_NR_CGI_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNIdentity */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nRCellIdentity */
+};
+asn_SEQUENCE_specifics_t asn_SPC_NR_CGI_specs_1 = {
+	sizeof(struct NR_CGI),
+	offsetof(struct NR_CGI, _asn_ctx),
+	asn_MAP_NR_CGI_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_NR_CGI = {
+	"NR-CGI",
+	"NR-CGI",
+	&asn_OP_SEQUENCE,
+	asn_DEF_NR_CGI_tags_1,
+	sizeof(asn_DEF_NR_CGI_tags_1)
+		/sizeof(asn_DEF_NR_CGI_tags_1[0]), /* 1 */
+	asn_DEF_NR_CGI_tags_1,	/* Same as above */
+	sizeof(asn_DEF_NR_CGI_tags_1)
+		/sizeof(asn_DEF_NR_CGI_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_NR_CGI_1,
+	2,	/* Elements count */
+	&asn_SPC_NR_CGI_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/NR-PCI.c b/e2sm/lib/NR-PCI.c
new file mode 100644
index 0000000..ddd0e7c
--- /dev/null
+++ b/e2sm/lib/NR-PCI.c
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "NR-PCI.h"
+
+int
+NR_PCI_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0 && value <= 1007)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_NR_PCI_constr_1 CC_NOTUSED = {
+	{ 2, 1 }	/* (0..1007) */,
+	-1};
+asn_per_constraints_t asn_PER_type_NR_PCI_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 10,  10,  0,  1007 }	/* (0..1007) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_NR_PCI_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_NR_PCI = {
+	"NR-PCI",
+	"NR-PCI",
+	&asn_OP_NativeInteger,
+	asn_DEF_NR_PCI_tags_1,
+	sizeof(asn_DEF_NR_PCI_tags_1)
+		/sizeof(asn_DEF_NR_PCI_tags_1[0]), /* 1 */
+	asn_DEF_NR_PCI_tags_1,	/* Same as above */
+	sizeof(asn_DEF_NR_PCI_tags_1)
+		/sizeof(asn_DEF_NR_PCI_tags_1[0]), /* 1 */
+	{ &asn_OER_type_NR_PCI_constr_1, &asn_PER_type_NR_PCI_constr_1, NR_PCI_constraint },
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/e2sm/lib/NRCGI.c b/e2sm/lib/NRCGI.c
deleted file mode 100644
index 2eaae12..0000000
--- a/e2sm/lib/NRCGI.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "NRCGI.h"
-
-asn_TYPE_member_t asn_MBR_NRCGI_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct NRCGI, pLMN_Identity),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_PLMN_Identity,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"pLMN-Identity"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct NRCGI, nRCellIdentity),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_NRCellIdentity,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"nRCellIdentity"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_NRCGI_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_NRCGI_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nRCellIdentity */
-};
-asn_SEQUENCE_specifics_t asn_SPC_NRCGI_specs_1 = {
-	sizeof(struct NRCGI),
-	offsetof(struct NRCGI, _asn_ctx),
-	asn_MAP_NRCGI_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_NRCGI = {
-	"NRCGI",
-	"NRCGI",
-	&asn_OP_SEQUENCE,
-	asn_DEF_NRCGI_tags_1,
-	sizeof(asn_DEF_NRCGI_tags_1)
-		/sizeof(asn_DEF_NRCGI_tags_1[0]), /* 1 */
-	asn_DEF_NRCGI_tags_1,	/* Same as above */
-	sizeof(asn_DEF_NRCGI_tags_1)
-		/sizeof(asn_DEF_NRCGI_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_NRCGI_1,
-	2,	/* Elements count */
-	&asn_SPC_NRCGI_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/NRCellIdentity.c b/e2sm/lib/NRCellIdentity.c
index 511d128..1b99861 100644
--- a/e2sm/lib/NRCellIdentity.c
+++ b/e2sm/lib/NRCellIdentity.c
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
diff --git a/e2sm/lib/NRFrequencyBand-List.c b/e2sm/lib/NRFrequencyBand-List.c
new file mode 100644
index 0000000..3b385c0
--- /dev/null
+++ b/e2sm/lib/NRFrequencyBand-List.c
@@ -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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "NRFrequencyBand-List.h"
+
+#include "NRFrequencyBandItem.h"
+static asn_oer_constraints_t asn_OER_type_NRFrequencyBand_List_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..32)) */};
+asn_per_constraints_t asn_PER_type_NRFrequencyBand_List_constr_1 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 5,  5,  1,  32 }	/* (SIZE(1..32)) */,
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_NRFrequencyBand_List_1[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_NRFrequencyBandItem,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_NRFrequencyBand_List_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_NRFrequencyBand_List_specs_1 = {
+	sizeof(struct NRFrequencyBand_List),
+	offsetof(struct NRFrequencyBand_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_NRFrequencyBand_List = {
+	"NRFrequencyBand-List",
+	"NRFrequencyBand-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_NRFrequencyBand_List_tags_1,
+	sizeof(asn_DEF_NRFrequencyBand_List_tags_1)
+		/sizeof(asn_DEF_NRFrequencyBand_List_tags_1[0]), /* 1 */
+	asn_DEF_NRFrequencyBand_List_tags_1,	/* Same as above */
+	sizeof(asn_DEF_NRFrequencyBand_List_tags_1)
+		/sizeof(asn_DEF_NRFrequencyBand_List_tags_1[0]), /* 1 */
+	{ &asn_OER_type_NRFrequencyBand_List_constr_1, &asn_PER_type_NRFrequencyBand_List_constr_1, SEQUENCE_OF_constraint },
+	asn_MBR_NRFrequencyBand_List_1,
+	1,	/* Single element */
+	&asn_SPC_NRFrequencyBand_List_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/NRFrequencyBandItem.c b/e2sm/lib/NRFrequencyBandItem.c
new file mode 100644
index 0000000..1179aa1
--- /dev/null
+++ b/e2sm/lib/NRFrequencyBandItem.c
@@ -0,0 +1,93 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "NRFrequencyBandItem.h"
+
+static int
+memb_freqBandIndicatorNr_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1 && value <= 1024)) {
+		/* Constraint check succeeded */
+		return 0;
+	} 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_memb_freqBandIndicatorNr_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_memb_freqBandIndicatorNr_constr_2 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  10,  10,  1,  1024 }	/* (1..1024,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_NRFrequencyBandItem_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct NRFrequencyBandItem, freqBandIndicatorNr),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		0,
+		{ &asn_OER_memb_freqBandIndicatorNr_constr_2, &asn_PER_memb_freqBandIndicatorNr_constr_2,  memb_freqBandIndicatorNr_constraint_1 },
+		0, 0, /* No default value */
+		"freqBandIndicatorNr"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct NRFrequencyBandItem, supportedSULBandList),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_SupportedSULBandList,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"supportedSULBandList"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_NRFrequencyBandItem_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_NRFrequencyBandItem_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* freqBandIndicatorNr */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* supportedSULBandList */
+};
+asn_SEQUENCE_specifics_t asn_SPC_NRFrequencyBandItem_specs_1 = {
+	sizeof(struct NRFrequencyBandItem),
+	offsetof(struct NRFrequencyBandItem, _asn_ctx),
+	asn_MAP_NRFrequencyBandItem_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_NRFrequencyBandItem = {
+	"NRFrequencyBandItem",
+	"NRFrequencyBandItem",
+	&asn_OP_SEQUENCE,
+	asn_DEF_NRFrequencyBandItem_tags_1,
+	sizeof(asn_DEF_NRFrequencyBandItem_tags_1)
+		/sizeof(asn_DEF_NRFrequencyBandItem_tags_1[0]), /* 1 */
+	asn_DEF_NRFrequencyBandItem_tags_1,	/* Same as above */
+	sizeof(asn_DEF_NRFrequencyBandItem_tags_1)
+		/sizeof(asn_DEF_NRFrequencyBandItem_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_NRFrequencyBandItem_1,
+	2,	/* Elements count */
+	&asn_SPC_NRFrequencyBandItem_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/NRFrequencyInfo.c b/e2sm/lib/NRFrequencyInfo.c
new file mode 100644
index 0000000..d74281a
--- /dev/null
+++ b/e2sm/lib/NRFrequencyInfo.c
@@ -0,0 +1,72 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "NRFrequencyInfo.h"
+
+static 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 */
+		&asn_DEF_NR_ARFCN,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"nrARFCN"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct NRFrequencyInfo, frequencyBand_List),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NRFrequencyBand_List,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"frequencyBand-List"
+		},
+	{ ATF_POINTER, 1, offsetof(struct NRFrequencyInfo, frequencyShift7p5khz),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NRFrequencyShift7p5khz,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"frequencyShift7p5khz"
+		},
+};
+static const int asn_MAP_NRFrequencyInfo_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_NRFrequencyInfo_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_NRFrequencyInfo_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nrARFCN */
+    { (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 = {
+	sizeof(struct NRFrequencyInfo),
+	offsetof(struct NRFrequencyInfo, _asn_ctx),
+	asn_MAP_NRFrequencyInfo_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_NRFrequencyInfo_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	3,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_NRFrequencyInfo = {
+	"NRFrequencyInfo",
+	"NRFrequencyInfo",
+	&asn_OP_SEQUENCE,
+	asn_DEF_NRFrequencyInfo_tags_1,
+	sizeof(asn_DEF_NRFrequencyInfo_tags_1)
+		/sizeof(asn_DEF_NRFrequencyInfo_tags_1[0]), /* 1 */
+	asn_DEF_NRFrequencyInfo_tags_1,	/* Same as above */
+	sizeof(asn_DEF_NRFrequencyInfo_tags_1)
+		/sizeof(asn_DEF_NRFrequencyInfo_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_NRFrequencyInfo_1,
+	3,	/* Elements count */
+	&asn_SPC_NRFrequencyInfo_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/NRFrequencyShift7p5khz.c b/e2sm/lib/NRFrequencyShift7p5khz.c
new file mode 100644
index 0000000..2d66419
--- /dev/null
+++ b/e2sm/lib/NRFrequencyShift7p5khz.c
@@ -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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "NRFrequencyShift7p5khz.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_NRFrequencyShift7p5khz_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_NRFrequencyShift7p5khz_constr_1 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_NRFrequencyShift7p5khz_value2enum_1[] = {
+	{ 0,	5,	"false" },
+	{ 1,	4,	"true" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_NRFrequencyShift7p5khz_enum2value_1[] = {
+	0,	/* false(0) */
+	1	/* true(1) */
+	/* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_NRFrequencyShift7p5khz_specs_1 = {
+	asn_MAP_NRFrequencyShift7p5khz_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_NRFrequencyShift7p5khz_enum2value_1,	/* 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_NRFrequencyShift7p5khz_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_NRFrequencyShift7p5khz = {
+	"NRFrequencyShift7p5khz",
+	"NRFrequencyShift7p5khz",
+	&asn_OP_NativeEnumerated,
+	asn_DEF_NRFrequencyShift7p5khz_tags_1,
+	sizeof(asn_DEF_NRFrequencyShift7p5khz_tags_1)
+		/sizeof(asn_DEF_NRFrequencyShift7p5khz_tags_1[0]), /* 1 */
+	asn_DEF_NRFrequencyShift7p5khz_tags_1,	/* Same as above */
+	sizeof(asn_DEF_NRFrequencyShift7p5khz_tags_1)
+		/sizeof(asn_DEF_NRFrequencyShift7p5khz_tags_1[0]), /* 1 */
+	{ &asn_OER_type_NRFrequencyShift7p5khz_constr_1, &asn_PER_type_NRFrequencyShift7p5khz_constr_1, NativeEnumerated_constraint },
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_NRFrequencyShift7p5khz_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/NULL.c b/e2sm/lib/NULL.c
deleted file mode 100644
index 4a2914f..0000000
--- a/e2sm/lib/NULL.c
+++ /dev/null
@@ -1,299 +0,0 @@
-/*-
- * Copyright (c) 2003, 2005 Lev Walkin <vlm@lionet.info>. All rights reserved.
- * Redistribution and modifications are permitted subject to BSD license.
- */
-#include <asn_internal.h>
-#include <asn_codecs_prim.h>
-#include <NULL.h>
-#include <BOOLEAN.h>	/* Implemented in terms of BOOLEAN type */
-
-/*
- * NULL basic type description.
- */
-static const ber_tlv_tag_t asn_DEF_NULL_tags[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (5 << 2))
-};
-asn_TYPE_operation_t asn_OP_NULL = {
-	BOOLEAN_free,
-	NULL_print,
-	NULL_compare,
-	BOOLEAN_decode_ber,	/* Implemented in terms of BOOLEAN */
-	NULL_encode_der,	/* Special handling of DER encoding */
-	NULL_decode_xer,
-	NULL_encode_xer,
-#ifdef	ASN_DISABLE_OER_SUPPORT
-	0,
-	0,
-#else
-	NULL_decode_oer,
-	NULL_encode_oer,
-#endif  /* ASN_DISABLE_OER_SUPPORT */
-#ifdef	ASN_DISABLE_PER_SUPPORT
-	0,
-	0,
-	0,
-	0,
-#else
-	NULL_decode_uper,	/* Unaligned PER decoder */
-	NULL_encode_uper,	/* Unaligned PER encoder */
-	NULL_decode_aper,	/* Aligned PER decoder */
-	NULL_encode_aper,	/* Aligned PER encoder */
-#endif	/* ASN_DISABLE_PER_SUPPORT */
-	NULL_random_fill,
-	0	/* Use generic outmost tag fetcher */
-};
-asn_TYPE_descriptor_t asn_DEF_NULL = {
-	"NULL",
-	"NULL",
-	&asn_OP_NULL,
-	asn_DEF_NULL_tags,
-	sizeof(asn_DEF_NULL_tags) / sizeof(asn_DEF_NULL_tags[0]),
-	asn_DEF_NULL_tags,	/* Same as above */
-	sizeof(asn_DEF_NULL_tags) / sizeof(asn_DEF_NULL_tags[0]),
-	{ 0, 0, asn_generic_no_constraint },
-	0, 0,	/* No members */
-	0	/* No specifics */
-};
-
-asn_enc_rval_t
-NULL_encode_der(const asn_TYPE_descriptor_t *td, const void *ptr, int tag_mode,
-                ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, void *app_key) {
-	asn_enc_rval_t erval = {0,0,0};
-
-	erval.encoded = der_write_tags(td, 0, tag_mode, 0, tag, cb, app_key);
-	if(erval.encoded == -1) {
-		erval.failed_type = td;
-		erval.structure_ptr = ptr;
-	}
-
-	ASN__ENCODED_OK(erval);
-}
-
-asn_enc_rval_t
-NULL_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
-                enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb,
-                void *app_key) {
-	asn_enc_rval_t er = {0,0,0};
-
-	(void)td;
-	(void)sptr;
-	(void)ilevel;
-	(void)flags;
-	(void)cb;
-	(void)app_key;
-
-	/* XMLNullValue is empty */
-	er.encoded = 0;
-	ASN__ENCODED_OK(er);
-}
-
-
-static enum xer_pbd_rval
-NULL__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr,
-                      const void *chunk_buf, size_t chunk_size) {
-    (void)td;
-	(void)sptr;
-	(void)chunk_buf;    /* Going to be empty according to the rules below. */
-
-	/*
-	 * There must be no content in self-terminating <NULL/> tag.
-	 */
-	if(chunk_size)
-		return XPBD_BROKEN_ENCODING;
-	else
-		return XPBD_BODY_CONSUMED;
-}
-
-asn_dec_rval_t
-NULL_decode_xer(const asn_codec_ctx_t *opt_codec_ctx,
-                const asn_TYPE_descriptor_t *td, void **sptr,
-                const char *opt_mname, const void *buf_ptr, size_t size) {
-    return xer_decode_primitive(opt_codec_ctx, td,
-		sptr, sizeof(NULL_t), opt_mname, buf_ptr, size,
-		NULL__xer_body_decode);
-}
-
-int
-NULL_compare(const asn_TYPE_descriptor_t *td, const void *a, const void *b) {
-    (void)td;
-    (void)a;
-    (void)b;
-    return 0;
-}
-
-int
-NULL_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
-           asn_app_consume_bytes_f *cb, void *app_key) {
-    (void)td;	/* Unused argument */
-	(void)ilevel;	/* Unused argument */
-
-	if(sptr) {
-		return (cb("<present>", 9, app_key) < 0) ? -1 : 0;
-	} else {
-		return (cb("<absent>", 8, app_key) < 0) ? -1 : 0;
-	}
-}
-
-#ifndef ASN_DISABLE_OER_SUPPORT
-
-asn_dec_rval_t
-NULL_decode_oer(const asn_codec_ctx_t *opt_codec_ctx,
-                const asn_TYPE_descriptor_t *td,
-                const asn_oer_constraints_t *constraints, void **sptr,
-                const void *ptr, size_t size) {
-    asn_dec_rval_t rv = {RC_OK, 0};
-    (void)opt_codec_ctx;
-    (void)td;
-    (void)constraints;
-    (void)ptr;
-    (void)size;
-
-    if(!*sptr) {
-        *sptr = MALLOC(sizeof(NULL_t));
-        if(*sptr) {
-            *(NULL_t *)*sptr = 0;
-        } else {
-            ASN__DECODE_FAILED;
-        }
-    }
-
-    return rv;
-}
-
-asn_enc_rval_t
-NULL_encode_oer(const asn_TYPE_descriptor_t *td,
-                const asn_oer_constraints_t *constraints, const void *sptr,
-                asn_app_consume_bytes_f *cb, void *app_key) {
-    asn_enc_rval_t er = {0,0,0};
-
-    (void)td;
-    (void)sptr;
-    (void)constraints;
-    (void)cb;
-    (void)app_key;
-
-    er.encoded = 0; /* Encoding in 0 bytes. */
-
-    ASN__ENCODED_OK(er);
-}
-
-#endif /* ASN_DISABLE_OER_SUPPORT */
-
-#ifndef ASN_DISABLE_PER_SUPPORT
-
-asn_dec_rval_t
-NULL_decode_uper(const asn_codec_ctx_t *opt_codec_ctx,
-                 const asn_TYPE_descriptor_t *td,
-                 const asn_per_constraints_t *constraints, void **sptr,
-                 asn_per_data_t *pd) {
-    asn_dec_rval_t rv;
-
-	(void)opt_codec_ctx;
-	(void)td;
-	(void)constraints;
-	(void)pd;
-
-	if(!*sptr) {
-		*sptr = MALLOC(sizeof(NULL_t));
-		if(*sptr) {
-			*(NULL_t *)*sptr = 0;
-		} else {
-			ASN__DECODE_FAILED;
-		}
-	}
-
-	/*
-	 * NULL type does not have content octets.
-	 */
-
-	rv.code = RC_OK;
-	rv.consumed = 0;
-	return rv;
-}
-
-asn_enc_rval_t
-NULL_encode_uper(const asn_TYPE_descriptor_t *td,
-                 const asn_per_constraints_t *constraints, const void *sptr,
-                 asn_per_outp_t *po) {
-	asn_enc_rval_t er = {0,0,0};
-
-	(void)td;
-	(void)constraints;
-	(void)sptr;
-	(void)po;
-
-	er.encoded = 0;
-	ASN__ENCODED_OK(er);
-}
-
-asn_dec_rval_t
-NULL_decode_aper(const asn_codec_ctx_t *opt_codec_ctx,
-                 const asn_TYPE_descriptor_t *td,
-                 const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) {
-	asn_dec_rval_t rv = {RC_OK, 0};
-
-	(void)opt_codec_ctx;
-	(void)td;
-	(void)constraints;
-	(void)pd;
-
-	if(!*sptr) {
-		*sptr = MALLOC(sizeof(NULL_t));
-		if(*sptr) {
-			*(NULL_t *)*sptr = 0;
-		} else {
-			ASN__DECODE_FAILED;
-		}
-	}
-
-	/*
-	 * NULL type does not have content octets.
-	 */
-
-	rv.code = RC_OK;
-	rv.consumed = 0;
-	return rv;
-}
-
-
-asn_enc_rval_t
-NULL_encode_aper(const asn_TYPE_descriptor_t *td,
-                 const asn_per_constraints_t *constraints,
-                 const void *sptr, asn_per_outp_t *po) {
-	asn_enc_rval_t er = {0,0,0};
-
-	(void)td;
-	(void)constraints;
-	(void)sptr;
-	(void)po;
-
-	er.encoded = 0;
-	ASN__ENCODED_OK(er);
-}
-
-#endif  /* ASN_DISABLE_PER_SUPPORT */
-
-asn_random_fill_result_t
-NULL_random_fill(const asn_TYPE_descriptor_t *td, void **sptr,
-                    const asn_encoding_constraints_t *constr,
-                    size_t max_length) {
-    asn_random_fill_result_t result_ok = {ARFILL_OK, 1};
-    asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0};
-    asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0};
-    NULL_t *st = *sptr;
-
-    (void)td;
-    (void)constr;
-
-    if(max_length == 0) return result_skipped;
-
-    if(st == NULL) {
-        st = (NULL_t *)(*sptr = CALLOC(1, sizeof(*st)));
-        if(st == NULL) {
-            return result_failed;
-        }
-    }
-
-    return result_ok;
-}
-
diff --git a/e2sm/lib/NeighborCell-Item-Choice-E-UTRA.c b/e2sm/lib/NeighborCell-Item-Choice-E-UTRA.c
new file mode 100644
index 0000000..f0f2f1e
--- /dev/null
+++ b/e2sm/lib/NeighborCell-Item-Choice-E-UTRA.c
@@ -0,0 +1,245 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "NeighborCell-Item-Choice-E-UTRA.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static int
+memb_version_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1 && value <= 65535)) {
+		/* Constraint check succeeded */
+		return 0;
+	} 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_x2_Xn_established_constr_6 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_type_x2_Xn_established_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_type_hO_validated_constr_10 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_type_hO_validated_constr_10 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_version_constr_14 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_memb_version_constr_14 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  16,  16,  1,  65535 }	/* (1..65535,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_x2_Xn_established_value2enum_6[] = {
+	{ 0,	4,	"true" },
+	{ 1,	5,	"false" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_x2_Xn_established_enum2value_6[] = {
+	1,	/* false(1) */
+	0	/* true(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_x2_Xn_established_specs_6 = {
+	asn_MAP_x2_Xn_established_value2enum_6,	/* "tag" => N; sorted by tag */
+	asn_MAP_x2_Xn_established_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_x2_Xn_established_tags_6[] = {
+	(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_x2_Xn_established_6 = {
+	"x2-Xn-established",
+	"x2-Xn-established",
+	&asn_OP_NativeEnumerated,
+	asn_DEF_x2_Xn_established_tags_6,
+	sizeof(asn_DEF_x2_Xn_established_tags_6)
+		/sizeof(asn_DEF_x2_Xn_established_tags_6[0]) - 1, /* 1 */
+	asn_DEF_x2_Xn_established_tags_6,	/* Same as above */
+	sizeof(asn_DEF_x2_Xn_established_tags_6)
+		/sizeof(asn_DEF_x2_Xn_established_tags_6[0]), /* 2 */
+	{ &asn_OER_type_x2_Xn_established_constr_6, &asn_PER_type_x2_Xn_established_constr_6, NativeEnumerated_constraint },
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_x2_Xn_established_specs_6	/* Additional specs */
+};
+
+static const asn_INTEGER_enum_map_t asn_MAP_hO_validated_value2enum_10[] = {
+	{ 0,	4,	"true" },
+	{ 1,	5,	"false" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_hO_validated_enum2value_10[] = {
+	1,	/* false(1) */
+	0	/* true(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_hO_validated_specs_10 = {
+	asn_MAP_hO_validated_value2enum_10,	/* "tag" => N; sorted by tag */
+	asn_MAP_hO_validated_enum2value_10,	/* 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_hO_validated_tags_10[] = {
+	(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_hO_validated_10 = {
+	"hO-validated",
+	"hO-validated",
+	&asn_OP_NativeEnumerated,
+	asn_DEF_hO_validated_tags_10,
+	sizeof(asn_DEF_hO_validated_tags_10)
+		/sizeof(asn_DEF_hO_validated_tags_10[0]) - 1, /* 1 */
+	asn_DEF_hO_validated_tags_10,	/* Same as above */
+	sizeof(asn_DEF_hO_validated_tags_10)
+		/sizeof(asn_DEF_hO_validated_tags_10[0]), /* 2 */
+	{ &asn_OER_type_hO_validated_constr_10, &asn_PER_type_hO_validated_constr_10, NativeEnumerated_constraint },
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_hO_validated_specs_10	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_NeighborCell_Item_Choice_E_UTRA_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct NeighborCell_Item_Choice_E_UTRA, eUTRA_CGI),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_EUTRA_CGI,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"eUTRA-CGI"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct NeighborCell_Item_Choice_E_UTRA, eUTRA_PCI),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E_UTRA_PCI,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"eUTRA-PCI"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct NeighborCell_Item_Choice_E_UTRA, eUTRA_ARFCN),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E_UTRA_ARFCN,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"eUTRA-ARFCN"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct NeighborCell_Item_Choice_E_UTRA, eUTRA_TAC),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E_UTRA_TAC,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"eUTRA-TAC"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct NeighborCell_Item_Choice_E_UTRA, x2_Xn_established),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_x2_Xn_established_6,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"x2-Xn-established"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct NeighborCell_Item_Choice_E_UTRA, hO_validated),
+		(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_hO_validated_10,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"hO-validated"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct NeighborCell_Item_Choice_E_UTRA, version),
+		(ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		0,
+		{ &asn_OER_memb_version_constr_14, &asn_PER_memb_version_constr_14,  memb_version_constraint_1 },
+		0, 0, /* No default value */
+		"version"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_NeighborCell_Item_Choice_E_UTRA_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_NeighborCell_Item_Choice_E_UTRA_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eUTRA-CGI */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eUTRA-PCI */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* eUTRA-ARFCN */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* eUTRA-TAC */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* x2-Xn-established */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* hO-validated */
+    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* version */
+};
+asn_SEQUENCE_specifics_t asn_SPC_NeighborCell_Item_Choice_E_UTRA_specs_1 = {
+	sizeof(struct NeighborCell_Item_Choice_E_UTRA),
+	offsetof(struct NeighborCell_Item_Choice_E_UTRA, _asn_ctx),
+	asn_MAP_NeighborCell_Item_Choice_E_UTRA_tag2el_1,
+	7,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	7,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_NeighborCell_Item_Choice_E_UTRA = {
+	"NeighborCell-Item-Choice-E-UTRA",
+	"NeighborCell-Item-Choice-E-UTRA",
+	&asn_OP_SEQUENCE,
+	asn_DEF_NeighborCell_Item_Choice_E_UTRA_tags_1,
+	sizeof(asn_DEF_NeighborCell_Item_Choice_E_UTRA_tags_1)
+		/sizeof(asn_DEF_NeighborCell_Item_Choice_E_UTRA_tags_1[0]), /* 1 */
+	asn_DEF_NeighborCell_Item_Choice_E_UTRA_tags_1,	/* Same as above */
+	sizeof(asn_DEF_NeighborCell_Item_Choice_E_UTRA_tags_1)
+		/sizeof(asn_DEF_NeighborCell_Item_Choice_E_UTRA_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_NeighborCell_Item_Choice_E_UTRA_1,
+	7,	/* Elements count */
+	&asn_SPC_NeighborCell_Item_Choice_E_UTRA_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/NeighborCell-Item-Choice-NR.c b/e2sm/lib/NeighborCell-Item-Choice-NR.c
new file mode 100644
index 0000000..3ed4da7
--- /dev/null
+++ b/e2sm/lib/NeighborCell-Item-Choice-NR.c
@@ -0,0 +1,306 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "NeighborCell-Item-Choice-NR.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static int
+memb_version_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1 && value <= 65535)) {
+		/* Constraint check succeeded */
+		return 0;
+	} 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_nR_mode_info_constr_5 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_type_nR_mode_info_constr_5 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_type_x2_Xn_established_constr_10 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_type_x2_Xn_established_constr_10 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_type_hO_validated_constr_14 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_type_hO_validated_constr_14 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_version_constr_18 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_memb_version_constr_18 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  16,  16,  1,  65535 }	/* (1..65535,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_nR_mode_info_value2enum_5[] = {
+	{ 0,	3,	"fdd" },
+	{ 1,	3,	"tdd" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_nR_mode_info_enum2value_5[] = {
+	0,	/* fdd(0) */
+	1	/* tdd(1) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_nR_mode_info_specs_5 = {
+	asn_MAP_nR_mode_info_value2enum_5,	/* "tag" => N; sorted by tag */
+	asn_MAP_nR_mode_info_enum2value_5,	/* 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_nR_mode_info_tags_5[] = {
+	(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_nR_mode_info_5 = {
+	"nR-mode-info",
+	"nR-mode-info",
+	&asn_OP_NativeEnumerated,
+	asn_DEF_nR_mode_info_tags_5,
+	sizeof(asn_DEF_nR_mode_info_tags_5)
+		/sizeof(asn_DEF_nR_mode_info_tags_5[0]) - 1, /* 1 */
+	asn_DEF_nR_mode_info_tags_5,	/* Same as above */
+	sizeof(asn_DEF_nR_mode_info_tags_5)
+		/sizeof(asn_DEF_nR_mode_info_tags_5[0]), /* 2 */
+	{ &asn_OER_type_nR_mode_info_constr_5, &asn_PER_type_nR_mode_info_constr_5, NativeEnumerated_constraint },
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_nR_mode_info_specs_5	/* Additional specs */
+};
+
+static const asn_INTEGER_enum_map_t asn_MAP_x2_Xn_established_value2enum_10[] = {
+	{ 0,	4,	"true" },
+	{ 1,	5,	"false" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_x2_Xn_established_enum2value_10[] = {
+	1,	/* false(1) */
+	0	/* true(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_x2_Xn_established_specs_10 = {
+	asn_MAP_x2_Xn_established_value2enum_10,	/* "tag" => N; sorted by tag */
+	asn_MAP_x2_Xn_established_enum2value_10,	/* 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_x2_Xn_established_tags_10[] = {
+	(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_x2_Xn_established_10 = {
+	"x2-Xn-established",
+	"x2-Xn-established",
+	&asn_OP_NativeEnumerated,
+	asn_DEF_x2_Xn_established_tags_10,
+	sizeof(asn_DEF_x2_Xn_established_tags_10)
+		/sizeof(asn_DEF_x2_Xn_established_tags_10[0]) - 1, /* 1 */
+	asn_DEF_x2_Xn_established_tags_10,	/* Same as above */
+	sizeof(asn_DEF_x2_Xn_established_tags_10)
+		/sizeof(asn_DEF_x2_Xn_established_tags_10[0]), /* 2 */
+	{ &asn_OER_type_x2_Xn_established_constr_10, &asn_PER_type_x2_Xn_established_constr_10, NativeEnumerated_constraint },
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_x2_Xn_established_specs_10	/* Additional specs */
+};
+
+static const asn_INTEGER_enum_map_t asn_MAP_hO_validated_value2enum_14[] = {
+	{ 0,	4,	"true" },
+	{ 1,	5,	"false" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_hO_validated_enum2value_14[] = {
+	1,	/* false(1) */
+	0	/* true(0) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_hO_validated_specs_14 = {
+	asn_MAP_hO_validated_value2enum_14,	/* "tag" => N; sorted by tag */
+	asn_MAP_hO_validated_enum2value_14,	/* 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_hO_validated_tags_14[] = {
+	(ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_hO_validated_14 = {
+	"hO-validated",
+	"hO-validated",
+	&asn_OP_NativeEnumerated,
+	asn_DEF_hO_validated_tags_14,
+	sizeof(asn_DEF_hO_validated_tags_14)
+		/sizeof(asn_DEF_hO_validated_tags_14[0]) - 1, /* 1 */
+	asn_DEF_hO_validated_tags_14,	/* Same as above */
+	sizeof(asn_DEF_hO_validated_tags_14)
+		/sizeof(asn_DEF_hO_validated_tags_14[0]), /* 2 */
+	{ &asn_OER_type_hO_validated_constr_14, &asn_PER_type_hO_validated_constr_14, NativeEnumerated_constraint },
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_hO_validated_specs_14	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_NeighborCell_Item_Choice_NR_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct NeighborCell_Item_Choice_NR, nR_CGI),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NR_CGI,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"nR-CGI"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct NeighborCell_Item_Choice_NR, nR_PCI),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NR_PCI,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"nR-PCI"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct NeighborCell_Item_Choice_NR, fiveGS_TAC),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_FiveGS_TAC,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"fiveGS-TAC"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct NeighborCell_Item_Choice_NR, nR_mode_info),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_nR_mode_info_5,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"nR-mode-info"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct NeighborCell_Item_Choice_NR, nR_ARFCN),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NR_ARFCN,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"nR-ARFCN"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct NeighborCell_Item_Choice_NR, x2_Xn_established),
+		(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_x2_Xn_established_10,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"x2-Xn-established"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct NeighborCell_Item_Choice_NR, hO_validated),
+		(ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_hO_validated_14,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"hO-validated"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct NeighborCell_Item_Choice_NR, version),
+		(ASN_TAG_CLASS_CONTEXT | (7 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		0,
+		{ &asn_OER_memb_version_constr_18, &asn_PER_memb_version_constr_18,  memb_version_constraint_1 },
+		0, 0, /* No default value */
+		"version"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_NeighborCell_Item_Choice_NR_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_NeighborCell_Item_Choice_NR_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nR-CGI */
+    { (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 | (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 */
+};
+asn_SEQUENCE_specifics_t asn_SPC_NeighborCell_Item_Choice_NR_specs_1 = {
+	sizeof(struct NeighborCell_Item_Choice_NR),
+	offsetof(struct NeighborCell_Item_Choice_NR, _asn_ctx),
+	asn_MAP_NeighborCell_Item_Choice_NR_tag2el_1,
+	8,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	8,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_NeighborCell_Item_Choice_NR = {
+	"NeighborCell-Item-Choice-NR",
+	"NeighborCell-Item-Choice-NR",
+	&asn_OP_SEQUENCE,
+	asn_DEF_NeighborCell_Item_Choice_NR_tags_1,
+	sizeof(asn_DEF_NeighborCell_Item_Choice_NR_tags_1)
+		/sizeof(asn_DEF_NeighborCell_Item_Choice_NR_tags_1[0]), /* 1 */
+	asn_DEF_NeighborCell_Item_Choice_NR_tags_1,	/* Same as above */
+	sizeof(asn_DEF_NeighborCell_Item_Choice_NR_tags_1)
+		/sizeof(asn_DEF_NeighborCell_Item_Choice_NR_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_NeighborCell_Item_Choice_NR_1,
+	8,	/* Elements count */
+	&asn_SPC_NeighborCell_Item_Choice_NR_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/NeighborCell-Item.c b/e2sm/lib/NeighborCell-Item.c
new file mode 100644
index 0000000..b68fcd5
--- /dev/null
+++ b/e2sm/lib/NeighborCell-Item.c
@@ -0,0 +1,67 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "NeighborCell-Item.h"
+
+#include "NeighborCell-Item-Choice-NR.h"
+#include "NeighborCell-Item-Choice-E-UTRA.h"
+static asn_oer_constraints_t asn_OER_type_NeighborCell_Item_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_NeighborCell_Item_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_NeighborCell_Item_1[] = {
+	{ ATF_POINTER, 0, offsetof(struct NeighborCell_Item, choice.ranType_Choice_NR),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NeighborCell_Item_Choice_NR,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranType-Choice-NR"
+		},
+	{ ATF_POINTER, 0, offsetof(struct NeighborCell_Item, choice.ranType_Choice_EUTRA),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NeighborCell_Item_Choice_E_UTRA,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranType-Choice-EUTRA"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_NeighborCell_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranType-Choice-NR */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranType-Choice-EUTRA */
+};
+asn_CHOICE_specifics_t asn_SPC_NeighborCell_Item_specs_1 = {
+	sizeof(struct NeighborCell_Item),
+	offsetof(struct NeighborCell_Item, _asn_ctx),
+	offsetof(struct NeighborCell_Item, present),
+	sizeof(((struct NeighborCell_Item *)0)->present),
+	asn_MAP_NeighborCell_Item_tag2el_1,
+	2,	/* Count of tags in the map */
+	0, 0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_NeighborCell_Item = {
+	"NeighborCell-Item",
+	"NeighborCell-Item",
+	&asn_OP_CHOICE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ &asn_OER_type_NeighborCell_Item_constr_1, &asn_PER_type_NeighborCell_Item_constr_1, CHOICE_constraint },
+	asn_MBR_NeighborCell_Item_1,
+	2,	/* Elements count */
+	&asn_SPC_NeighborCell_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/NeighborCell-List.c b/e2sm/lib/NeighborCell-List.c
new file mode 100644
index 0000000..5acf37c
--- /dev/null
+++ b/e2sm/lib/NeighborCell-List.c
@@ -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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "NeighborCell-List.h"
+
+#include "NeighborCell-Item.h"
+static asn_oer_constraints_t asn_OER_type_NeighborCell_List_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_NeighborCell_List_constr_1 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  1,  65535 }	/* (SIZE(1..65535)) */,
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_NeighborCell_List_1[] = {
+	{ ATF_POINTER, 0, 0,
+		-1 /* Ambiguous tag (CHOICE?) */,
+		0,
+		&asn_DEF_NeighborCell_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_NeighborCell_List_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_NeighborCell_List_specs_1 = {
+	sizeof(struct NeighborCell_List),
+	offsetof(struct NeighborCell_List, _asn_ctx),
+	2,	/* XER encoding is XMLValueList */
+};
+asn_TYPE_descriptor_t asn_DEF_NeighborCell_List = {
+	"NeighborCell-List",
+	"NeighborCell-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_NeighborCell_List_tags_1,
+	sizeof(asn_DEF_NeighborCell_List_tags_1)
+		/sizeof(asn_DEF_NeighborCell_List_tags_1[0]), /* 1 */
+	asn_DEF_NeighborCell_List_tags_1,	/* Same as above */
+	sizeof(asn_DEF_NeighborCell_List_tags_1)
+		/sizeof(asn_DEF_NeighborCell_List_tags_1[0]), /* 1 */
+	{ &asn_OER_type_NeighborCell_List_constr_1, &asn_PER_type_NeighborCell_List_constr_1, SEQUENCE_OF_constraint },
+	asn_MBR_NeighborCell_List_1,
+	1,	/* Single element */
+	&asn_SPC_NeighborCell_List_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/NeighborRelation-Info.c b/e2sm/lib/NeighborRelation-Info.c
new file mode 100644
index 0000000..4de6ca1
--- /dev/null
+++ b/e2sm/lib/NeighborRelation-Info.c
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "NeighborRelation-Info.h"
+
+asn_TYPE_member_t asn_MBR_NeighborRelation_Info_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct NeighborRelation_Info, servingCellPCI),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_ServingCell_PCI,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"servingCellPCI"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct NeighborRelation_Info, servingCellARFCN),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_ServingCell_ARFCN,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"servingCellARFCN"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct NeighborRelation_Info, neighborCell_List),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NeighborCell_List,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"neighborCell-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_NeighborRelation_Info_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_NeighborRelation_Info_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* servingCellPCI */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* servingCellARFCN */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* neighborCell-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_NeighborRelation_Info_specs_1 = {
+	sizeof(struct NeighborRelation_Info),
+	offsetof(struct NeighborRelation_Info, _asn_ctx),
+	asn_MAP_NeighborRelation_Info_tag2el_1,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	3,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_NeighborRelation_Info = {
+	"NeighborRelation-Info",
+	"NeighborRelation-Info",
+	&asn_OP_SEQUENCE,
+	asn_DEF_NeighborRelation_Info_tags_1,
+	sizeof(asn_DEF_NeighborRelation_Info_tags_1)
+		/sizeof(asn_DEF_NeighborRelation_Info_tags_1[0]), /* 1 */
+	asn_DEF_NeighborRelation_Info_tags_1,	/* Same as above */
+	sizeof(asn_DEF_NeighborRelation_Info_tags_1)
+		/sizeof(asn_DEF_NeighborRelation_Info_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_NeighborRelation_Info_1,
+	3,	/* Elements count */
+	&asn_SPC_NeighborRelation_Info_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/NgENB-ID.c b/e2sm/lib/NgENB-ID.c
new file mode 100644
index 0000000..31ee4ac
--- /dev/null
+++ b/e2sm/lib/NgENB-ID.c
@@ -0,0 +1,192 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "NgENB-ID.h"
+
+static int
+memb_macroNgENB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size == 20)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static int
+memb_shortMacroNgENB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size == 18)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static int
+memb_longMacroNgENB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	if(st->size > 0) {
+		/* Size in bits */
+		size = 8 * st->size - (st->bits_unused & 0x07);
+	} else {
+		size = 0;
+	}
+	
+	if((size == 21)) {
+		/* Constraint check succeeded */
+		return 0;
+	} 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_memb_macroNgENB_ID_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	20	/* (SIZE(20..20)) */};
+static asn_per_constraints_t asn_PER_memb_macroNgENB_ID_constr_2 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  20,  20 }	/* (SIZE(20..20)) */,
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_shortMacroNgENB_ID_constr_3 CC_NOTUSED = {
+	{ 0, 0 },
+	18	/* (SIZE(18..18)) */};
+static asn_per_constraints_t asn_PER_memb_shortMacroNgENB_ID_constr_3 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  18,  18 }	/* (SIZE(18..18)) */,
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_longMacroNgENB_ID_constr_4 CC_NOTUSED = {
+	{ 0, 0 },
+	21	/* (SIZE(21..21)) */};
+static asn_per_constraints_t asn_PER_memb_longMacroNgENB_ID_constr_4 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  21,  21 }	/* (SIZE(21..21)) */,
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_NgENB_ID_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_NgENB_ID_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }	/* (0..2,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_NgENB_ID_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct NgENB_ID, choice.macroNgENB_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_BIT_STRING,
+		0,
+		{ &asn_OER_memb_macroNgENB_ID_constr_2, &asn_PER_memb_macroNgENB_ID_constr_2,  memb_macroNgENB_ID_constraint_1 },
+		0, 0, /* No default value */
+		"macroNgENB-ID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct NgENB_ID, choice.shortMacroNgENB_ID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_BIT_STRING,
+		0,
+		{ &asn_OER_memb_shortMacroNgENB_ID_constr_3, &asn_PER_memb_shortMacroNgENB_ID_constr_3,  memb_shortMacroNgENB_ID_constraint_1 },
+		0, 0, /* No default value */
+		"shortMacroNgENB-ID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct NgENB_ID, choice.longMacroNgENB_ID),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_BIT_STRING,
+		0,
+		{ &asn_OER_memb_longMacroNgENB_ID_constr_4, &asn_PER_memb_longMacroNgENB_ID_constr_4,  memb_longMacroNgENB_ID_constraint_1 },
+		0, 0, /* No default value */
+		"longMacroNgENB-ID"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_NgENB_ID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* macroNgENB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* shortMacroNgENB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* longMacroNgENB-ID */
+};
+asn_CHOICE_specifics_t asn_SPC_NgENB_ID_specs_1 = {
+	sizeof(struct NgENB_ID),
+	offsetof(struct NgENB_ID, _asn_ctx),
+	offsetof(struct NgENB_ID, present),
+	sizeof(((struct NgENB_ID *)0)->present),
+	asn_MAP_NgENB_ID_tag2el_1,
+	3,	/* Count of tags in the map */
+	0, 0,
+	3	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_NgENB_ID = {
+	"NgENB-ID",
+	"NgENB-ID",
+	&asn_OP_CHOICE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ &asn_OER_type_NgENB_ID_constr_1, &asn_PER_type_NgENB_ID_constr_1, CHOICE_constraint },
+	asn_MBR_NgENB_ID_1,
+	3,	/* Elements count */
+	&asn_SPC_NgENB_ID_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/OCUCP-PF-Container.c b/e2sm/lib/OCUCP-PF-Container.c
deleted file mode 100644
index 8788478..0000000
--- a/e2sm/lib/OCUCP-PF-Container.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "OCUCP-PF-Container.h"
-
-static int
-memb_numberOfActive_UEs_constraint_2(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	long value;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	value = *(const long *)sptr;
-	
-	if((value >= 1 && value <= 65535)) {
-		/* Constraint check succeeded */
-		return 0;
-	} 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_memb_numberOfActive_UEs_constr_3 CC_NOTUSED = {
-	{ 0, 0 },
-	-1};
-static asn_per_constraints_t asn_PER_memb_numberOfActive_UEs_constr_3 CC_NOTUSED = {
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  16,  16,  1,  65535 }	/* (1..65535,...) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static asn_TYPE_member_t asn_MBR_cu_CP_Resource_Status_2[] = {
-	{ ATF_POINTER, 1, offsetof(struct OCUCP_PF_Container__cu_CP_Resource_Status, numberOfActive_UEs),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_NativeInteger,
-		0,
-		{ &asn_OER_memb_numberOfActive_UEs_constr_3, &asn_PER_memb_numberOfActive_UEs_constr_3,  memb_numberOfActive_UEs_constraint_2 },
-		0, 0, /* No default value */
-		"numberOfActive-UEs"
-		},
-};
-static const int asn_MAP_cu_CP_Resource_Status_oms_2[] = { 0 };
-static const ber_tlv_tag_t asn_DEF_cu_CP_Resource_Status_tags_2[] = {
-	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_cu_CP_Resource_Status_tag2el_2[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* numberOfActive-UEs */
-};
-static asn_SEQUENCE_specifics_t asn_SPC_cu_CP_Resource_Status_specs_2 = {
-	sizeof(struct OCUCP_PF_Container__cu_CP_Resource_Status),
-	offsetof(struct OCUCP_PF_Container__cu_CP_Resource_Status, _asn_ctx),
-	asn_MAP_cu_CP_Resource_Status_tag2el_2,
-	1,	/* Count of tags in the map */
-	asn_MAP_cu_CP_Resource_Status_oms_2,	/* Optional members */
-	1, 0,	/* Root/Additions */
-	-1,	/* First extension addition */
-};
-static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_cu_CP_Resource_Status_2 = {
-	"cu-CP-Resource-Status",
-	"cu-CP-Resource-Status",
-	&asn_OP_SEQUENCE,
-	asn_DEF_cu_CP_Resource_Status_tags_2,
-	sizeof(asn_DEF_cu_CP_Resource_Status_tags_2)
-		/sizeof(asn_DEF_cu_CP_Resource_Status_tags_2[0]) - 1, /* 1 */
-	asn_DEF_cu_CP_Resource_Status_tags_2,	/* Same as above */
-	sizeof(asn_DEF_cu_CP_Resource_Status_tags_2)
-		/sizeof(asn_DEF_cu_CP_Resource_Status_tags_2[0]), /* 2 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_cu_CP_Resource_Status_2,
-	1,	/* Elements count */
-	&asn_SPC_cu_CP_Resource_Status_specs_2	/* Additional specs */
-};
-
-asn_TYPE_member_t asn_MBR_OCUCP_PF_Container_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct OCUCP_PF_Container, cu_CP_Resource_Status),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		0,
-		&asn_DEF_cu_CP_Resource_Status_2,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"cu-CP-Resource-Status"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_OCUCP_PF_Container_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_OCUCP_PF_Container_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cu-CP-Resource-Status */
-};
-asn_SEQUENCE_specifics_t asn_SPC_OCUCP_PF_Container_specs_1 = {
-	sizeof(struct OCUCP_PF_Container),
-	offsetof(struct OCUCP_PF_Container, _asn_ctx),
-	asn_MAP_OCUCP_PF_Container_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_OCUCP_PF_Container = {
-	"OCUCP-PF-Container",
-	"OCUCP-PF-Container",
-	&asn_OP_SEQUENCE,
-	asn_DEF_OCUCP_PF_Container_tags_1,
-	sizeof(asn_DEF_OCUCP_PF_Container_tags_1)
-		/sizeof(asn_DEF_OCUCP_PF_Container_tags_1[0]), /* 1 */
-	asn_DEF_OCUCP_PF_Container_tags_1,	/* Same as above */
-	sizeof(asn_DEF_OCUCP_PF_Container_tags_1)
-		/sizeof(asn_DEF_OCUCP_PF_Container_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_OCUCP_PF_Container_1,
-	1,	/* Elements count */
-	&asn_SPC_OCUCP_PF_Container_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/OCUUP-PF-Container.c b/e2sm/lib/OCUUP-PF-Container.c
deleted file mode 100644
index 8ccc575..0000000
--- a/e2sm/lib/OCUUP-PF-Container.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "OCUUP-PF-Container.h"
-
-#include "PF-ContainerListItem.h"
-static int
-memb_pf_ContainerList_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 <= 3)) {
-		/* 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_pf_ContainerList_constr_2 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..3)) */};
-static asn_per_constraints_t asn_PER_type_pf_ContainerList_constr_2 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 2,  2,  1,  3 }	/* (SIZE(1..3)) */,
-	0, 0	/* No PER value map */
-};
-static asn_oer_constraints_t asn_OER_memb_pf_ContainerList_constr_2 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..3)) */};
-static asn_per_constraints_t asn_PER_memb_pf_ContainerList_constr_2 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 2,  2,  1,  3 }	/* (SIZE(1..3)) */,
-	0, 0	/* No PER value map */
-};
-static asn_TYPE_member_t asn_MBR_pf_ContainerList_2[] = {
-	{ ATF_POINTER, 0, 0,
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_PF_ContainerListItem,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		""
-		},
-};
-static const ber_tlv_tag_t asn_DEF_pf_ContainerList_tags_2[] = {
-	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static asn_SET_OF_specifics_t asn_SPC_pf_ContainerList_specs_2 = {
-	sizeof(struct OCUUP_PF_Container__pf_ContainerList),
-	offsetof(struct OCUUP_PF_Container__pf_ContainerList, _asn_ctx),
-	0,	/* XER encoding is XMLDelimitedItemList */
-};
-static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_pf_ContainerList_2 = {
-	"pf-ContainerList",
-	"pf-ContainerList",
-	&asn_OP_SEQUENCE_OF,
-	asn_DEF_pf_ContainerList_tags_2,
-	sizeof(asn_DEF_pf_ContainerList_tags_2)
-		/sizeof(asn_DEF_pf_ContainerList_tags_2[0]) - 1, /* 1 */
-	asn_DEF_pf_ContainerList_tags_2,	/* Same as above */
-	sizeof(asn_DEF_pf_ContainerList_tags_2)
-		/sizeof(asn_DEF_pf_ContainerList_tags_2[0]), /* 2 */
-	{ &asn_OER_type_pf_ContainerList_constr_2, &asn_PER_type_pf_ContainerList_constr_2, SEQUENCE_OF_constraint },
-	asn_MBR_pf_ContainerList_2,
-	1,	/* Single element */
-	&asn_SPC_pf_ContainerList_specs_2	/* Additional specs */
-};
-
-asn_TYPE_member_t asn_MBR_OCUUP_PF_Container_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct OCUUP_PF_Container, pf_ContainerList),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		0,
-		&asn_DEF_pf_ContainerList_2,
-		0,
-		{ &asn_OER_memb_pf_ContainerList_constr_2, &asn_PER_memb_pf_ContainerList_constr_2,  memb_pf_ContainerList_constraint_1 },
-		0, 0, /* No default value */
-		"pf-ContainerList"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_OCUUP_PF_Container_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_OCUUP_PF_Container_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* pf-ContainerList */
-};
-asn_SEQUENCE_specifics_t asn_SPC_OCUUP_PF_Container_specs_1 = {
-	sizeof(struct OCUUP_PF_Container),
-	offsetof(struct OCUUP_PF_Container, _asn_ctx),
-	asn_MAP_OCUUP_PF_Container_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_OCUUP_PF_Container = {
-	"OCUUP-PF-Container",
-	"OCUUP-PF-Container",
-	&asn_OP_SEQUENCE,
-	asn_DEF_OCUUP_PF_Container_tags_1,
-	sizeof(asn_DEF_OCUUP_PF_Container_tags_1)
-		/sizeof(asn_DEF_OCUUP_PF_Container_tags_1[0]), /* 1 */
-	asn_DEF_OCUUP_PF_Container_tags_1,	/* Same as above */
-	sizeof(asn_DEF_OCUUP_PF_Container_tags_1)
-		/sizeof(asn_DEF_OCUUP_PF_Container_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_OCUUP_PF_Container_1,
-	1,	/* Elements count */
-	&asn_SPC_OCUUP_PF_Container_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/ODU-PF-Container.c b/e2sm/lib/ODU-PF-Container.c
deleted file mode 100644
index 4aeaa6c..0000000
--- a/e2sm/lib/ODU-PF-Container.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "ODU-PF-Container.h"
-
-#include "CellResourceReportListItem.h"
-static int
-memb_cellResourceReportList_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 <= 512)) {
-		/* 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_cellResourceReportList_constr_2 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..512)) */};
-static asn_per_constraints_t asn_PER_type_cellResourceReportList_constr_2 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 9,  9,  1,  512 }	/* (SIZE(1..512)) */,
-	0, 0	/* No PER value map */
-};
-static asn_oer_constraints_t asn_OER_memb_cellResourceReportList_constr_2 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..512)) */};
-static asn_per_constraints_t asn_PER_memb_cellResourceReportList_constr_2 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 9,  9,  1,  512 }	/* (SIZE(1..512)) */,
-	0, 0	/* No PER value map */
-};
-static asn_TYPE_member_t asn_MBR_cellResourceReportList_2[] = {
-	{ ATF_POINTER, 0, 0,
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_CellResourceReportListItem,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		""
-		},
-};
-static const ber_tlv_tag_t asn_DEF_cellResourceReportList_tags_2[] = {
-	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static asn_SET_OF_specifics_t asn_SPC_cellResourceReportList_specs_2 = {
-	sizeof(struct ODU_PF_Container__cellResourceReportList),
-	offsetof(struct ODU_PF_Container__cellResourceReportList, _asn_ctx),
-	0,	/* XER encoding is XMLDelimitedItemList */
-};
-static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_cellResourceReportList_2 = {
-	"cellResourceReportList",
-	"cellResourceReportList",
-	&asn_OP_SEQUENCE_OF,
-	asn_DEF_cellResourceReportList_tags_2,
-	sizeof(asn_DEF_cellResourceReportList_tags_2)
-		/sizeof(asn_DEF_cellResourceReportList_tags_2[0]) - 1, /* 1 */
-	asn_DEF_cellResourceReportList_tags_2,	/* Same as above */
-	sizeof(asn_DEF_cellResourceReportList_tags_2)
-		/sizeof(asn_DEF_cellResourceReportList_tags_2[0]), /* 2 */
-	{ &asn_OER_type_cellResourceReportList_constr_2, &asn_PER_type_cellResourceReportList_constr_2, SEQUENCE_OF_constraint },
-	asn_MBR_cellResourceReportList_2,
-	1,	/* Single element */
-	&asn_SPC_cellResourceReportList_specs_2	/* Additional specs */
-};
-
-asn_TYPE_member_t asn_MBR_ODU_PF_Container_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct ODU_PF_Container, cellResourceReportList),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		0,
-		&asn_DEF_cellResourceReportList_2,
-		0,
-		{ &asn_OER_memb_cellResourceReportList_constr_2, &asn_PER_memb_cellResourceReportList_constr_2,  memb_cellResourceReportList_constraint_1 },
-		0, 0, /* No default value */
-		"cellResourceReportList"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_ODU_PF_Container_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_ODU_PF_Container_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cellResourceReportList */
-};
-asn_SEQUENCE_specifics_t asn_SPC_ODU_PF_Container_specs_1 = {
-	sizeof(struct ODU_PF_Container),
-	offsetof(struct ODU_PF_Container, _asn_ctx),
-	asn_MAP_ODU_PF_Container_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_ODU_PF_Container = {
-	"ODU-PF-Container",
-	"ODU-PF-Container",
-	&asn_OP_SEQUENCE,
-	asn_DEF_ODU_PF_Container_tags_1,
-	sizeof(asn_DEF_ODU_PF_Container_tags_1)
-		/sizeof(asn_DEF_ODU_PF_Container_tags_1[0]), /* 1 */
-	asn_DEF_ODU_PF_Container_tags_1,	/* Same as above */
-	sizeof(asn_DEF_ODU_PF_Container_tags_1)
-		/sizeof(asn_DEF_ODU_PF_Container_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_ODU_PF_Container_1,
-	1,	/* Elements count */
-	&asn_SPC_ODU_PF_Container_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/PF-Container.c b/e2sm/lib/PF-Container.c
deleted file mode 100644
index c4034f8..0000000
--- a/e2sm/lib/PF-Container.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "PF-Container.h"
-
-#include "ODU-PF-Container.h"
-#include "OCUCP-PF-Container.h"
-#include "OCUUP-PF-Container.h"
-static asn_oer_constraints_t asn_OER_type_PF_Container_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	-1};
-asn_per_constraints_t asn_PER_type_PF_Container_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED,	 2,  2,  0,  2 }	/* (0..2) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-asn_TYPE_member_t asn_MBR_PF_Container_1[] = {
-	{ ATF_POINTER, 0, offsetof(struct PF_Container, choice.oDU),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_ODU_PF_Container,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"oDU"
-		},
-	{ ATF_POINTER, 0, offsetof(struct PF_Container, choice.oCU_CP),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_OCUCP_PF_Container,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"oCU-CP"
-		},
-	{ ATF_POINTER, 0, offsetof(struct PF_Container, choice.oCU_UP),
-		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_OCUUP_PF_Container,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"oCU-UP"
-		},
-};
-static const asn_TYPE_tag2member_t asn_MAP_PF_Container_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* oDU */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* oCU-CP */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* oCU-UP */
-};
-asn_CHOICE_specifics_t asn_SPC_PF_Container_specs_1 = {
-	sizeof(struct PF_Container),
-	offsetof(struct PF_Container, _asn_ctx),
-	offsetof(struct PF_Container, present),
-	sizeof(((struct PF_Container *)0)->present),
-	asn_MAP_PF_Container_tag2el_1,
-	3,	/* Count of tags in the map */
-	0, 0,
-	-1	/* Extensions start */
-};
-asn_TYPE_descriptor_t asn_DEF_PF_Container = {
-	"PF-Container",
-	"PF-Container",
-	&asn_OP_CHOICE,
-	0,	/* No effective tags (pointer) */
-	0,	/* No effective tags (count) */
-	0,	/* No tags (pointer) */
-	0,	/* No tags (count) */
-	{ &asn_OER_type_PF_Container_constr_1, &asn_PER_type_PF_Container_constr_1, CHOICE_constraint },
-	asn_MBR_PF_Container_1,
-	3,	/* Elements count */
-	&asn_SPC_PF_Container_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/PF-ContainerListItem.c b/e2sm/lib/PF-ContainerListItem.c
deleted file mode 100644
index 112175c..0000000
--- a/e2sm/lib/PF-ContainerListItem.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "PF-ContainerListItem.h"
-
-asn_TYPE_member_t asn_MBR_PF_ContainerListItem_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct PF_ContainerListItem, interface_type),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_NI_Type,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"interface-type"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct PF_ContainerListItem, o_CU_UP_PM_Container),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_CUUPMeasurement_Container,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"o-CU-UP-PM-Container"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_PF_ContainerListItem_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_PF_ContainerListItem_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* interface-type */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* o-CU-UP-PM-Container */
-};
-asn_SEQUENCE_specifics_t asn_SPC_PF_ContainerListItem_specs_1 = {
-	sizeof(struct PF_ContainerListItem),
-	offsetof(struct PF_ContainerListItem, _asn_ctx),
-	asn_MAP_PF_ContainerListItem_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_PF_ContainerListItem = {
-	"PF-ContainerListItem",
-	"PF-ContainerListItem",
-	&asn_OP_SEQUENCE,
-	asn_DEF_PF_ContainerListItem_tags_1,
-	sizeof(asn_DEF_PF_ContainerListItem_tags_1)
-		/sizeof(asn_DEF_PF_ContainerListItem_tags_1[0]), /* 1 */
-	asn_DEF_PF_ContainerListItem_tags_1,	/* Same as above */
-	sizeof(asn_DEF_PF_ContainerListItem_tags_1)
-		/sizeof(asn_DEF_PF_ContainerListItem_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_PF_ContainerListItem_1,
-	2,	/* Elements count */
-	&asn_SPC_PF_ContainerListItem_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/PLMN-Identity.c b/e2sm/lib/PLMN-Identity.c
deleted file mode 100644
index 023b1f7..0000000
--- a/e2sm/lib/PLMN-Identity.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "PLMN-Identity.h"
-
-int
-PLMN_Identity_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
-	size_t size;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	size = st->size;
-	
-	if((size == 3)) {
-		/* Constraint check succeeded */
-		return 0;
-	} else {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: constraint failed (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-}
-
-/*
- * This type is implemented using OCTET_STRING,
- * so here we adjust the DEF accordingly.
- */
-static asn_oer_constraints_t asn_OER_type_PLMN_Identity_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	3	/* (SIZE(3..3)) */};
-asn_per_constraints_t asn_PER_type_PLMN_Identity_constr_1 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 0,  0,  3,  3 }	/* (SIZE(3..3)) */,
-	0, 0	/* No PER value map */
-};
-static const ber_tlv_tag_t asn_DEF_PLMN_Identity_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
-};
-asn_TYPE_descriptor_t asn_DEF_PLMN_Identity = {
-	"PLMN-Identity",
-	"PLMN-Identity",
-	&asn_OP_OCTET_STRING,
-	asn_DEF_PLMN_Identity_tags_1,
-	sizeof(asn_DEF_PLMN_Identity_tags_1)
-		/sizeof(asn_DEF_PLMN_Identity_tags_1[0]), /* 1 */
-	asn_DEF_PLMN_Identity_tags_1,	/* Same as above */
-	sizeof(asn_DEF_PLMN_Identity_tags_1)
-		/sizeof(asn_DEF_PLMN_Identity_tags_1[0]), /* 1 */
-	{ &asn_OER_type_PLMN_Identity_constr_1, &asn_PER_type_PLMN_Identity_constr_1, PLMN_Identity_constraint },
-	0, 0,	/* No members */
-	&asn_SPC_OCTET_STRING_specs	/* Additional specs */
-};
-
diff --git a/e2sm/lib/PLMNIdentity.c b/e2sm/lib/PLMNIdentity.c
new file mode 100644
index 0000000..d713421
--- /dev/null
+++ b/e2sm/lib/PLMNIdentity.c
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "PLMNIdentity.h"
+
+int
+PLMNIdentity_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size == 3)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_PLMNIdentity_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	3	/* (SIZE(3..3)) */};
+asn_per_constraints_t asn_PER_type_PLMNIdentity_constr_1 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  3,  3 }	/* (SIZE(3..3)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_PLMNIdentity_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_PLMNIdentity = {
+	"PLMNIdentity",
+	"PLMNIdentity",
+	&asn_OP_OCTET_STRING,
+	asn_DEF_PLMNIdentity_tags_1,
+	sizeof(asn_DEF_PLMNIdentity_tags_1)
+		/sizeof(asn_DEF_PLMNIdentity_tags_1[0]), /* 1 */
+	asn_DEF_PLMNIdentity_tags_1,	/* Same as above */
+	sizeof(asn_DEF_PLMNIdentity_tags_1)
+		/sizeof(asn_DEF_PLMNIdentity_tags_1[0]), /* 1 */
+	{ &asn_OER_type_PLMNIdentity_constr_1, &asn_PER_type_PLMNIdentity_constr_1, PLMNIdentity_constraint },
+	0, 0,	/* No members */
+	&asn_SPC_OCTET_STRING_specs	/* Additional specs */
+};
+
diff --git a/e2sm/lib/PM-Containers-Item.c b/e2sm/lib/PM-Containers-Item.c
deleted file mode 100644
index 2116f5a..0000000
--- a/e2sm/lib/PM-Containers-Item.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "PM-Containers-Item.h"
-
-#include "PF-Container.h"
-asn_TYPE_member_t asn_MBR_PM_Containers_Item_1[] = {
-	{ ATF_POINTER, 2, offsetof(struct PM_Containers_Item, performanceContainer),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		+1,	/* EXPLICIT tag at current level */
-		&asn_DEF_PF_Container,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"performanceContainer"
-		},
-	{ ATF_POINTER, 1, offsetof(struct PM_Containers_Item, theRANContainer),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_RAN_Container,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"theRANContainer"
-		},
-};
-static const int asn_MAP_PM_Containers_Item_oms_1[] = { 0, 1 };
-static const ber_tlv_tag_t asn_DEF_PM_Containers_Item_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_PM_Containers_Item_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* performanceContainer */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* theRANContainer */
-};
-asn_SEQUENCE_specifics_t asn_SPC_PM_Containers_Item_specs_1 = {
-	sizeof(struct PM_Containers_Item),
-	offsetof(struct PM_Containers_Item, _asn_ctx),
-	asn_MAP_PM_Containers_Item_tag2el_1,
-	2,	/* Count of tags in the map */
-	asn_MAP_PM_Containers_Item_oms_1,	/* Optional members */
-	2, 0,	/* Root/Additions */
-	2,	/* First extension addition */
-};
-asn_TYPE_descriptor_t asn_DEF_PM_Containers_Item = {
-	"PM-Containers-Item",
-	"PM-Containers-Item",
-	&asn_OP_SEQUENCE,
-	asn_DEF_PM_Containers_Item_tags_1,
-	sizeof(asn_DEF_PM_Containers_Item_tags_1)
-		/sizeof(asn_DEF_PM_Containers_Item_tags_1[0]), /* 1 */
-	asn_DEF_PM_Containers_Item_tags_1,	/* Same as above */
-	sizeof(asn_DEF_PM_Containers_Item_tags_1)
-		/sizeof(asn_DEF_PM_Containers_Item_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_PM_Containers_Item_1,
-	2,	/* Elements count */
-	&asn_SPC_PM_Containers_Item_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/PM-Info-Item.c b/e2sm/lib/PM-Info-Item.c
deleted file mode 100644
index e469eb6..0000000
--- a/e2sm/lib/PM-Info-Item.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "PM-Info-Item.h"
-
-asn_TYPE_member_t asn_MBR_PM_Info_Item_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct PM_Info_Item, pmType),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		+1,	/* EXPLICIT tag at current level */
-		&asn_DEF_MeasurementType,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"pmType"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct PM_Info_Item, pmVal),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		+1,	/* EXPLICIT tag at current level */
-		&asn_DEF_MeasurementValue,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"pmVal"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_PM_Info_Item_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_PM_Info_Item_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pmType */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* pmVal */
-};
-asn_SEQUENCE_specifics_t asn_SPC_PM_Info_Item_specs_1 = {
-	sizeof(struct PM_Info_Item),
-	offsetof(struct PM_Info_Item, _asn_ctx),
-	asn_MAP_PM_Info_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_PM_Info_Item = {
-	"PM-Info-Item",
-	"PM-Info-Item",
-	&asn_OP_SEQUENCE,
-	asn_DEF_PM_Info_Item_tags_1,
-	sizeof(asn_DEF_PM_Info_Item_tags_1)
-		/sizeof(asn_DEF_PM_Info_Item_tags_1[0]), /* 1 */
-	asn_DEF_PM_Info_Item_tags_1,	/* Same as above */
-	sizeof(asn_DEF_PM_Info_Item_tags_1)
-		/sizeof(asn_DEF_PM_Info_Item_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_PM_Info_Item_1,
-	2,	/* Elements count */
-	&asn_SPC_PM_Info_Item_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/PerQCIReportListItem.c b/e2sm/lib/PerQCIReportListItem.c
deleted file mode 100644
index 45935bd..0000000
--- a/e2sm/lib/PerQCIReportListItem.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "PerQCIReportListItem.h"
-
-static int
-memb_dl_PRBUsage_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	long value;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	value = *(const long *)sptr;
-	
-	if((value >= 0 && value <= 100)) {
-		/* Constraint check succeeded */
-		return 0;
-	} else {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: constraint failed (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-}
-
-static int
-memb_ul_PRBUsage_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	long value;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	value = *(const long *)sptr;
-	
-	if((value >= 0 && value <= 100)) {
-		/* Constraint check succeeded */
-		return 0;
-	} 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_memb_dl_PRBUsage_constr_3 CC_NOTUSED = {
-	{ 1, 1 }	/* (0..100) */,
-	-1};
-static asn_per_constraints_t asn_PER_memb_dl_PRBUsage_constr_3 CC_NOTUSED = {
-	{ APC_CONSTRAINED,	 7,  7,  0,  100 }	/* (0..100) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static asn_oer_constraints_t asn_OER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = {
-	{ 1, 1 }	/* (0..100) */,
-	-1};
-static asn_per_constraints_t asn_PER_memb_ul_PRBUsage_constr_4 CC_NOTUSED = {
-	{ APC_CONSTRAINED,	 7,  7,  0,  100 }	/* (0..100) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-asn_TYPE_member_t asn_MBR_PerQCIReportListItem_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct PerQCIReportListItem, qci),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_QCI,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"qci"
-		},
-	{ ATF_POINTER, 2, offsetof(struct PerQCIReportListItem, dl_PRBUsage),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_NativeInteger,
-		0,
-		{ &asn_OER_memb_dl_PRBUsage_constr_3, &asn_PER_memb_dl_PRBUsage_constr_3,  memb_dl_PRBUsage_constraint_1 },
-		0, 0, /* No default value */
-		"dl-PRBUsage"
-		},
-	{ ATF_POINTER, 1, offsetof(struct PerQCIReportListItem, ul_PRBUsage),
-		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_NativeInteger,
-		0,
-		{ &asn_OER_memb_ul_PRBUsage_constr_4, &asn_PER_memb_ul_PRBUsage_constr_4,  memb_ul_PRBUsage_constraint_1 },
-		0, 0, /* No default value */
-		"ul-PRBUsage"
-		},
-};
-static const int asn_MAP_PerQCIReportListItem_oms_1[] = { 1, 2 };
-static const ber_tlv_tag_t asn_DEF_PerQCIReportListItem_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_PerQCIReportListItem_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qci */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dl-PRBUsage */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ul-PRBUsage */
-};
-asn_SEQUENCE_specifics_t asn_SPC_PerQCIReportListItem_specs_1 = {
-	sizeof(struct PerQCIReportListItem),
-	offsetof(struct PerQCIReportListItem, _asn_ctx),
-	asn_MAP_PerQCIReportListItem_tag2el_1,
-	3,	/* Count of tags in the map */
-	asn_MAP_PerQCIReportListItem_oms_1,	/* Optional members */
-	2, 0,	/* Root/Additions */
-	3,	/* First extension addition */
-};
-asn_TYPE_descriptor_t asn_DEF_PerQCIReportListItem = {
-	"PerQCIReportListItem",
-	"PerQCIReportListItem",
-	&asn_OP_SEQUENCE,
-	asn_DEF_PerQCIReportListItem_tags_1,
-	sizeof(asn_DEF_PerQCIReportListItem_tags_1)
-		/sizeof(asn_DEF_PerQCIReportListItem_tags_1[0]), /* 1 */
-	asn_DEF_PerQCIReportListItem_tags_1,	/* Same as above */
-	sizeof(asn_DEF_PerQCIReportListItem_tags_1)
-		/sizeof(asn_DEF_PerQCIReportListItem_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_PerQCIReportListItem_1,
-	3,	/* Elements count */
-	&asn_SPC_PerQCIReportListItem_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/PerQCIReportListItemFormat.c b/e2sm/lib/PerQCIReportListItemFormat.c
deleted file mode 100644
index 86f8bb4..0000000
--- a/e2sm/lib/PerQCIReportListItemFormat.c
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "PerQCIReportListItemFormat.h"
-
-static int
-memb_pDCPBytesDL_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	const INTEGER_t *st = (const INTEGER_t *)sptr;
-	long value;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	if(asn_INTEGER2long(st, &value)) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value too large (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	if((value >= 0 && value <= 10000000000)) {
-		/* Constraint check succeeded */
-		return 0;
-	} else {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: constraint failed (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-}
-
-static int
-memb_pDCPBytesUL_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	const INTEGER_t *st = (const INTEGER_t *)sptr;
-	long value;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	if(asn_INTEGER2long(st, &value)) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value too large (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	if((value >= 0 && value <= 10000000000)) {
-		/* Constraint check succeeded */
-		return 0;
-	} 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_memb_pDCPBytesDL_constr_3 CC_NOTUSED = {
-	{ 0, 0 },
-	-1};
-static asn_per_constraints_t asn_PER_memb_pDCPBytesDL_constr_3 CC_NOTUSED = {
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  34, -1,  0,  10000000000 }	/* (0..10000000000,...) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static asn_oer_constraints_t asn_OER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = {
-	{ 0, 0 },
-	-1};
-static asn_per_constraints_t asn_PER_memb_pDCPBytesUL_constr_4 CC_NOTUSED = {
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  34, -1,  0,  10000000000 }	/* (0..10000000000,...) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-asn_TYPE_member_t asn_MBR_PerQCIReportListItemFormat_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct PerQCIReportListItemFormat, drbqci),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_QCI,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"drbqci"
-		},
-	{ ATF_POINTER, 2, offsetof(struct PerQCIReportListItemFormat, pDCPBytesDL),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_INTEGER,
-		0,
-		{ &asn_OER_memb_pDCPBytesDL_constr_3, &asn_PER_memb_pDCPBytesDL_constr_3,  memb_pDCPBytesDL_constraint_1 },
-		0, 0, /* No default value */
-		"pDCPBytesDL"
-		},
-	{ ATF_POINTER, 1, offsetof(struct PerQCIReportListItemFormat, pDCPBytesUL),
-		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_INTEGER,
-		0,
-		{ &asn_OER_memb_pDCPBytesUL_constr_4, &asn_PER_memb_pDCPBytesUL_constr_4,  memb_pDCPBytesUL_constraint_1 },
-		0, 0, /* No default value */
-		"pDCPBytesUL"
-		},
-};
-static const int asn_MAP_PerQCIReportListItemFormat_oms_1[] = { 1, 2 };
-static const ber_tlv_tag_t asn_DEF_PerQCIReportListItemFormat_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_PerQCIReportListItemFormat_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* drbqci */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDCPBytesDL */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* pDCPBytesUL */
-};
-asn_SEQUENCE_specifics_t asn_SPC_PerQCIReportListItemFormat_specs_1 = {
-	sizeof(struct PerQCIReportListItemFormat),
-	offsetof(struct PerQCIReportListItemFormat, _asn_ctx),
-	asn_MAP_PerQCIReportListItemFormat_tag2el_1,
-	3,	/* Count of tags in the map */
-	asn_MAP_PerQCIReportListItemFormat_oms_1,	/* Optional members */
-	2, 0,	/* Root/Additions */
-	3,	/* First extension addition */
-};
-asn_TYPE_descriptor_t asn_DEF_PerQCIReportListItemFormat = {
-	"PerQCIReportListItemFormat",
-	"PerQCIReportListItemFormat",
-	&asn_OP_SEQUENCE,
-	asn_DEF_PerQCIReportListItemFormat_tags_1,
-	sizeof(asn_DEF_PerQCIReportListItemFormat_tags_1)
-		/sizeof(asn_DEF_PerQCIReportListItemFormat_tags_1[0]), /* 1 */
-	asn_DEF_PerQCIReportListItemFormat_tags_1,	/* Same as above */
-	sizeof(asn_DEF_PerQCIReportListItemFormat_tags_1)
-		/sizeof(asn_DEF_PerQCIReportListItemFormat_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_PerQCIReportListItemFormat_1,
-	3,	/* Elements count */
-	&asn_SPC_PerQCIReportListItemFormat_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/PerUE-PM-Item.c b/e2sm/lib/PerUE-PM-Item.c
deleted file mode 100644
index 9ecc2df..0000000
--- a/e2sm/lib/PerUE-PM-Item.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "PerUE-PM-Item.h"
-
-#include "PM-Info-Item.h"
-static int
-memb_list_of_PM_Information_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 <= 2147483647)) {
-		/* 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_list_of_PM_Information_constr_3 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..2147483647)) */};
-static asn_per_constraints_t asn_PER_type_list_of_PM_Information_constr_3 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 31, -1,  1,  2147483647 }	/* (SIZE(1..2147483647)) */,
-	0, 0	/* No PER value map */
-};
-static asn_oer_constraints_t asn_OER_memb_list_of_PM_Information_constr_3 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..2147483647)) */};
-static asn_per_constraints_t asn_PER_memb_list_of_PM_Information_constr_3 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 31, -1,  1,  2147483647 }	/* (SIZE(1..2147483647)) */,
-	0, 0	/* No PER value map */
-};
-static asn_TYPE_member_t asn_MBR_list_of_PM_Information_3[] = {
-	{ ATF_POINTER, 0, 0,
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_PM_Info_Item,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		""
-		},
-};
-static const ber_tlv_tag_t asn_DEF_list_of_PM_Information_tags_3[] = {
-	(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static asn_SET_OF_specifics_t asn_SPC_list_of_PM_Information_specs_3 = {
-	sizeof(struct PerUE_PM_Item__list_of_PM_Information),
-	offsetof(struct PerUE_PM_Item__list_of_PM_Information, _asn_ctx),
-	0,	/* XER encoding is XMLDelimitedItemList */
-};
-static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_list_of_PM_Information_3 = {
-	"list-of-PM-Information",
-	"list-of-PM-Information",
-	&asn_OP_SEQUENCE_OF,
-	asn_DEF_list_of_PM_Information_tags_3,
-	sizeof(asn_DEF_list_of_PM_Information_tags_3)
-		/sizeof(asn_DEF_list_of_PM_Information_tags_3[0]) - 1, /* 1 */
-	asn_DEF_list_of_PM_Information_tags_3,	/* Same as above */
-	sizeof(asn_DEF_list_of_PM_Information_tags_3)
-		/sizeof(asn_DEF_list_of_PM_Information_tags_3[0]), /* 2 */
-	{ &asn_OER_type_list_of_PM_Information_constr_3, &asn_PER_type_list_of_PM_Information_constr_3, SEQUENCE_OF_constraint },
-	asn_MBR_list_of_PM_Information_3,
-	1,	/* Single element */
-	&asn_SPC_list_of_PM_Information_specs_3	/* Additional specs */
-};
-
-asn_TYPE_member_t asn_MBR_PerUE_PM_Item_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct PerUE_PM_Item, ueId),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_UE_Identity,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"ueId"
-		},
-	{ ATF_POINTER, 1, offsetof(struct PerUE_PM_Item, list_of_PM_Information),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		0,
-		&asn_DEF_list_of_PM_Information_3,
-		0,
-		{ &asn_OER_memb_list_of_PM_Information_constr_3, &asn_PER_memb_list_of_PM_Information_constr_3,  memb_list_of_PM_Information_constraint_1 },
-		0, 0, /* No default value */
-		"list-of-PM-Information"
-		},
-};
-static const int asn_MAP_PerUE_PM_Item_oms_1[] = { 1 };
-static const ber_tlv_tag_t asn_DEF_PerUE_PM_Item_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_PerUE_PM_Item_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ueId */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* list-of-PM-Information */
-};
-asn_SEQUENCE_specifics_t asn_SPC_PerUE_PM_Item_specs_1 = {
-	sizeof(struct PerUE_PM_Item),
-	offsetof(struct PerUE_PM_Item, _asn_ctx),
-	asn_MAP_PerUE_PM_Item_tag2el_1,
-	2,	/* Count of tags in the map */
-	asn_MAP_PerUE_PM_Item_oms_1,	/* Optional members */
-	1, 0,	/* Root/Additions */
-	2,	/* First extension addition */
-};
-asn_TYPE_descriptor_t asn_DEF_PerUE_PM_Item = {
-	"PerUE-PM-Item",
-	"PerUE-PM-Item",
-	&asn_OP_SEQUENCE,
-	asn_DEF_PerUE_PM_Item_tags_1,
-	sizeof(asn_DEF_PerUE_PM_Item_tags_1)
-		/sizeof(asn_DEF_PerUE_PM_Item_tags_1[0]), /* 1 */
-	asn_DEF_PerUE_PM_Item_tags_1,	/* Same as above */
-	sizeof(asn_DEF_PerUE_PM_Item_tags_1)
-		/sizeof(asn_DEF_PerUE_PM_Item_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_PerUE_PM_Item_1,
-	2,	/* Elements count */
-	&asn_SPC_PerUE_PM_Item_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/PhysCellId.c b/e2sm/lib/PhysCellId.c
deleted file mode 100644
index bb61e1d..0000000
--- a/e2sm/lib/PhysCellId.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "PhysCellId.h"
-
-int
-PhysCellId_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	long value;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	value = *(const long *)sptr;
-	
-	if((value >= 0 && value <= 1007)) {
-		/* Constraint check succeeded */
-		return 0;
-	} else {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: constraint failed (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-}
-
-/*
- * This type is implemented using NativeInteger,
- * so here we adjust the DEF accordingly.
- */
-static asn_oer_constraints_t asn_OER_type_PhysCellId_constr_1 CC_NOTUSED = {
-	{ 2, 1 }	/* (0..1007) */,
-	-1};
-asn_per_constraints_t asn_PER_type_PhysCellId_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED,	 10,  10,  0,  1007 }	/* (0..1007) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static const ber_tlv_tag_t asn_DEF_PhysCellId_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
-};
-asn_TYPE_descriptor_t asn_DEF_PhysCellId = {
-	"PhysCellId",
-	"PhysCellId",
-	&asn_OP_NativeInteger,
-	asn_DEF_PhysCellId_tags_1,
-	sizeof(asn_DEF_PhysCellId_tags_1)
-		/sizeof(asn_DEF_PhysCellId_tags_1[0]), /* 1 */
-	asn_DEF_PhysCellId_tags_1,	/* Same as above */
-	sizeof(asn_DEF_PhysCellId_tags_1)
-		/sizeof(asn_DEF_PhysCellId_tags_1[0]), /* 1 */
-	{ &asn_OER_type_PhysCellId_constr_1, &asn_PER_type_PhysCellId_constr_1, PhysCellId_constraint },
-	0, 0,	/* No members */
-	0	/* No specifics */
-};
-
diff --git a/e2sm/lib/PlmnID-Item.c b/e2sm/lib/PlmnID-Item.c
deleted file mode 100644
index 5aad6cb..0000000
--- a/e2sm/lib/PlmnID-Item.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "PlmnID-Item.h"
-
-#include "FGC-CUUP-PM-Format.h"
-#include "EPC-CUUP-PM-Format.h"
-asn_TYPE_member_t asn_MBR_PlmnID_Item_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct PlmnID_Item, pLMN_Identity),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_PLMN_Identity,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"pLMN-Identity"
-		},
-	{ ATF_POINTER, 2, offsetof(struct PlmnID_Item, cu_UP_PM_5GC),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_FGC_CUUP_PM_Format,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"cu-UP-PM-5GC"
-		},
-	{ ATF_POINTER, 1, offsetof(struct PlmnID_Item, cu_UP_PM_EPC),
-		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_EPC_CUUP_PM_Format,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"cu-UP-PM-EPC"
-		},
-};
-static const int asn_MAP_PlmnID_Item_oms_1[] = { 1, 2 };
-static const ber_tlv_tag_t asn_DEF_PlmnID_Item_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_PlmnID_Item_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cu-UP-PM-5GC */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* cu-UP-PM-EPC */
-};
-asn_SEQUENCE_specifics_t asn_SPC_PlmnID_Item_specs_1 = {
-	sizeof(struct PlmnID_Item),
-	offsetof(struct PlmnID_Item, _asn_ctx),
-	asn_MAP_PlmnID_Item_tag2el_1,
-	3,	/* Count of tags in the map */
-	asn_MAP_PlmnID_Item_oms_1,	/* Optional members */
-	2, 0,	/* Root/Additions */
-	3,	/* First extension addition */
-};
-asn_TYPE_descriptor_t asn_DEF_PlmnID_Item = {
-	"PlmnID-Item",
-	"PlmnID-Item",
-	&asn_OP_SEQUENCE,
-	asn_DEF_PlmnID_Item_tags_1,
-	sizeof(asn_DEF_PlmnID_Item_tags_1)
-		/sizeof(asn_DEF_PlmnID_Item_tags_1[0]), /* 1 */
-	asn_DEF_PlmnID_Item_tags_1,	/* Same as above */
-	sizeof(asn_DEF_PlmnID_Item_tags_1)
-		/sizeof(asn_DEF_PlmnID_Item_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_PlmnID_Item_1,
-	3,	/* Elements count */
-	&asn_SPC_PlmnID_Item_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/PolicyAction-RANParameter-Item.c b/e2sm/lib/PolicyAction-RANParameter-Item.c
new file mode 100644
index 0000000..85b1dfc
--- /dev/null
+++ b/e2sm/lib/PolicyAction-RANParameter-Item.c
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "PolicyAction-RANParameter-Item.h"
+
+#include "RANParameter-Definition.h"
+asn_TYPE_member_t asn_MBR_PolicyAction_RANParameter_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct PolicyAction_RANParameter_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 PolicyAction_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"
+		},
+	{ ATF_POINTER, 1, offsetof(struct PolicyAction_RANParameter_Item, ranParameter_Definition),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 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_PolicyAction_RANParameter_Item_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_PolicyAction_RANParameter_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_PolicyAction_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 | (2 << 2)), 2, 0, 0 } /* ranParameter-Definition */
+};
+asn_SEQUENCE_specifics_t asn_SPC_PolicyAction_RANParameter_Item_specs_1 = {
+	sizeof(struct PolicyAction_RANParameter_Item),
+	offsetof(struct PolicyAction_RANParameter_Item, _asn_ctx),
+	asn_MAP_PolicyAction_RANParameter_Item_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_PolicyAction_RANParameter_Item_oms_1,	/* Optional members */
+	0, 1,	/* Root/Additions */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_PolicyAction_RANParameter_Item = {
+	"PolicyAction-RANParameter-Item",
+	"PolicyAction-RANParameter-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_PolicyAction_RANParameter_Item_tags_1,
+	sizeof(asn_DEF_PolicyAction_RANParameter_Item_tags_1)
+		/sizeof(asn_DEF_PolicyAction_RANParameter_Item_tags_1[0]), /* 1 */
+	asn_DEF_PolicyAction_RANParameter_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_PolicyAction_RANParameter_Item_tags_1)
+		/sizeof(asn_DEF_PolicyAction_RANParameter_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_PolicyAction_RANParameter_Item_1,
+	3,	/* Elements count */
+	&asn_SPC_PolicyAction_RANParameter_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/PolicyCondition-RANParameter-Item.c b/e2sm/lib/PolicyCondition-RANParameter-Item.c
new file mode 100644
index 0000000..33f64df
--- /dev/null
+++ b/e2sm/lib/PolicyCondition-RANParameter-Item.c
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "PolicyCondition-RANParameter-Item.h"
+
+#include "RANParameter-Definition.h"
+asn_TYPE_member_t asn_MBR_PolicyCondition_RANParameter_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct PolicyCondition_RANParameter_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 PolicyCondition_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"
+		},
+	{ ATF_POINTER, 1, offsetof(struct PolicyCondition_RANParameter_Item, ranParameter_Definition),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 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_PolicyCondition_RANParameter_Item_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_PolicyCondition_RANParameter_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_PolicyCondition_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 | (2 << 2)), 2, 0, 0 } /* ranParameter-Definition */
+};
+asn_SEQUENCE_specifics_t asn_SPC_PolicyCondition_RANParameter_Item_specs_1 = {
+	sizeof(struct PolicyCondition_RANParameter_Item),
+	offsetof(struct PolicyCondition_RANParameter_Item, _asn_ctx),
+	asn_MAP_PolicyCondition_RANParameter_Item_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_PolicyCondition_RANParameter_Item_oms_1,	/* Optional members */
+	0, 1,	/* Root/Additions */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_PolicyCondition_RANParameter_Item = {
+	"PolicyCondition-RANParameter-Item",
+	"PolicyCondition-RANParameter-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_PolicyCondition_RANParameter_Item_tags_1,
+	sizeof(asn_DEF_PolicyCondition_RANParameter_Item_tags_1)
+		/sizeof(asn_DEF_PolicyCondition_RANParameter_Item_tags_1[0]), /* 1 */
+	asn_DEF_PolicyCondition_RANParameter_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_PolicyCondition_RANParameter_Item_tags_1)
+		/sizeof(asn_DEF_PolicyCondition_RANParameter_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_PolicyCondition_RANParameter_Item_1,
+	3,	/* Elements count */
+	&asn_SPC_PolicyCondition_RANParameter_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/Presence.c b/e2sm/lib/Presence.c
deleted file mode 100644
index b2e8cda..0000000
--- a/e2sm/lib/Presence.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "Presence.h"
-
-/*
- * This type is implemented using NativeEnumerated,
- * so here we adjust the DEF accordingly.
- */
-static asn_oer_constraints_t asn_OER_type_Presence_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	-1};
-static asn_per_constraints_t asn_PER_type_Presence_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED,	 2,  2,  0,  2 }	/* (0..2) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static const asn_INTEGER_enum_map_t asn_MAP_Presence_value2enum_1[] = {
-	{ 0,	8,	"optional" },
-	{ 1,	11,	"conditional" },
-	{ 2,	9,	"mandatory" }
-};
-static const unsigned int asn_MAP_Presence_enum2value_1[] = {
-	1,	/* conditional(1) */
-	2,	/* mandatory(2) */
-	0	/* optional(0) */
-};
-static const asn_INTEGER_specifics_t asn_SPC_Presence_specs_1 = {
-	asn_MAP_Presence_value2enum_1,	/* "tag" => N; sorted by tag */
-	asn_MAP_Presence_enum2value_1,	/* N => "tag"; sorted by N */
-	3,	/* Number of elements in the maps */
-	0,	/* Enumeration is not extensible */
-	1,	/* Strict enumeration */
-	0,	/* Native long size */
-	0
-};
-static const ber_tlv_tag_t asn_DEF_Presence_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
-};
-asn_TYPE_descriptor_t asn_DEF_Presence = {
-	"Presence",
-	"Presence",
-	&asn_OP_NativeEnumerated,
-	asn_DEF_Presence_tags_1,
-	sizeof(asn_DEF_Presence_tags_1)
-		/sizeof(asn_DEF_Presence_tags_1[0]), /* 1 */
-	asn_DEF_Presence_tags_1,	/* Same as above */
-	sizeof(asn_DEF_Presence_tags_1)
-		/sizeof(asn_DEF_Presence_tags_1[0]), /* 1 */
-	{ &asn_OER_type_Presence_constr_1, &asn_PER_type_Presence_constr_1, NativeEnumerated_constraint },
-	0, 0,	/* Defined elsewhere */
-	&asn_SPC_Presence_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/ProcedureCode.c b/e2sm/lib/ProcedureCode.c
deleted file mode 100644
index a3ef61a..0000000
--- a/e2sm/lib/ProcedureCode.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "ProcedureCode.h"
-
-int
-ProcedureCode_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	long value;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	value = *(const long *)sptr;
-	
-	if((value >= 0 && value <= 255)) {
-		/* Constraint check succeeded */
-		return 0;
-	} else {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: constraint failed (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-}
-
-/*
- * This type is implemented using NativeInteger,
- * so here we adjust the DEF accordingly.
- */
-static asn_oer_constraints_t asn_OER_type_ProcedureCode_constr_1 CC_NOTUSED = {
-	{ 1, 1 }	/* (0..255) */,
-	-1};
-static asn_per_constraints_t asn_PER_type_ProcedureCode_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED,	 8,  8,  0,  255 }	/* (0..255) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static const ber_tlv_tag_t asn_DEF_ProcedureCode_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
-};
-asn_TYPE_descriptor_t asn_DEF_ProcedureCode = {
-	"ProcedureCode",
-	"ProcedureCode",
-	&asn_OP_NativeInteger,
-	asn_DEF_ProcedureCode_tags_1,
-	sizeof(asn_DEF_ProcedureCode_tags_1)
-		/sizeof(asn_DEF_ProcedureCode_tags_1[0]), /* 1 */
-	asn_DEF_ProcedureCode_tags_1,	/* Same as above */
-	sizeof(asn_DEF_ProcedureCode_tags_1)
-		/sizeof(asn_DEF_ProcedureCode_tags_1[0]), /* 1 */
-	{ &asn_OER_type_ProcedureCode_constr_1, &asn_PER_type_ProcedureCode_constr_1, ProcedureCode_constraint },
-	0, 0,	/* No members */
-	0	/* No specifics */
-};
-
diff --git a/e2sm/lib/ProtocolIE-ID.c b/e2sm/lib/ProtocolIE-ID.c
deleted file mode 100644
index fd10d9c..0000000
--- a/e2sm/lib/ProtocolIE-ID.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "ProtocolIE-ID.h"
-
-int
-ProtocolIE_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	long value;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	value = *(const long *)sptr;
-	
-	if((value >= 0 && value <= 65535)) {
-		/* Constraint check succeeded */
-		return 0;
-	} else {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: constraint failed (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-}
-
-/*
- * This type is implemented using NativeInteger,
- * so here we adjust the DEF accordingly.
- */
-static asn_oer_constraints_t asn_OER_type_ProtocolIE_ID_constr_1 CC_NOTUSED = {
-	{ 2, 1 }	/* (0..65535) */,
-	-1};
-asn_per_constraints_t asn_PER_type_ProtocolIE_ID_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED,	 16,  16,  0,  65535 }	/* (0..65535) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static const ber_tlv_tag_t asn_DEF_ProtocolIE_ID_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
-};
-asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ID = {
-	"ProtocolIE-ID",
-	"ProtocolIE-ID",
-	&asn_OP_NativeInteger,
-	asn_DEF_ProtocolIE_ID_tags_1,
-	sizeof(asn_DEF_ProtocolIE_ID_tags_1)
-		/sizeof(asn_DEF_ProtocolIE_ID_tags_1[0]), /* 1 */
-	asn_DEF_ProtocolIE_ID_tags_1,	/* Same as above */
-	sizeof(asn_DEF_ProtocolIE_ID_tags_1)
-		/sizeof(asn_DEF_ProtocolIE_ID_tags_1[0]), /* 1 */
-	{ &asn_OER_type_ProtocolIE_ID_constr_1, &asn_PER_type_ProtocolIE_ID_constr_1, ProtocolIE_ID_constraint },
-	0, 0,	/* No members */
-	0	/* No specifics */
-};
-
diff --git a/e2sm/lib/QCI.c b/e2sm/lib/QCI.c
index 61627ee..0261082 100644
--- a/e2sm/lib/QCI.c
+++ b/e2sm/lib/QCI.c
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
@@ -37,10 +37,10 @@
  * so here we adjust the DEF accordingly.
  */
 static asn_oer_constraints_t asn_OER_type_QCI_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
+	{ 1, 1 }	/* (0..255) */,
 	-1};
 asn_per_constraints_t asn_PER_type_QCI_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  8,  8,  0,  255 }	/* (0..255,...) */,
+	{ APC_CONSTRAINED,	 8,  8,  0,  255 }	/* (0..255) */,
 	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
 	0, 0	/* No PER value map */
 };
diff --git a/e2sm/lib/QoSID.c b/e2sm/lib/QoSID.c
new file mode 100644
index 0000000..ea37ef5
--- /dev/null
+++ b/e2sm/lib/QoSID.c
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "QoSID.h"
+
+static asn_oer_constraints_t asn_OER_type_QoSID_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_type_QoSID_constr_1 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_TYPE_member_t asn_MBR_QoSID_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct QoSID, choice.fiveGC),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_FiveQI,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"fiveGC"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct QoSID, choice.ePC),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_QCI,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ePC"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_QoSID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fiveGC */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ePC */
+};
+static asn_CHOICE_specifics_t asn_SPC_QoSID_specs_1 = {
+	sizeof(struct QoSID),
+	offsetof(struct QoSID, _asn_ctx),
+	offsetof(struct QoSID, present),
+	sizeof(((struct QoSID *)0)->present),
+	asn_MAP_QoSID_tag2el_1,
+	2,	/* Count of tags in the map */
+	0, 0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_QoSID = {
+	"QoSID",
+	"QoSID",
+	&asn_OP_CHOICE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ &asn_OER_type_QoSID_constr_1, &asn_PER_type_QoSID_constr_1, CHOICE_constraint },
+	asn_MBR_QoSID_1,
+	2,	/* Elements count */
+	&asn_SPC_QoSID_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/QosFlowIdentifier.c b/e2sm/lib/QosFlowIdentifier.c
new file mode 100644
index 0000000..f2bf382
--- /dev/null
+++ b/e2sm/lib/QosFlowIdentifier.c
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "QosFlowIdentifier.h"
+
+int
+QosFlowIdentifier_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 0 && value <= 63)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_QosFlowIdentifier_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_type_QosFlowIdentifier_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  6,  6,  0,  63 }	/* (0..63,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_QosFlowIdentifier_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_QosFlowIdentifier = {
+	"QosFlowIdentifier",
+	"QosFlowIdentifier",
+	&asn_OP_NativeInteger,
+	asn_DEF_QosFlowIdentifier_tags_1,
+	sizeof(asn_DEF_QosFlowIdentifier_tags_1)
+		/sizeof(asn_DEF_QosFlowIdentifier_tags_1[0]), /* 1 */
+	asn_DEF_QosFlowIdentifier_tags_1,	/* Same as above */
+	sizeof(asn_DEF_QosFlowIdentifier_tags_1)
+		/sizeof(asn_DEF_QosFlowIdentifier_tags_1[0]), /* 1 */
+	{ &asn_OER_type_QosFlowIdentifier_constr_1, &asn_PER_type_QosFlowIdentifier_constr_1, QosFlowIdentifier_constraint },
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/e2sm/lib/RAN-CallProcess-ID.c b/e2sm/lib/RAN-CallProcess-ID.c
new file mode 100644
index 0000000..20284f3
--- /dev/null
+++ b/e2sm/lib/RAN-CallProcess-ID.c
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RAN-CallProcess-ID.h"
+
+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;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1 && value <= 232)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_RAN_CallProcess_ID_constr_1 CC_NOTUSED = {
+	{ 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_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RAN_CallProcess_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RAN_CallProcess_ID = {
+	"RAN-CallProcess-ID",
+	"RAN-CallProcess-ID",
+	&asn_OP_NativeInteger,
+	asn_DEF_RAN_CallProcess_ID_tags_1,
+	sizeof(asn_DEF_RAN_CallProcess_ID_tags_1)
+		/sizeof(asn_DEF_RAN_CallProcess_ID_tags_1[0]), /* 1 */
+	asn_DEF_RAN_CallProcess_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RAN_CallProcess_ID_tags_1)
+		/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 */
+};
+
diff --git a/e2sm/lib/RAN-Container.c b/e2sm/lib/RAN-Container.c
deleted file mode 100644
index 00ae3b9..0000000
--- a/e2sm/lib/RAN-Container.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "RAN-Container.h"
-
-/*
- * This type is implemented using OCTET_STRING,
- * so here we adjust the DEF accordingly.
- */
-static const ber_tlv_tag_t asn_DEF_RAN_Container_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
-};
-asn_TYPE_descriptor_t asn_DEF_RAN_Container = {
-	"RAN-Container",
-	"RAN-Container",
-	&asn_OP_OCTET_STRING,
-	asn_DEF_RAN_Container_tags_1,
-	sizeof(asn_DEF_RAN_Container_tags_1)
-		/sizeof(asn_DEF_RAN_Container_tags_1[0]), /* 1 */
-	asn_DEF_RAN_Container_tags_1,	/* Same as above */
-	sizeof(asn_DEF_RAN_Container_tags_1)
-		/sizeof(asn_DEF_RAN_Container_tags_1[0]), /* 1 */
-	{ 0, 0, OCTET_STRING_constraint },
-	0, 0,	/* No members */
-	&asn_SPC_OCTET_STRING_specs	/* Additional specs */
-};
-
diff --git a/e2sm/lib/RAN-ControlParameter-Item.c b/e2sm/lib/RAN-ControlParameter-Item.c
deleted file mode 100644
index 4ae973e..0000000
--- a/e2sm/lib/RAN-ControlParameter-Item.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "RAN-ControlParameter-Item.h"
-
-asn_TYPE_member_t asn_MBR_RAN_ControlParameter_Item_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct RAN_ControlParameter_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 RAN_ControlParameter_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"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_RAN_ControlParameter_Item_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_RAN_ControlParameter_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_SEQUENCE_specifics_t asn_SPC_RAN_ControlParameter_Item_specs_1 = {
-	sizeof(struct RAN_ControlParameter_Item),
-	offsetof(struct RAN_ControlParameter_Item, _asn_ctx),
-	asn_MAP_RAN_ControlParameter_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_RAN_ControlParameter_Item = {
-	"RAN-ControlParameter-Item",
-	"RAN-ControlParameter-Item",
-	&asn_OP_SEQUENCE,
-	asn_DEF_RAN_ControlParameter_Item_tags_1,
-	sizeof(asn_DEF_RAN_ControlParameter_Item_tags_1)
-		/sizeof(asn_DEF_RAN_ControlParameter_Item_tags_1[0]), /* 1 */
-	asn_DEF_RAN_ControlParameter_Item_tags_1,	/* Same as above */
-	sizeof(asn_DEF_RAN_ControlParameter_Item_tags_1)
-		/sizeof(asn_DEF_RAN_ControlParameter_Item_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_RAN_ControlParameter_Item_1,
-	2,	/* Elements count */
-	&asn_SPC_RAN_ControlParameter_Item_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/RANFunctionDefinition-Control-Action-Item.c b/e2sm/lib/RANFunctionDefinition-Control-Action-Item.c
new file mode 100644
index 0000000..8cfa771
--- /dev/null
+++ b/e2sm/lib/RANFunctionDefinition-Control-Action-Item.c
@@ -0,0 +1,152 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANFunctionDefinition-Control-Action-Item.h"
+
+#include "ControlAction-RANParameter-Item.h"
+static int
+memb_ran_ControlActionParameters_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_ran_ControlActionParameters_List_constr_4 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_type_ran_ControlActionParameters_List_constr_4 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_ran_ControlActionParameters_List_constr_4 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_memb_ran_ControlActionParameters_List_constr_4 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_ran_ControlActionParameters_List_4[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_ControlAction_RANParameter_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ran_ControlActionParameters_List_tags_4[] = {
+	(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ran_ControlActionParameters_List_specs_4 = {
+	sizeof(struct RANFunctionDefinition_Control_Action_Item__ran_ControlActionParameters_List),
+	offsetof(struct RANFunctionDefinition_Control_Action_Item__ran_ControlActionParameters_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ran_ControlActionParameters_List_4 = {
+	"ran-ControlActionParameters-List",
+	"ran-ControlActionParameters-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ran_ControlActionParameters_List_tags_4,
+	sizeof(asn_DEF_ran_ControlActionParameters_List_tags_4)
+		/sizeof(asn_DEF_ran_ControlActionParameters_List_tags_4[0]) - 1, /* 1 */
+	asn_DEF_ran_ControlActionParameters_List_tags_4,	/* Same as above */
+	sizeof(asn_DEF_ran_ControlActionParameters_List_tags_4)
+		/sizeof(asn_DEF_ran_ControlActionParameters_List_tags_4[0]), /* 2 */
+	{ &asn_OER_type_ran_ControlActionParameters_List_constr_4, &asn_PER_type_ran_ControlActionParameters_List_constr_4, SEQUENCE_OF_constraint },
+	asn_MBR_ran_ControlActionParameters_List_4,
+	1,	/* Single element */
+	&asn_SPC_ran_ControlActionParameters_List_specs_4	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RANFunctionDefinition_Control_Action_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_Control_Action_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 RANFunctionDefinition_Control_Action_Item, ric_ControlAction_Name),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_ControlAction_Name,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-ControlAction-Name"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANFunctionDefinition_Control_Action_Item, ran_ControlActionParameters_List),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		0,
+		&asn_DEF_ran_ControlActionParameters_List_4,
+		0,
+		{ &asn_OER_memb_ran_ControlActionParameters_List_constr_4, &asn_PER_memb_ran_ControlActionParameters_List_constr_4,  memb_ran_ControlActionParameters_List_constraint_1 },
+		0, 0, /* No default value */
+		"ran-ControlActionParameters-List"
+		},
+};
+static const int asn_MAP_RANFunctionDefinition_Control_Action_Item_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANFunctionDefinition_Control_Action_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANFunctionDefinition_Control_Action_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-ControlAction-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-ControlAction-Name */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ran-ControlActionParameters-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANFunctionDefinition_Control_Action_Item_specs_1 = {
+	sizeof(struct RANFunctionDefinition_Control_Action_Item),
+	offsetof(struct RANFunctionDefinition_Control_Action_Item, _asn_ctx),
+	asn_MAP_RANFunctionDefinition_Control_Action_Item_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANFunctionDefinition_Control_Action_Item_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	3,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RANFunctionDefinition_Control_Action_Item = {
+	"RANFunctionDefinition-Control-Action-Item",
+	"RANFunctionDefinition-Control-Action-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANFunctionDefinition_Control_Action_Item_tags_1,
+	sizeof(asn_DEF_RANFunctionDefinition_Control_Action_Item_tags_1)
+		/sizeof(asn_DEF_RANFunctionDefinition_Control_Action_Item_tags_1[0]), /* 1 */
+	asn_DEF_RANFunctionDefinition_Control_Action_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANFunctionDefinition_Control_Action_Item_tags_1)
+		/sizeof(asn_DEF_RANFunctionDefinition_Control_Action_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANFunctionDefinition_Control_Action_Item_1,
+	3,	/* Elements count */
+	&asn_SPC_RANFunctionDefinition_Control_Action_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANFunctionDefinition-Control-Item.c b/e2sm/lib/RANFunctionDefinition-Control-Item.c
new file mode 100644
index 0000000..4497d29
--- /dev/null
+++ b/e2sm/lib/RANFunctionDefinition-Control-Item.c
@@ -0,0 +1,282 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANFunctionDefinition-Control-Item.h"
+
+#include "RANFunctionDefinition-Control-Action-Item.h"
+#include "ControlOutcome-RANParameter-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 <= 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 int
+memb_ran_ControlOutcomeParameters_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 <= 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_ric_ControlAction_List_constr_4 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_type_ric_ControlAction_List_constr_4 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_type_ran_ControlOutcomeParameters_List_constr_10 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..255)) */};
+static asn_per_constraints_t asn_PER_type_ran_ControlOutcomeParameters_List_constr_10 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 8,  8,  1,  255 }	/* (SIZE(1..255)) */,
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_ric_ControlAction_List_constr_4 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_memb_ric_ControlAction_List_constr_4 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_ran_ControlOutcomeParameters_List_constr_10 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..255)) */};
+static asn_per_constraints_t asn_PER_memb_ran_ControlOutcomeParameters_List_constr_10 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 8,  8,  1,  255 }	/* (SIZE(1..255)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ric_ControlAction_List_4[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_RANFunctionDefinition_Control_Action_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ric_ControlAction_List_tags_4[] = {
+	(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ric_ControlAction_List_specs_4 = {
+	sizeof(struct RANFunctionDefinition_Control_Item__ric_ControlAction_List),
+	offsetof(struct RANFunctionDefinition_Control_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_4 = {
+	"ric-ControlAction-List",
+	"ric-ControlAction-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ric_ControlAction_List_tags_4,
+	sizeof(asn_DEF_ric_ControlAction_List_tags_4)
+		/sizeof(asn_DEF_ric_ControlAction_List_tags_4[0]) - 1, /* 1 */
+	asn_DEF_ric_ControlAction_List_tags_4,	/* Same as above */
+	sizeof(asn_DEF_ric_ControlAction_List_tags_4)
+		/sizeof(asn_DEF_ric_ControlAction_List_tags_4[0]), /* 2 */
+	{ &asn_OER_type_ric_ControlAction_List_constr_4, &asn_PER_type_ric_ControlAction_List_constr_4, SEQUENCE_OF_constraint },
+	asn_MBR_ric_ControlAction_List_4,
+	1,	/* Single element */
+	&asn_SPC_ric_ControlAction_List_specs_4	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_ran_ControlOutcomeParameters_List_10[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_ControlOutcome_RANParameter_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ran_ControlOutcomeParameters_List_tags_10[] = {
+	(ASN_TAG_CLASS_CONTEXT | (7 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ran_ControlOutcomeParameters_List_specs_10 = {
+	sizeof(struct RANFunctionDefinition_Control_Item__ran_ControlOutcomeParameters_List),
+	offsetof(struct RANFunctionDefinition_Control_Item__ran_ControlOutcomeParameters_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ran_ControlOutcomeParameters_List_10 = {
+	"ran-ControlOutcomeParameters-List",
+	"ran-ControlOutcomeParameters-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ran_ControlOutcomeParameters_List_tags_10,
+	sizeof(asn_DEF_ran_ControlOutcomeParameters_List_tags_10)
+		/sizeof(asn_DEF_ran_ControlOutcomeParameters_List_tags_10[0]) - 1, /* 1 */
+	asn_DEF_ran_ControlOutcomeParameters_List_tags_10,	/* Same as above */
+	sizeof(asn_DEF_ran_ControlOutcomeParameters_List_tags_10)
+		/sizeof(asn_DEF_ran_ControlOutcomeParameters_List_tags_10[0]), /* 2 */
+	{ &asn_OER_type_ran_ControlOutcomeParameters_List_constr_10, &asn_PER_type_ran_ControlOutcomeParameters_List_constr_10, SEQUENCE_OF_constraint },
+	asn_MBR_ran_ControlOutcomeParameters_List_10,
+	1,	/* Single element */
+	&asn_SPC_ran_ControlOutcomeParameters_List_specs_10	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RANFunctionDefinition_Control_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_Control_Item, ric_ControlStyle_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 */
+		"ric-ControlStyle-Type"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_Control_Item, ric_ControlStyle_Name),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_Style_Name,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-ControlStyle-Name"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANFunctionDefinition_Control_Item, ric_ControlAction_List),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		0,
+		&asn_DEF_ric_ControlAction_List_4,
+		0,
+		{ &asn_OER_memb_ric_ControlAction_List_constr_4, &asn_PER_memb_ric_ControlAction_List_constr_4,  memb_ric_ControlAction_List_constraint_1 },
+		0, 0, /* No default value */
+		"ric-ControlAction-List"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_Control_Item, ric_ControlHeaderFormat_Type),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_Format_Type,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-ControlHeaderFormat-Type"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_Control_Item, ric_ControlMessageFormat_Type),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_Format_Type,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-ControlMessageFormat-Type"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANFunctionDefinition_Control_Item, ric_CallProcessIDFormat_Type),
+		(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_Format_Type,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-CallProcessIDFormat-Type"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_Control_Item, ric_ControlOutcomeFormat_Type),
+		(ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_Format_Type,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-ControlOutcomeFormat-Type"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANFunctionDefinition_Control_Item, ran_ControlOutcomeParameters_List),
+		(ASN_TAG_CLASS_CONTEXT | (7 << 2)),
+		0,
+		&asn_DEF_ran_ControlOutcomeParameters_List_10,
+		0,
+		{ &asn_OER_memb_ran_ControlOutcomeParameters_List_constr_10, &asn_PER_memb_ran_ControlOutcomeParameters_List_constr_10,  memb_ran_ControlOutcomeParameters_List_constraint_1 },
+		0, 0, /* No default value */
+		"ran-ControlOutcomeParameters-List"
+		},
+};
+static const int asn_MAP_RANFunctionDefinition_Control_Item_oms_1[] = { 2, 5, 7 };
+static const ber_tlv_tag_t asn_DEF_RANFunctionDefinition_Control_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANFunctionDefinition_Control_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-ControlStyle-Type */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-ControlStyle-Name */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ric-ControlAction-List */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ric-ControlHeaderFormat-Type */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* ric-ControlMessageFormat-Type */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* ric-CallProcessIDFormat-Type */
+    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* ric-ControlOutcomeFormat-Type */
+    { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* ran-ControlOutcomeParameters-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANFunctionDefinition_Control_Item_specs_1 = {
+	sizeof(struct RANFunctionDefinition_Control_Item),
+	offsetof(struct RANFunctionDefinition_Control_Item, _asn_ctx),
+	asn_MAP_RANFunctionDefinition_Control_Item_tag2el_1,
+	8,	/* Count of tags in the map */
+	asn_MAP_RANFunctionDefinition_Control_Item_oms_1,	/* Optional members */
+	3, 0,	/* Root/Additions */
+	8,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RANFunctionDefinition_Control_Item = {
+	"RANFunctionDefinition-Control-Item",
+	"RANFunctionDefinition-Control-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANFunctionDefinition_Control_Item_tags_1,
+	sizeof(asn_DEF_RANFunctionDefinition_Control_Item_tags_1)
+		/sizeof(asn_DEF_RANFunctionDefinition_Control_Item_tags_1[0]), /* 1 */
+	asn_DEF_RANFunctionDefinition_Control_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANFunctionDefinition_Control_Item_tags_1)
+		/sizeof(asn_DEF_RANFunctionDefinition_Control_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANFunctionDefinition_Control_Item_1,
+	8,	/* Elements count */
+	&asn_SPC_RANFunctionDefinition_Control_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANFunctionDefinition-Control.c b/e2sm/lib/RANFunctionDefinition-Control.c
new file mode 100644
index 0000000..ca30d07
--- /dev/null
+++ b/e2sm/lib/RANFunctionDefinition-Control.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANFunctionDefinition-Control.h"
+
+#include "RANFunctionDefinition-Control-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_RANFunctionDefinition_Control_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 RANFunctionDefinition_Control__ric_ControlStyle_List),
+	offsetof(struct RANFunctionDefinition_Control__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_RANFunctionDefinition_Control_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_Control, 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_RANFunctionDefinition_Control_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANFunctionDefinition_Control_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ric-ControlStyle-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANFunctionDefinition_Control_specs_1 = {
+	sizeof(struct RANFunctionDefinition_Control),
+	offsetof(struct RANFunctionDefinition_Control, _asn_ctx),
+	asn_MAP_RANFunctionDefinition_Control_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_RANFunctionDefinition_Control = {
+	"RANFunctionDefinition-Control",
+	"RANFunctionDefinition-Control",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANFunctionDefinition_Control_tags_1,
+	sizeof(asn_DEF_RANFunctionDefinition_Control_tags_1)
+		/sizeof(asn_DEF_RANFunctionDefinition_Control_tags_1[0]), /* 1 */
+	asn_DEF_RANFunctionDefinition_Control_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANFunctionDefinition_Control_tags_1)
+		/sizeof(asn_DEF_RANFunctionDefinition_Control_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANFunctionDefinition_Control_1,
+	1,	/* Elements count */
+	&asn_SPC_RANFunctionDefinition_Control_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANFunctionDefinition-EventTrigger-Breakpoint-Item.c b/e2sm/lib/RANFunctionDefinition-EventTrigger-Breakpoint-Item.c
new file mode 100644
index 0000000..e70a4f4
--- /dev/null
+++ b/e2sm/lib/RANFunctionDefinition-EventTrigger-Breakpoint-Item.c
@@ -0,0 +1,152 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANFunctionDefinition-EventTrigger-Breakpoint-Item.h"
+
+#include "CallProcessBreakpoint-RANParameter-Item.h"
+static int
+memb_ran_CallProcessBreakpointParameters_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_ran_CallProcessBreakpointParameters_List_constr_4 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_type_ran_CallProcessBreakpointParameters_List_constr_4 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_ran_CallProcessBreakpointParameters_List_constr_4 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_memb_ran_CallProcessBreakpointParameters_List_constr_4 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_ran_CallProcessBreakpointParameters_List_4[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_CallProcessBreakpoint_RANParameter_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ran_CallProcessBreakpointParameters_List_tags_4[] = {
+	(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ran_CallProcessBreakpointParameters_List_specs_4 = {
+	sizeof(struct RANFunctionDefinition_EventTrigger_Breakpoint_Item__ran_CallProcessBreakpointParameters_List),
+	offsetof(struct RANFunctionDefinition_EventTrigger_Breakpoint_Item__ran_CallProcessBreakpointParameters_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ran_CallProcessBreakpointParameters_List_4 = {
+	"ran-CallProcessBreakpointParameters-List",
+	"ran-CallProcessBreakpointParameters-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ran_CallProcessBreakpointParameters_List_tags_4,
+	sizeof(asn_DEF_ran_CallProcessBreakpointParameters_List_tags_4)
+		/sizeof(asn_DEF_ran_CallProcessBreakpointParameters_List_tags_4[0]) - 1, /* 1 */
+	asn_DEF_ran_CallProcessBreakpointParameters_List_tags_4,	/* Same as above */
+	sizeof(asn_DEF_ran_CallProcessBreakpointParameters_List_tags_4)
+		/sizeof(asn_DEF_ran_CallProcessBreakpointParameters_List_tags_4[0]), /* 2 */
+	{ &asn_OER_type_ran_CallProcessBreakpointParameters_List_constr_4, &asn_PER_type_ran_CallProcessBreakpointParameters_List_constr_4, SEQUENCE_OF_constraint },
+	asn_MBR_ran_CallProcessBreakpointParameters_List_4,
+	1,	/* Single element */
+	&asn_SPC_ran_CallProcessBreakpointParameters_List_specs_4	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RANFunctionDefinition_EventTrigger_Breakpoint_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_EventTrigger_Breakpoint_Item, callProcessBreakpoint_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_CallProcessBreakpoint_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"callProcessBreakpoint-ID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_EventTrigger_Breakpoint_Item, callProcessBreakpoint_Name),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_CallProcessBreakpoint_Name,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"callProcessBreakpoint-Name"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANFunctionDefinition_EventTrigger_Breakpoint_Item, ran_CallProcessBreakpointParameters_List),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		0,
+		&asn_DEF_ran_CallProcessBreakpointParameters_List_4,
+		0,
+		{ &asn_OER_memb_ran_CallProcessBreakpointParameters_List_constr_4, &asn_PER_memb_ran_CallProcessBreakpointParameters_List_constr_4,  memb_ran_CallProcessBreakpointParameters_List_constraint_1 },
+		0, 0, /* No default value */
+		"ran-CallProcessBreakpointParameters-List"
+		},
+};
+static const int asn_MAP_RANFunctionDefinition_EventTrigger_Breakpoint_Item_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANFunctionDefinition_EventTrigger_Breakpoint_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANFunctionDefinition_EventTrigger_Breakpoint_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* callProcessBreakpoint-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* callProcessBreakpoint-Name */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ran-CallProcessBreakpointParameters-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANFunctionDefinition_EventTrigger_Breakpoint_Item_specs_1 = {
+	sizeof(struct RANFunctionDefinition_EventTrigger_Breakpoint_Item),
+	offsetof(struct RANFunctionDefinition_EventTrigger_Breakpoint_Item, _asn_ctx),
+	asn_MAP_RANFunctionDefinition_EventTrigger_Breakpoint_Item_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANFunctionDefinition_EventTrigger_Breakpoint_Item_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	3,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RANFunctionDefinition_EventTrigger_Breakpoint_Item = {
+	"RANFunctionDefinition-EventTrigger-Breakpoint-Item",
+	"RANFunctionDefinition-EventTrigger-Breakpoint-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANFunctionDefinition_EventTrigger_Breakpoint_Item_tags_1,
+	sizeof(asn_DEF_RANFunctionDefinition_EventTrigger_Breakpoint_Item_tags_1)
+		/sizeof(asn_DEF_RANFunctionDefinition_EventTrigger_Breakpoint_Item_tags_1[0]), /* 1 */
+	asn_DEF_RANFunctionDefinition_EventTrigger_Breakpoint_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANFunctionDefinition_EventTrigger_Breakpoint_Item_tags_1)
+		/sizeof(asn_DEF_RANFunctionDefinition_EventTrigger_Breakpoint_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANFunctionDefinition_EventTrigger_Breakpoint_Item_1,
+	3,	/* Elements count */
+	&asn_SPC_RANFunctionDefinition_EventTrigger_Breakpoint_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANFunctionDefinition-EventTrigger-CallProcess-Item.c b/e2sm/lib/RANFunctionDefinition-EventTrigger-CallProcess-Item.c
new file mode 100644
index 0000000..58e1815
--- /dev/null
+++ b/e2sm/lib/RANFunctionDefinition-EventTrigger-CallProcess-Item.c
@@ -0,0 +1,150 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANFunctionDefinition-EventTrigger-CallProcess-Item.h"
+
+#include "RANFunctionDefinition-EventTrigger-Breakpoint-Item.h"
+static int
+memb_callProcessBreakpoints_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_callProcessBreakpoints_List_constr_4 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_type_callProcessBreakpoints_List_constr_4 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_callProcessBreakpoints_List_constr_4 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_memb_callProcessBreakpoints_List_constr_4 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_callProcessBreakpoints_List_4[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_RANFunctionDefinition_EventTrigger_Breakpoint_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_callProcessBreakpoints_List_tags_4[] = {
+	(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_callProcessBreakpoints_List_specs_4 = {
+	sizeof(struct RANFunctionDefinition_EventTrigger_CallProcess_Item__callProcessBreakpoints_List),
+	offsetof(struct RANFunctionDefinition_EventTrigger_CallProcess_Item__callProcessBreakpoints_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_callProcessBreakpoints_List_4 = {
+	"callProcessBreakpoints-List",
+	"callProcessBreakpoints-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_callProcessBreakpoints_List_tags_4,
+	sizeof(asn_DEF_callProcessBreakpoints_List_tags_4)
+		/sizeof(asn_DEF_callProcessBreakpoints_List_tags_4[0]) - 1, /* 1 */
+	asn_DEF_callProcessBreakpoints_List_tags_4,	/* Same as above */
+	sizeof(asn_DEF_callProcessBreakpoints_List_tags_4)
+		/sizeof(asn_DEF_callProcessBreakpoints_List_tags_4[0]), /* 2 */
+	{ &asn_OER_type_callProcessBreakpoints_List_constr_4, &asn_PER_type_callProcessBreakpoints_List_constr_4, SEQUENCE_OF_constraint },
+	asn_MBR_callProcessBreakpoints_List_4,
+	1,	/* Single element */
+	&asn_SPC_callProcessBreakpoints_List_specs_4	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RANFunctionDefinition_EventTrigger_CallProcess_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_EventTrigger_CallProcess_Item, callProcessType_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_CallProcessType_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"callProcessType-ID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_EventTrigger_CallProcess_Item, callProcessType_Name),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_CallProcessType_Name,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"callProcessType-Name"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_EventTrigger_CallProcess_Item, callProcessBreakpoints_List),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		0,
+		&asn_DEF_callProcessBreakpoints_List_4,
+		0,
+		{ &asn_OER_memb_callProcessBreakpoints_List_constr_4, &asn_PER_memb_callProcessBreakpoints_List_constr_4,  memb_callProcessBreakpoints_List_constraint_1 },
+		0, 0, /* No default value */
+		"callProcessBreakpoints-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANFunctionDefinition_EventTrigger_CallProcess_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANFunctionDefinition_EventTrigger_CallProcess_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* callProcessType-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* callProcessType-Name */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* callProcessBreakpoints-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANFunctionDefinition_EventTrigger_CallProcess_Item_specs_1 = {
+	sizeof(struct RANFunctionDefinition_EventTrigger_CallProcess_Item),
+	offsetof(struct RANFunctionDefinition_EventTrigger_CallProcess_Item, _asn_ctx),
+	asn_MAP_RANFunctionDefinition_EventTrigger_CallProcess_Item_tag2el_1,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	3,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RANFunctionDefinition_EventTrigger_CallProcess_Item = {
+	"RANFunctionDefinition-EventTrigger-CallProcess-Item",
+	"RANFunctionDefinition-EventTrigger-CallProcess-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANFunctionDefinition_EventTrigger_CallProcess_Item_tags_1,
+	sizeof(asn_DEF_RANFunctionDefinition_EventTrigger_CallProcess_Item_tags_1)
+		/sizeof(asn_DEF_RANFunctionDefinition_EventTrigger_CallProcess_Item_tags_1[0]), /* 1 */
+	asn_DEF_RANFunctionDefinition_EventTrigger_CallProcess_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANFunctionDefinition_EventTrigger_CallProcess_Item_tags_1)
+		/sizeof(asn_DEF_RANFunctionDefinition_EventTrigger_CallProcess_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANFunctionDefinition_EventTrigger_CallProcess_Item_1,
+	3,	/* Elements count */
+	&asn_SPC_RANFunctionDefinition_EventTrigger_CallProcess_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANFunctionDefinition-EventTrigger-Style-Item.c b/e2sm/lib/RANFunctionDefinition-EventTrigger-Style-Item.c
new file mode 100644
index 0000000..2181f74
--- /dev/null
+++ b/e2sm/lib/RANFunctionDefinition-EventTrigger-Style-Item.c
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANFunctionDefinition-EventTrigger-Style-Item.h"
+
+asn_TYPE_member_t asn_MBR_RANFunctionDefinition_EventTrigger_Style_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_EventTrigger_Style_Item, ric_EventTriggerStyle_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 */
+		"ric-EventTriggerStyle-Type"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_EventTrigger_Style_Item, ric_EventTriggerStyle_Name),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_Style_Name,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-EventTriggerStyle-Name"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_EventTrigger_Style_Item, ric_EventTriggerFormat_Type),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_Format_Type,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-EventTriggerFormat-Type"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANFunctionDefinition_EventTrigger_Style_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANFunctionDefinition_EventTrigger_Style_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-EventTriggerStyle-Type */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-EventTriggerStyle-Name */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ric-EventTriggerFormat-Type */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANFunctionDefinition_EventTrigger_Style_Item_specs_1 = {
+	sizeof(struct RANFunctionDefinition_EventTrigger_Style_Item),
+	offsetof(struct RANFunctionDefinition_EventTrigger_Style_Item, _asn_ctx),
+	asn_MAP_RANFunctionDefinition_EventTrigger_Style_Item_tag2el_1,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	3,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RANFunctionDefinition_EventTrigger_Style_Item = {
+	"RANFunctionDefinition-EventTrigger-Style-Item",
+	"RANFunctionDefinition-EventTrigger-Style-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANFunctionDefinition_EventTrigger_Style_Item_tags_1,
+	sizeof(asn_DEF_RANFunctionDefinition_EventTrigger_Style_Item_tags_1)
+		/sizeof(asn_DEF_RANFunctionDefinition_EventTrigger_Style_Item_tags_1[0]), /* 1 */
+	asn_DEF_RANFunctionDefinition_EventTrigger_Style_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANFunctionDefinition_EventTrigger_Style_Item_tags_1)
+		/sizeof(asn_DEF_RANFunctionDefinition_EventTrigger_Style_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANFunctionDefinition_EventTrigger_Style_Item_1,
+	3,	/* Elements count */
+	&asn_SPC_RANFunctionDefinition_EventTrigger_Style_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANFunctionDefinition-EventTrigger.c b/e2sm/lib/RANFunctionDefinition-EventTrigger.c
new file mode 100644
index 0000000..fab4046
--- /dev/null
+++ b/e2sm/lib/RANFunctionDefinition-EventTrigger.c
@@ -0,0 +1,492 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANFunctionDefinition-EventTrigger.h"
+
+#include "RANFunctionDefinition-EventTrigger-Style-Item.h"
+#include "L2Parameters-RANParameter-Item.h"
+#include "RANFunctionDefinition-EventTrigger-CallProcess-Item.h"
+#include "UEIdentification-RANParameter-Item.h"
+#include "CellIdentification-RANParameter-Item.h"
+static int
+memb_ric_EventTriggerStyle_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 int
+memb_ran_L2Parameters_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 int
+memb_ran_CallProcessTypes_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 int
+memb_ran_UEIdentificationParameters_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 int
+memb_ran_CellIdentificationParameters_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_ric_EventTriggerStyle_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..63)) */};
+static asn_per_constraints_t asn_PER_type_ric_EventTriggerStyle_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_type_ran_L2Parameters_List_constr_4 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_type_ran_L2Parameters_List_constr_4 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_type_ran_CallProcessTypes_List_constr_6 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_type_ran_CallProcessTypes_List_constr_6 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_type_ran_UEIdentificationParameters_List_constr_8 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_type_ran_UEIdentificationParameters_List_constr_8 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_type_ran_CellIdentificationParameters_List_constr_10 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_type_ran_CellIdentificationParameters_List_constr_10 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_ric_EventTriggerStyle_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..63)) */};
+static asn_per_constraints_t asn_PER_memb_ric_EventTriggerStyle_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_ran_L2Parameters_List_constr_4 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_memb_ran_L2Parameters_List_constr_4 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_ran_CallProcessTypes_List_constr_6 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_memb_ran_CallProcessTypes_List_constr_6 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_ran_UEIdentificationParameters_List_constr_8 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_memb_ran_UEIdentificationParameters_List_constr_8 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_ran_CellIdentificationParameters_List_constr_10 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_memb_ran_CellIdentificationParameters_List_constr_10 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_ric_EventTriggerStyle_List_2[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_RANFunctionDefinition_EventTrigger_Style_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ric_EventTriggerStyle_List_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ric_EventTriggerStyle_List_specs_2 = {
+	sizeof(struct RANFunctionDefinition_EventTrigger__ric_EventTriggerStyle_List),
+	offsetof(struct RANFunctionDefinition_EventTrigger__ric_EventTriggerStyle_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ric_EventTriggerStyle_List_2 = {
+	"ric-EventTriggerStyle-List",
+	"ric-EventTriggerStyle-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ric_EventTriggerStyle_List_tags_2,
+	sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_2)
+		/sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_2[0]) - 1, /* 1 */
+	asn_DEF_ric_EventTriggerStyle_List_tags_2,	/* Same as above */
+	sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_2)
+		/sizeof(asn_DEF_ric_EventTriggerStyle_List_tags_2[0]), /* 2 */
+	{ &asn_OER_type_ric_EventTriggerStyle_List_constr_2, &asn_PER_type_ric_EventTriggerStyle_List_constr_2, SEQUENCE_OF_constraint },
+	asn_MBR_ric_EventTriggerStyle_List_2,
+	1,	/* Single element */
+	&asn_SPC_ric_EventTriggerStyle_List_specs_2	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_ran_L2Parameters_List_4[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_L2Parameters_RANParameter_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ran_L2Parameters_List_tags_4[] = {
+	(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ran_L2Parameters_List_specs_4 = {
+	sizeof(struct RANFunctionDefinition_EventTrigger__ran_L2Parameters_List),
+	offsetof(struct RANFunctionDefinition_EventTrigger__ran_L2Parameters_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ran_L2Parameters_List_4 = {
+	"ran-L2Parameters-List",
+	"ran-L2Parameters-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ran_L2Parameters_List_tags_4,
+	sizeof(asn_DEF_ran_L2Parameters_List_tags_4)
+		/sizeof(asn_DEF_ran_L2Parameters_List_tags_4[0]) - 1, /* 1 */
+	asn_DEF_ran_L2Parameters_List_tags_4,	/* Same as above */
+	sizeof(asn_DEF_ran_L2Parameters_List_tags_4)
+		/sizeof(asn_DEF_ran_L2Parameters_List_tags_4[0]), /* 2 */
+	{ &asn_OER_type_ran_L2Parameters_List_constr_4, &asn_PER_type_ran_L2Parameters_List_constr_4, SEQUENCE_OF_constraint },
+	asn_MBR_ran_L2Parameters_List_4,
+	1,	/* Single element */
+	&asn_SPC_ran_L2Parameters_List_specs_4	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_ran_CallProcessTypes_List_6[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_RANFunctionDefinition_EventTrigger_CallProcess_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ran_CallProcessTypes_List_tags_6[] = {
+	(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ran_CallProcessTypes_List_specs_6 = {
+	sizeof(struct RANFunctionDefinition_EventTrigger__ran_CallProcessTypes_List),
+	offsetof(struct RANFunctionDefinition_EventTrigger__ran_CallProcessTypes_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ran_CallProcessTypes_List_6 = {
+	"ran-CallProcessTypes-List",
+	"ran-CallProcessTypes-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ran_CallProcessTypes_List_tags_6,
+	sizeof(asn_DEF_ran_CallProcessTypes_List_tags_6)
+		/sizeof(asn_DEF_ran_CallProcessTypes_List_tags_6[0]) - 1, /* 1 */
+	asn_DEF_ran_CallProcessTypes_List_tags_6,	/* Same as above */
+	sizeof(asn_DEF_ran_CallProcessTypes_List_tags_6)
+		/sizeof(asn_DEF_ran_CallProcessTypes_List_tags_6[0]), /* 2 */
+	{ &asn_OER_type_ran_CallProcessTypes_List_constr_6, &asn_PER_type_ran_CallProcessTypes_List_constr_6, SEQUENCE_OF_constraint },
+	asn_MBR_ran_CallProcessTypes_List_6,
+	1,	/* Single element */
+	&asn_SPC_ran_CallProcessTypes_List_specs_6	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_ran_UEIdentificationParameters_List_8[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_UEIdentification_RANParameter_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ran_UEIdentificationParameters_List_tags_8[] = {
+	(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ran_UEIdentificationParameters_List_specs_8 = {
+	sizeof(struct RANFunctionDefinition_EventTrigger__ran_UEIdentificationParameters_List),
+	offsetof(struct RANFunctionDefinition_EventTrigger__ran_UEIdentificationParameters_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ran_UEIdentificationParameters_List_8 = {
+	"ran-UEIdentificationParameters-List",
+	"ran-UEIdentificationParameters-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ran_UEIdentificationParameters_List_tags_8,
+	sizeof(asn_DEF_ran_UEIdentificationParameters_List_tags_8)
+		/sizeof(asn_DEF_ran_UEIdentificationParameters_List_tags_8[0]) - 1, /* 1 */
+	asn_DEF_ran_UEIdentificationParameters_List_tags_8,	/* Same as above */
+	sizeof(asn_DEF_ran_UEIdentificationParameters_List_tags_8)
+		/sizeof(asn_DEF_ran_UEIdentificationParameters_List_tags_8[0]), /* 2 */
+	{ &asn_OER_type_ran_UEIdentificationParameters_List_constr_8, &asn_PER_type_ran_UEIdentificationParameters_List_constr_8, SEQUENCE_OF_constraint },
+	asn_MBR_ran_UEIdentificationParameters_List_8,
+	1,	/* Single element */
+	&asn_SPC_ran_UEIdentificationParameters_List_specs_8	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_ran_CellIdentificationParameters_List_10[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_CellIdentification_RANParameter_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ran_CellIdentificationParameters_List_tags_10[] = {
+	(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ran_CellIdentificationParameters_List_specs_10 = {
+	sizeof(struct RANFunctionDefinition_EventTrigger__ran_CellIdentificationParameters_List),
+	offsetof(struct RANFunctionDefinition_EventTrigger__ran_CellIdentificationParameters_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ran_CellIdentificationParameters_List_10 = {
+	"ran-CellIdentificationParameters-List",
+	"ran-CellIdentificationParameters-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ran_CellIdentificationParameters_List_tags_10,
+	sizeof(asn_DEF_ran_CellIdentificationParameters_List_tags_10)
+		/sizeof(asn_DEF_ran_CellIdentificationParameters_List_tags_10[0]) - 1, /* 1 */
+	asn_DEF_ran_CellIdentificationParameters_List_tags_10,	/* Same as above */
+	sizeof(asn_DEF_ran_CellIdentificationParameters_List_tags_10)
+		/sizeof(asn_DEF_ran_CellIdentificationParameters_List_tags_10[0]), /* 2 */
+	{ &asn_OER_type_ran_CellIdentificationParameters_List_constr_10, &asn_PER_type_ran_CellIdentificationParameters_List_constr_10, SEQUENCE_OF_constraint },
+	asn_MBR_ran_CellIdentificationParameters_List_10,
+	1,	/* Single element */
+	&asn_SPC_ran_CellIdentificationParameters_List_specs_10	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RANFunctionDefinition_EventTrigger_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_EventTrigger, ric_EventTriggerStyle_List),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_ric_EventTriggerStyle_List_2,
+		0,
+		{ &asn_OER_memb_ric_EventTriggerStyle_List_constr_2, &asn_PER_memb_ric_EventTriggerStyle_List_constr_2,  memb_ric_EventTriggerStyle_List_constraint_1 },
+		0, 0, /* No default value */
+		"ric-EventTriggerStyle-List"
+		},
+	{ ATF_POINTER, 4, offsetof(struct RANFunctionDefinition_EventTrigger, ran_L2Parameters_List),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		0,
+		&asn_DEF_ran_L2Parameters_List_4,
+		0,
+		{ &asn_OER_memb_ran_L2Parameters_List_constr_4, &asn_PER_memb_ran_L2Parameters_List_constr_4,  memb_ran_L2Parameters_List_constraint_1 },
+		0, 0, /* No default value */
+		"ran-L2Parameters-List"
+		},
+	{ ATF_POINTER, 3, offsetof(struct RANFunctionDefinition_EventTrigger, ran_CallProcessTypes_List),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		0,
+		&asn_DEF_ran_CallProcessTypes_List_6,
+		0,
+		{ &asn_OER_memb_ran_CallProcessTypes_List_constr_6, &asn_PER_memb_ran_CallProcessTypes_List_constr_6,  memb_ran_CallProcessTypes_List_constraint_1 },
+		0, 0, /* No default value */
+		"ran-CallProcessTypes-List"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANFunctionDefinition_EventTrigger, ran_UEIdentificationParameters_List),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		0,
+		&asn_DEF_ran_UEIdentificationParameters_List_8,
+		0,
+		{ &asn_OER_memb_ran_UEIdentificationParameters_List_constr_8, &asn_PER_memb_ran_UEIdentificationParameters_List_constr_8,  memb_ran_UEIdentificationParameters_List_constraint_1 },
+		0, 0, /* No default value */
+		"ran-UEIdentificationParameters-List"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANFunctionDefinition_EventTrigger, ran_CellIdentificationParameters_List),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		0,
+		&asn_DEF_ran_CellIdentificationParameters_List_10,
+		0,
+		{ &asn_OER_memb_ran_CellIdentificationParameters_List_constr_10, &asn_PER_memb_ran_CellIdentificationParameters_List_constr_10,  memb_ran_CellIdentificationParameters_List_constraint_1 },
+		0, 0, /* No default value */
+		"ran-CellIdentificationParameters-List"
+		},
+};
+static const int asn_MAP_RANFunctionDefinition_EventTrigger_oms_1[] = { 1, 2, 3, 4 };
+static const ber_tlv_tag_t asn_DEF_RANFunctionDefinition_EventTrigger_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANFunctionDefinition_EventTrigger_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-EventTriggerStyle-List */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ran-L2Parameters-List */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ran-CallProcessTypes-List */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ran-UEIdentificationParameters-List */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* ran-CellIdentificationParameters-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANFunctionDefinition_EventTrigger_specs_1 = {
+	sizeof(struct RANFunctionDefinition_EventTrigger),
+	offsetof(struct RANFunctionDefinition_EventTrigger, _asn_ctx),
+	asn_MAP_RANFunctionDefinition_EventTrigger_tag2el_1,
+	5,	/* Count of tags in the map */
+	asn_MAP_RANFunctionDefinition_EventTrigger_oms_1,	/* Optional members */
+	4, 0,	/* Root/Additions */
+	5,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RANFunctionDefinition_EventTrigger = {
+	"RANFunctionDefinition-EventTrigger",
+	"RANFunctionDefinition-EventTrigger",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANFunctionDefinition_EventTrigger_tags_1,
+	sizeof(asn_DEF_RANFunctionDefinition_EventTrigger_tags_1)
+		/sizeof(asn_DEF_RANFunctionDefinition_EventTrigger_tags_1[0]), /* 1 */
+	asn_DEF_RANFunctionDefinition_EventTrigger_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANFunctionDefinition_EventTrigger_tags_1)
+		/sizeof(asn_DEF_RANFunctionDefinition_EventTrigger_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANFunctionDefinition_EventTrigger_1,
+	5,	/* Elements count */
+	&asn_SPC_RANFunctionDefinition_EventTrigger_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANFunctionDefinition-Insert-Indication-Item.c b/e2sm/lib/RANFunctionDefinition-Insert-Indication-Item.c
new file mode 100644
index 0000000..b26f955
--- /dev/null
+++ b/e2sm/lib/RANFunctionDefinition-Insert-Indication-Item.c
@@ -0,0 +1,152 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANFunctionDefinition-Insert-Indication-Item.h"
+
+#include "InsertIndication-RANParameter-Item.h"
+static int
+memb_ran_InsertIndicationParameters_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_ran_InsertIndicationParameters_List_constr_4 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_type_ran_InsertIndicationParameters_List_constr_4 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_ran_InsertIndicationParameters_List_constr_4 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_memb_ran_InsertIndicationParameters_List_constr_4 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_ran_InsertIndicationParameters_List_4[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_InsertIndication_RANParameter_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ran_InsertIndicationParameters_List_tags_4[] = {
+	(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ran_InsertIndicationParameters_List_specs_4 = {
+	sizeof(struct RANFunctionDefinition_Insert_Indication_Item__ran_InsertIndicationParameters_List),
+	offsetof(struct RANFunctionDefinition_Insert_Indication_Item__ran_InsertIndicationParameters_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ran_InsertIndicationParameters_List_4 = {
+	"ran-InsertIndicationParameters-List",
+	"ran-InsertIndicationParameters-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ran_InsertIndicationParameters_List_tags_4,
+	sizeof(asn_DEF_ran_InsertIndicationParameters_List_tags_4)
+		/sizeof(asn_DEF_ran_InsertIndicationParameters_List_tags_4[0]) - 1, /* 1 */
+	asn_DEF_ran_InsertIndicationParameters_List_tags_4,	/* Same as above */
+	sizeof(asn_DEF_ran_InsertIndicationParameters_List_tags_4)
+		/sizeof(asn_DEF_ran_InsertIndicationParameters_List_tags_4[0]), /* 2 */
+	{ &asn_OER_type_ran_InsertIndicationParameters_List_constr_4, &asn_PER_type_ran_InsertIndicationParameters_List_constr_4, SEQUENCE_OF_constraint },
+	asn_MBR_ran_InsertIndicationParameters_List_4,
+	1,	/* Single element */
+	&asn_SPC_ran_InsertIndicationParameters_List_specs_4	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RANFunctionDefinition_Insert_Indication_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_Insert_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 RANFunctionDefinition_Insert_Indication_Item, ric_InsertIndication_Name),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_InsertIndication_Name,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-InsertIndication-Name"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANFunctionDefinition_Insert_Indication_Item, ran_InsertIndicationParameters_List),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		0,
+		&asn_DEF_ran_InsertIndicationParameters_List_4,
+		0,
+		{ &asn_OER_memb_ran_InsertIndicationParameters_List_constr_4, &asn_PER_memb_ran_InsertIndicationParameters_List_constr_4,  memb_ran_InsertIndicationParameters_List_constraint_1 },
+		0, 0, /* No default value */
+		"ran-InsertIndicationParameters-List"
+		},
+};
+static const int asn_MAP_RANFunctionDefinition_Insert_Indication_Item_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANFunctionDefinition_Insert_Indication_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANFunctionDefinition_Insert_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 }, /* ric-InsertIndication-Name */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ran-InsertIndicationParameters-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANFunctionDefinition_Insert_Indication_Item_specs_1 = {
+	sizeof(struct RANFunctionDefinition_Insert_Indication_Item),
+	offsetof(struct RANFunctionDefinition_Insert_Indication_Item, _asn_ctx),
+	asn_MAP_RANFunctionDefinition_Insert_Indication_Item_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANFunctionDefinition_Insert_Indication_Item_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	3,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RANFunctionDefinition_Insert_Indication_Item = {
+	"RANFunctionDefinition-Insert-Indication-Item",
+	"RANFunctionDefinition-Insert-Indication-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANFunctionDefinition_Insert_Indication_Item_tags_1,
+	sizeof(asn_DEF_RANFunctionDefinition_Insert_Indication_Item_tags_1)
+		/sizeof(asn_DEF_RANFunctionDefinition_Insert_Indication_Item_tags_1[0]), /* 1 */
+	asn_DEF_RANFunctionDefinition_Insert_Indication_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANFunctionDefinition_Insert_Indication_Item_tags_1)
+		/sizeof(asn_DEF_RANFunctionDefinition_Insert_Indication_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANFunctionDefinition_Insert_Indication_Item_1,
+	3,	/* Elements count */
+	&asn_SPC_RANFunctionDefinition_Insert_Indication_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANFunctionDefinition-Insert-Item.c b/e2sm/lib/RANFunctionDefinition-Insert-Item.c
new file mode 100644
index 0000000..009195a
--- /dev/null
+++ b/e2sm/lib/RANFunctionDefinition-Insert-Item.c
@@ -0,0 +1,202 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANFunctionDefinition-Insert-Item.h"
+
+#include "RANFunctionDefinition-Insert-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 <= 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_ric_InsertIndication_List_constr_6 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_type_ric_InsertIndication_List_constr_6 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_ric_InsertIndication_List_constr_6 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_memb_ric_InsertIndication_List_constr_6 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_ric_InsertIndication_List_6[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_RANFunctionDefinition_Insert_Indication_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ric_InsertIndication_List_tags_6[] = {
+	(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ric_InsertIndication_List_specs_6 = {
+	sizeof(struct RANFunctionDefinition_Insert_Item__ric_InsertIndication_List),
+	offsetof(struct RANFunctionDefinition_Insert_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_6 = {
+	"ric-InsertIndication-List",
+	"ric-InsertIndication-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ric_InsertIndication_List_tags_6,
+	sizeof(asn_DEF_ric_InsertIndication_List_tags_6)
+		/sizeof(asn_DEF_ric_InsertIndication_List_tags_6[0]) - 1, /* 1 */
+	asn_DEF_ric_InsertIndication_List_tags_6,	/* Same as above */
+	sizeof(asn_DEF_ric_InsertIndication_List_tags_6)
+		/sizeof(asn_DEF_ric_InsertIndication_List_tags_6[0]), /* 2 */
+	{ &asn_OER_type_ric_InsertIndication_List_constr_6, &asn_PER_type_ric_InsertIndication_List_constr_6, SEQUENCE_OF_constraint },
+	asn_MBR_ric_InsertIndication_List_6,
+	1,	/* Single element */
+	&asn_SPC_ric_InsertIndication_List_specs_6	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RANFunctionDefinition_Insert_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_Insert_Item, ric_InsertStyle_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 */
+		"ric-InsertStyle-Type"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_Insert_Item, ric_InsertStyle_Name),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_Style_Name,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-InsertStyle-Name"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_Insert_Item, ric_SupportedEventTriggerStyle_Type),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_Style_Type,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-SupportedEventTriggerStyle-Type"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_Insert_Item, ric_ActionDefinitionFormat_Type),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_Format_Type,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-ActionDefinitionFormat-Type"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANFunctionDefinition_Insert_Item, ric_InsertIndication_List),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		0,
+		&asn_DEF_ric_InsertIndication_List_6,
+		0,
+		{ &asn_OER_memb_ric_InsertIndication_List_constr_6, &asn_PER_memb_ric_InsertIndication_List_constr_6,  memb_ric_InsertIndication_List_constraint_1 },
+		0, 0, /* No default value */
+		"ric-InsertIndication-List"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_Insert_Item, ric_IndicationHeaderFormat_Type),
+		(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_Format_Type,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-IndicationHeaderFormat-Type"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_Insert_Item, ric_IndicationMessageFormat_Type),
+		(ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_Format_Type,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-IndicationMessageFormat-Type"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_Insert_Item, ric_CallProcessIDFormat_Type),
+		(ASN_TAG_CLASS_CONTEXT | (7 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_Format_Type,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-CallProcessIDFormat-Type"
+		},
+};
+static const int asn_MAP_RANFunctionDefinition_Insert_Item_oms_1[] = { 4 };
+static const ber_tlv_tag_t asn_DEF_RANFunctionDefinition_Insert_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANFunctionDefinition_Insert_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-InsertStyle-Type */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-InsertStyle-Name */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ric-SupportedEventTriggerStyle-Type */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ric-ActionDefinitionFormat-Type */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* ric-InsertIndication-List */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* ric-IndicationHeaderFormat-Type */
+    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* ric-IndicationMessageFormat-Type */
+    { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* ric-CallProcessIDFormat-Type */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANFunctionDefinition_Insert_Item_specs_1 = {
+	sizeof(struct RANFunctionDefinition_Insert_Item),
+	offsetof(struct RANFunctionDefinition_Insert_Item, _asn_ctx),
+	asn_MAP_RANFunctionDefinition_Insert_Item_tag2el_1,
+	8,	/* Count of tags in the map */
+	asn_MAP_RANFunctionDefinition_Insert_Item_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	8,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RANFunctionDefinition_Insert_Item = {
+	"RANFunctionDefinition-Insert-Item",
+	"RANFunctionDefinition-Insert-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANFunctionDefinition_Insert_Item_tags_1,
+	sizeof(asn_DEF_RANFunctionDefinition_Insert_Item_tags_1)
+		/sizeof(asn_DEF_RANFunctionDefinition_Insert_Item_tags_1[0]), /* 1 */
+	asn_DEF_RANFunctionDefinition_Insert_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANFunctionDefinition_Insert_Item_tags_1)
+		/sizeof(asn_DEF_RANFunctionDefinition_Insert_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANFunctionDefinition_Insert_Item_1,
+	8,	/* Elements count */
+	&asn_SPC_RANFunctionDefinition_Insert_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANFunctionDefinition-Insert.c b/e2sm/lib/RANFunctionDefinition-Insert.c
new file mode 100644
index 0000000..462454f
--- /dev/null
+++ b/e2sm/lib/RANFunctionDefinition-Insert.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANFunctionDefinition-Insert.h"
+
+#include "RANFunctionDefinition-Insert-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_RANFunctionDefinition_Insert_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 RANFunctionDefinition_Insert__ric_InsertStyle_List),
+	offsetof(struct RANFunctionDefinition_Insert__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_RANFunctionDefinition_Insert_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_Insert, 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_RANFunctionDefinition_Insert_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANFunctionDefinition_Insert_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ric-InsertStyle-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANFunctionDefinition_Insert_specs_1 = {
+	sizeof(struct RANFunctionDefinition_Insert),
+	offsetof(struct RANFunctionDefinition_Insert, _asn_ctx),
+	asn_MAP_RANFunctionDefinition_Insert_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_RANFunctionDefinition_Insert = {
+	"RANFunctionDefinition-Insert",
+	"RANFunctionDefinition-Insert",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANFunctionDefinition_Insert_tags_1,
+	sizeof(asn_DEF_RANFunctionDefinition_Insert_tags_1)
+		/sizeof(asn_DEF_RANFunctionDefinition_Insert_tags_1[0]), /* 1 */
+	asn_DEF_RANFunctionDefinition_Insert_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANFunctionDefinition_Insert_tags_1)
+		/sizeof(asn_DEF_RANFunctionDefinition_Insert_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANFunctionDefinition_Insert_1,
+	1,	/* Elements count */
+	&asn_SPC_RANFunctionDefinition_Insert_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANFunctionDefinition-Policy-Action-Item.c b/e2sm/lib/RANFunctionDefinition-Policy-Action-Item.c
new file mode 100644
index 0000000..81fd3a8
--- /dev/null
+++ b/e2sm/lib/RANFunctionDefinition-Policy-Action-Item.c
@@ -0,0 +1,252 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANFunctionDefinition-Policy-Action-Item.h"
+
+#include "PolicyAction-RANParameter-Item.h"
+#include "PolicyCondition-RANParameter-Item.h"
+static int
+memb_ran_PolicyActionParameters_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 int
+memb_ran_PolicyConditionParameters_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_ran_PolicyActionParameters_List_constr_5 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_type_ran_PolicyActionParameters_List_constr_5 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_type_ran_PolicyConditionParameters_List_constr_7 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_type_ran_PolicyConditionParameters_List_constr_7 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_ran_PolicyActionParameters_List_constr_5 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_memb_ran_PolicyActionParameters_List_constr_5 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_ran_PolicyConditionParameters_List_constr_7 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_memb_ran_PolicyConditionParameters_List_constr_7 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_ran_PolicyActionParameters_List_5[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_PolicyAction_RANParameter_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ran_PolicyActionParameters_List_tags_5[] = {
+	(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ran_PolicyActionParameters_List_specs_5 = {
+	sizeof(struct RANFunctionDefinition_Policy_Action_Item__ran_PolicyActionParameters_List),
+	offsetof(struct RANFunctionDefinition_Policy_Action_Item__ran_PolicyActionParameters_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ran_PolicyActionParameters_List_5 = {
+	"ran-PolicyActionParameters-List",
+	"ran-PolicyActionParameters-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ran_PolicyActionParameters_List_tags_5,
+	sizeof(asn_DEF_ran_PolicyActionParameters_List_tags_5)
+		/sizeof(asn_DEF_ran_PolicyActionParameters_List_tags_5[0]) - 1, /* 1 */
+	asn_DEF_ran_PolicyActionParameters_List_tags_5,	/* Same as above */
+	sizeof(asn_DEF_ran_PolicyActionParameters_List_tags_5)
+		/sizeof(asn_DEF_ran_PolicyActionParameters_List_tags_5[0]), /* 2 */
+	{ &asn_OER_type_ran_PolicyActionParameters_List_constr_5, &asn_PER_type_ran_PolicyActionParameters_List_constr_5, SEQUENCE_OF_constraint },
+	asn_MBR_ran_PolicyActionParameters_List_5,
+	1,	/* Single element */
+	&asn_SPC_ran_PolicyActionParameters_List_specs_5	/* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_ran_PolicyConditionParameters_List_7[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_PolicyCondition_RANParameter_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ran_PolicyConditionParameters_List_tags_7[] = {
+	(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ran_PolicyConditionParameters_List_specs_7 = {
+	sizeof(struct RANFunctionDefinition_Policy_Action_Item__ran_PolicyConditionParameters_List),
+	offsetof(struct RANFunctionDefinition_Policy_Action_Item__ran_PolicyConditionParameters_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ran_PolicyConditionParameters_List_7 = {
+	"ran-PolicyConditionParameters-List",
+	"ran-PolicyConditionParameters-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ran_PolicyConditionParameters_List_tags_7,
+	sizeof(asn_DEF_ran_PolicyConditionParameters_List_tags_7)
+		/sizeof(asn_DEF_ran_PolicyConditionParameters_List_tags_7[0]) - 1, /* 1 */
+	asn_DEF_ran_PolicyConditionParameters_List_tags_7,	/* Same as above */
+	sizeof(asn_DEF_ran_PolicyConditionParameters_List_tags_7)
+		/sizeof(asn_DEF_ran_PolicyConditionParameters_List_tags_7[0]), /* 2 */
+	{ &asn_OER_type_ran_PolicyConditionParameters_List_constr_7, &asn_PER_type_ran_PolicyConditionParameters_List_constr_7, SEQUENCE_OF_constraint },
+	asn_MBR_ran_PolicyConditionParameters_List_7,
+	1,	/* Single element */
+	&asn_SPC_ran_PolicyConditionParameters_List_specs_7	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RANFunctionDefinition_Policy_Action_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_Policy_Action_Item, ric_PolicyAction_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-PolicyAction-ID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_Policy_Action_Item, ric_PolicyAction_Name),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_ControlAction_Name,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-PolicyAction-Name"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_Policy_Action_Item, ric_ActionDefinitionFormat_Type),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_Format_Type,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-ActionDefinitionFormat-Type"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANFunctionDefinition_Policy_Action_Item, ran_PolicyActionParameters_List),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		0,
+		&asn_DEF_ran_PolicyActionParameters_List_5,
+		0,
+		{ &asn_OER_memb_ran_PolicyActionParameters_List_constr_5, &asn_PER_memb_ran_PolicyActionParameters_List_constr_5,  memb_ran_PolicyActionParameters_List_constraint_1 },
+		0, 0, /* No default value */
+		"ran-PolicyActionParameters-List"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANFunctionDefinition_Policy_Action_Item, ran_PolicyConditionParameters_List),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		0,
+		&asn_DEF_ran_PolicyConditionParameters_List_7,
+		0,
+		{ &asn_OER_memb_ran_PolicyConditionParameters_List_constr_7, &asn_PER_memb_ran_PolicyConditionParameters_List_constr_7,  memb_ran_PolicyConditionParameters_List_constraint_1 },
+		0, 0, /* No default value */
+		"ran-PolicyConditionParameters-List"
+		},
+};
+static const int asn_MAP_RANFunctionDefinition_Policy_Action_Item_oms_1[] = { 3, 4 };
+static const ber_tlv_tag_t asn_DEF_RANFunctionDefinition_Policy_Action_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANFunctionDefinition_Policy_Action_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-PolicyAction-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-PolicyAction-Name */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ric-ActionDefinitionFormat-Type */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ran-PolicyActionParameters-List */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* ran-PolicyConditionParameters-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANFunctionDefinition_Policy_Action_Item_specs_1 = {
+	sizeof(struct RANFunctionDefinition_Policy_Action_Item),
+	offsetof(struct RANFunctionDefinition_Policy_Action_Item, _asn_ctx),
+	asn_MAP_RANFunctionDefinition_Policy_Action_Item_tag2el_1,
+	5,	/* Count of tags in the map */
+	asn_MAP_RANFunctionDefinition_Policy_Action_Item_oms_1,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	5,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RANFunctionDefinition_Policy_Action_Item = {
+	"RANFunctionDefinition-Policy-Action-Item",
+	"RANFunctionDefinition-Policy-Action-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANFunctionDefinition_Policy_Action_Item_tags_1,
+	sizeof(asn_DEF_RANFunctionDefinition_Policy_Action_Item_tags_1)
+		/sizeof(asn_DEF_RANFunctionDefinition_Policy_Action_Item_tags_1[0]), /* 1 */
+	asn_DEF_RANFunctionDefinition_Policy_Action_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANFunctionDefinition_Policy_Action_Item_tags_1)
+		/sizeof(asn_DEF_RANFunctionDefinition_Policy_Action_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANFunctionDefinition_Policy_Action_Item_1,
+	5,	/* Elements count */
+	&asn_SPC_RANFunctionDefinition_Policy_Action_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANFunctionDefinition-Policy-Item.c b/e2sm/lib/RANFunctionDefinition-Policy-Item.c
new file mode 100644
index 0000000..77b82ec
--- /dev/null
+++ b/e2sm/lib/RANFunctionDefinition-Policy-Item.c
@@ -0,0 +1,162 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANFunctionDefinition-Policy-Item.h"
+
+#include "RANFunctionDefinition-Policy-Action-Item.h"
+static int
+memb_ric_PolicyAction_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_ric_PolicyAction_List_constr_5 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_type_ric_PolicyAction_List_constr_5 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_ric_PolicyAction_List_constr_5 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_memb_ric_PolicyAction_List_constr_5 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_ric_PolicyAction_List_5[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_RANFunctionDefinition_Policy_Action_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ric_PolicyAction_List_tags_5[] = {
+	(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ric_PolicyAction_List_specs_5 = {
+	sizeof(struct RANFunctionDefinition_Policy_Item__ric_PolicyAction_List),
+	offsetof(struct RANFunctionDefinition_Policy_Item__ric_PolicyAction_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ric_PolicyAction_List_5 = {
+	"ric-PolicyAction-List",
+	"ric-PolicyAction-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ric_PolicyAction_List_tags_5,
+	sizeof(asn_DEF_ric_PolicyAction_List_tags_5)
+		/sizeof(asn_DEF_ric_PolicyAction_List_tags_5[0]) - 1, /* 1 */
+	asn_DEF_ric_PolicyAction_List_tags_5,	/* Same as above */
+	sizeof(asn_DEF_ric_PolicyAction_List_tags_5)
+		/sizeof(asn_DEF_ric_PolicyAction_List_tags_5[0]), /* 2 */
+	{ &asn_OER_type_ric_PolicyAction_List_constr_5, &asn_PER_type_ric_PolicyAction_List_constr_5, SEQUENCE_OF_constraint },
+	asn_MBR_ric_PolicyAction_List_5,
+	1,	/* Single element */
+	&asn_SPC_ric_PolicyAction_List_specs_5	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RANFunctionDefinition_Policy_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_Policy_Item, ric_PolicyStyle_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 */
+		"ric-PolicyStyle-Type"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_Policy_Item, ric_PolicyStyle_Name),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_Style_Name,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-PolicyStyle-Name"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_Policy_Item, ric_SupportedEventTriggerStyle_Type),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_Style_Type,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-SupportedEventTriggerStyle-Type"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANFunctionDefinition_Policy_Item, ric_PolicyAction_List),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		0,
+		&asn_DEF_ric_PolicyAction_List_5,
+		0,
+		{ &asn_OER_memb_ric_PolicyAction_List_constr_5, &asn_PER_memb_ric_PolicyAction_List_constr_5,  memb_ric_PolicyAction_List_constraint_1 },
+		0, 0, /* No default value */
+		"ric-PolicyAction-List"
+		},
+};
+static const int asn_MAP_RANFunctionDefinition_Policy_Item_oms_1[] = { 3 };
+static const ber_tlv_tag_t asn_DEF_RANFunctionDefinition_Policy_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANFunctionDefinition_Policy_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-PolicyStyle-Type */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-PolicyStyle-Name */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ric-SupportedEventTriggerStyle-Type */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ric-PolicyAction-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANFunctionDefinition_Policy_Item_specs_1 = {
+	sizeof(struct RANFunctionDefinition_Policy_Item),
+	offsetof(struct RANFunctionDefinition_Policy_Item, _asn_ctx),
+	asn_MAP_RANFunctionDefinition_Policy_Item_tag2el_1,
+	4,	/* Count of tags in the map */
+	asn_MAP_RANFunctionDefinition_Policy_Item_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	4,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RANFunctionDefinition_Policy_Item = {
+	"RANFunctionDefinition-Policy-Item",
+	"RANFunctionDefinition-Policy-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANFunctionDefinition_Policy_Item_tags_1,
+	sizeof(asn_DEF_RANFunctionDefinition_Policy_Item_tags_1)
+		/sizeof(asn_DEF_RANFunctionDefinition_Policy_Item_tags_1[0]), /* 1 */
+	asn_DEF_RANFunctionDefinition_Policy_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANFunctionDefinition_Policy_Item_tags_1)
+		/sizeof(asn_DEF_RANFunctionDefinition_Policy_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANFunctionDefinition_Policy_Item_1,
+	4,	/* Elements count */
+	&asn_SPC_RANFunctionDefinition_Policy_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANFunctionDefinition-Policy.c b/e2sm/lib/RANFunctionDefinition-Policy.c
new file mode 100644
index 0000000..f809dec
--- /dev/null
+++ b/e2sm/lib/RANFunctionDefinition-Policy.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANFunctionDefinition-Policy.h"
+
+#include "RANFunctionDefinition-Policy-Item.h"
+static int
+memb_ric_PolicyStyle_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_PolicyStyle_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..63)) */};
+static asn_per_constraints_t asn_PER_type_ric_PolicyStyle_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_PolicyStyle_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..63)) */};
+static asn_per_constraints_t asn_PER_memb_ric_PolicyStyle_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_PolicyStyle_List_2[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_RANFunctionDefinition_Policy_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ric_PolicyStyle_List_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ric_PolicyStyle_List_specs_2 = {
+	sizeof(struct RANFunctionDefinition_Policy__ric_PolicyStyle_List),
+	offsetof(struct RANFunctionDefinition_Policy__ric_PolicyStyle_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ric_PolicyStyle_List_2 = {
+	"ric-PolicyStyle-List",
+	"ric-PolicyStyle-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ric_PolicyStyle_List_tags_2,
+	sizeof(asn_DEF_ric_PolicyStyle_List_tags_2)
+		/sizeof(asn_DEF_ric_PolicyStyle_List_tags_2[0]) - 1, /* 1 */
+	asn_DEF_ric_PolicyStyle_List_tags_2,	/* Same as above */
+	sizeof(asn_DEF_ric_PolicyStyle_List_tags_2)
+		/sizeof(asn_DEF_ric_PolicyStyle_List_tags_2[0]), /* 2 */
+	{ &asn_OER_type_ric_PolicyStyle_List_constr_2, &asn_PER_type_ric_PolicyStyle_List_constr_2, SEQUENCE_OF_constraint },
+	asn_MBR_ric_PolicyStyle_List_2,
+	1,	/* Single element */
+	&asn_SPC_ric_PolicyStyle_List_specs_2	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RANFunctionDefinition_Policy_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_Policy, ric_PolicyStyle_List),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_ric_PolicyStyle_List_2,
+		0,
+		{ &asn_OER_memb_ric_PolicyStyle_List_constr_2, &asn_PER_memb_ric_PolicyStyle_List_constr_2,  memb_ric_PolicyStyle_List_constraint_1 },
+		0, 0, /* No default value */
+		"ric-PolicyStyle-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANFunctionDefinition_Policy_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANFunctionDefinition_Policy_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ric-PolicyStyle-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANFunctionDefinition_Policy_specs_1 = {
+	sizeof(struct RANFunctionDefinition_Policy),
+	offsetof(struct RANFunctionDefinition_Policy, _asn_ctx),
+	asn_MAP_RANFunctionDefinition_Policy_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_RANFunctionDefinition_Policy = {
+	"RANFunctionDefinition-Policy",
+	"RANFunctionDefinition-Policy",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANFunctionDefinition_Policy_tags_1,
+	sizeof(asn_DEF_RANFunctionDefinition_Policy_tags_1)
+		/sizeof(asn_DEF_RANFunctionDefinition_Policy_tags_1[0]), /* 1 */
+	asn_DEF_RANFunctionDefinition_Policy_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANFunctionDefinition_Policy_tags_1)
+		/sizeof(asn_DEF_RANFunctionDefinition_Policy_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANFunctionDefinition_Policy_1,
+	1,	/* Elements count */
+	&asn_SPC_RANFunctionDefinition_Policy_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANFunctionDefinition-Report-Item.c b/e2sm/lib/RANFunctionDefinition-Report-Item.c
new file mode 100644
index 0000000..131b739
--- /dev/null
+++ b/e2sm/lib/RANFunctionDefinition-Report-Item.c
@@ -0,0 +1,192 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANFunctionDefinition-Report-Item.h"
+
+#include "Report-RANParameter-Item.h"
+static int
+memb_ran_ReportParameters_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_ran_ReportParameters_List_constr_8 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_type_ran_ReportParameters_List_constr_8 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_ran_ReportParameters_List_constr_8 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_memb_ran_ReportParameters_List_constr_8 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_ran_ReportParameters_List_8[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_Report_RANParameter_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ran_ReportParameters_List_tags_8[] = {
+	(ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ran_ReportParameters_List_specs_8 = {
+	sizeof(struct RANFunctionDefinition_Report_Item__ran_ReportParameters_List),
+	offsetof(struct RANFunctionDefinition_Report_Item__ran_ReportParameters_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ran_ReportParameters_List_8 = {
+	"ran-ReportParameters-List",
+	"ran-ReportParameters-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ran_ReportParameters_List_tags_8,
+	sizeof(asn_DEF_ran_ReportParameters_List_tags_8)
+		/sizeof(asn_DEF_ran_ReportParameters_List_tags_8[0]) - 1, /* 1 */
+	asn_DEF_ran_ReportParameters_List_tags_8,	/* Same as above */
+	sizeof(asn_DEF_ran_ReportParameters_List_tags_8)
+		/sizeof(asn_DEF_ran_ReportParameters_List_tags_8[0]), /* 2 */
+	{ &asn_OER_type_ran_ReportParameters_List_constr_8, &asn_PER_type_ran_ReportParameters_List_constr_8, SEQUENCE_OF_constraint },
+	asn_MBR_ran_ReportParameters_List_8,
+	1,	/* Single element */
+	&asn_SPC_ran_ReportParameters_List_specs_8	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RANFunctionDefinition_Report_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_Report_Item, ric_ReportStyle_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 */
+		"ric-ReportStyle-Type"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_Report_Item, ric_ReportStyle_Name),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_Style_Name,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-ReportStyle-Name"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_Report_Item, ric_SupportedEventTriggerStyle_Type),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_Style_Type,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-SupportedEventTriggerStyle-Type"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_Report_Item, ric_ReportActionFormat_Type),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_Format_Type,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-ReportActionFormat-Type"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_Report_Item, ric_IndicationHeaderFormat_Type),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_Format_Type,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-IndicationHeaderFormat-Type"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_Report_Item, ric_IndicationMessageFormat_Type),
+		(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_Format_Type,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-IndicationMessageFormat-Type"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANFunctionDefinition_Report_Item, ran_ReportParameters_List),
+		(ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+		0,
+		&asn_DEF_ran_ReportParameters_List_8,
+		0,
+		{ &asn_OER_memb_ran_ReportParameters_List_constr_8, &asn_PER_memb_ran_ReportParameters_List_constr_8,  memb_ran_ReportParameters_List_constraint_1 },
+		0, 0, /* No default value */
+		"ran-ReportParameters-List"
+		},
+};
+static const int asn_MAP_RANFunctionDefinition_Report_Item_oms_1[] = { 6 };
+static const ber_tlv_tag_t asn_DEF_RANFunctionDefinition_Report_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANFunctionDefinition_Report_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-ReportStyle-Type */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-ReportStyle-Name */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ric-SupportedEventTriggerStyle-Type */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ric-ReportActionFormat-Type */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* ric-IndicationHeaderFormat-Type */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* ric-IndicationMessageFormat-Type */
+    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* ran-ReportParameters-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANFunctionDefinition_Report_Item_specs_1 = {
+	sizeof(struct RANFunctionDefinition_Report_Item),
+	offsetof(struct RANFunctionDefinition_Report_Item, _asn_ctx),
+	asn_MAP_RANFunctionDefinition_Report_Item_tag2el_1,
+	7,	/* Count of tags in the map */
+	asn_MAP_RANFunctionDefinition_Report_Item_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	7,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RANFunctionDefinition_Report_Item = {
+	"RANFunctionDefinition-Report-Item",
+	"RANFunctionDefinition-Report-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANFunctionDefinition_Report_Item_tags_1,
+	sizeof(asn_DEF_RANFunctionDefinition_Report_Item_tags_1)
+		/sizeof(asn_DEF_RANFunctionDefinition_Report_Item_tags_1[0]), /* 1 */
+	asn_DEF_RANFunctionDefinition_Report_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANFunctionDefinition_Report_Item_tags_1)
+		/sizeof(asn_DEF_RANFunctionDefinition_Report_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANFunctionDefinition_Report_Item_1,
+	7,	/* Elements count */
+	&asn_SPC_RANFunctionDefinition_Report_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANFunctionDefinition-Report.c b/e2sm/lib/RANFunctionDefinition-Report.c
new file mode 100644
index 0000000..15ec43d
--- /dev/null
+++ b/e2sm/lib/RANFunctionDefinition-Report.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANFunctionDefinition-Report.h"
+
+#include "RANFunctionDefinition-Report-Item.h"
+static int
+memb_ric_ReportStyle_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_ReportStyle_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..63)) */};
+static asn_per_constraints_t asn_PER_type_ric_ReportStyle_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_ReportStyle_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..63)) */};
+static asn_per_constraints_t asn_PER_memb_ric_ReportStyle_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_ReportStyle_List_2[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_RANFunctionDefinition_Report_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ric_ReportStyle_List_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ric_ReportStyle_List_specs_2 = {
+	sizeof(struct RANFunctionDefinition_Report__ric_ReportStyle_List),
+	offsetof(struct RANFunctionDefinition_Report__ric_ReportStyle_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ric_ReportStyle_List_2 = {
+	"ric-ReportStyle-List",
+	"ric-ReportStyle-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ric_ReportStyle_List_tags_2,
+	sizeof(asn_DEF_ric_ReportStyle_List_tags_2)
+		/sizeof(asn_DEF_ric_ReportStyle_List_tags_2[0]) - 1, /* 1 */
+	asn_DEF_ric_ReportStyle_List_tags_2,	/* Same as above */
+	sizeof(asn_DEF_ric_ReportStyle_List_tags_2)
+		/sizeof(asn_DEF_ric_ReportStyle_List_tags_2[0]), /* 2 */
+	{ &asn_OER_type_ric_ReportStyle_List_constr_2, &asn_PER_type_ric_ReportStyle_List_constr_2, SEQUENCE_OF_constraint },
+	asn_MBR_ric_ReportStyle_List_2,
+	1,	/* Single element */
+	&asn_SPC_ric_ReportStyle_List_specs_2	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RANFunctionDefinition_Report_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANFunctionDefinition_Report, ric_ReportStyle_List),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_ric_ReportStyle_List_2,
+		0,
+		{ &asn_OER_memb_ric_ReportStyle_List_constr_2, &asn_PER_memb_ric_ReportStyle_List_constr_2,  memb_ric_ReportStyle_List_constraint_1 },
+		0, 0, /* No default value */
+		"ric-ReportStyle-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANFunctionDefinition_Report_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANFunctionDefinition_Report_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ric-ReportStyle-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANFunctionDefinition_Report_specs_1 = {
+	sizeof(struct RANFunctionDefinition_Report),
+	offsetof(struct RANFunctionDefinition_Report, _asn_ctx),
+	asn_MAP_RANFunctionDefinition_Report_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_RANFunctionDefinition_Report = {
+	"RANFunctionDefinition-Report",
+	"RANFunctionDefinition-Report",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANFunctionDefinition_Report_tags_1,
+	sizeof(asn_DEF_RANFunctionDefinition_Report_tags_1)
+		/sizeof(asn_DEF_RANFunctionDefinition_Report_tags_1[0]), /* 1 */
+	asn_DEF_RANFunctionDefinition_Report_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANFunctionDefinition_Report_tags_1)
+		/sizeof(asn_DEF_RANFunctionDefinition_Report_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANFunctionDefinition_Report_1,
+	1,	/* Elements count */
+	&asn_SPC_RANFunctionDefinition_Report_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANParameter-Definition-Choice-LIST-Item.c b/e2sm/lib/RANParameter-Definition-Choice-LIST-Item.c
new file mode 100644
index 0000000..e009483
--- /dev/null
+++ b/e2sm/lib/RANParameter-Definition-Choice-LIST-Item.c
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANParameter-Definition-Choice-LIST-Item.h"
+
+#include "RANParameter-Definition.h"
+asn_TYPE_member_t asn_MBR_RANParameter_Definition_Choice_LIST_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANParameter_Definition_Choice_LIST_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 RANParameter_Definition_Choice_LIST_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"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANParameter_Definition_Choice_LIST_Item, ranParameter_Definition),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 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_RANParameter_Definition_Choice_LIST_Item_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANParameter_Definition_Choice_LIST_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANParameter_Definition_Choice_LIST_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 | (2 << 2)), 2, 0, 0 } /* ranParameter-Definition */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANParameter_Definition_Choice_LIST_Item_specs_1 = {
+	sizeof(struct RANParameter_Definition_Choice_LIST_Item),
+	offsetof(struct RANParameter_Definition_Choice_LIST_Item, _asn_ctx),
+	asn_MAP_RANParameter_Definition_Choice_LIST_Item_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANParameter_Definition_Choice_LIST_Item_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	3,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RANParameter_Definition_Choice_LIST_Item = {
+	"RANParameter-Definition-Choice-LIST-Item",
+	"RANParameter-Definition-Choice-LIST-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANParameter_Definition_Choice_LIST_Item_tags_1,
+	sizeof(asn_DEF_RANParameter_Definition_Choice_LIST_Item_tags_1)
+		/sizeof(asn_DEF_RANParameter_Definition_Choice_LIST_Item_tags_1[0]), /* 1 */
+	asn_DEF_RANParameter_Definition_Choice_LIST_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANParameter_Definition_Choice_LIST_Item_tags_1)
+		/sizeof(asn_DEF_RANParameter_Definition_Choice_LIST_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANParameter_Definition_Choice_LIST_Item_1,
+	3,	/* Elements count */
+	&asn_SPC_RANParameter_Definition_Choice_LIST_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANParameter-Definition-Choice-LIST.c b/e2sm/lib/RANParameter-Definition-Choice-LIST.c
new file mode 100644
index 0000000..7852c16
--- /dev/null
+++ b/e2sm/lib/RANParameter-Definition-Choice-LIST.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANParameter-Definition-Choice-LIST.h"
+
+#include "RANParameter-Definition-Choice-LIST-Item.h"
+static int
+memb_ranParameter_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_ranParameter_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_type_ranParameter_List_constr_2 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_ranParameter_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_memb_ranParameter_List_constr_2 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_ranParameter_List_2[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_RANParameter_Definition_Choice_LIST_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ranParameter_List_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ranParameter_List_specs_2 = {
+	sizeof(struct RANParameter_Definition_Choice_LIST__ranParameter_List),
+	offsetof(struct RANParameter_Definition_Choice_LIST__ranParameter_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ranParameter_List_2 = {
+	"ranParameter-List",
+	"ranParameter-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ranParameter_List_tags_2,
+	sizeof(asn_DEF_ranParameter_List_tags_2)
+		/sizeof(asn_DEF_ranParameter_List_tags_2[0]) - 1, /* 1 */
+	asn_DEF_ranParameter_List_tags_2,	/* Same as above */
+	sizeof(asn_DEF_ranParameter_List_tags_2)
+		/sizeof(asn_DEF_ranParameter_List_tags_2[0]), /* 2 */
+	{ &asn_OER_type_ranParameter_List_constr_2, &asn_PER_type_ranParameter_List_constr_2, SEQUENCE_OF_constraint },
+	asn_MBR_ranParameter_List_2,
+	1,	/* Single element */
+	&asn_SPC_ranParameter_List_specs_2	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RANParameter_Definition_Choice_LIST_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANParameter_Definition_Choice_LIST, ranParameter_List),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_ranParameter_List_2,
+		0,
+		{ &asn_OER_memb_ranParameter_List_constr_2, &asn_PER_memb_ranParameter_List_constr_2,  memb_ranParameter_List_constraint_1 },
+		0, 0, /* No default value */
+		"ranParameter-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANParameter_Definition_Choice_LIST_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANParameter_Definition_Choice_LIST_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ranParameter-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANParameter_Definition_Choice_LIST_specs_1 = {
+	sizeof(struct RANParameter_Definition_Choice_LIST),
+	offsetof(struct RANParameter_Definition_Choice_LIST, _asn_ctx),
+	asn_MAP_RANParameter_Definition_Choice_LIST_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_RANParameter_Definition_Choice_LIST = {
+	"RANParameter-Definition-Choice-LIST",
+	"RANParameter-Definition-Choice-LIST",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANParameter_Definition_Choice_LIST_tags_1,
+	sizeof(asn_DEF_RANParameter_Definition_Choice_LIST_tags_1)
+		/sizeof(asn_DEF_RANParameter_Definition_Choice_LIST_tags_1[0]), /* 1 */
+	asn_DEF_RANParameter_Definition_Choice_LIST_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANParameter_Definition_Choice_LIST_tags_1)
+		/sizeof(asn_DEF_RANParameter_Definition_Choice_LIST_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANParameter_Definition_Choice_LIST_1,
+	1,	/* Elements count */
+	&asn_SPC_RANParameter_Definition_Choice_LIST_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANParameter-Definition-Choice-STRUCTURE-Item.c b/e2sm/lib/RANParameter-Definition-Choice-STRUCTURE-Item.c
new file mode 100644
index 0000000..5af88e5
--- /dev/null
+++ b/e2sm/lib/RANParameter-Definition-Choice-STRUCTURE-Item.c
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANParameter-Definition-Choice-STRUCTURE-Item.h"
+
+#include "RANParameter-Definition.h"
+asn_TYPE_member_t asn_MBR_RANParameter_Definition_Choice_STRUCTURE_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANParameter_Definition_Choice_STRUCTURE_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 RANParameter_Definition_Choice_STRUCTURE_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"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANParameter_Definition_Choice_STRUCTURE_Item, ranParameter_Definition),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 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_RANParameter_Definition_Choice_STRUCTURE_Item_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_RANParameter_Definition_Choice_STRUCTURE_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANParameter_Definition_Choice_STRUCTURE_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 | (2 << 2)), 2, 0, 0 } /* ranParameter-Definition */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANParameter_Definition_Choice_STRUCTURE_Item_specs_1 = {
+	sizeof(struct RANParameter_Definition_Choice_STRUCTURE_Item),
+	offsetof(struct RANParameter_Definition_Choice_STRUCTURE_Item, _asn_ctx),
+	asn_MAP_RANParameter_Definition_Choice_STRUCTURE_Item_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANParameter_Definition_Choice_STRUCTURE_Item_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	3,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RANParameter_Definition_Choice_STRUCTURE_Item = {
+	"RANParameter-Definition-Choice-STRUCTURE-Item",
+	"RANParameter-Definition-Choice-STRUCTURE-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANParameter_Definition_Choice_STRUCTURE_Item_tags_1,
+	sizeof(asn_DEF_RANParameter_Definition_Choice_STRUCTURE_Item_tags_1)
+		/sizeof(asn_DEF_RANParameter_Definition_Choice_STRUCTURE_Item_tags_1[0]), /* 1 */
+	asn_DEF_RANParameter_Definition_Choice_STRUCTURE_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANParameter_Definition_Choice_STRUCTURE_Item_tags_1)
+		/sizeof(asn_DEF_RANParameter_Definition_Choice_STRUCTURE_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANParameter_Definition_Choice_STRUCTURE_Item_1,
+	3,	/* Elements count */
+	&asn_SPC_RANParameter_Definition_Choice_STRUCTURE_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANParameter-Definition-Choice-STRUCTURE.c b/e2sm/lib/RANParameter-Definition-Choice-STRUCTURE.c
new file mode 100644
index 0000000..c6c0679
--- /dev/null
+++ b/e2sm/lib/RANParameter-Definition-Choice-STRUCTURE.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANParameter-Definition-Choice-STRUCTURE.h"
+
+#include "RANParameter-Definition-Choice-STRUCTURE-Item.h"
+static int
+memb_ranParameter_STRUCTURE_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_ranParameter_STRUCTURE_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_type_ranParameter_STRUCTURE_constr_2 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_ranParameter_STRUCTURE_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_memb_ranParameter_STRUCTURE_constr_2 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_ranParameter_STRUCTURE_2[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_RANParameter_Definition_Choice_STRUCTURE_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ranParameter_STRUCTURE_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ranParameter_STRUCTURE_specs_2 = {
+	sizeof(struct RANParameter_Definition_Choice_STRUCTURE__ranParameter_STRUCTURE),
+	offsetof(struct RANParameter_Definition_Choice_STRUCTURE__ranParameter_STRUCTURE, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ranParameter_STRUCTURE_2 = {
+	"ranParameter-STRUCTURE",
+	"ranParameter-STRUCTURE",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ranParameter_STRUCTURE_tags_2,
+	sizeof(asn_DEF_ranParameter_STRUCTURE_tags_2)
+		/sizeof(asn_DEF_ranParameter_STRUCTURE_tags_2[0]) - 1, /* 1 */
+	asn_DEF_ranParameter_STRUCTURE_tags_2,	/* Same as above */
+	sizeof(asn_DEF_ranParameter_STRUCTURE_tags_2)
+		/sizeof(asn_DEF_ranParameter_STRUCTURE_tags_2[0]), /* 2 */
+	{ &asn_OER_type_ranParameter_STRUCTURE_constr_2, &asn_PER_type_ranParameter_STRUCTURE_constr_2, SEQUENCE_OF_constraint },
+	asn_MBR_ranParameter_STRUCTURE_2,
+	1,	/* Single element */
+	&asn_SPC_ranParameter_STRUCTURE_specs_2	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RANParameter_Definition_Choice_STRUCTURE_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANParameter_Definition_Choice_STRUCTURE, ranParameter_STRUCTURE),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_ranParameter_STRUCTURE_2,
+		0,
+		{ &asn_OER_memb_ranParameter_STRUCTURE_constr_2, &asn_PER_memb_ranParameter_STRUCTURE_constr_2,  memb_ranParameter_STRUCTURE_constraint_1 },
+		0, 0, /* No default value */
+		"ranParameter-STRUCTURE"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANParameter_Definition_Choice_STRUCTURE_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANParameter_Definition_Choice_STRUCTURE_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ranParameter-STRUCTURE */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANParameter_Definition_Choice_STRUCTURE_specs_1 = {
+	sizeof(struct RANParameter_Definition_Choice_STRUCTURE),
+	offsetof(struct RANParameter_Definition_Choice_STRUCTURE, _asn_ctx),
+	asn_MAP_RANParameter_Definition_Choice_STRUCTURE_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_RANParameter_Definition_Choice_STRUCTURE = {
+	"RANParameter-Definition-Choice-STRUCTURE",
+	"RANParameter-Definition-Choice-STRUCTURE",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANParameter_Definition_Choice_STRUCTURE_tags_1,
+	sizeof(asn_DEF_RANParameter_Definition_Choice_STRUCTURE_tags_1)
+		/sizeof(asn_DEF_RANParameter_Definition_Choice_STRUCTURE_tags_1[0]), /* 1 */
+	asn_DEF_RANParameter_Definition_Choice_STRUCTURE_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANParameter_Definition_Choice_STRUCTURE_tags_1)
+		/sizeof(asn_DEF_RANParameter_Definition_Choice_STRUCTURE_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANParameter_Definition_Choice_STRUCTURE_1,
+	1,	/* Elements count */
+	&asn_SPC_RANParameter_Definition_Choice_STRUCTURE_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANParameter-Definition-Choice.c b/e2sm/lib/RANParameter-Definition-Choice.c
new file mode 100644
index 0000000..4dd0a8c
--- /dev/null
+++ b/e2sm/lib/RANParameter-Definition-Choice.c
@@ -0,0 +1,67 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANParameter-Definition-Choice.h"
+
+#include "RANParameter-Definition-Choice-LIST.h"
+#include "RANParameter-Definition-Choice-STRUCTURE.h"
+static asn_oer_constraints_t asn_OER_type_RANParameter_Definition_Choice_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_RANParameter_Definition_Choice_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_RANParameter_Definition_Choice_1[] = {
+	{ ATF_POINTER, 0, offsetof(struct RANParameter_Definition_Choice, choice.choiceLIST),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANParameter_Definition_Choice_LIST,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"choiceLIST"
+		},
+	{ ATF_POINTER, 0, offsetof(struct RANParameter_Definition_Choice, choice.choiceSTRUCTURE),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANParameter_Definition_Choice_STRUCTURE,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"choiceSTRUCTURE"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANParameter_Definition_Choice_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* choiceLIST */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* choiceSTRUCTURE */
+};
+asn_CHOICE_specifics_t asn_SPC_RANParameter_Definition_Choice_specs_1 = {
+	sizeof(struct RANParameter_Definition_Choice),
+	offsetof(struct RANParameter_Definition_Choice, _asn_ctx),
+	offsetof(struct RANParameter_Definition_Choice, present),
+	sizeof(((struct RANParameter_Definition_Choice *)0)->present),
+	asn_MAP_RANParameter_Definition_Choice_tag2el_1,
+	2,	/* Count of tags in the map */
+	0, 0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANParameter_Definition_Choice = {
+	"RANParameter-Definition-Choice",
+	"RANParameter-Definition-Choice",
+	&asn_OP_CHOICE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ &asn_OER_type_RANParameter_Definition_Choice_constr_1, &asn_PER_type_RANParameter_Definition_Choice_constr_1, CHOICE_constraint },
+	asn_MBR_RANParameter_Definition_Choice_1,
+	2,	/* Elements count */
+	&asn_SPC_RANParameter_Definition_Choice_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANParameter-Definition.c b/e2sm/lib/RANParameter-Definition.c
new file mode 100644
index 0000000..7298790
--- /dev/null
+++ b/e2sm/lib/RANParameter-Definition.c
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANParameter-Definition.h"
+
+#include "RANParameter-Definition-Choice.h"
+asn_TYPE_member_t asn_MBR_RANParameter_Definition_1[] = {
+	{ ATF_POINTER, 0, offsetof(struct RANParameter_Definition, ranParameter_Definition_Choice),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_RANParameter_Definition_Choice,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranParameter-Definition-Choice"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANParameter_Definition_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANParameter_Definition_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ranParameter-Definition-Choice */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANParameter_Definition_specs_1 = {
+	sizeof(struct RANParameter_Definition),
+	offsetof(struct RANParameter_Definition, _asn_ctx),
+	asn_MAP_RANParameter_Definition_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_RANParameter_Definition = {
+	"RANParameter-Definition",
+	"RANParameter-Definition",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANParameter_Definition_tags_1,
+	sizeof(asn_DEF_RANParameter_Definition_tags_1)
+		/sizeof(asn_DEF_RANParameter_Definition_tags_1[0]), /* 1 */
+	asn_DEF_RANParameter_Definition_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANParameter_Definition_tags_1)
+		/sizeof(asn_DEF_RANParameter_Definition_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANParameter_Definition_1,
+	1,	/* Elements count */
+	&asn_SPC_RANParameter_Definition_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANParameter-ELEMENT.c b/e2sm/lib/RANParameter-ELEMENT.c
deleted file mode 100644
index 63edc16..0000000
--- a/e2sm/lib/RANParameter-ELEMENT.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "RANParameter-ELEMENT.h"
-
-asn_TYPE_member_t asn_MBR_RANParameter_ELEMENT_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct RANParameter_ELEMENT, keyFlag),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_BOOLEAN,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"keyFlag"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct RANParameter_ELEMENT, 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_RANParameter_ELEMENT_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_RANParameter_ELEMENT_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* keyFlag */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranParameter-Value */
-};
-asn_SEQUENCE_specifics_t asn_SPC_RANParameter_ELEMENT_specs_1 = {
-	sizeof(struct RANParameter_ELEMENT),
-	offsetof(struct RANParameter_ELEMENT, _asn_ctx),
-	asn_MAP_RANParameter_ELEMENT_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_RANParameter_ELEMENT = {
-	"RANParameter-ELEMENT",
-	"RANParameter-ELEMENT",
-	&asn_OP_SEQUENCE,
-	asn_DEF_RANParameter_ELEMENT_tags_1,
-	sizeof(asn_DEF_RANParameter_ELEMENT_tags_1)
-		/sizeof(asn_DEF_RANParameter_ELEMENT_tags_1[0]), /* 1 */
-	asn_DEF_RANParameter_ELEMENT_tags_1,	/* Same as above */
-	sizeof(asn_DEF_RANParameter_ELEMENT_tags_1)
-		/sizeof(asn_DEF_RANParameter_ELEMENT_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_RANParameter_ELEMENT_1,
-	2,	/* Elements count */
-	&asn_SPC_RANParameter_ELEMENT_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/RANParameter-ID.c b/e2sm/lib/RANParameter-ID.c
index 4965d59..684cc0e 100644
--- a/e2sm/lib/RANParameter-ID.c
+++ b/e2sm/lib/RANParameter-ID.c
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
@@ -19,8 +19,11 @@
 	}
 	
 	
-	/* Constraint check succeeded */
-	return 0;
+	if(1 /* No applicable constraints whatsoever */) {
+		/* Nothing is here. See below */
+	}
+	
+	return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
 }
 
 /*
@@ -28,18 +31,13 @@
  * so here we adjust the DEF accordingly.
  */
 static asn_oer_constraints_t asn_OER_type_RANParameter_ID_constr_1 CC_NOTUSED = {
-	{ 4, 1 }	/* (0..4294967295) */,
+	{ 0, 0 },
 	-1};
 asn_per_constraints_t asn_PER_type_RANParameter_ID_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED,	 32, -1,  0,  4294967295 }	/* (0..4294967295) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
 	{ 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))
 };
@@ -55,6 +53,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 */
-	&asn_SPC_RANParameter_ID_specs_1	/* Additional specs */
+	0	/* No specifics */
 };
 
diff --git a/e2sm/lib/RANParameter-Item.c b/e2sm/lib/RANParameter-Item.c
deleted file mode 100644
index 0da6978..0000000
--- a/e2sm/lib/RANParameter-Item.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "RANParameter-Item.h"
-
-#include "RANParameter-ValueType.h"
-asn_TYPE_member_t asn_MBR_RANParameter_Item_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct RANParameter_Item, ranParameterItem_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 */
-		"ranParameterItem-ID"
-		},
-	{ ATF_POINTER, 0, offsetof(struct RANParameter_Item, ranParameterItem_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 */
-		"ranParameterItem-valueType"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_RANParameter_Item_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_RANParameter_Item_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranParameterItem-ID */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranParameterItem-valueType */
-};
-asn_SEQUENCE_specifics_t asn_SPC_RANParameter_Item_specs_1 = {
-	sizeof(struct RANParameter_Item),
-	offsetof(struct RANParameter_Item, _asn_ctx),
-	asn_MAP_RANParameter_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_RANParameter_Item = {
-	"RANParameter-Item",
-	"RANParameter-Item",
-	&asn_OP_SEQUENCE,
-	asn_DEF_RANParameter_Item_tags_1,
-	sizeof(asn_DEF_RANParameter_Item_tags_1)
-		/sizeof(asn_DEF_RANParameter_Item_tags_1[0]), /* 1 */
-	asn_DEF_RANParameter_Item_tags_1,	/* Same as above */
-	sizeof(asn_DEF_RANParameter_Item_tags_1)
-		/sizeof(asn_DEF_RANParameter_Item_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_RANParameter_Item_1,
-	2,	/* Elements count */
-	&asn_SPC_RANParameter_Item_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/RANParameter-LIST.c b/e2sm/lib/RANParameter-LIST.c
index 501db25..22fa28f 100644
--- a/e2sm/lib/RANParameter-LIST.c
+++ b/e2sm/lib/RANParameter-LIST.c
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
@@ -9,7 +9,7 @@
 
 #include "RANParameter-STRUCTURE.h"
 static int
-memb_list_of_ranParameter_Structures_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+memb_list_of_ranParameter_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
 	size_t size;
 	
@@ -23,7 +23,7 @@
 	/* Determine the number of elements */
 	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
 	
-	if((size >= 1 && size <= 4294967295)) {
+	if((size >= 1 && size <= 65535)) {
 		/* Perform validation of the inner elements */
 		return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
 	} else {
@@ -34,23 +34,23 @@
 	}
 }
 
-static asn_oer_constraints_t asn_OER_type_list_of_ranParameter_Structures_constr_2 CC_NOTUSED = {
+static asn_oer_constraints_t asn_OER_type_list_of_ranParameter_constr_2 CC_NOTUSED = {
 	{ 0, 0 },
-	-1	/* (SIZE(1..4294967295)) */};
-static asn_per_constraints_t asn_PER_type_list_of_ranParameter_Structures_constr_2 CC_NOTUSED = {
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_type_list_of_ranParameter_constr_2 CC_NOTUSED = {
 	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 32, -1,  1,  4294967295 }	/* (SIZE(1..4294967295)) */,
+	{ APC_CONSTRAINED,	 16,  16,  1,  65535 }	/* (SIZE(1..65535)) */,
 	0, 0	/* No PER value map */
 };
-static asn_oer_constraints_t asn_OER_memb_list_of_ranParameter_Structures_constr_2 CC_NOTUSED = {
+static asn_oer_constraints_t asn_OER_memb_list_of_ranParameter_constr_2 CC_NOTUSED = {
 	{ 0, 0 },
-	-1	/* (SIZE(1..4294967295)) */};
-static asn_per_constraints_t asn_PER_memb_list_of_ranParameter_Structures_constr_2 CC_NOTUSED = {
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_memb_list_of_ranParameter_constr_2 CC_NOTUSED = {
 	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 32, -1,  1,  4294967295 }	/* (SIZE(1..4294967295)) */,
+	{ APC_CONSTRAINED,	 16,  16,  1,  65535 }	/* (SIZE(1..65535)) */,
 	0, 0	/* No PER value map */
 };
-static asn_TYPE_member_t asn_MBR_list_of_ranParameter_Structures_2[] = {
+static asn_TYPE_member_t asn_MBR_list_of_ranParameter_2[] = {
 	{ ATF_POINTER, 0, 0,
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
@@ -61,48 +61,48 @@
 		""
 		},
 };
-static const ber_tlv_tag_t asn_DEF_list_of_ranParameter_Structures_tags_2[] = {
+static const ber_tlv_tag_t asn_DEF_list_of_ranParameter_tags_2[] = {
 	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
-static asn_SET_OF_specifics_t asn_SPC_list_of_ranParameter_Structures_specs_2 = {
-	sizeof(struct RANParameter_LIST__list_of_ranParameter_Structures),
-	offsetof(struct RANParameter_LIST__list_of_ranParameter_Structures, _asn_ctx),
+static asn_SET_OF_specifics_t asn_SPC_list_of_ranParameter_specs_2 = {
+	sizeof(struct RANParameter_LIST__list_of_ranParameter),
+	offsetof(struct RANParameter_LIST__list_of_ranParameter, _asn_ctx),
 	0,	/* XER encoding is XMLDelimitedItemList */
 };
 static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_list_of_ranParameter_Structures_2 = {
-	"list-of-ranParameter-Structures",
-	"list-of-ranParameter-Structures",
+asn_TYPE_descriptor_t asn_DEF_list_of_ranParameter_2 = {
+	"list-of-ranParameter",
+	"list-of-ranParameter",
 	&asn_OP_SEQUENCE_OF,
-	asn_DEF_list_of_ranParameter_Structures_tags_2,
-	sizeof(asn_DEF_list_of_ranParameter_Structures_tags_2)
-		/sizeof(asn_DEF_list_of_ranParameter_Structures_tags_2[0]) - 1, /* 1 */
-	asn_DEF_list_of_ranParameter_Structures_tags_2,	/* Same as above */
-	sizeof(asn_DEF_list_of_ranParameter_Structures_tags_2)
-		/sizeof(asn_DEF_list_of_ranParameter_Structures_tags_2[0]), /* 2 */
-	{ &asn_OER_type_list_of_ranParameter_Structures_constr_2, &asn_PER_type_list_of_ranParameter_Structures_constr_2, SEQUENCE_OF_constraint },
-	asn_MBR_list_of_ranParameter_Structures_2,
+	asn_DEF_list_of_ranParameter_tags_2,
+	sizeof(asn_DEF_list_of_ranParameter_tags_2)
+		/sizeof(asn_DEF_list_of_ranParameter_tags_2[0]) - 1, /* 1 */
+	asn_DEF_list_of_ranParameter_tags_2,	/* Same as above */
+	sizeof(asn_DEF_list_of_ranParameter_tags_2)
+		/sizeof(asn_DEF_list_of_ranParameter_tags_2[0]), /* 2 */
+	{ &asn_OER_type_list_of_ranParameter_constr_2, &asn_PER_type_list_of_ranParameter_constr_2, SEQUENCE_OF_constraint },
+	asn_MBR_list_of_ranParameter_2,
 	1,	/* Single element */
-	&asn_SPC_list_of_ranParameter_Structures_specs_2	/* Additional specs */
+	&asn_SPC_list_of_ranParameter_specs_2	/* Additional specs */
 };
 
 asn_TYPE_member_t asn_MBR_RANParameter_LIST_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct RANParameter_LIST, list_of_ranParameter_Structures),
+	{ ATF_NOFLAGS, 0, offsetof(struct RANParameter_LIST, list_of_ranParameter),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		0,
-		&asn_DEF_list_of_ranParameter_Structures_2,
+		&asn_DEF_list_of_ranParameter_2,
 		0,
-		{ &asn_OER_memb_list_of_ranParameter_Structures_constr_2, &asn_PER_memb_list_of_ranParameter_Structures_constr_2,  memb_list_of_ranParameter_Structures_constraint_1 },
+		{ &asn_OER_memb_list_of_ranParameter_constr_2, &asn_PER_memb_list_of_ranParameter_constr_2,  memb_list_of_ranParameter_constraint_1 },
 		0, 0, /* No default value */
-		"list-of-ranParameter-Structures"
+		"list-of-ranParameter"
 		},
 };
 static const ber_tlv_tag_t asn_DEF_RANParameter_LIST_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
 static const asn_TYPE_tag2member_t asn_MAP_RANParameter_LIST_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* list-of-ranParameter-Structures */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* list-of-ranParameter */
 };
 asn_SEQUENCE_specifics_t asn_SPC_RANParameter_LIST_specs_1 = {
 	sizeof(struct RANParameter_LIST),
diff --git a/e2sm/lib/RANParameter-Name.c b/e2sm/lib/RANParameter-Name.c
index fdd2f4c..30b6e4f 100644
--- a/e2sm/lib/RANParameter-Name.c
+++ b/e2sm/lib/RANParameter-Name.c
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
diff --git a/e2sm/lib/RANParameter-STRUCTURE-Item.c b/e2sm/lib/RANParameter-STRUCTURE-Item.c
new file mode 100644
index 0000000..e630ad4
--- /dev/null
+++ b/e2sm/lib/RANParameter-STRUCTURE-Item.c
@@ -0,0 +1,61 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANParameter-STRUCTURE-Item.h"
+
+#include "RANParameter-ValueType.h"
+asn_TYPE_member_t asn_MBR_RANParameter_STRUCTURE_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANParameter_STRUCTURE_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, 0, offsetof(struct RANParameter_STRUCTURE_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_RANParameter_STRUCTURE_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANParameter_STRUCTURE_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_RANParameter_STRUCTURE_Item_specs_1 = {
+	sizeof(struct RANParameter_STRUCTURE_Item),
+	offsetof(struct RANParameter_STRUCTURE_Item, _asn_ctx),
+	asn_MAP_RANParameter_STRUCTURE_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_RANParameter_STRUCTURE_Item = {
+	"RANParameter-STRUCTURE-Item",
+	"RANParameter-STRUCTURE-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANParameter_STRUCTURE_Item_tags_1,
+	sizeof(asn_DEF_RANParameter_STRUCTURE_Item_tags_1)
+		/sizeof(asn_DEF_RANParameter_STRUCTURE_Item_tags_1[0]), /* 1 */
+	asn_DEF_RANParameter_STRUCTURE_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANParameter_STRUCTURE_Item_tags_1)
+		/sizeof(asn_DEF_RANParameter_STRUCTURE_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANParameter_STRUCTURE_Item_1,
+	2,	/* Elements count */
+	&asn_SPC_RANParameter_STRUCTURE_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANParameter-STRUCTURE.c b/e2sm/lib/RANParameter-STRUCTURE.c
index 89aa285..03a0695 100644
--- a/e2sm/lib/RANParameter-STRUCTURE.c
+++ b/e2sm/lib/RANParameter-STRUCTURE.c
@@ -1,13 +1,13 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RANParameter-STRUCTURE.h"
 
-#include "RANParameter-Item.h"
+#include "RANParameter-STRUCTURE-Item.h"
 static int
 memb_sequence_of_ranParameters_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
 			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
@@ -23,7 +23,7 @@
 	/* Determine the number of elements */
 	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
 	
-	if((size >= 1 && size <= 4294967295)) {
+	if((size >= 1 && size <= 65535)) {
 		/* Perform validation of the inner elements */
 		return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
 	} else {
@@ -36,25 +36,25 @@
 
 static asn_oer_constraints_t asn_OER_type_sequence_of_ranParameters_constr_2 CC_NOTUSED = {
 	{ 0, 0 },
-	-1	/* (SIZE(1..4294967295)) */};
+	-1	/* (SIZE(1..65535)) */};
 static asn_per_constraints_t asn_PER_type_sequence_of_ranParameters_constr_2 CC_NOTUSED = {
 	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 32, -1,  1,  4294967295 }	/* (SIZE(1..4294967295)) */,
+	{ APC_CONSTRAINED,	 16,  16,  1,  65535 }	/* (SIZE(1..65535)) */,
 	0, 0	/* No PER value map */
 };
 static asn_oer_constraints_t asn_OER_memb_sequence_of_ranParameters_constr_2 CC_NOTUSED = {
 	{ 0, 0 },
-	-1	/* (SIZE(1..4294967295)) */};
+	-1	/* (SIZE(1..65535)) */};
 static asn_per_constraints_t asn_PER_memb_sequence_of_ranParameters_constr_2 CC_NOTUSED = {
 	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 32, -1,  1,  4294967295 }	/* (SIZE(1..4294967295)) */,
+	{ APC_CONSTRAINED,	 16,  16,  1,  65535 }	/* (SIZE(1..65535)) */,
 	0, 0	/* No PER value map */
 };
 static asn_TYPE_member_t asn_MBR_sequence_of_ranParameters_2[] = {
 	{ ATF_POINTER, 0, 0,
 		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
 		0,
-		&asn_DEF_RANParameter_Item,
+		&asn_DEF_RANParameter_STRUCTURE_Item,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
@@ -88,7 +88,7 @@
 };
 
 asn_TYPE_member_t asn_MBR_RANParameter_STRUCTURE_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct RANParameter_STRUCTURE, sequence_of_ranParameters),
+	{ ATF_POINTER, 1, offsetof(struct RANParameter_STRUCTURE, sequence_of_ranParameters),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		0,
 		&asn_DEF_sequence_of_ranParameters_2,
@@ -98,6 +98,7 @@
 		"sequence-of-ranParameters"
 		},
 };
+static const int asn_MAP_RANParameter_STRUCTURE_oms_1[] = { 0 };
 static const ber_tlv_tag_t asn_DEF_RANParameter_STRUCTURE_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
 };
@@ -109,7 +110,8 @@
 	offsetof(struct RANParameter_STRUCTURE, _asn_ctx),
 	asn_MAP_RANParameter_STRUCTURE_tag2el_1,
 	1,	/* Count of tags in the map */
-	0, 0, 0,	/* Optional elements (not needed) */
+	asn_MAP_RANParameter_STRUCTURE_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
 	1,	/* First extension addition */
 };
 asn_TYPE_descriptor_t asn_DEF_RANParameter_STRUCTURE = {
diff --git a/e2sm/lib/RANParameter-Testing-Item-Choice-ElementFalse.c b/e2sm/lib/RANParameter-Testing-Item-Choice-ElementFalse.c
new file mode 100644
index 0000000..e50e5db
--- /dev/null
+++ b/e2sm/lib/RANParameter-Testing-Item-Choice-ElementFalse.c
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANParameter-Testing-Item-Choice-ElementFalse.h"
+
+#include "RANParameter-Value.h"
+asn_TYPE_member_t asn_MBR_RANParameter_Testing_Item_Choice_ElementFalse_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANParameter_Testing_Item_Choice_ElementFalse, ranParameter_TestCondition),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_RANParameter_TestingCondition,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranParameter-TestCondition"
+		},
+	{ ATF_POINTER, 2, offsetof(struct RANParameter_Testing_Item_Choice_ElementFalse, 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"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RANParameter_Testing_Item_Choice_ElementFalse, logicalOR),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_LogicalOR,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"logicalOR"
+		},
+};
+static const int asn_MAP_RANParameter_Testing_Item_Choice_ElementFalse_oms_1[] = { 1, 2 };
+static const ber_tlv_tag_t asn_DEF_RANParameter_Testing_Item_Choice_ElementFalse_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANParameter_Testing_Item_Choice_ElementFalse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranParameter-TestCondition */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ranParameter-Value */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* logicalOR */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANParameter_Testing_Item_Choice_ElementFalse_specs_1 = {
+	sizeof(struct RANParameter_Testing_Item_Choice_ElementFalse),
+	offsetof(struct RANParameter_Testing_Item_Choice_ElementFalse, _asn_ctx),
+	asn_MAP_RANParameter_Testing_Item_Choice_ElementFalse_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_RANParameter_Testing_Item_Choice_ElementFalse_oms_1,	/* Optional members */
+	2, 0,	/* Root/Additions */
+	3,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RANParameter_Testing_Item_Choice_ElementFalse = {
+	"RANParameter-Testing-Item-Choice-ElementFalse",
+	"RANParameter-Testing-Item-Choice-ElementFalse",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANParameter_Testing_Item_Choice_ElementFalse_tags_1,
+	sizeof(asn_DEF_RANParameter_Testing_Item_Choice_ElementFalse_tags_1)
+		/sizeof(asn_DEF_RANParameter_Testing_Item_Choice_ElementFalse_tags_1[0]), /* 1 */
+	asn_DEF_RANParameter_Testing_Item_Choice_ElementFalse_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANParameter_Testing_Item_Choice_ElementFalse_tags_1)
+		/sizeof(asn_DEF_RANParameter_Testing_Item_Choice_ElementFalse_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANParameter_Testing_Item_Choice_ElementFalse_1,
+	3,	/* Elements count */
+	&asn_SPC_RANParameter_Testing_Item_Choice_ElementFalse_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANParameter-Testing-Item-Choice-ElementTrue.c b/e2sm/lib/RANParameter-Testing-Item-Choice-ElementTrue.c
new file mode 100644
index 0000000..03b10ff
--- /dev/null
+++ b/e2sm/lib/RANParameter-Testing-Item-Choice-ElementTrue.c
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANParameter-Testing-Item-Choice-ElementTrue.h"
+
+asn_TYPE_member_t asn_MBR_RANParameter_Testing_Item_Choice_ElementTrue_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANParameter_Testing_Item_Choice_ElementTrue, ranParameter_value),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 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_RANParameter_Testing_Item_Choice_ElementTrue_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANParameter_Testing_Item_Choice_ElementTrue_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ranParameter-value */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANParameter_Testing_Item_Choice_ElementTrue_specs_1 = {
+	sizeof(struct RANParameter_Testing_Item_Choice_ElementTrue),
+	offsetof(struct RANParameter_Testing_Item_Choice_ElementTrue, _asn_ctx),
+	asn_MAP_RANParameter_Testing_Item_Choice_ElementTrue_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_RANParameter_Testing_Item_Choice_ElementTrue = {
+	"RANParameter-Testing-Item-Choice-ElementTrue",
+	"RANParameter-Testing-Item-Choice-ElementTrue",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANParameter_Testing_Item_Choice_ElementTrue_tags_1,
+	sizeof(asn_DEF_RANParameter_Testing_Item_Choice_ElementTrue_tags_1)
+		/sizeof(asn_DEF_RANParameter_Testing_Item_Choice_ElementTrue_tags_1[0]), /* 1 */
+	asn_DEF_RANParameter_Testing_Item_Choice_ElementTrue_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANParameter_Testing_Item_Choice_ElementTrue_tags_1)
+		/sizeof(asn_DEF_RANParameter_Testing_Item_Choice_ElementTrue_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANParameter_Testing_Item_Choice_ElementTrue_1,
+	1,	/* Elements count */
+	&asn_SPC_RANParameter_Testing_Item_Choice_ElementTrue_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANParameter-Testing-Item-Choice-List.c b/e2sm/lib/RANParameter-Testing-Item-Choice-List.c
new file mode 100644
index 0000000..ea685da
--- /dev/null
+++ b/e2sm/lib/RANParameter-Testing-Item-Choice-List.c
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANParameter-Testing-Item-Choice-List.h"
+
+#include "RANParameter-Testing-LIST.h"
+asn_TYPE_member_t asn_MBR_RANParameter_Testing_Item_Choice_List_1[] = {
+	{ ATF_POINTER, 0, offsetof(struct RANParameter_Testing_Item_Choice_List, ranParameter_List),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANParameter_Testing_LIST,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranParameter-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANParameter_Testing_Item_Choice_List_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANParameter_Testing_Item_Choice_List_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ranParameter-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANParameter_Testing_Item_Choice_List_specs_1 = {
+	sizeof(struct RANParameter_Testing_Item_Choice_List),
+	offsetof(struct RANParameter_Testing_Item_Choice_List, _asn_ctx),
+	asn_MAP_RANParameter_Testing_Item_Choice_List_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_RANParameter_Testing_Item_Choice_List = {
+	"RANParameter-Testing-Item-Choice-List",
+	"RANParameter-Testing-Item-Choice-List",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANParameter_Testing_Item_Choice_List_tags_1,
+	sizeof(asn_DEF_RANParameter_Testing_Item_Choice_List_tags_1)
+		/sizeof(asn_DEF_RANParameter_Testing_Item_Choice_List_tags_1[0]), /* 1 */
+	asn_DEF_RANParameter_Testing_Item_Choice_List_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANParameter_Testing_Item_Choice_List_tags_1)
+		/sizeof(asn_DEF_RANParameter_Testing_Item_Choice_List_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANParameter_Testing_Item_Choice_List_1,
+	1,	/* Elements count */
+	&asn_SPC_RANParameter_Testing_Item_Choice_List_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANParameter-Testing-Item-Choice-Structure.c b/e2sm/lib/RANParameter-Testing-Item-Choice-Structure.c
new file mode 100644
index 0000000..ae75fd4
--- /dev/null
+++ b/e2sm/lib/RANParameter-Testing-Item-Choice-Structure.c
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANParameter-Testing-Item-Choice-Structure.h"
+
+#include "RANParameter-Testing-STRUCTURE.h"
+asn_TYPE_member_t asn_MBR_RANParameter_Testing_Item_Choice_Structure_1[] = {
+	{ ATF_POINTER, 0, offsetof(struct RANParameter_Testing_Item_Choice_Structure, ranParameter_Structure),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANParameter_Testing_STRUCTURE,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranParameter-Structure"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANParameter_Testing_Item_Choice_Structure_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANParameter_Testing_Item_Choice_Structure_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ranParameter-Structure */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANParameter_Testing_Item_Choice_Structure_specs_1 = {
+	sizeof(struct RANParameter_Testing_Item_Choice_Structure),
+	offsetof(struct RANParameter_Testing_Item_Choice_Structure, _asn_ctx),
+	asn_MAP_RANParameter_Testing_Item_Choice_Structure_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_RANParameter_Testing_Item_Choice_Structure = {
+	"RANParameter-Testing-Item-Choice-Structure",
+	"RANParameter-Testing-Item-Choice-Structure",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANParameter_Testing_Item_Choice_Structure_tags_1,
+	sizeof(asn_DEF_RANParameter_Testing_Item_Choice_Structure_tags_1)
+		/sizeof(asn_DEF_RANParameter_Testing_Item_Choice_Structure_tags_1[0]), /* 1 */
+	asn_DEF_RANParameter_Testing_Item_Choice_Structure_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANParameter_Testing_Item_Choice_Structure_tags_1)
+		/sizeof(asn_DEF_RANParameter_Testing_Item_Choice_Structure_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANParameter_Testing_Item_Choice_Structure_1,
+	1,	/* Elements count */
+	&asn_SPC_RANParameter_Testing_Item_Choice_Structure_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANParameter-Testing-Item.c b/e2sm/lib/RANParameter-Testing-Item.c
new file mode 100644
index 0000000..d81b410
--- /dev/null
+++ b/e2sm/lib/RANParameter-Testing-Item.c
@@ -0,0 +1,141 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANParameter-Testing-Item.h"
+
+#include "RANParameter-Testing-Item-Choice-List.h"
+#include "RANParameter-Testing-Item-Choice-Structure.h"
+#include "RANParameter-Testing-Item-Choice-ElementTrue.h"
+#include "RANParameter-Testing-Item-Choice-ElementFalse.h"
+static asn_oer_constraints_t asn_OER_type_ranParameter_Type_constr_3 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_type_ranParameter_Type_constr_3 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  3 }	/* (0..3,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_ranParameter_Type_3[] = {
+	{ ATF_POINTER, 0, offsetof(struct RANParameter_Testing_Item__ranParameter_Type, choice.ranP_Choice_List),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANParameter_Testing_Item_Choice_List,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranP-Choice-List"
+		},
+	{ ATF_POINTER, 0, offsetof(struct RANParameter_Testing_Item__ranParameter_Type, choice.ranP_Choice_Structure),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANParameter_Testing_Item_Choice_Structure,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranP-Choice-Structure"
+		},
+	{ ATF_POINTER, 0, offsetof(struct RANParameter_Testing_Item__ranParameter_Type, choice.ranP_Choice_ElementTrue),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANParameter_Testing_Item_Choice_ElementTrue,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranP-Choice-ElementTrue"
+		},
+	{ ATF_POINTER, 0, offsetof(struct RANParameter_Testing_Item__ranParameter_Type, choice.ranP_Choice_ElementFalse),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANParameter_Testing_Item_Choice_ElementFalse,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranP-Choice-ElementFalse"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_ranParameter_Type_tag2el_3[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranP-Choice-List */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ranP-Choice-Structure */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ranP-Choice-ElementTrue */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ranP-Choice-ElementFalse */
+};
+static asn_CHOICE_specifics_t asn_SPC_ranParameter_Type_specs_3 = {
+	sizeof(struct RANParameter_Testing_Item__ranParameter_Type),
+	offsetof(struct RANParameter_Testing_Item__ranParameter_Type, _asn_ctx),
+	offsetof(struct RANParameter_Testing_Item__ranParameter_Type, present),
+	sizeof(((struct RANParameter_Testing_Item__ranParameter_Type *)0)->present),
+	asn_MAP_ranParameter_Type_tag2el_3,
+	4,	/* Count of tags in the map */
+	0, 0,
+	4	/* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ranParameter_Type_3 = {
+	"ranParameter-Type",
+	"ranParameter-Type",
+	&asn_OP_CHOICE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ &asn_OER_type_ranParameter_Type_constr_3, &asn_PER_type_ranParameter_Type_constr_3, CHOICE_constraint },
+	asn_MBR_ranParameter_Type_3,
+	4,	/* Elements count */
+	&asn_SPC_ranParameter_Type_specs_3	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RANParameter_Testing_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANParameter_Testing_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 RANParameter_Testing_Item, ranParameter_Type),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_ranParameter_Type_3,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranParameter-Type"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANParameter_Testing_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANParameter_Testing_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranParameter-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranParameter-Type */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANParameter_Testing_Item_specs_1 = {
+	sizeof(struct RANParameter_Testing_Item),
+	offsetof(struct RANParameter_Testing_Item, _asn_ctx),
+	asn_MAP_RANParameter_Testing_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_RANParameter_Testing_Item = {
+	"RANParameter-Testing-Item",
+	"RANParameter-Testing-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANParameter_Testing_Item_tags_1,
+	sizeof(asn_DEF_RANParameter_Testing_Item_tags_1)
+		/sizeof(asn_DEF_RANParameter_Testing_Item_tags_1[0]), /* 1 */
+	asn_DEF_RANParameter_Testing_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANParameter_Testing_Item_tags_1)
+		/sizeof(asn_DEF_RANParameter_Testing_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANParameter_Testing_Item_1,
+	2,	/* Elements count */
+	&asn_SPC_RANParameter_Testing_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANParameter-Testing-LIST.c b/e2sm/lib/RANParameter-Testing-LIST.c
new file mode 100644
index 0000000..c4e4abc
--- /dev/null
+++ b/e2sm/lib/RANParameter-Testing-LIST.c
@@ -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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANParameter-Testing-LIST.h"
+
+#include "RANParameter-Testing-Item.h"
+static asn_oer_constraints_t asn_OER_type_RANParameter_Testing_LIST_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_RANParameter_Testing_LIST_constr_1 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  1,  65535 }	/* (SIZE(1..65535)) */,
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_RANParameter_Testing_LIST_1[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_RANParameter_Testing_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANParameter_Testing_LIST_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_RANParameter_Testing_LIST_specs_1 = {
+	sizeof(struct RANParameter_Testing_LIST),
+	offsetof(struct RANParameter_Testing_LIST, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANParameter_Testing_LIST = {
+	"RANParameter-Testing-LIST",
+	"RANParameter-Testing-LIST",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_RANParameter_Testing_LIST_tags_1,
+	sizeof(asn_DEF_RANParameter_Testing_LIST_tags_1)
+		/sizeof(asn_DEF_RANParameter_Testing_LIST_tags_1[0]), /* 1 */
+	asn_DEF_RANParameter_Testing_LIST_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANParameter_Testing_LIST_tags_1)
+		/sizeof(asn_DEF_RANParameter_Testing_LIST_tags_1[0]), /* 1 */
+	{ &asn_OER_type_RANParameter_Testing_LIST_constr_1, &asn_PER_type_RANParameter_Testing_LIST_constr_1, SEQUENCE_OF_constraint },
+	asn_MBR_RANParameter_Testing_LIST_1,
+	1,	/* Single element */
+	&asn_SPC_RANParameter_Testing_LIST_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANParameter-Testing-STRUCTURE.c b/e2sm/lib/RANParameter-Testing-STRUCTURE.c
new file mode 100644
index 0000000..2080910
--- /dev/null
+++ b/e2sm/lib/RANParameter-Testing-STRUCTURE.c
@@ -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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANParameter-Testing-STRUCTURE.h"
+
+#include "RANParameter-Testing-Item.h"
+static asn_oer_constraints_t asn_OER_type_RANParameter_Testing_STRUCTURE_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_RANParameter_Testing_STRUCTURE_constr_1 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  1,  65535 }	/* (SIZE(1..65535)) */,
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_RANParameter_Testing_STRUCTURE_1[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_RANParameter_Testing_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANParameter_Testing_STRUCTURE_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_RANParameter_Testing_STRUCTURE_specs_1 = {
+	sizeof(struct RANParameter_Testing_STRUCTURE),
+	offsetof(struct RANParameter_Testing_STRUCTURE, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANParameter_Testing_STRUCTURE = {
+	"RANParameter-Testing-STRUCTURE",
+	"RANParameter-Testing-STRUCTURE",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_RANParameter_Testing_STRUCTURE_tags_1,
+	sizeof(asn_DEF_RANParameter_Testing_STRUCTURE_tags_1)
+		/sizeof(asn_DEF_RANParameter_Testing_STRUCTURE_tags_1[0]), /* 1 */
+	asn_DEF_RANParameter_Testing_STRUCTURE_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANParameter_Testing_STRUCTURE_tags_1)
+		/sizeof(asn_DEF_RANParameter_Testing_STRUCTURE_tags_1[0]), /* 1 */
+	{ &asn_OER_type_RANParameter_Testing_STRUCTURE_constr_1, &asn_PER_type_RANParameter_Testing_STRUCTURE_constr_1, SEQUENCE_OF_constraint },
+	asn_MBR_RANParameter_Testing_STRUCTURE_1,
+	1,	/* Single element */
+	&asn_SPC_RANParameter_Testing_STRUCTURE_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANParameter-Testing.c b/e2sm/lib/RANParameter-Testing.c
new file mode 100644
index 0000000..6aa8873
--- /dev/null
+++ b/e2sm/lib/RANParameter-Testing.c
@@ -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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANParameter-Testing.h"
+
+#include "RANParameter-Testing-Item.h"
+static asn_oer_constraints_t asn_OER_type_RANParameter_Testing_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..255)) */};
+asn_per_constraints_t asn_PER_type_RANParameter_Testing_constr_1 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 8,  8,  1,  255 }	/* (SIZE(1..255)) */,
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_RANParameter_Testing_1[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_RANParameter_Testing_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANParameter_Testing_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_RANParameter_Testing_specs_1 = {
+	sizeof(struct RANParameter_Testing),
+	offsetof(struct RANParameter_Testing, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_RANParameter_Testing = {
+	"RANParameter-Testing",
+	"RANParameter-Testing",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_RANParameter_Testing_tags_1,
+	sizeof(asn_DEF_RANParameter_Testing_tags_1)
+		/sizeof(asn_DEF_RANParameter_Testing_tags_1[0]), /* 1 */
+	asn_DEF_RANParameter_Testing_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANParameter_Testing_tags_1)
+		/sizeof(asn_DEF_RANParameter_Testing_tags_1[0]), /* 1 */
+	{ &asn_OER_type_RANParameter_Testing_constr_1, &asn_PER_type_RANParameter_Testing_constr_1, SEQUENCE_OF_constraint },
+	asn_MBR_RANParameter_Testing_1,
+	1,	/* Single element */
+	&asn_SPC_RANParameter_Testing_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANParameter-TestingCondition.c b/e2sm/lib/RANParameter-TestingCondition.c
new file mode 100644
index 0000000..35db21f
--- /dev/null
+++ b/e2sm/lib/RANParameter-TestingCondition.c
@@ -0,0 +1,179 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANParameter-TestingCondition.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_ranP_Choice_comparison_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_type_ranP_Choice_comparison_constr_2 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  5 }	/* (0..5,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_ranP_Choice_presence_constr_10 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_type_ranP_Choice_presence_constr_10 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  3 }	/* (0..3,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_type_RANParameter_TestingCondition_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_RANParameter_TestingCondition_constr_1 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_ranP_Choice_comparison_value2enum_2[] = {
+	{ 0,	5,	"equal" },
+	{ 1,	10,	"difference" },
+	{ 2,	11,	"greaterthan" },
+	{ 3,	8,	"lessthan" },
+	{ 4,	8,	"contains" },
+	{ 5,	11,	"starts-with" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_ranP_Choice_comparison_enum2value_2[] = {
+	4,	/* contains(4) */
+	1,	/* difference(1) */
+	0,	/* equal(0) */
+	2,	/* greaterthan(2) */
+	3,	/* lessthan(3) */
+	5	/* starts-with(5) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_ranP_Choice_comparison_specs_2 = {
+	asn_MAP_ranP_Choice_comparison_value2enum_2,	/* "tag" => N; sorted by tag */
+	asn_MAP_ranP_Choice_comparison_enum2value_2,	/* N => "tag"; sorted by N */
+	6,	/* Number of elements in the maps */
+	7,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_ranP_Choice_comparison_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ranP_Choice_comparison_2 = {
+	"ranP-Choice-comparison",
+	"ranP-Choice-comparison",
+	&asn_OP_NativeEnumerated,
+	asn_DEF_ranP_Choice_comparison_tags_2,
+	sizeof(asn_DEF_ranP_Choice_comparison_tags_2)
+		/sizeof(asn_DEF_ranP_Choice_comparison_tags_2[0]) - 1, /* 1 */
+	asn_DEF_ranP_Choice_comparison_tags_2,	/* Same as above */
+	sizeof(asn_DEF_ranP_Choice_comparison_tags_2)
+		/sizeof(asn_DEF_ranP_Choice_comparison_tags_2[0]), /* 2 */
+	{ &asn_OER_type_ranP_Choice_comparison_constr_2, &asn_PER_type_ranP_Choice_comparison_constr_2, NativeEnumerated_constraint },
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_ranP_Choice_comparison_specs_2	/* Additional specs */
+};
+
+static const asn_INTEGER_enum_map_t asn_MAP_ranP_Choice_presence_value2enum_10[] = {
+	{ 0,	7,	"present" },
+	{ 1,	10,	"configured" },
+	{ 2,	8,	"rollover" },
+	{ 3,	8,	"non-zero" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_ranP_Choice_presence_enum2value_10[] = {
+	1,	/* configured(1) */
+	3,	/* non-zero(3) */
+	0,	/* present(0) */
+	2	/* rollover(2) */
+	/* This list is extensible */
+};
+static const asn_INTEGER_specifics_t asn_SPC_ranP_Choice_presence_specs_10 = {
+	asn_MAP_ranP_Choice_presence_value2enum_10,	/* "tag" => N; sorted by tag */
+	asn_MAP_ranP_Choice_presence_enum2value_10,	/* N => "tag"; sorted by N */
+	4,	/* Number of elements in the maps */
+	5,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_ranP_Choice_presence_tags_10[] = {
+	(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_ranP_Choice_presence_10 = {
+	"ranP-Choice-presence",
+	"ranP-Choice-presence",
+	&asn_OP_NativeEnumerated,
+	asn_DEF_ranP_Choice_presence_tags_10,
+	sizeof(asn_DEF_ranP_Choice_presence_tags_10)
+		/sizeof(asn_DEF_ranP_Choice_presence_tags_10[0]) - 1, /* 1 */
+	asn_DEF_ranP_Choice_presence_tags_10,	/* Same as above */
+	sizeof(asn_DEF_ranP_Choice_presence_tags_10)
+		/sizeof(asn_DEF_ranP_Choice_presence_tags_10[0]), /* 2 */
+	{ &asn_OER_type_ranP_Choice_presence_constr_10, &asn_PER_type_ranP_Choice_presence_constr_10, NativeEnumerated_constraint },
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_ranP_Choice_presence_specs_10	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RANParameter_TestingCondition_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANParameter_TestingCondition, choice.ranP_Choice_comparison),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_ranP_Choice_comparison_2,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranP-Choice-comparison"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANParameter_TestingCondition, choice.ranP_Choice_presence),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_ranP_Choice_presence_10,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranP-Choice-presence"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANParameter_TestingCondition_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranP-Choice-comparison */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ranP-Choice-presence */
+};
+asn_CHOICE_specifics_t asn_SPC_RANParameter_TestingCondition_specs_1 = {
+	sizeof(struct RANParameter_TestingCondition),
+	offsetof(struct RANParameter_TestingCondition, _asn_ctx),
+	offsetof(struct RANParameter_TestingCondition, present),
+	sizeof(((struct RANParameter_TestingCondition *)0)->present),
+	asn_MAP_RANParameter_TestingCondition_tag2el_1,
+	2,	/* Count of tags in the map */
+	0, 0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_RANParameter_TestingCondition = {
+	"RANParameter-TestingCondition",
+	"RANParameter-TestingCondition",
+	&asn_OP_CHOICE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ &asn_OER_type_RANParameter_TestingCondition_constr_1, &asn_PER_type_RANParameter_TestingCondition_constr_1, CHOICE_constraint },
+	asn_MBR_RANParameter_TestingCondition_1,
+	2,	/* Elements count */
+	&asn_SPC_RANParameter_TestingCondition_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANParameter-Value.c b/e2sm/lib/RANParameter-Value.c
index 91f2bc9..f3cc00c 100644
--- a/e2sm/lib/RANParameter-Value.c
+++ b/e2sm/lib/RANParameter-Value.c
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
@@ -11,22 +11,49 @@
 	{ 0, 0 },
 	-1};
 asn_per_constraints_t asn_PER_type_RANParameter_Value_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }	/* (0..1,...) */,
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  5 }	/* (0..5,...) */,
 	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
 	0, 0	/* No PER value map */
 };
 asn_TYPE_member_t asn_MBR_RANParameter_Value_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct RANParameter_Value, choice.valueInt),
+	{ ATF_NOFLAGS, 0, offsetof(struct RANParameter_Value, choice.valueBoolean),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_BOOLEAN,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"valueBoolean"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANParameter_Value, choice.valueInt),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_NativeInteger,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
 		"valueInt"
 		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANParameter_Value, choice.valueReal),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeReal,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"valueReal"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANParameter_Value, choice.valueBitS),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_BIT_STRING,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"valueBitS"
+		},
 	{ ATF_NOFLAGS, 0, offsetof(struct RANParameter_Value, choice.valueOctS),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
 		-1,	/* IMPLICIT tag at current level */
 		&asn_DEF_OCTET_STRING,
 		0,
@@ -34,10 +61,23 @@
 		0, 0, /* No default value */
 		"valueOctS"
 		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RANParameter_Value, choice.valuePrintableString),
+		(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_PrintableString,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"valuePrintableString"
+		},
 };
 static const asn_TYPE_tag2member_t asn_MAP_RANParameter_Value_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* valueInt */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* valueOctS */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* valueBoolean */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* valueInt */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* valueReal */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* valueBitS */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* valueOctS */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* valuePrintableString */
 };
 asn_CHOICE_specifics_t asn_SPC_RANParameter_Value_specs_1 = {
 	sizeof(struct RANParameter_Value),
@@ -45,9 +85,9 @@
 	offsetof(struct RANParameter_Value, present),
 	sizeof(((struct RANParameter_Value *)0)->present),
 	asn_MAP_RANParameter_Value_tag2el_1,
-	2,	/* Count of tags in the map */
+	6,	/* Count of tags in the map */
 	0, 0,
-	2	/* Extensions start */
+	6	/* Extensions start */
 };
 asn_TYPE_descriptor_t asn_DEF_RANParameter_Value = {
 	"RANParameter-Value",
@@ -59,7 +99,7 @@
 	0,	/* No tags (count) */
 	{ &asn_OER_type_RANParameter_Value_constr_1, &asn_PER_type_RANParameter_Value_constr_1, CHOICE_constraint },
 	asn_MBR_RANParameter_Value_1,
-	2,	/* Elements count */
+	6,	/* Elements count */
 	&asn_SPC_RANParameter_Value_specs_1	/* Additional specs */
 };
 
diff --git a/e2sm/lib/RANParameter-ValueType-Choice-ElementFalse.c b/e2sm/lib/RANParameter-ValueType-Choice-ElementFalse.c
new file mode 100644
index 0000000..943ee92
--- /dev/null
+++ b/e2sm/lib/RANParameter-ValueType-Choice-ElementFalse.c
@@ -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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANParameter-ValueType-Choice-ElementFalse.h"
+
+#include "RANParameter-Value.h"
+asn_TYPE_member_t asn_MBR_RANParameter_ValueType_Choice_ElementFalse_1[] = {
+	{ ATF_POINTER, 1, offsetof(struct RANParameter_ValueType_Choice_ElementFalse, ranParameter_value),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_RANParameter_Value,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranParameter-value"
+		},
+};
+static const int asn_MAP_RANParameter_ValueType_Choice_ElementFalse_oms_1[] = { 0 };
+static const ber_tlv_tag_t asn_DEF_RANParameter_ValueType_Choice_ElementFalse_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANParameter_ValueType_Choice_ElementFalse_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ranParameter-value */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANParameter_ValueType_Choice_ElementFalse_specs_1 = {
+	sizeof(struct RANParameter_ValueType_Choice_ElementFalse),
+	offsetof(struct RANParameter_ValueType_Choice_ElementFalse, _asn_ctx),
+	asn_MAP_RANParameter_ValueType_Choice_ElementFalse_tag2el_1,
+	1,	/* Count of tags in the map */
+	asn_MAP_RANParameter_ValueType_Choice_ElementFalse_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	1,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RANParameter_ValueType_Choice_ElementFalse = {
+	"RANParameter-ValueType-Choice-ElementFalse",
+	"RANParameter-ValueType-Choice-ElementFalse",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANParameter_ValueType_Choice_ElementFalse_tags_1,
+	sizeof(asn_DEF_RANParameter_ValueType_Choice_ElementFalse_tags_1)
+		/sizeof(asn_DEF_RANParameter_ValueType_Choice_ElementFalse_tags_1[0]), /* 1 */
+	asn_DEF_RANParameter_ValueType_Choice_ElementFalse_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANParameter_ValueType_Choice_ElementFalse_tags_1)
+		/sizeof(asn_DEF_RANParameter_ValueType_Choice_ElementFalse_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANParameter_ValueType_Choice_ElementFalse_1,
+	1,	/* Elements count */
+	&asn_SPC_RANParameter_ValueType_Choice_ElementFalse_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANParameter-ValueType-Choice-ElementTrue.c b/e2sm/lib/RANParameter-ValueType-Choice-ElementTrue.c
new file mode 100644
index 0000000..2cb2bcd
--- /dev/null
+++ b/e2sm/lib/RANParameter-ValueType-Choice-ElementTrue.c
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANParameter-ValueType-Choice-ElementTrue.h"
+
+asn_TYPE_member_t asn_MBR_RANParameter_ValueType_Choice_ElementTrue_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RANParameter_ValueType_Choice_ElementTrue, ranParameter_value),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 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_RANParameter_ValueType_Choice_ElementTrue_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANParameter_ValueType_Choice_ElementTrue_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ranParameter-value */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANParameter_ValueType_Choice_ElementTrue_specs_1 = {
+	sizeof(struct RANParameter_ValueType_Choice_ElementTrue),
+	offsetof(struct RANParameter_ValueType_Choice_ElementTrue, _asn_ctx),
+	asn_MAP_RANParameter_ValueType_Choice_ElementTrue_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_RANParameter_ValueType_Choice_ElementTrue = {
+	"RANParameter-ValueType-Choice-ElementTrue",
+	"RANParameter-ValueType-Choice-ElementTrue",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANParameter_ValueType_Choice_ElementTrue_tags_1,
+	sizeof(asn_DEF_RANParameter_ValueType_Choice_ElementTrue_tags_1)
+		/sizeof(asn_DEF_RANParameter_ValueType_Choice_ElementTrue_tags_1[0]), /* 1 */
+	asn_DEF_RANParameter_ValueType_Choice_ElementTrue_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANParameter_ValueType_Choice_ElementTrue_tags_1)
+		/sizeof(asn_DEF_RANParameter_ValueType_Choice_ElementTrue_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANParameter_ValueType_Choice_ElementTrue_1,
+	1,	/* Elements count */
+	&asn_SPC_RANParameter_ValueType_Choice_ElementTrue_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANParameter-ValueType-Choice-List.c b/e2sm/lib/RANParameter-ValueType-Choice-List.c
new file mode 100644
index 0000000..f4572e2
--- /dev/null
+++ b/e2sm/lib/RANParameter-ValueType-Choice-List.c
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANParameter-ValueType-Choice-List.h"
+
+#include "RANParameter-LIST.h"
+asn_TYPE_member_t asn_MBR_RANParameter_ValueType_Choice_List_1[] = {
+	{ ATF_POINTER, 0, offsetof(struct RANParameter_ValueType_Choice_List, ranParameter_List),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANParameter_LIST,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranParameter-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANParameter_ValueType_Choice_List_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANParameter_ValueType_Choice_List_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ranParameter-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANParameter_ValueType_Choice_List_specs_1 = {
+	sizeof(struct RANParameter_ValueType_Choice_List),
+	offsetof(struct RANParameter_ValueType_Choice_List, _asn_ctx),
+	asn_MAP_RANParameter_ValueType_Choice_List_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_RANParameter_ValueType_Choice_List = {
+	"RANParameter-ValueType-Choice-List",
+	"RANParameter-ValueType-Choice-List",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANParameter_ValueType_Choice_List_tags_1,
+	sizeof(asn_DEF_RANParameter_ValueType_Choice_List_tags_1)
+		/sizeof(asn_DEF_RANParameter_ValueType_Choice_List_tags_1[0]), /* 1 */
+	asn_DEF_RANParameter_ValueType_Choice_List_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANParameter_ValueType_Choice_List_tags_1)
+		/sizeof(asn_DEF_RANParameter_ValueType_Choice_List_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANParameter_ValueType_Choice_List_1,
+	1,	/* Elements count */
+	&asn_SPC_RANParameter_ValueType_Choice_List_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANParameter-ValueType-Choice-Structure.c b/e2sm/lib/RANParameter-ValueType-Choice-Structure.c
new file mode 100644
index 0000000..bea8294
--- /dev/null
+++ b/e2sm/lib/RANParameter-ValueType-Choice-Structure.c
@@ -0,0 +1,51 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANParameter-ValueType-Choice-Structure.h"
+
+#include "RANParameter-STRUCTURE.h"
+asn_TYPE_member_t asn_MBR_RANParameter_ValueType_Choice_Structure_1[] = {
+	{ ATF_POINTER, 0, offsetof(struct RANParameter_ValueType_Choice_Structure, ranParameter_Structure),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANParameter_STRUCTURE,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranParameter-Structure"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RANParameter_ValueType_Choice_Structure_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RANParameter_ValueType_Choice_Structure_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ranParameter-Structure */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RANParameter_ValueType_Choice_Structure_specs_1 = {
+	sizeof(struct RANParameter_ValueType_Choice_Structure),
+	offsetof(struct RANParameter_ValueType_Choice_Structure, _asn_ctx),
+	asn_MAP_RANParameter_ValueType_Choice_Structure_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_RANParameter_ValueType_Choice_Structure = {
+	"RANParameter-ValueType-Choice-Structure",
+	"RANParameter-ValueType-Choice-Structure",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RANParameter_ValueType_Choice_Structure_tags_1,
+	sizeof(asn_DEF_RANParameter_ValueType_Choice_Structure_tags_1)
+		/sizeof(asn_DEF_RANParameter_ValueType_Choice_Structure_tags_1[0]), /* 1 */
+	asn_DEF_RANParameter_ValueType_Choice_Structure_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANParameter_ValueType_Choice_Structure_tags_1)
+		/sizeof(asn_DEF_RANParameter_ValueType_Choice_Structure_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RANParameter_ValueType_Choice_Structure_1,
+	1,	/* Elements count */
+	&asn_SPC_RANParameter_ValueType_Choice_Structure_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANParameter-ValueType.c b/e2sm/lib/RANParameter-ValueType.c
index ebbf953..8852e86 100644
--- a/e2sm/lib/RANParameter-ValueType.c
+++ b/e2sm/lib/RANParameter-ValueType.c
@@ -1,56 +1,67 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "RANParameter-ValueType.h"
 
-#include "RANParameter-ELEMENT.h"
-#include "RANParameter-STRUCTURE.h"
-#include "RANParameter-LIST.h"
+#include "RANParameter-ValueType-Choice-ElementTrue.h"
+#include "RANParameter-ValueType-Choice-ElementFalse.h"
+#include "RANParameter-ValueType-Choice-Structure.h"
+#include "RANParameter-ValueType-Choice-List.h"
 static asn_oer_constraints_t asn_OER_type_RANParameter_ValueType_constr_1 CC_NOTUSED = {
 	{ 0, 0 },
 	-1};
 asn_per_constraints_t asn_PER_type_RANParameter_ValueType_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }	/* (0..2,...) */,
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  3 }	/* (0..3,...) */,
 	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
 	0, 0	/* No PER value map */
 };
 asn_TYPE_member_t asn_MBR_RANParameter_ValueType_1[] = {
-	{ ATF_POINTER, 0, offsetof(struct RANParameter_ValueType, choice.ranParameter_Element),
+	{ ATF_POINTER, 0, offsetof(struct RANParameter_ValueType, choice.ranP_Choice_ElementTrue),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_RANParameter_ELEMENT,
+		&asn_DEF_RANParameter_ValueType_Choice_ElementTrue,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
-		"ranParameter-Element"
+		"ranP-Choice-ElementTrue"
 		},
-	{ ATF_POINTER, 0, offsetof(struct RANParameter_ValueType, choice.ranParameter_Structure),
+	{ ATF_POINTER, 0, offsetof(struct RANParameter_ValueType, choice.ranP_Choice_ElementFalse),
 		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
 		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_RANParameter_STRUCTURE,
+		&asn_DEF_RANParameter_ValueType_Choice_ElementFalse,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
-		"ranParameter-Structure"
+		"ranP-Choice-ElementFalse"
 		},
-	{ ATF_POINTER, 0, offsetof(struct RANParameter_ValueType, choice.ranParameter_List),
+	{ ATF_POINTER, 0, offsetof(struct RANParameter_ValueType, choice.ranP_Choice_Structure),
 		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
 		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_RANParameter_LIST,
+		&asn_DEF_RANParameter_ValueType_Choice_Structure,
 		0,
 		{ 0, 0, 0 },
 		0, 0, /* No default value */
-		"ranParameter-List"
+		"ranP-Choice-Structure"
+		},
+	{ ATF_POINTER, 0, offsetof(struct RANParameter_ValueType, choice.ranP_Choice_List),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANParameter_ValueType_Choice_List,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ranP-Choice-List"
 		},
 };
 static const asn_TYPE_tag2member_t asn_MAP_RANParameter_ValueType_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranParameter-Element */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ranParameter-Structure */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ranParameter-List */
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranP-Choice-ElementTrue */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ranP-Choice-ElementFalse */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ranP-Choice-Structure */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ranP-Choice-List */
 };
 asn_CHOICE_specifics_t asn_SPC_RANParameter_ValueType_specs_1 = {
 	sizeof(struct RANParameter_ValueType),
@@ -58,9 +69,9 @@
 	offsetof(struct RANParameter_ValueType, present),
 	sizeof(((struct RANParameter_ValueType *)0)->present),
 	asn_MAP_RANParameter_ValueType_tag2el_1,
-	3,	/* Count of tags in the map */
+	4,	/* Count of tags in the map */
 	0, 0,
-	3	/* Extensions start */
+	4	/* Extensions start */
 };
 asn_TYPE_descriptor_t asn_DEF_RANParameter_ValueType = {
 	"RANParameter-ValueType",
@@ -72,7 +83,7 @@
 	0,	/* No tags (count) */
 	{ &asn_OER_type_RANParameter_ValueType_constr_1, &asn_PER_type_RANParameter_ValueType_constr_1, CHOICE_constraint },
 	asn_MBR_RANParameter_ValueType_1,
-	3,	/* Elements count */
+	4,	/* Elements count */
 	&asn_SPC_RANParameter_ValueType_specs_1	/* Additional specs */
 };
 
diff --git a/e2sm/lib/RANUEID.c b/e2sm/lib/RANUEID.c
new file mode 100644
index 0000000..f1fe907
--- /dev/null
+++ b/e2sm/lib/RANUEID.c
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RANUEID.h"
+
+int
+RANUEID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size == 8)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_RANUEID_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	8	/* (SIZE(8..8)) */};
+asn_per_constraints_t asn_PER_type_RANUEID_constr_1 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  8,  8 }	/* (SIZE(8..8)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RANUEID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RANUEID = {
+	"RANUEID",
+	"RANUEID",
+	&asn_OP_OCTET_STRING,
+	asn_DEF_RANUEID_tags_1,
+	sizeof(asn_DEF_RANUEID_tags_1)
+		/sizeof(asn_DEF_RANUEID_tags_1[0]), /* 1 */
+	asn_DEF_RANUEID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RANUEID_tags_1)
+		/sizeof(asn_DEF_RANUEID_tags_1[0]), /* 1 */
+	{ &asn_OER_type_RANUEID_constr_1, &asn_PER_type_RANUEID_constr_1, RANUEID_constraint },
+	0, 0,	/* No members */
+	&asn_SPC_OCTET_STRING_specs	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RANcallProcess-ID-string.c b/e2sm/lib/RANcallProcess-ID-string.c
deleted file mode 100644
index 69092be..0000000
--- a/e2sm/lib/RANcallProcess-ID-string.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "RANcallProcess-ID-string.h"
-
-static const int permitted_alphabet_table_1[256] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/*                  */
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/*                  */
- 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9,	/* .      '() +,-./ */
-10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22,	/* 0123456789:  = ? */
- 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,	/*  ABCDEFGHIJKLMNO */
-38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0,	/* PQRSTUVWXYZ      */
- 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,	/*  abcdefghijklmno */
-64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0,	/* pqrstuvwxyz      */
-};
-static const int permitted_alphabet_code2value_1[74] = {
-32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54,
-55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74,
-75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,
-97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,
-113,114,115,116,117,118,119,120,121,122,};
-
-
-static int check_permitted_alphabet_1(const void *sptr) {
-	const int *table = permitted_alphabet_table_1;
-	/* The underlying type is PrintableString */
-	const PrintableString_t *st = (const PrintableString_t *)sptr;
-	const uint8_t *ch = st->buf;
-	const uint8_t *end = ch + st->size;
-	
-	for(; ch < end; ch++) {
-		uint8_t cv = *ch;
-		if(!table[cv]) return -1;
-	}
-	return 0;
-}
-
-int
-RANcallProcess_ID_string_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	const PrintableString_t *st = (const PrintableString_t *)sptr;
-	size_t size;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	size = st->size;
-	
-	if((size >= 1 && size <= 150)
-		 && !check_permitted_alphabet_1(st)) {
-		/* Constraint check succeeded */
-		return 0;
-	} else {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: constraint failed (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-}
-
-static int asn_PER_MAP_RANcallProcess_ID_string_1_v2c(unsigned int value) {
-	if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0]))
-		return -1;
-	return permitted_alphabet_table_1[value] - 1;
-}
-static int asn_PER_MAP_RANcallProcess_ID_string_1_c2v(unsigned int code) {
-	if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0]))
-		return -1;
-	return permitted_alphabet_code2value_1[code];
-}
-/*
- * This type is implemented using PrintableString,
- * so here we adjust the DEF accordingly.
- */
-static asn_oer_constraints_t asn_OER_type_RANcallProcess_ID_string_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(0..MAX)) */};
-static asn_per_constraints_t asn_PER_type_RANcallProcess_ID_string_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED,	 7,  7,  32,  122 }	/* (32..122) */,
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  8,  8,  1,  150 }	/* (SIZE(1..150,...)) */,
-	asn_PER_MAP_RANcallProcess_ID_string_1_v2c,	/* Value to PER code map */
-	asn_PER_MAP_RANcallProcess_ID_string_1_c2v	/* PER code to value map */
-};
-static const ber_tlv_tag_t asn_DEF_RANcallProcess_ID_string_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (19 << 2))
-};
-asn_TYPE_descriptor_t asn_DEF_RANcallProcess_ID_string = {
-	"RANcallProcess-ID-string",
-	"RANcallProcess-ID-string",
-	&asn_OP_PrintableString,
-	asn_DEF_RANcallProcess_ID_string_tags_1,
-	sizeof(asn_DEF_RANcallProcess_ID_string_tags_1)
-		/sizeof(asn_DEF_RANcallProcess_ID_string_tags_1[0]), /* 1 */
-	asn_DEF_RANcallProcess_ID_string_tags_1,	/* Same as above */
-	sizeof(asn_DEF_RANcallProcess_ID_string_tags_1)
-		/sizeof(asn_DEF_RANcallProcess_ID_string_tags_1[0]), /* 1 */
-	{ &asn_OER_type_RANcallProcess_ID_string_constr_1, &asn_PER_type_RANcallProcess_ID_string_constr_1, RANcallProcess_ID_string_constraint },
-	0, 0,	/* No members */
-	0	/* No specifics */
-};
-
diff --git a/e2sm/lib/RANfunction-Name.c b/e2sm/lib/RANfunction-Name.c
index a56189d..d467e01 100644
--- a/e2sm/lib/RANfunction-Name.c
+++ b/e2sm/lib/RANfunction-Name.c
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
@@ -155,7 +155,7 @@
 	
 	size = st->size;
 	
-	if((size >= 1 && size <= 150)
+	if((size >= 1 && size <= 1000)
 		 && !check_permitted_alphabet_3(st)) {
 		/* Constraint check succeeded */
 		return 0;
@@ -228,7 +228,7 @@
 	-1	/* (SIZE(0..MAX)) */};
 static asn_per_constraints_t asn_PER_memb_ranFunction_E2SM_OID_constr_3 CC_NOTUSED = {
 	{ APC_CONSTRAINED,	 7,  7,  32,  122 }	/* (32..122) */,
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  8,  8,  1,  150 }	/* (SIZE(1..150,...)) */,
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  10,  10,  1,  1000 }	/* (SIZE(1..1000,...)) */,
 	asn_PER_MAP_ranFunction_E2SM_OID_3_v2c,	/* Value to PER code map */
 	asn_PER_MAP_ranFunction_E2SM_OID_3_c2v	/* PER code to value map */
 };
diff --git a/e2sm/lib/RIC-CallProcessBreakpoint-ID.c b/e2sm/lib/RIC-CallProcessBreakpoint-ID.c
new file mode 100644
index 0000000..bd9f37b
--- /dev/null
+++ b/e2sm/lib/RIC-CallProcessBreakpoint-ID.c
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RIC-CallProcessBreakpoint-ID.h"
+
+int
+RIC_CallProcessBreakpoint_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1 && value <= 65535)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_RIC_CallProcessBreakpoint_ID_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_RIC_CallProcessBreakpoint_ID_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  16,  16,  1,  65535 }	/* (1..65535,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RIC_CallProcessBreakpoint_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RIC_CallProcessBreakpoint_ID = {
+	"RIC-CallProcessBreakpoint-ID",
+	"RIC-CallProcessBreakpoint-ID",
+	&asn_OP_NativeInteger,
+	asn_DEF_RIC_CallProcessBreakpoint_ID_tags_1,
+	sizeof(asn_DEF_RIC_CallProcessBreakpoint_ID_tags_1)
+		/sizeof(asn_DEF_RIC_CallProcessBreakpoint_ID_tags_1[0]), /* 1 */
+	asn_DEF_RIC_CallProcessBreakpoint_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RIC_CallProcessBreakpoint_ID_tags_1)
+		/sizeof(asn_DEF_RIC_CallProcessBreakpoint_ID_tags_1[0]), /* 1 */
+	{ &asn_OER_type_RIC_CallProcessBreakpoint_ID_constr_1, &asn_PER_type_RIC_CallProcessBreakpoint_ID_constr_1, RIC_CallProcessBreakpoint_ID_constraint },
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/e2sm/lib/RIC-CallProcessBreakpoint-Name.c b/e2sm/lib/RIC-CallProcessBreakpoint-Name.c
new file mode 100644
index 0000000..85d59b2
--- /dev/null
+++ b/e2sm/lib/RIC-CallProcessBreakpoint-Name.c
@@ -0,0 +1,109 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RIC-CallProcessBreakpoint-Name.h"
+
+static const int permitted_alphabet_table_1[256] = {
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/*                  */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/*                  */
+ 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9,	/* .      '() +,-./ */
+10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22,	/* 0123456789:  = ? */
+ 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,	/*  ABCDEFGHIJKLMNO */
+38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0,	/* PQRSTUVWXYZ      */
+ 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,	/*  abcdefghijklmno */
+64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0,	/* pqrstuvwxyz      */
+};
+static const int permitted_alphabet_code2value_1[74] = {
+32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54,
+55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74,
+75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,
+97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,
+113,114,115,116,117,118,119,120,121,122,};
+
+
+static int check_permitted_alphabet_1(const void *sptr) {
+	const int *table = permitted_alphabet_table_1;
+	/* The underlying type is PrintableString */
+	const PrintableString_t *st = (const PrintableString_t *)sptr;
+	const uint8_t *ch = st->buf;
+	const uint8_t *end = ch + st->size;
+	
+	for(; ch < end; ch++) {
+		uint8_t cv = *ch;
+		if(!table[cv]) return -1;
+	}
+	return 0;
+}
+
+int
+RIC_CallProcessBreakpoint_Name_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const PrintableString_t *st = (const PrintableString_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size >= 1 && size <= 150)
+		 && !check_permitted_alphabet_1(st)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static int asn_PER_MAP_RIC_CallProcessBreakpoint_Name_1_v2c(unsigned int value) {
+	if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0]))
+		return -1;
+	return permitted_alphabet_table_1[value] - 1;
+}
+static int asn_PER_MAP_RIC_CallProcessBreakpoint_Name_1_c2v(unsigned int code) {
+	if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0]))
+		return -1;
+	return permitted_alphabet_code2value_1[code];
+}
+/*
+ * This type is implemented using PrintableString,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_RIC_CallProcessBreakpoint_Name_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(0..MAX)) */};
+asn_per_constraints_t asn_PER_type_RIC_CallProcessBreakpoint_Name_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 7,  7,  32,  122 }	/* (32..122) */,
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  8,  8,  1,  150 }	/* (SIZE(1..150,...)) */,
+	asn_PER_MAP_RIC_CallProcessBreakpoint_Name_1_v2c,	/* Value to PER code map */
+	asn_PER_MAP_RIC_CallProcessBreakpoint_Name_1_c2v	/* PER code to value map */
+};
+static const ber_tlv_tag_t asn_DEF_RIC_CallProcessBreakpoint_Name_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (19 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RIC_CallProcessBreakpoint_Name = {
+	"RIC-CallProcessBreakpoint-Name",
+	"RIC-CallProcessBreakpoint-Name",
+	&asn_OP_PrintableString,
+	asn_DEF_RIC_CallProcessBreakpoint_Name_tags_1,
+	sizeof(asn_DEF_RIC_CallProcessBreakpoint_Name_tags_1)
+		/sizeof(asn_DEF_RIC_CallProcessBreakpoint_Name_tags_1[0]), /* 1 */
+	asn_DEF_RIC_CallProcessBreakpoint_Name_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RIC_CallProcessBreakpoint_Name_tags_1)
+		/sizeof(asn_DEF_RIC_CallProcessBreakpoint_Name_tags_1[0]), /* 1 */
+	{ &asn_OER_type_RIC_CallProcessBreakpoint_Name_constr_1, &asn_PER_type_RIC_CallProcessBreakpoint_Name_constr_1, RIC_CallProcessBreakpoint_Name_constraint },
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/e2sm/lib/RIC-CallProcessType-ID.c b/e2sm/lib/RIC-CallProcessType-ID.c
new file mode 100644
index 0000000..8cdeed4
--- /dev/null
+++ b/e2sm/lib/RIC-CallProcessType-ID.c
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RIC-CallProcessType-ID.h"
+
+int
+RIC_CallProcessType_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1 && value <= 65535)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_RIC_CallProcessType_ID_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_RIC_CallProcessType_ID_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  16,  16,  1,  65535 }	/* (1..65535,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RIC_CallProcessType_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RIC_CallProcessType_ID = {
+	"RIC-CallProcessType-ID",
+	"RIC-CallProcessType-ID",
+	&asn_OP_NativeInteger,
+	asn_DEF_RIC_CallProcessType_ID_tags_1,
+	sizeof(asn_DEF_RIC_CallProcessType_ID_tags_1)
+		/sizeof(asn_DEF_RIC_CallProcessType_ID_tags_1[0]), /* 1 */
+	asn_DEF_RIC_CallProcessType_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RIC_CallProcessType_ID_tags_1)
+		/sizeof(asn_DEF_RIC_CallProcessType_ID_tags_1[0]), /* 1 */
+	{ &asn_OER_type_RIC_CallProcessType_ID_constr_1, &asn_PER_type_RIC_CallProcessType_ID_constr_1, RIC_CallProcessType_ID_constraint },
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/e2sm/lib/RIC-CallProcessType-Name.c b/e2sm/lib/RIC-CallProcessType-Name.c
new file mode 100644
index 0000000..419f264
--- /dev/null
+++ b/e2sm/lib/RIC-CallProcessType-Name.c
@@ -0,0 +1,109 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RIC-CallProcessType-Name.h"
+
+static const int permitted_alphabet_table_1[256] = {
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/*                  */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/*                  */
+ 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9,	/* .      '() +,-./ */
+10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22,	/* 0123456789:  = ? */
+ 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,	/*  ABCDEFGHIJKLMNO */
+38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0,	/* PQRSTUVWXYZ      */
+ 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,	/*  abcdefghijklmno */
+64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0,	/* pqrstuvwxyz      */
+};
+static const int permitted_alphabet_code2value_1[74] = {
+32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54,
+55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74,
+75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,
+97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,
+113,114,115,116,117,118,119,120,121,122,};
+
+
+static int check_permitted_alphabet_1(const void *sptr) {
+	const int *table = permitted_alphabet_table_1;
+	/* The underlying type is PrintableString */
+	const PrintableString_t *st = (const PrintableString_t *)sptr;
+	const uint8_t *ch = st->buf;
+	const uint8_t *end = ch + st->size;
+	
+	for(; ch < end; ch++) {
+		uint8_t cv = *ch;
+		if(!table[cv]) return -1;
+	}
+	return 0;
+}
+
+int
+RIC_CallProcessType_Name_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const PrintableString_t *st = (const PrintableString_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size >= 1 && size <= 150)
+		 && !check_permitted_alphabet_1(st)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static int asn_PER_MAP_RIC_CallProcessType_Name_1_v2c(unsigned int value) {
+	if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0]))
+		return -1;
+	return permitted_alphabet_table_1[value] - 1;
+}
+static int asn_PER_MAP_RIC_CallProcessType_Name_1_c2v(unsigned int code) {
+	if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0]))
+		return -1;
+	return permitted_alphabet_code2value_1[code];
+}
+/*
+ * This type is implemented using PrintableString,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_RIC_CallProcessType_Name_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(0..MAX)) */};
+asn_per_constraints_t asn_PER_type_RIC_CallProcessType_Name_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 7,  7,  32,  122 }	/* (32..122) */,
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  8,  8,  1,  150 }	/* (SIZE(1..150,...)) */,
+	asn_PER_MAP_RIC_CallProcessType_Name_1_v2c,	/* Value to PER code map */
+	asn_PER_MAP_RIC_CallProcessType_Name_1_c2v	/* PER code to value map */
+};
+static const ber_tlv_tag_t asn_DEF_RIC_CallProcessType_Name_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (19 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RIC_CallProcessType_Name = {
+	"RIC-CallProcessType-Name",
+	"RIC-CallProcessType-Name",
+	&asn_OP_PrintableString,
+	asn_DEF_RIC_CallProcessType_Name_tags_1,
+	sizeof(asn_DEF_RIC_CallProcessType_Name_tags_1)
+		/sizeof(asn_DEF_RIC_CallProcessType_Name_tags_1[0]), /* 1 */
+	asn_DEF_RIC_CallProcessType_Name_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RIC_CallProcessType_Name_tags_1)
+		/sizeof(asn_DEF_RIC_CallProcessType_Name_tags_1[0]), /* 1 */
+	{ &asn_OER_type_RIC_CallProcessType_Name_constr_1, &asn_PER_type_RIC_CallProcessType_Name_constr_1, RIC_CallProcessType_Name_constraint },
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/e2sm/lib/RIC-ControlAction-ID.c b/e2sm/lib/RIC-ControlAction-ID.c
index b0a0178..839a7b2 100644
--- a/e2sm/lib/RIC-ControlAction-ID.c
+++ b/e2sm/lib/RIC-ControlAction-ID.c
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
@@ -21,7 +21,7 @@
 	
 	value = *(const long *)sptr;
 	
-	if((value >= 0 && value <= 65535)) {
+	if((value >= 1 && value <= 65535)) {
 		/* Constraint check succeeded */
 		return 0;
 	} else {
@@ -37,10 +37,10 @@
  * so here we adjust the DEF accordingly.
  */
 static asn_oer_constraints_t asn_OER_type_RIC_ControlAction_ID_constr_1 CC_NOTUSED = {
-	{ 2, 1 }	/* (0..65535) */,
+	{ 0, 0 },
 	-1};
 asn_per_constraints_t asn_PER_type_RIC_ControlAction_ID_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED,	 16,  16,  0,  65535 }	/* (0..65535) */,
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  16,  16,  1,  65535 }	/* (1..65535,...) */,
 	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
 	0, 0	/* No PER value map */
 };
diff --git a/e2sm/lib/RIC-ControlAction-Item.c b/e2sm/lib/RIC-ControlAction-Item.c
deleted file mode 100644
index cc89d2d..0000000
--- a/e2sm/lib/RIC-ControlAction-Item.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "RIC-ControlAction-Item.h"
-
-#include "RAN-ControlParameter-Item.h"
-static int
-memb_ran_ControlParameters_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 <= 4294967295)) {
-		/* 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_ran_ControlParameters_List_constr_4 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..4294967295)) */};
-static asn_per_constraints_t asn_PER_type_ran_ControlParameters_List_constr_4 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 32, -1,  1,  4294967295 }	/* (SIZE(1..4294967295)) */,
-	0, 0	/* No PER value map */
-};
-static asn_oer_constraints_t asn_OER_memb_ran_ControlParameters_List_constr_4 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..4294967295)) */};
-static asn_per_constraints_t asn_PER_memb_ran_ControlParameters_List_constr_4 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 32, -1,  1,  4294967295 }	/* (SIZE(1..4294967295)) */,
-	0, 0	/* No PER value map */
-};
-static asn_TYPE_member_t asn_MBR_ran_ControlParameters_List_4[] = {
-	{ ATF_POINTER, 0, 0,
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_RAN_ControlParameter_Item,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		""
-		},
-};
-static const ber_tlv_tag_t asn_DEF_ran_ControlParameters_List_tags_4[] = {
-	(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static asn_SET_OF_specifics_t asn_SPC_ran_ControlParameters_List_specs_4 = {
-	sizeof(struct RIC_ControlAction_Item__ran_ControlParameters_List),
-	offsetof(struct RIC_ControlAction_Item__ran_ControlParameters_List, _asn_ctx),
-	0,	/* XER encoding is XMLDelimitedItemList */
-};
-static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_ran_ControlParameters_List_4 = {
-	"ran-ControlParameters-List",
-	"ran-ControlParameters-List",
-	&asn_OP_SEQUENCE_OF,
-	asn_DEF_ran_ControlParameters_List_tags_4,
-	sizeof(asn_DEF_ran_ControlParameters_List_tags_4)
-		/sizeof(asn_DEF_ran_ControlParameters_List_tags_4[0]) - 1, /* 1 */
-	asn_DEF_ran_ControlParameters_List_tags_4,	/* Same as above */
-	sizeof(asn_DEF_ran_ControlParameters_List_tags_4)
-		/sizeof(asn_DEF_ran_ControlParameters_List_tags_4[0]), /* 2 */
-	{ &asn_OER_type_ran_ControlParameters_List_constr_4, &asn_PER_type_ran_ControlParameters_List_constr_4, SEQUENCE_OF_constraint },
-	asn_MBR_ran_ControlParameters_List_4,
-	1,	/* Single element */
-	&asn_SPC_ran_ControlParameters_List_specs_4	/* Additional specs */
-};
-
-asn_TYPE_member_t asn_MBR_RIC_ControlAction_Item_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct RIC_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 RIC_ControlAction_Item, ric_ControlAction_Name),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_RIC_ControlAction_Name,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"ric-ControlAction-Name"
-		},
-	{ ATF_POINTER, 1, offsetof(struct RIC_ControlAction_Item, ran_ControlParameters_List),
-		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-		0,
-		&asn_DEF_ran_ControlParameters_List_4,
-		0,
-		{ &asn_OER_memb_ran_ControlParameters_List_constr_4, &asn_PER_memb_ran_ControlParameters_List_constr_4,  memb_ran_ControlParameters_List_constraint_1 },
-		0, 0, /* No default value */
-		"ran-ControlParameters-List"
-		},
-};
-static const int asn_MAP_RIC_ControlAction_Item_oms_1[] = { 2 };
-static const ber_tlv_tag_t asn_DEF_RIC_ControlAction_Item_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_RIC_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 }, /* ric-ControlAction-Name */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ran-ControlParameters-List */
-};
-asn_SEQUENCE_specifics_t asn_SPC_RIC_ControlAction_Item_specs_1 = {
-	sizeof(struct RIC_ControlAction_Item),
-	offsetof(struct RIC_ControlAction_Item, _asn_ctx),
-	asn_MAP_RIC_ControlAction_Item_tag2el_1,
-	3,	/* Count of tags in the map */
-	asn_MAP_RIC_ControlAction_Item_oms_1,	/* Optional members */
-	1, 0,	/* Root/Additions */
-	3,	/* First extension addition */
-};
-asn_TYPE_descriptor_t asn_DEF_RIC_ControlAction_Item = {
-	"RIC-ControlAction-Item",
-	"RIC-ControlAction-Item",
-	&asn_OP_SEQUENCE,
-	asn_DEF_RIC_ControlAction_Item_tags_1,
-	sizeof(asn_DEF_RIC_ControlAction_Item_tags_1)
-		/sizeof(asn_DEF_RIC_ControlAction_Item_tags_1[0]), /* 1 */
-	asn_DEF_RIC_ControlAction_Item_tags_1,	/* Same as above */
-	sizeof(asn_DEF_RIC_ControlAction_Item_tags_1)
-		/sizeof(asn_DEF_RIC_ControlAction_Item_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_RIC_ControlAction_Item_1,
-	3,	/* Elements count */
-	&asn_SPC_RIC_ControlAction_Item_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/RIC-ControlAction-Name.c b/e2sm/lib/RIC-ControlAction-Name.c
index 346ea42..8a6bd62 100644
--- a/e2sm/lib/RIC-ControlAction-Name.c
+++ b/e2sm/lib/RIC-ControlAction-Name.c
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
diff --git a/e2sm/lib/RIC-ControlStyle-Item.c b/e2sm/lib/RIC-ControlStyle-Item.c
deleted file mode 100644
index 9aae0c9..0000000
--- a/e2sm/lib/RIC-ControlStyle-Item.c
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "RIC-ControlStyle-Item.h"
-
-#include "RIC-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 <= 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_ric_ControlAction_List_constr_4 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..65535)) */};
-static asn_per_constraints_t asn_PER_type_ric_ControlAction_List_constr_4 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_ric_ControlAction_List_constr_4 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..65535)) */};
-static asn_per_constraints_t asn_PER_memb_ric_ControlAction_List_constr_4 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_ric_ControlAction_List_4[] = {
-	{ ATF_POINTER, 0, 0,
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_RIC_ControlAction_Item,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		""
-		},
-};
-static const ber_tlv_tag_t asn_DEF_ric_ControlAction_List_tags_4[] = {
-	(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static asn_SET_OF_specifics_t asn_SPC_ric_ControlAction_List_specs_4 = {
-	sizeof(struct RIC_ControlStyle_Item__ric_ControlAction_List),
-	offsetof(struct RIC_ControlStyle_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_4 = {
-	"ric-ControlAction-List",
-	"ric-ControlAction-List",
-	&asn_OP_SEQUENCE_OF,
-	asn_DEF_ric_ControlAction_List_tags_4,
-	sizeof(asn_DEF_ric_ControlAction_List_tags_4)
-		/sizeof(asn_DEF_ric_ControlAction_List_tags_4[0]) - 1, /* 1 */
-	asn_DEF_ric_ControlAction_List_tags_4,	/* Same as above */
-	sizeof(asn_DEF_ric_ControlAction_List_tags_4)
-		/sizeof(asn_DEF_ric_ControlAction_List_tags_4[0]), /* 2 */
-	{ &asn_OER_type_ric_ControlAction_List_constr_4, &asn_PER_type_ric_ControlAction_List_constr_4, SEQUENCE_OF_constraint },
-	asn_MBR_ric_ControlAction_List_4,
-	1,	/* Single element */
-	&asn_SPC_ric_ControlAction_List_specs_4	/* Additional specs */
-};
-
-asn_TYPE_member_t asn_MBR_RIC_ControlStyle_Item_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct RIC_ControlStyle_Item, ric_ControlStyle_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 */
-		"ric-ControlStyle-Type"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct RIC_ControlStyle_Item, ric_ControlStyle_Name),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_RIC_Style_Name,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"ric-ControlStyle-Name"
-		},
-	{ ATF_POINTER, 1, offsetof(struct RIC_ControlStyle_Item, ric_ControlAction_List),
-		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-		0,
-		&asn_DEF_ric_ControlAction_List_4,
-		0,
-		{ &asn_OER_memb_ric_ControlAction_List_constr_4, &asn_PER_memb_ric_ControlAction_List_constr_4,  memb_ric_ControlAction_List_constraint_1 },
-		0, 0, /* No default value */
-		"ric-ControlAction-List"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct RIC_ControlStyle_Item, ric_ControlHeaderFormat_Type),
-		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_RIC_Format_Type,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"ric-ControlHeaderFormat-Type"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct RIC_ControlStyle_Item, ric_ControlMessageFormat_Type),
-		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_RIC_Format_Type,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"ric-ControlMessageFormat-Type"
-		},
-};
-static const int asn_MAP_RIC_ControlStyle_Item_oms_1[] = { 2 };
-static const ber_tlv_tag_t asn_DEF_RIC_ControlStyle_Item_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_RIC_ControlStyle_Item_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-ControlStyle-Type */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-ControlStyle-Name */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ric-ControlAction-List */
-    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ric-ControlHeaderFormat-Type */
-    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* ric-ControlMessageFormat-Type */
-};
-asn_SEQUENCE_specifics_t asn_SPC_RIC_ControlStyle_Item_specs_1 = {
-	sizeof(struct RIC_ControlStyle_Item),
-	offsetof(struct RIC_ControlStyle_Item, _asn_ctx),
-	asn_MAP_RIC_ControlStyle_Item_tag2el_1,
-	5,	/* Count of tags in the map */
-	asn_MAP_RIC_ControlStyle_Item_oms_1,	/* Optional members */
-	1, 0,	/* Root/Additions */
-	5,	/* First extension addition */
-};
-asn_TYPE_descriptor_t asn_DEF_RIC_ControlStyle_Item = {
-	"RIC-ControlStyle-Item",
-	"RIC-ControlStyle-Item",
-	&asn_OP_SEQUENCE,
-	asn_DEF_RIC_ControlStyle_Item_tags_1,
-	sizeof(asn_DEF_RIC_ControlStyle_Item_tags_1)
-		/sizeof(asn_DEF_RIC_ControlStyle_Item_tags_1[0]), /* 1 */
-	asn_DEF_RIC_ControlStyle_Item_tags_1,	/* Same as above */
-	sizeof(asn_DEF_RIC_ControlStyle_Item_tags_1)
-		/sizeof(asn_DEF_RIC_ControlStyle_Item_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_RIC_ControlStyle_Item_1,
-	5,	/* Elements count */
-	&asn_SPC_RIC_ControlStyle_Item_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/RIC-EventTrigger-Cell-ID.c b/e2sm/lib/RIC-EventTrigger-Cell-ID.c
new file mode 100644
index 0000000..1a3e811
--- /dev/null
+++ b/e2sm/lib/RIC-EventTrigger-Cell-ID.c
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RIC-EventTrigger-Cell-ID.h"
+
+int
+RIC_EventTrigger_Cell_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1 && value <= 65535)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_RIC_EventTrigger_Cell_ID_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_RIC_EventTrigger_Cell_ID_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  16,  16,  1,  65535 }	/* (1..65535,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RIC_EventTrigger_Cell_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RIC_EventTrigger_Cell_ID = {
+	"RIC-EventTrigger-Cell-ID",
+	"RIC-EventTrigger-Cell-ID",
+	&asn_OP_NativeInteger,
+	asn_DEF_RIC_EventTrigger_Cell_ID_tags_1,
+	sizeof(asn_DEF_RIC_EventTrigger_Cell_ID_tags_1)
+		/sizeof(asn_DEF_RIC_EventTrigger_Cell_ID_tags_1[0]), /* 1 */
+	asn_DEF_RIC_EventTrigger_Cell_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RIC_EventTrigger_Cell_ID_tags_1)
+		/sizeof(asn_DEF_RIC_EventTrigger_Cell_ID_tags_1[0]), /* 1 */
+	{ &asn_OER_type_RIC_EventTrigger_Cell_ID_constr_1, &asn_PER_type_RIC_EventTrigger_Cell_ID_constr_1, RIC_EventTrigger_Cell_ID_constraint },
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/e2sm/lib/RIC-EventTrigger-UE-ID.c b/e2sm/lib/RIC-EventTrigger-UE-ID.c
new file mode 100644
index 0000000..ff95b0f
--- /dev/null
+++ b/e2sm/lib/RIC-EventTrigger-UE-ID.c
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RIC-EventTrigger-UE-ID.h"
+
+int
+RIC_EventTrigger_UE_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1 && value <= 65535)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_RIC_EventTrigger_UE_ID_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_RIC_EventTrigger_UE_ID_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  16,  16,  1,  65535 }	/* (1..65535,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RIC_EventTrigger_UE_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RIC_EventTrigger_UE_ID = {
+	"RIC-EventTrigger-UE-ID",
+	"RIC-EventTrigger-UE-ID",
+	&asn_OP_NativeInteger,
+	asn_DEF_RIC_EventTrigger_UE_ID_tags_1,
+	sizeof(asn_DEF_RIC_EventTrigger_UE_ID_tags_1)
+		/sizeof(asn_DEF_RIC_EventTrigger_UE_ID_tags_1[0]), /* 1 */
+	asn_DEF_RIC_EventTrigger_UE_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RIC_EventTrigger_UE_ID_tags_1)
+		/sizeof(asn_DEF_RIC_EventTrigger_UE_ID_tags_1[0]), /* 1 */
+	{ &asn_OER_type_RIC_EventTrigger_UE_ID_constr_1, &asn_PER_type_RIC_EventTrigger_UE_ID_constr_1, RIC_EventTrigger_UE_ID_constraint },
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/e2sm/lib/RIC-EventTrigger-UEevent-ID.c b/e2sm/lib/RIC-EventTrigger-UEevent-ID.c
new file mode 100644
index 0000000..18a1dfc
--- /dev/null
+++ b/e2sm/lib/RIC-EventTrigger-UEevent-ID.c
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RIC-EventTrigger-UEevent-ID.h"
+
+int
+RIC_EventTrigger_UEevent_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1 && value <= 65535)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_RIC_EventTrigger_UEevent_ID_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_RIC_EventTrigger_UEevent_ID_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  16,  16,  1,  65535 }	/* (1..65535,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RIC_EventTrigger_UEevent_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RIC_EventTrigger_UEevent_ID = {
+	"RIC-EventTrigger-UEevent-ID",
+	"RIC-EventTrigger-UEevent-ID",
+	&asn_OP_NativeInteger,
+	asn_DEF_RIC_EventTrigger_UEevent_ID_tags_1,
+	sizeof(asn_DEF_RIC_EventTrigger_UEevent_ID_tags_1)
+		/sizeof(asn_DEF_RIC_EventTrigger_UEevent_ID_tags_1[0]), /* 1 */
+	asn_DEF_RIC_EventTrigger_UEevent_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RIC_EventTrigger_UEevent_ID_tags_1)
+		/sizeof(asn_DEF_RIC_EventTrigger_UEevent_ID_tags_1[0]), /* 1 */
+	{ &asn_OER_type_RIC_EventTrigger_UEevent_ID_constr_1, &asn_PER_type_RIC_EventTrigger_UEevent_ID_constr_1, RIC_EventTrigger_UEevent_ID_constraint },
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/e2sm/lib/RIC-EventTriggerCondition-ID.c b/e2sm/lib/RIC-EventTriggerCondition-ID.c
new file mode 100644
index 0000000..de6d3e6
--- /dev/null
+++ b/e2sm/lib/RIC-EventTriggerCondition-ID.c
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RIC-EventTriggerCondition-ID.h"
+
+int
+RIC_EventTriggerCondition_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1 && value <= 65535)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_RIC_EventTriggerCondition_ID_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_RIC_EventTriggerCondition_ID_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  16,  16,  1,  65535 }	/* (1..65535,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RIC_EventTriggerCondition_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RIC_EventTriggerCondition_ID = {
+	"RIC-EventTriggerCondition-ID",
+	"RIC-EventTriggerCondition-ID",
+	&asn_OP_NativeInteger,
+	asn_DEF_RIC_EventTriggerCondition_ID_tags_1,
+	sizeof(asn_DEF_RIC_EventTriggerCondition_ID_tags_1)
+		/sizeof(asn_DEF_RIC_EventTriggerCondition_ID_tags_1[0]), /* 1 */
+	asn_DEF_RIC_EventTriggerCondition_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RIC_EventTriggerCondition_ID_tags_1)
+		/sizeof(asn_DEF_RIC_EventTriggerCondition_ID_tags_1[0]), /* 1 */
+	{ &asn_OER_type_RIC_EventTriggerCondition_ID_constr_1, &asn_PER_type_RIC_EventTriggerCondition_ID_constr_1, RIC_EventTriggerCondition_ID_constraint },
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/e2sm/lib/RIC-EventTriggerStyle-Item.c b/e2sm/lib/RIC-EventTriggerStyle-Item.c
deleted file mode 100644
index 029f300..0000000
--- a/e2sm/lib/RIC-EventTriggerStyle-Item.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "RIC-EventTriggerStyle-Item.h"
-
-asn_TYPE_member_t asn_MBR_RIC_EventTriggerStyle_Item_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct RIC_EventTriggerStyle_Item, ric_EventTriggerStyle_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 */
-		"ric-EventTriggerStyle-Type"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct RIC_EventTriggerStyle_Item, ric_EventTriggerStyle_Name),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_RIC_Style_Name,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"ric-EventTriggerStyle-Name"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct RIC_EventTriggerStyle_Item, ric_EventTriggerFormat_Type),
-		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_RIC_Format_Type,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"ric-EventTriggerFormat-Type"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_RIC_EventTriggerStyle_Item_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_RIC_EventTriggerStyle_Item_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-EventTriggerStyle-Type */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-EventTriggerStyle-Name */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ric-EventTriggerFormat-Type */
-};
-asn_SEQUENCE_specifics_t asn_SPC_RIC_EventTriggerStyle_Item_specs_1 = {
-	sizeof(struct RIC_EventTriggerStyle_Item),
-	offsetof(struct RIC_EventTriggerStyle_Item, _asn_ctx),
-	asn_MAP_RIC_EventTriggerStyle_Item_tag2el_1,
-	3,	/* Count of tags in the map */
-	0, 0, 0,	/* Optional elements (not needed) */
-	3,	/* First extension addition */
-};
-asn_TYPE_descriptor_t asn_DEF_RIC_EventTriggerStyle_Item = {
-	"RIC-EventTriggerStyle-Item",
-	"RIC-EventTriggerStyle-Item",
-	&asn_OP_SEQUENCE,
-	asn_DEF_RIC_EventTriggerStyle_Item_tags_1,
-	sizeof(asn_DEF_RIC_EventTriggerStyle_Item_tags_1)
-		/sizeof(asn_DEF_RIC_EventTriggerStyle_Item_tags_1[0]), /* 1 */
-	asn_DEF_RIC_EventTriggerStyle_Item_tags_1,	/* Same as above */
-	sizeof(asn_DEF_RIC_EventTriggerStyle_Item_tags_1)
-		/sizeof(asn_DEF_RIC_EventTriggerStyle_Item_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_RIC_EventTriggerStyle_Item_1,
-	3,	/* Elements count */
-	&asn_SPC_RIC_EventTriggerStyle_Item_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/RIC-Format-Type.c b/e2sm/lib/RIC-Format-Type.c
index 8242722..e2f2a7a 100644
--- a/e2sm/lib/RIC-Format-Type.c
+++ b/e2sm/lib/RIC-Format-Type.c
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
diff --git a/e2sm/lib/RIC-InsertIndication-ID.c b/e2sm/lib/RIC-InsertIndication-ID.c
new file mode 100644
index 0000000..6cf61e3
--- /dev/null
+++ b/e2sm/lib/RIC-InsertIndication-ID.c
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RIC-InsertIndication-ID.h"
+
+int
+RIC_InsertIndication_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1 && value <= 65535)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_RIC_InsertIndication_ID_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_RIC_InsertIndication_ID_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  16,  16,  1,  65535 }	/* (1..65535,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_RIC_InsertIndication_ID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RIC_InsertIndication_ID = {
+	"RIC-InsertIndication-ID",
+	"RIC-InsertIndication-ID",
+	&asn_OP_NativeInteger,
+	asn_DEF_RIC_InsertIndication_ID_tags_1,
+	sizeof(asn_DEF_RIC_InsertIndication_ID_tags_1)
+		/sizeof(asn_DEF_RIC_InsertIndication_ID_tags_1[0]), /* 1 */
+	asn_DEF_RIC_InsertIndication_ID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RIC_InsertIndication_ID_tags_1)
+		/sizeof(asn_DEF_RIC_InsertIndication_ID_tags_1[0]), /* 1 */
+	{ &asn_OER_type_RIC_InsertIndication_ID_constr_1, &asn_PER_type_RIC_InsertIndication_ID_constr_1, RIC_InsertIndication_ID_constraint },
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/e2sm/lib/RIC-InsertIndication-Name.c b/e2sm/lib/RIC-InsertIndication-Name.c
new file mode 100644
index 0000000..ddc9c47
--- /dev/null
+++ b/e2sm/lib/RIC-InsertIndication-Name.c
@@ -0,0 +1,109 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RIC-InsertIndication-Name.h"
+
+static const int permitted_alphabet_table_1[256] = {
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/*                  */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,	/*                  */
+ 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9,	/* .      '() +,-./ */
+10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22,	/* 0123456789:  = ? */
+ 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,	/*  ABCDEFGHIJKLMNO */
+38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0,	/* PQRSTUVWXYZ      */
+ 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,	/*  abcdefghijklmno */
+64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0,	/* pqrstuvwxyz      */
+};
+static const int permitted_alphabet_code2value_1[74] = {
+32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54,
+55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74,
+75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,
+97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,
+113,114,115,116,117,118,119,120,121,122,};
+
+
+static int check_permitted_alphabet_1(const void *sptr) {
+	const int *table = permitted_alphabet_table_1;
+	/* The underlying type is PrintableString */
+	const PrintableString_t *st = (const PrintableString_t *)sptr;
+	const uint8_t *ch = st->buf;
+	const uint8_t *end = ch + st->size;
+	
+	for(; ch < end; ch++) {
+		uint8_t cv = *ch;
+		if(!table[cv]) return -1;
+	}
+	return 0;
+}
+
+int
+RIC_InsertIndication_Name_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const PrintableString_t *st = (const PrintableString_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size >= 1 && size <= 150)
+		 && !check_permitted_alphabet_1(st)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+static int asn_PER_MAP_RIC_InsertIndication_Name_1_v2c(unsigned int value) {
+	if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0]))
+		return -1;
+	return permitted_alphabet_table_1[value] - 1;
+}
+static int asn_PER_MAP_RIC_InsertIndication_Name_1_c2v(unsigned int code) {
+	if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0]))
+		return -1;
+	return permitted_alphabet_code2value_1[code];
+}
+/*
+ * This type is implemented using PrintableString,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_RIC_InsertIndication_Name_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(0..MAX)) */};
+asn_per_constraints_t asn_PER_type_RIC_InsertIndication_Name_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 7,  7,  32,  122 }	/* (32..122) */,
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  8,  8,  1,  150 }	/* (SIZE(1..150,...)) */,
+	asn_PER_MAP_RIC_InsertIndication_Name_1_v2c,	/* Value to PER code map */
+	asn_PER_MAP_RIC_InsertIndication_Name_1_c2v	/* PER code to value map */
+};
+static const ber_tlv_tag_t asn_DEF_RIC_InsertIndication_Name_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (19 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RIC_InsertIndication_Name = {
+	"RIC-InsertIndication-Name",
+	"RIC-InsertIndication-Name",
+	&asn_OP_PrintableString,
+	asn_DEF_RIC_InsertIndication_Name_tags_1,
+	sizeof(asn_DEF_RIC_InsertIndication_Name_tags_1)
+		/sizeof(asn_DEF_RIC_InsertIndication_Name_tags_1[0]), /* 1 */
+	asn_DEF_RIC_InsertIndication_Name_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RIC_InsertIndication_Name_tags_1)
+		/sizeof(asn_DEF_RIC_InsertIndication_Name_tags_1[0]), /* 1 */
+	{ &asn_OER_type_RIC_InsertIndication_Name_constr_1, &asn_PER_type_RIC_InsertIndication_Name_constr_1, RIC_InsertIndication_Name_constraint },
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/e2sm/lib/RIC-PolicyAction-RANParameter-Item.c b/e2sm/lib/RIC-PolicyAction-RANParameter-Item.c
new file mode 100644
index 0000000..d146925
--- /dev/null
+++ b/e2sm/lib/RIC-PolicyAction-RANParameter-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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RIC-PolicyAction-RANParameter-Item.h"
+
+asn_TYPE_member_t asn_MBR_RIC_PolicyAction_RANParameter_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RIC_PolicyAction_RANParameter_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 RIC_PolicyAction_RANParameter_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_RIC_PolicyAction_RANParameter_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RIC_PolicyAction_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-valueType */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RIC_PolicyAction_RANParameter_Item_specs_1 = {
+	sizeof(struct RIC_PolicyAction_RANParameter_Item),
+	offsetof(struct RIC_PolicyAction_RANParameter_Item, _asn_ctx),
+	asn_MAP_RIC_PolicyAction_RANParameter_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_RIC_PolicyAction_RANParameter_Item = {
+	"RIC-PolicyAction-RANParameter-Item",
+	"RIC-PolicyAction-RANParameter-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RIC_PolicyAction_RANParameter_Item_tags_1,
+	sizeof(asn_DEF_RIC_PolicyAction_RANParameter_Item_tags_1)
+		/sizeof(asn_DEF_RIC_PolicyAction_RANParameter_Item_tags_1[0]), /* 1 */
+	asn_DEF_RIC_PolicyAction_RANParameter_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RIC_PolicyAction_RANParameter_Item_tags_1)
+		/sizeof(asn_DEF_RIC_PolicyAction_RANParameter_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RIC_PolicyAction_RANParameter_Item_1,
+	2,	/* Elements count */
+	&asn_SPC_RIC_PolicyAction_RANParameter_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RIC-PolicyAction.c b/e2sm/lib/RIC-PolicyAction.c
new file mode 100644
index 0000000..8b93916
--- /dev/null
+++ b/e2sm/lib/RIC-PolicyAction.c
@@ -0,0 +1,142 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RIC-PolicyAction.h"
+
+#include "RIC-PolicyAction-RANParameter-Item.h"
+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) {
+	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_ranParameters_List_constr_3 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_type_ranParameters_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_ranParameters_List_constr_3 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+static asn_per_constraints_t asn_PER_memb_ranParameters_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_ranParameters_List_3[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_RIC_PolicyAction_RANParameter_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_ranParameters_List_tags_3[] = {
+	(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_ranParameters_List_specs_3 = {
+	sizeof(struct RIC_PolicyAction__ranParameters_List),
+	offsetof(struct RIC_PolicyAction__ranParameters_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_ranParameters_List_3 = {
+	"ranParameters-List",
+	"ranParameters-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_ranParameters_List_tags_3,
+	sizeof(asn_DEF_ranParameters_List_tags_3)
+		/sizeof(asn_DEF_ranParameters_List_tags_3[0]) - 1, /* 1 */
+	asn_DEF_ranParameters_List_tags_3,	/* Same as above */
+	sizeof(asn_DEF_ranParameters_List_tags_3)
+		/sizeof(asn_DEF_ranParameters_List_tags_3[0]), /* 2 */
+	{ &asn_OER_type_ranParameters_List_constr_3, &asn_PER_type_ranParameters_List_constr_3, SEQUENCE_OF_constraint },
+	asn_MBR_ranParameters_List_3,
+	1,	/* Single element */
+	&asn_SPC_ranParameters_List_specs_3	/* 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)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RIC_ControlAction_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ric-PolicyAction-ID"
+		},
+	{ ATF_POINTER, 1, offsetof(struct RIC_PolicyAction, ranParameters_List),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		0,
+		&asn_DEF_ranParameters_List_3,
+		0,
+		{ &asn_OER_memb_ranParameters_List_constr_3, &asn_PER_memb_ranParameters_List_constr_3,  memb_ranParameters_List_constraint_1 },
+		0, 0, /* No default value */
+		"ranParameters-List"
+		},
+};
+static const int asn_MAP_RIC_PolicyAction_oms_1[] = { 1 };
+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_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 */
+	asn_MAP_RIC_PolicyAction_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_RIC_PolicyAction = {
+	"RIC-PolicyAction",
+	"RIC-PolicyAction",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RIC_PolicyAction_tags_1,
+	sizeof(asn_DEF_RIC_PolicyAction_tags_1)
+		/sizeof(asn_DEF_RIC_PolicyAction_tags_1[0]), /* 1 */
+	asn_DEF_RIC_PolicyAction_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RIC_PolicyAction_tags_1)
+		/sizeof(asn_DEF_RIC_PolicyAction_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RIC_PolicyAction_1,
+	2,	/* Elements count */
+	&asn_SPC_RIC_PolicyAction_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RIC-ReportStyle-Item.c b/e2sm/lib/RIC-ReportStyle-Item.c
deleted file mode 100644
index 9efe8c3..0000000
--- a/e2sm/lib/RIC-ReportStyle-Item.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "RIC-ReportStyle-Item.h"
-
-asn_TYPE_member_t asn_MBR_RIC_ReportStyle_Item_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_Item, ric_ReportStyle_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 */
-		"ric-ReportStyle-Type"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_Item, ric_ReportStyle_Name),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_RIC_Style_Name,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"ric-ReportStyle-Name"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_Item, ric_ReportIndicationHeaderFormat_Type),
-		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_RIC_Format_Type,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"ric-ReportIndicationHeaderFormat-Type"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct RIC_ReportStyle_Item, ric_ReportIndicationMessageFormat_Type),
-		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_RIC_Format_Type,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"ric-ReportIndicationMessageFormat-Type"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_RIC_ReportStyle_Item_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_RIC_ReportStyle_Item_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ric-ReportStyle-Type */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ric-ReportStyle-Name */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ric-ReportIndicationHeaderFormat-Type */
-    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ric-ReportIndicationMessageFormat-Type */
-};
-asn_SEQUENCE_specifics_t asn_SPC_RIC_ReportStyle_Item_specs_1 = {
-	sizeof(struct RIC_ReportStyle_Item),
-	offsetof(struct RIC_ReportStyle_Item, _asn_ctx),
-	asn_MAP_RIC_ReportStyle_Item_tag2el_1,
-	4,	/* Count of tags in the map */
-	0, 0, 0,	/* Optional elements (not needed) */
-	4,	/* First extension addition */
-};
-asn_TYPE_descriptor_t asn_DEF_RIC_ReportStyle_Item = {
-	"RIC-ReportStyle-Item",
-	"RIC-ReportStyle-Item",
-	&asn_OP_SEQUENCE,
-	asn_DEF_RIC_ReportStyle_Item_tags_1,
-	sizeof(asn_DEF_RIC_ReportStyle_Item_tags_1)
-		/sizeof(asn_DEF_RIC_ReportStyle_Item_tags_1[0]), /* 1 */
-	asn_DEF_RIC_ReportStyle_Item_tags_1,	/* Same as above */
-	sizeof(asn_DEF_RIC_ReportStyle_Item_tags_1)
-		/sizeof(asn_DEF_RIC_ReportStyle_Item_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_RIC_ReportStyle_Item_1,
-	4,	/* Elements count */
-	&asn_SPC_RIC_ReportStyle_Item_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/RIC-Style-Name.c b/e2sm/lib/RIC-Style-Name.c
index 7cc5fcc..f8c4660 100644
--- a/e2sm/lib/RIC-Style-Name.c
+++ b/e2sm/lib/RIC-Style-Name.c
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
diff --git a/e2sm/lib/RIC-Style-Type.c b/e2sm/lib/RIC-Style-Type.c
index 14475b8..467c568 100644
--- a/e2sm/lib/RIC-Style-Type.c
+++ b/e2sm/lib/RIC-Style-Type.c
@@ -1,7 +1,7 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
diff --git a/e2sm/lib/RRC-MessageID.c b/e2sm/lib/RRC-MessageID.c
new file mode 100644
index 0000000..075db39
--- /dev/null
+++ b/e2sm/lib/RRC-MessageID.c
@@ -0,0 +1,117 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RRC-MessageID.h"
+
+static asn_oer_constraints_t asn_OER_type_rrcType_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_type_rrcType_constr_2 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_TYPE_member_t asn_MBR_rrcType_2[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RRC_MessageID__rrcType, choice.lTE),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RRCclass_LTE,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"lTE"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RRC_MessageID__rrcType, choice.nR),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RRCclass_NR,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"nR"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_rrcType_tag2el_2[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lTE */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nR */
+};
+static asn_CHOICE_specifics_t asn_SPC_rrcType_specs_2 = {
+	sizeof(struct RRC_MessageID__rrcType),
+	offsetof(struct RRC_MessageID__rrcType, _asn_ctx),
+	offsetof(struct RRC_MessageID__rrcType, present),
+	sizeof(((struct RRC_MessageID__rrcType *)0)->present),
+	asn_MAP_rrcType_tag2el_2,
+	2,	/* Count of tags in the map */
+	0, 0,
+	2	/* Extensions start */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_rrcType_2 = {
+	"rrcType",
+	"rrcType",
+	&asn_OP_CHOICE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ &asn_OER_type_rrcType_constr_2, &asn_PER_type_rrcType_constr_2, CHOICE_constraint },
+	asn_MBR_rrcType_2,
+	2,	/* Elements count */
+	&asn_SPC_rrcType_specs_2	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_RRC_MessageID_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RRC_MessageID, rrcType),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_rrcType_2,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"rrcType"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RRC_MessageID, messageID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"messageID"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RRC_MessageID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RRC_MessageID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrcType */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* messageID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_RRC_MessageID_specs_1 = {
+	sizeof(struct RRC_MessageID),
+	offsetof(struct RRC_MessageID, _asn_ctx),
+	asn_MAP_RRC_MessageID_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_RRC_MessageID = {
+	"RRC-MessageID",
+	"RRC-MessageID",
+	&asn_OP_SEQUENCE,
+	asn_DEF_RRC_MessageID_tags_1,
+	sizeof(asn_DEF_RRC_MessageID_tags_1)
+		/sizeof(asn_DEF_RRC_MessageID_tags_1[0]), /* 1 */
+	asn_DEF_RRC_MessageID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RRC_MessageID_tags_1)
+		/sizeof(asn_DEF_RRC_MessageID_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_RRC_MessageID_1,
+	2,	/* Elements count */
+	&asn_SPC_RRC_MessageID_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RRC-State.c b/e2sm/lib/RRC-State.c
new file mode 100644
index 0000000..391c70d
--- /dev/null
+++ b/e2sm/lib/RRC-State.c
@@ -0,0 +1,62 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RRC-State.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_RRC_State_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_RRC_State_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  3 }	/* (0..3,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RRC_State_value2enum_1[] = {
+	{ 0,	13,	"rrc-connected" },
+	{ 1,	12,	"rrc-inactive" },
+	{ 2,	8,	"rrc-idle" },
+	{ 3,	3,	"any" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RRC_State_enum2value_1[] = {
+	3,	/* any(3) */
+	0,	/* rrc-connected(0) */
+	2,	/* rrc-idle(2) */
+	1	/* rrc-inactive(1) */
+	/* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_RRC_State_specs_1 = {
+	asn_MAP_RRC_State_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RRC_State_enum2value_1,	/* N => "tag"; sorted by N */
+	4,	/* Number of elements in the maps */
+	5,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RRC_State_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RRC_State = {
+	"RRC-State",
+	"RRC-State",
+	&asn_OP_NativeEnumerated,
+	asn_DEF_RRC_State_tags_1,
+	sizeof(asn_DEF_RRC_State_tags_1)
+		/sizeof(asn_DEF_RRC_State_tags_1[0]), /* 1 */
+	asn_DEF_RRC_State_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RRC_State_tags_1)
+		/sizeof(asn_DEF_RRC_State_tags_1[0]), /* 1 */
+	{ &asn_OER_type_RRC_State_constr_1, &asn_PER_type_RRC_State_constr_1, NativeEnumerated_constraint },
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RRC_State_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RRCEvent.c b/e2sm/lib/RRCEvent.c
deleted file mode 100644
index 8113c36..0000000
--- a/e2sm/lib/RRCEvent.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "RRCEvent.h"
-
-/*
- * This type is implemented using NativeEnumerated,
- * so here we adjust the DEF accordingly.
- */
-static asn_oer_constraints_t asn_OER_type_RRCEvent_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	-1};
-asn_per_constraints_t asn_PER_type_RRCEvent_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  3 }	/* (0..3,...) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static const asn_INTEGER_enum_map_t asn_MAP_RRCEvent_value2enum_1[] = {
-	{ 0,	2,	"b1" },
-	{ 1,	2,	"a3" },
-	{ 2,	2,	"a5" },
-	{ 3,	8,	"periodic" }
-	/* This list is extensible */
-};
-static const unsigned int asn_MAP_RRCEvent_enum2value_1[] = {
-	1,	/* a3(1) */
-	2,	/* a5(2) */
-	0,	/* b1(0) */
-	3	/* periodic(3) */
-	/* This list is extensible */
-};
-const asn_INTEGER_specifics_t asn_SPC_RRCEvent_specs_1 = {
-	asn_MAP_RRCEvent_value2enum_1,	/* "tag" => N; sorted by tag */
-	asn_MAP_RRCEvent_enum2value_1,	/* N => "tag"; sorted by N */
-	4,	/* Number of elements in the maps */
-	5,	/* Extensions before this member */
-	1,	/* Strict enumeration */
-	0,	/* Native long size */
-	0
-};
-static const ber_tlv_tag_t asn_DEF_RRCEvent_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
-};
-asn_TYPE_descriptor_t asn_DEF_RRCEvent = {
-	"RRCEvent",
-	"RRCEvent",
-	&asn_OP_NativeEnumerated,
-	asn_DEF_RRCEvent_tags_1,
-	sizeof(asn_DEF_RRCEvent_tags_1)
-		/sizeof(asn_DEF_RRCEvent_tags_1[0]), /* 1 */
-	asn_DEF_RRCEvent_tags_1,	/* Same as above */
-	sizeof(asn_DEF_RRCEvent_tags_1)
-		/sizeof(asn_DEF_RRCEvent_tags_1[0]), /* 1 */
-	{ &asn_OER_type_RRCEvent_constr_1, &asn_PER_type_RRCEvent_constr_1, NativeEnumerated_constraint },
-	0, 0,	/* Defined elsewhere */
-	&asn_SPC_RRCEvent_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/RRCclass-LTE.c b/e2sm/lib/RRCclass-LTE.c
new file mode 100644
index 0000000..39c575f
--- /dev/null
+++ b/e2sm/lib/RRCclass-LTE.c
@@ -0,0 +1,78 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RRCclass-LTE.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_RRCclass_LTE_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_RRCclass_LTE_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  4,  4,  0,  11 }	/* (0..11,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RRCclass_LTE_value2enum_1[] = {
+	{ 0,	8,	"bCCH-BCH" },
+	{ 1,	13,	"bCCH-BCH-MBMS" },
+	{ 2,	11,	"bCCH-DL-SCH" },
+	{ 3,	14,	"bCCH-DL-SCH-BR" },
+	{ 4,	16,	"bCCH-DL-SCH-MBMS" },
+	{ 5,	4,	"mCCH" },
+	{ 6,	4,	"pCCH" },
+	{ 7,	7,	"dL-CCCH" },
+	{ 8,	7,	"dL-DCCH" },
+	{ 9,	7,	"uL-CCCH" },
+	{ 10,	7,	"uL-DCCH" },
+	{ 11,	7,	"sC-MCCH" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RRCclass_LTE_enum2value_1[] = {
+	0,	/* bCCH-BCH(0) */
+	1,	/* bCCH-BCH-MBMS(1) */
+	2,	/* bCCH-DL-SCH(2) */
+	3,	/* bCCH-DL-SCH-BR(3) */
+	4,	/* bCCH-DL-SCH-MBMS(4) */
+	7,	/* dL-CCCH(7) */
+	8,	/* dL-DCCH(8) */
+	5,	/* mCCH(5) */
+	6,	/* pCCH(6) */
+	11,	/* sC-MCCH(11) */
+	9,	/* uL-CCCH(9) */
+	10	/* uL-DCCH(10) */
+	/* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_RRCclass_LTE_specs_1 = {
+	asn_MAP_RRCclass_LTE_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RRCclass_LTE_enum2value_1,	/* N => "tag"; sorted by N */
+	12,	/* Number of elements in the maps */
+	13,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RRCclass_LTE_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RRCclass_LTE = {
+	"RRCclass-LTE",
+	"RRCclass-LTE",
+	&asn_OP_NativeEnumerated,
+	asn_DEF_RRCclass_LTE_tags_1,
+	sizeof(asn_DEF_RRCclass_LTE_tags_1)
+		/sizeof(asn_DEF_RRCclass_LTE_tags_1[0]), /* 1 */
+	asn_DEF_RRCclass_LTE_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RRCclass_LTE_tags_1)
+		/sizeof(asn_DEF_RRCclass_LTE_tags_1[0]), /* 1 */
+	{ &asn_OER_type_RRCclass_LTE_constr_1, &asn_PER_type_RRCclass_LTE_constr_1, NativeEnumerated_constraint },
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RRCclass_LTE_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RRCclass-NR.c b/e2sm/lib/RRCclass-NR.c
new file mode 100644
index 0000000..b4bf12c
--- /dev/null
+++ b/e2sm/lib/RRCclass-NR.c
@@ -0,0 +1,70 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "RRCclass-NR.h"
+
+/*
+ * This type is implemented using NativeEnumerated,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_RRCclass_NR_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_RRCclass_NR_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  7 }	/* (0..7,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const asn_INTEGER_enum_map_t asn_MAP_RRCclass_NR_value2enum_1[] = {
+	{ 0,	8,	"bCCH-BCH" },
+	{ 1,	11,	"bCCH-DL-SCH" },
+	{ 2,	7,	"dL-CCCH" },
+	{ 3,	7,	"dL-DCCH" },
+	{ 4,	4,	"pCCH" },
+	{ 5,	7,	"uL-CCCH" },
+	{ 6,	8,	"uL-CCCH1" },
+	{ 7,	7,	"uL-DCCH" }
+	/* This list is extensible */
+};
+static const unsigned int asn_MAP_RRCclass_NR_enum2value_1[] = {
+	0,	/* bCCH-BCH(0) */
+	1,	/* bCCH-DL-SCH(1) */
+	2,	/* dL-CCCH(2) */
+	3,	/* dL-DCCH(3) */
+	4,	/* pCCH(4) */
+	5,	/* uL-CCCH(5) */
+	6,	/* uL-CCCH1(6) */
+	7	/* uL-DCCH(7) */
+	/* This list is extensible */
+};
+const asn_INTEGER_specifics_t asn_SPC_RRCclass_NR_specs_1 = {
+	asn_MAP_RRCclass_NR_value2enum_1,	/* "tag" => N; sorted by tag */
+	asn_MAP_RRCclass_NR_enum2value_1,	/* N => "tag"; sorted by N */
+	8,	/* Number of elements in the maps */
+	9,	/* Extensions before this member */
+	1,	/* Strict enumeration */
+	0,	/* Native long size */
+	0
+};
+static const ber_tlv_tag_t asn_DEF_RRCclass_NR_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_RRCclass_NR = {
+	"RRCclass-NR",
+	"RRCclass-NR",
+	&asn_OP_NativeEnumerated,
+	asn_DEF_RRCclass_NR_tags_1,
+	sizeof(asn_DEF_RRCclass_NR_tags_1)
+		/sizeof(asn_DEF_RRCclass_NR_tags_1[0]), /* 1 */
+	asn_DEF_RRCclass_NR_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RRCclass_NR_tags_1)
+		/sizeof(asn_DEF_RRCclass_NR_tags_1[0]), /* 1 */
+	{ &asn_OER_type_RRCclass_NR_constr_1, &asn_PER_type_RRCclass_NR_constr_1, NativeEnumerated_constraint },
+	0, 0,	/* Defined elsewhere */
+	&asn_SPC_RRCclass_NR_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/RSRP-Range.c b/e2sm/lib/RSRP-Range.c
deleted file mode 100644
index 31f13c4..0000000
--- a/e2sm/lib/RSRP-Range.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "RSRP-Range.h"
-
-int
-RSRP_Range_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	long value;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	value = *(const long *)sptr;
-	
-	if((value >= 0 && value <= 127)) {
-		/* Constraint check succeeded */
-		return 0;
-	} else {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: constraint failed (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-}
-
-/*
- * This type is implemented using NativeInteger,
- * so here we adjust the DEF accordingly.
- */
-static asn_oer_constraints_t asn_OER_type_RSRP_Range_constr_1 CC_NOTUSED = {
-	{ 1, 1 }	/* (0..127) */,
-	-1};
-asn_per_constraints_t asn_PER_type_RSRP_Range_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED,	 7,  7,  0,  127 }	/* (0..127) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static const ber_tlv_tag_t asn_DEF_RSRP_Range_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
-};
-asn_TYPE_descriptor_t asn_DEF_RSRP_Range = {
-	"RSRP-Range",
-	"RSRP-Range",
-	&asn_OP_NativeInteger,
-	asn_DEF_RSRP_Range_tags_1,
-	sizeof(asn_DEF_RSRP_Range_tags_1)
-		/sizeof(asn_DEF_RSRP_Range_tags_1[0]), /* 1 */
-	asn_DEF_RSRP_Range_tags_1,	/* Same as above */
-	sizeof(asn_DEF_RSRP_Range_tags_1)
-		/sizeof(asn_DEF_RSRP_Range_tags_1[0]), /* 1 */
-	{ &asn_OER_type_RSRP_Range_constr_1, &asn_PER_type_RSRP_Range_constr_1, RSRP_Range_constraint },
-	0, 0,	/* No members */
-	0	/* No specifics */
-};
-
diff --git a/e2sm/lib/RSRP-RangeEUTRA.c b/e2sm/lib/RSRP-RangeEUTRA.c
deleted file mode 100644
index 5c646f7..0000000
--- a/e2sm/lib/RSRP-RangeEUTRA.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "RSRP-RangeEUTRA.h"
-
-int
-RSRP_RangeEUTRA_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	long value;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	value = *(const long *)sptr;
-	
-	if((value >= 0 && value <= 97)) {
-		/* Constraint check succeeded */
-		return 0;
-	} else {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: constraint failed (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-}
-
-/*
- * This type is implemented using NativeInteger,
- * so here we adjust the DEF accordingly.
- */
-static asn_oer_constraints_t asn_OER_type_RSRP_RangeEUTRA_constr_1 CC_NOTUSED = {
-	{ 1, 1 }	/* (0..97) */,
-	-1};
-asn_per_constraints_t asn_PER_type_RSRP_RangeEUTRA_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED,	 7,  7,  0,  97 }	/* (0..97) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static const ber_tlv_tag_t asn_DEF_RSRP_RangeEUTRA_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
-};
-asn_TYPE_descriptor_t asn_DEF_RSRP_RangeEUTRA = {
-	"RSRP-RangeEUTRA",
-	"RSRP-RangeEUTRA",
-	&asn_OP_NativeInteger,
-	asn_DEF_RSRP_RangeEUTRA_tags_1,
-	sizeof(asn_DEF_RSRP_RangeEUTRA_tags_1)
-		/sizeof(asn_DEF_RSRP_RangeEUTRA_tags_1[0]), /* 1 */
-	asn_DEF_RSRP_RangeEUTRA_tags_1,	/* Same as above */
-	sizeof(asn_DEF_RSRP_RangeEUTRA_tags_1)
-		/sizeof(asn_DEF_RSRP_RangeEUTRA_tags_1[0]), /* 1 */
-	{ &asn_OER_type_RSRP_RangeEUTRA_constr_1, &asn_PER_type_RSRP_RangeEUTRA_constr_1, RSRP_RangeEUTRA_constraint },
-	0, 0,	/* No members */
-	0	/* No specifics */
-};
-
diff --git a/e2sm/lib/RSRQ-Range.c b/e2sm/lib/RSRQ-Range.c
deleted file mode 100644
index 0782d80..0000000
--- a/e2sm/lib/RSRQ-Range.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "RSRQ-Range.h"
-
-int
-RSRQ_Range_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	long value;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	value = *(const long *)sptr;
-	
-	if((value >= 0 && value <= 127)) {
-		/* Constraint check succeeded */
-		return 0;
-	} else {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: constraint failed (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-}
-
-/*
- * This type is implemented using NativeInteger,
- * so here we adjust the DEF accordingly.
- */
-static asn_oer_constraints_t asn_OER_type_RSRQ_Range_constr_1 CC_NOTUSED = {
-	{ 1, 1 }	/* (0..127) */,
-	-1};
-asn_per_constraints_t asn_PER_type_RSRQ_Range_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED,	 7,  7,  0,  127 }	/* (0..127) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static const ber_tlv_tag_t asn_DEF_RSRQ_Range_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
-};
-asn_TYPE_descriptor_t asn_DEF_RSRQ_Range = {
-	"RSRQ-Range",
-	"RSRQ-Range",
-	&asn_OP_NativeInteger,
-	asn_DEF_RSRQ_Range_tags_1,
-	sizeof(asn_DEF_RSRQ_Range_tags_1)
-		/sizeof(asn_DEF_RSRQ_Range_tags_1[0]), /* 1 */
-	asn_DEF_RSRQ_Range_tags_1,	/* Same as above */
-	sizeof(asn_DEF_RSRQ_Range_tags_1)
-		/sizeof(asn_DEF_RSRQ_Range_tags_1[0]), /* 1 */
-	{ &asn_OER_type_RSRQ_Range_constr_1, &asn_PER_type_RSRQ_Range_constr_1, RSRQ_Range_constraint },
-	0, 0,	/* No members */
-	0	/* No specifics */
-};
-
diff --git a/e2sm/lib/RSRQ-RangeEUTRA.c b/e2sm/lib/RSRQ-RangeEUTRA.c
deleted file mode 100644
index 1de3c4e..0000000
--- a/e2sm/lib/RSRQ-RangeEUTRA.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "RSRQ-RangeEUTRA.h"
-
-int
-RSRQ_RangeEUTRA_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	long value;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	value = *(const long *)sptr;
-	
-	if((value >= 0 && value <= 34)) {
-		/* Constraint check succeeded */
-		return 0;
-	} else {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: constraint failed (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-}
-
-/*
- * This type is implemented using NativeInteger,
- * so here we adjust the DEF accordingly.
- */
-static asn_oer_constraints_t asn_OER_type_RSRQ_RangeEUTRA_constr_1 CC_NOTUSED = {
-	{ 1, 1 }	/* (0..34) */,
-	-1};
-asn_per_constraints_t asn_PER_type_RSRQ_RangeEUTRA_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED,	 6,  6,  0,  34 }	/* (0..34) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static const ber_tlv_tag_t asn_DEF_RSRQ_RangeEUTRA_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
-};
-asn_TYPE_descriptor_t asn_DEF_RSRQ_RangeEUTRA = {
-	"RSRQ-RangeEUTRA",
-	"RSRQ-RangeEUTRA",
-	&asn_OP_NativeInteger,
-	asn_DEF_RSRQ_RangeEUTRA_tags_1,
-	sizeof(asn_DEF_RSRQ_RangeEUTRA_tags_1)
-		/sizeof(asn_DEF_RSRQ_RangeEUTRA_tags_1[0]), /* 1 */
-	asn_DEF_RSRQ_RangeEUTRA_tags_1,	/* Same as above */
-	sizeof(asn_DEF_RSRQ_RangeEUTRA_tags_1)
-		/sizeof(asn_DEF_RSRQ_RangeEUTRA_tags_1[0]), /* 1 */
-	{ &asn_OER_type_RSRQ_RangeEUTRA_constr_1, &asn_PER_type_RSRQ_RangeEUTRA_constr_1, RSRQ_RangeEUTRA_constraint },
-	0, 0,	/* No members */
-	0	/* No specifics */
-};
-
diff --git a/e2sm/lib/RT-Period-IE.c b/e2sm/lib/RT-Period-IE.c
deleted file mode 100644
index 7edf20d..0000000
--- a/e2sm/lib/RT-Period-IE.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "RT-Period-IE.h"
-
-/*
- * This type is implemented using NativeEnumerated,
- * so here we adjust the DEF accordingly.
- */
-static asn_oer_constraints_t asn_OER_type_RT_Period_IE_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	-1};
-asn_per_constraints_t asn_PER_type_RT_Period_IE_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  5,  5,  0,  19 }	/* (0..19,...) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static const asn_INTEGER_enum_map_t asn_MAP_RT_Period_IE_value2enum_1[] = {
-	{ 0,	4,	"ms10" },
-	{ 1,	4,	"ms20" },
-	{ 2,	4,	"ms32" },
-	{ 3,	4,	"ms40" },
-	{ 4,	4,	"ms60" },
-	{ 5,	4,	"ms64" },
-	{ 6,	4,	"ms70" },
-	{ 7,	4,	"ms80" },
-	{ 8,	5,	"ms128" },
-	{ 9,	5,	"ms160" },
-	{ 10,	5,	"ms256" },
-	{ 11,	5,	"ms320" },
-	{ 12,	5,	"ms512" },
-	{ 13,	5,	"ms640" },
-	{ 14,	6,	"ms1024" },
-	{ 15,	6,	"ms1280" },
-	{ 16,	6,	"ms2048" },
-	{ 17,	6,	"ms2560" },
-	{ 18,	6,	"ms5120" },
-	{ 19,	7,	"ms10240" }
-	/* This list is extensible */
-};
-static const unsigned int asn_MAP_RT_Period_IE_enum2value_1[] = {
-	0,	/* ms10(0) */
-	14,	/* ms1024(14) */
-	19,	/* ms10240(19) */
-	8,	/* ms128(8) */
-	15,	/* ms1280(15) */
-	9,	/* ms160(9) */
-	1,	/* ms20(1) */
-	16,	/* ms2048(16) */
-	10,	/* ms256(10) */
-	17,	/* ms2560(17) */
-	2,	/* ms32(2) */
-	11,	/* ms320(11) */
-	3,	/* ms40(3) */
-	12,	/* ms512(12) */
-	18,	/* ms5120(18) */
-	4,	/* ms60(4) */
-	5,	/* ms64(5) */
-	13,	/* ms640(13) */
-	6,	/* ms70(6) */
-	7	/* ms80(7) */
-	/* This list is extensible */
-};
-const asn_INTEGER_specifics_t asn_SPC_RT_Period_IE_specs_1 = {
-	asn_MAP_RT_Period_IE_value2enum_1,	/* "tag" => N; sorted by tag */
-	asn_MAP_RT_Period_IE_enum2value_1,	/* N => "tag"; sorted by N */
-	20,	/* Number of elements in the maps */
-	21,	/* Extensions before this member */
-	1,	/* Strict enumeration */
-	0,	/* Native long size */
-	0
-};
-static const ber_tlv_tag_t asn_DEF_RT_Period_IE_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
-};
-asn_TYPE_descriptor_t asn_DEF_RT_Period_IE = {
-	"RT-Period-IE",
-	"RT-Period-IE",
-	&asn_OP_NativeEnumerated,
-	asn_DEF_RT_Period_IE_tags_1,
-	sizeof(asn_DEF_RT_Period_IE_tags_1)
-		/sizeof(asn_DEF_RT_Period_IE_tags_1[0]), /* 1 */
-	asn_DEF_RT_Period_IE_tags_1,	/* Same as above */
-	sizeof(asn_DEF_RT_Period_IE_tags_1)
-		/sizeof(asn_DEF_RT_Period_IE_tags_1[0]), /* 1 */
-	{ &asn_OER_type_RT_Period_IE_constr_1, &asn_PER_type_RT_Period_IE_constr_1, NativeEnumerated_constraint },
-	0, 0,	/* Defined elsewhere */
-	&asn_SPC_RT_Period_IE_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/Report-RANParameter-Item.c b/e2sm/lib/Report-RANParameter-Item.c
new file mode 100644
index 0000000..772e65e
--- /dev/null
+++ b/e2sm/lib/Report-RANParameter-Item.c
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "Report-RANParameter-Item.h"
+
+#include "RANParameter-Definition.h"
+asn_TYPE_member_t asn_MBR_Report_RANParameter_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct Report_RANParameter_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 Report_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"
+		},
+	{ ATF_POINTER, 1, offsetof(struct Report_RANParameter_Item, ranParameter_Definition),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 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_Report_RANParameter_Item_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_Report_RANParameter_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_Report_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 | (2 << 2)), 2, 0, 0 } /* ranParameter-Definition */
+};
+asn_SEQUENCE_specifics_t asn_SPC_Report_RANParameter_Item_specs_1 = {
+	sizeof(struct Report_RANParameter_Item),
+	offsetof(struct Report_RANParameter_Item, _asn_ctx),
+	asn_MAP_Report_RANParameter_Item_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_Report_RANParameter_Item_oms_1,	/* Optional members */
+	0, 1,	/* Root/Additions */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_Report_RANParameter_Item = {
+	"Report-RANParameter-Item",
+	"Report-RANParameter-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_Report_RANParameter_Item_tags_1,
+	sizeof(asn_DEF_Report_RANParameter_Item_tags_1)
+		/sizeof(asn_DEF_Report_RANParameter_Item_tags_1[0]), /* 1 */
+	asn_DEF_Report_RANParameter_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_Report_RANParameter_Item_tags_1)
+		/sizeof(asn_DEF_Report_RANParameter_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_Report_RANParameter_Item_1,
+	3,	/* Elements count */
+	&asn_SPC_Report_RANParameter_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/ResultsPerCSI-RS-Index.c b/e2sm/lib/ResultsPerCSI-RS-Index.c
deleted file mode 100644
index 36abbd9..0000000
--- a/e2sm/lib/ResultsPerCSI-RS-Index.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "ResultsPerCSI-RS-Index.h"
-
-#include "MeasQuantityResults.h"
-asn_TYPE_member_t asn_MBR_ResultsPerCSI_RS_Index_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct ResultsPerCSI_RS_Index, csi_RS_Index),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_CSI_RS_Index,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"csi-RS-Index"
-		},
-	{ ATF_POINTER, 1, offsetof(struct ResultsPerCSI_RS_Index, csi_RS_Results),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_MeasQuantityResults,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"csi-RS-Results"
-		},
-};
-static const int asn_MAP_ResultsPerCSI_RS_Index_oms_1[] = { 1 };
-static const ber_tlv_tag_t asn_DEF_ResultsPerCSI_RS_Index_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_ResultsPerCSI_RS_Index_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* csi-RS-Index */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* csi-RS-Results */
-};
-asn_SEQUENCE_specifics_t asn_SPC_ResultsPerCSI_RS_Index_specs_1 = {
-	sizeof(struct ResultsPerCSI_RS_Index),
-	offsetof(struct ResultsPerCSI_RS_Index, _asn_ctx),
-	asn_MAP_ResultsPerCSI_RS_Index_tag2el_1,
-	2,	/* Count of tags in the map */
-	asn_MAP_ResultsPerCSI_RS_Index_oms_1,	/* Optional members */
-	1, 0,	/* Root/Additions */
-	2,	/* First extension addition */
-};
-asn_TYPE_descriptor_t asn_DEF_ResultsPerCSI_RS_Index = {
-	"ResultsPerCSI-RS-Index",
-	"ResultsPerCSI-RS-Index",
-	&asn_OP_SEQUENCE,
-	asn_DEF_ResultsPerCSI_RS_Index_tags_1,
-	sizeof(asn_DEF_ResultsPerCSI_RS_Index_tags_1)
-		/sizeof(asn_DEF_ResultsPerCSI_RS_Index_tags_1[0]), /* 1 */
-	asn_DEF_ResultsPerCSI_RS_Index_tags_1,	/* Same as above */
-	sizeof(asn_DEF_ResultsPerCSI_RS_Index_tags_1)
-		/sizeof(asn_DEF_ResultsPerCSI_RS_Index_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_ResultsPerCSI_RS_Index_1,
-	2,	/* Elements count */
-	&asn_SPC_ResultsPerCSI_RS_Index_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/ResultsPerCSI-RS-IndexList.c b/e2sm/lib/ResultsPerCSI-RS-IndexList.c
deleted file mode 100644
index d98d4d1..0000000
--- a/e2sm/lib/ResultsPerCSI-RS-IndexList.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "ResultsPerCSI-RS-IndexList.h"
-
-#include "ResultsPerCSI-RS-Index.h"
-static asn_oer_constraints_t asn_OER_type_ResultsPerCSI_RS_IndexList_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..64)) */};
-asn_per_constraints_t asn_PER_type_ResultsPerCSI_RS_IndexList_constr_1 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 6,  6,  1,  64 }	/* (SIZE(1..64)) */,
-	0, 0	/* No PER value map */
-};
-asn_TYPE_member_t asn_MBR_ResultsPerCSI_RS_IndexList_1[] = {
-	{ ATF_POINTER, 0, 0,
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_ResultsPerCSI_RS_Index,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		""
-		},
-};
-static const ber_tlv_tag_t asn_DEF_ResultsPerCSI_RS_IndexList_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-asn_SET_OF_specifics_t asn_SPC_ResultsPerCSI_RS_IndexList_specs_1 = {
-	sizeof(struct ResultsPerCSI_RS_IndexList),
-	offsetof(struct ResultsPerCSI_RS_IndexList, _asn_ctx),
-	0,	/* XER encoding is XMLDelimitedItemList */
-};
-asn_TYPE_descriptor_t asn_DEF_ResultsPerCSI_RS_IndexList = {
-	"ResultsPerCSI-RS-IndexList",
-	"ResultsPerCSI-RS-IndexList",
-	&asn_OP_SEQUENCE_OF,
-	asn_DEF_ResultsPerCSI_RS_IndexList_tags_1,
-	sizeof(asn_DEF_ResultsPerCSI_RS_IndexList_tags_1)
-		/sizeof(asn_DEF_ResultsPerCSI_RS_IndexList_tags_1[0]), /* 1 */
-	asn_DEF_ResultsPerCSI_RS_IndexList_tags_1,	/* Same as above */
-	sizeof(asn_DEF_ResultsPerCSI_RS_IndexList_tags_1)
-		/sizeof(asn_DEF_ResultsPerCSI_RS_IndexList_tags_1[0]), /* 1 */
-	{ &asn_OER_type_ResultsPerCSI_RS_IndexList_constr_1, &asn_PER_type_ResultsPerCSI_RS_IndexList_constr_1, SEQUENCE_OF_constraint },
-	asn_MBR_ResultsPerCSI_RS_IndexList_1,
-	1,	/* Single element */
-	&asn_SPC_ResultsPerCSI_RS_IndexList_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/ResultsPerSSB-Index.c b/e2sm/lib/ResultsPerSSB-Index.c
deleted file mode 100644
index 5aca175..0000000
--- a/e2sm/lib/ResultsPerSSB-Index.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "ResultsPerSSB-Index.h"
-
-#include "MeasQuantityResults.h"
-asn_TYPE_member_t asn_MBR_ResultsPerSSB_Index_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct ResultsPerSSB_Index, ssb_Index),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_SSB_Index,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"ssb-Index"
-		},
-	{ ATF_POINTER, 1, offsetof(struct ResultsPerSSB_Index, ssb_Results),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_MeasQuantityResults,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"ssb-Results"
-		},
-};
-static const int asn_MAP_ResultsPerSSB_Index_oms_1[] = { 1 };
-static const ber_tlv_tag_t asn_DEF_ResultsPerSSB_Index_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_ResultsPerSSB_Index_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ssb-Index */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ssb-Results */
-};
-asn_SEQUENCE_specifics_t asn_SPC_ResultsPerSSB_Index_specs_1 = {
-	sizeof(struct ResultsPerSSB_Index),
-	offsetof(struct ResultsPerSSB_Index, _asn_ctx),
-	asn_MAP_ResultsPerSSB_Index_tag2el_1,
-	2,	/* Count of tags in the map */
-	asn_MAP_ResultsPerSSB_Index_oms_1,	/* Optional members */
-	1, 0,	/* Root/Additions */
-	2,	/* First extension addition */
-};
-asn_TYPE_descriptor_t asn_DEF_ResultsPerSSB_Index = {
-	"ResultsPerSSB-Index",
-	"ResultsPerSSB-Index",
-	&asn_OP_SEQUENCE,
-	asn_DEF_ResultsPerSSB_Index_tags_1,
-	sizeof(asn_DEF_ResultsPerSSB_Index_tags_1)
-		/sizeof(asn_DEF_ResultsPerSSB_Index_tags_1[0]), /* 1 */
-	asn_DEF_ResultsPerSSB_Index_tags_1,	/* Same as above */
-	sizeof(asn_DEF_ResultsPerSSB_Index_tags_1)
-		/sizeof(asn_DEF_ResultsPerSSB_Index_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_ResultsPerSSB_Index_1,
-	2,	/* Elements count */
-	&asn_SPC_ResultsPerSSB_Index_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/ResultsPerSSB-IndexList.c b/e2sm/lib/ResultsPerSSB-IndexList.c
deleted file mode 100644
index 2d7e1ab..0000000
--- a/e2sm/lib/ResultsPerSSB-IndexList.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "ResultsPerSSB-IndexList.h"
-
-#include "ResultsPerSSB-Index.h"
-static asn_oer_constraints_t asn_OER_type_ResultsPerSSB_IndexList_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..64)) */};
-asn_per_constraints_t asn_PER_type_ResultsPerSSB_IndexList_constr_1 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 6,  6,  1,  64 }	/* (SIZE(1..64)) */,
-	0, 0	/* No PER value map */
-};
-asn_TYPE_member_t asn_MBR_ResultsPerSSB_IndexList_1[] = {
-	{ ATF_POINTER, 0, 0,
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_ResultsPerSSB_Index,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		""
-		},
-};
-static const ber_tlv_tag_t asn_DEF_ResultsPerSSB_IndexList_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-asn_SET_OF_specifics_t asn_SPC_ResultsPerSSB_IndexList_specs_1 = {
-	sizeof(struct ResultsPerSSB_IndexList),
-	offsetof(struct ResultsPerSSB_IndexList, _asn_ctx),
-	0,	/* XER encoding is XMLDelimitedItemList */
-};
-asn_TYPE_descriptor_t asn_DEF_ResultsPerSSB_IndexList = {
-	"ResultsPerSSB-IndexList",
-	"ResultsPerSSB-IndexList",
-	&asn_OP_SEQUENCE_OF,
-	asn_DEF_ResultsPerSSB_IndexList_tags_1,
-	sizeof(asn_DEF_ResultsPerSSB_IndexList_tags_1)
-		/sizeof(asn_DEF_ResultsPerSSB_IndexList_tags_1[0]), /* 1 */
-	asn_DEF_ResultsPerSSB_IndexList_tags_1,	/* Same as above */
-	sizeof(asn_DEF_ResultsPerSSB_IndexList_tags_1)
-		/sizeof(asn_DEF_ResultsPerSSB_IndexList_tags_1[0]), /* 1 */
-	{ &asn_OER_type_ResultsPerSSB_IndexList_constr_1, &asn_PER_type_ResultsPerSSB_IndexList_constr_1, SEQUENCE_OF_constraint },
-	asn_MBR_ResultsPerSSB_IndexList_1,
-	1,	/* Single element */
-	&asn_SPC_ResultsPerSSB_IndexList_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/S-NSSAI.c b/e2sm/lib/S-NSSAI.c
index 29b31b2..8f0588e 100644
--- a/e2sm/lib/S-NSSAI.c
+++ b/e2sm/lib/S-NSSAI.c
@@ -1,96 +1,28 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
  * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
  */
 
 #include "S-NSSAI.h"
 
-static int
-memb_sST_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
-	size_t size;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	size = st->size;
-	
-	if((size == 1)) {
-		/* Constraint check succeeded */
-		return 0;
-	} else {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: constraint failed (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-}
-
-static int
-memb_sD_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
-	size_t size;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	size = st->size;
-	
-	if((size == 3)) {
-		/* Constraint check succeeded */
-		return 0;
-	} 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_memb_sST_constr_2 CC_NOTUSED = {
-	{ 0, 0 },
-	1	/* (SIZE(1..1)) */};
-static asn_per_constraints_t asn_PER_memb_sST_constr_2 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 0,  0,  1,  1 }	/* (SIZE(1..1)) */,
-	0, 0	/* No PER value map */
-};
-static asn_oer_constraints_t asn_OER_memb_sD_constr_3 CC_NOTUSED = {
-	{ 0, 0 },
-	3	/* (SIZE(3..3)) */};
-static asn_per_constraints_t asn_PER_memb_sD_constr_3 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 0,  0,  3,  3 }	/* (SIZE(3..3)) */,
-	0, 0	/* No PER value map */
-};
-asn_TYPE_member_t asn_MBR_S_NSSAI_1[] = {
+static asn_TYPE_member_t asn_MBR_S_NSSAI_1[] = {
 	{ ATF_NOFLAGS, 0, offsetof(struct S_NSSAI, sST),
 		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
 		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_OCTET_STRING,
+		&asn_DEF_SST,
 		0,
-		{ &asn_OER_memb_sST_constr_2, &asn_PER_memb_sST_constr_2,  memb_sST_constraint_1 },
+		{ 0, 0, 0 },
 		0, 0, /* No default value */
 		"sST"
 		},
 	{ ATF_POINTER, 1, offsetof(struct S_NSSAI, sD),
 		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
 		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_OCTET_STRING,
+		&asn_DEF_SD,
 		0,
-		{ &asn_OER_memb_sD_constr_3, &asn_PER_memb_sD_constr_3,  memb_sD_constraint_1 },
+		{ 0, 0, 0 },
 		0, 0, /* No default value */
 		"sD"
 		},
@@ -103,14 +35,14 @@
     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sST */
     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sD */
 };
-asn_SEQUENCE_specifics_t asn_SPC_S_NSSAI_specs_1 = {
+static asn_SEQUENCE_specifics_t asn_SPC_S_NSSAI_specs_1 = {
 	sizeof(struct S_NSSAI),
 	offsetof(struct S_NSSAI, _asn_ctx),
 	asn_MAP_S_NSSAI_tag2el_1,
 	2,	/* Count of tags in the map */
 	asn_MAP_S_NSSAI_oms_1,	/* Optional members */
 	1, 0,	/* Root/Additions */
-	-1,	/* First extension addition */
+	2,	/* First extension addition */
 };
 asn_TYPE_descriptor_t asn_DEF_S_NSSAI = {
 	"S-NSSAI",
diff --git a/e2sm/lib/SD.c b/e2sm/lib/SD.c
new file mode 100644
index 0000000..aa3655d
--- /dev/null
+++ b/e2sm/lib/SD.c
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "SD.h"
+
+int
+SD_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size == 3)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_SD_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	3	/* (SIZE(3..3)) */};
+asn_per_constraints_t asn_PER_type_SD_constr_1 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  3,  3 }	/* (SIZE(3..3)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_SD_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_SD = {
+	"SD",
+	"SD",
+	&asn_OP_OCTET_STRING,
+	asn_DEF_SD_tags_1,
+	sizeof(asn_DEF_SD_tags_1)
+		/sizeof(asn_DEF_SD_tags_1[0]), /* 1 */
+	asn_DEF_SD_tags_1,	/* Same as above */
+	sizeof(asn_DEF_SD_tags_1)
+		/sizeof(asn_DEF_SD_tags_1[0]), /* 1 */
+	{ &asn_OER_type_SD_constr_1, &asn_PER_type_SD_constr_1, SD_constraint },
+	0, 0,	/* No members */
+	&asn_SPC_OCTET_STRING_specs	/* Additional specs */
+};
+
diff --git a/e2sm/lib/SINR-Range.c b/e2sm/lib/SINR-Range.c
deleted file mode 100644
index 5c1f4ba..0000000
--- a/e2sm/lib/SINR-Range.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "SINR-Range.h"
-
-int
-SINR_Range_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	long value;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	value = *(const long *)sptr;
-	
-	if((value >= 0 && value <= 127)) {
-		/* Constraint check succeeded */
-		return 0;
-	} else {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: constraint failed (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-}
-
-/*
- * This type is implemented using NativeInteger,
- * so here we adjust the DEF accordingly.
- */
-static asn_oer_constraints_t asn_OER_type_SINR_Range_constr_1 CC_NOTUSED = {
-	{ 1, 1 }	/* (0..127) */,
-	-1};
-asn_per_constraints_t asn_PER_type_SINR_Range_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED,	 7,  7,  0,  127 }	/* (0..127) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static const ber_tlv_tag_t asn_DEF_SINR_Range_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
-};
-asn_TYPE_descriptor_t asn_DEF_SINR_Range = {
-	"SINR-Range",
-	"SINR-Range",
-	&asn_OP_NativeInteger,
-	asn_DEF_SINR_Range_tags_1,
-	sizeof(asn_DEF_SINR_Range_tags_1)
-		/sizeof(asn_DEF_SINR_Range_tags_1[0]), /* 1 */
-	asn_DEF_SINR_Range_tags_1,	/* Same as above */
-	sizeof(asn_DEF_SINR_Range_tags_1)
-		/sizeof(asn_DEF_SINR_Range_tags_1[0]), /* 1 */
-	{ &asn_OER_type_SINR_Range_constr_1, &asn_PER_type_SINR_Range_constr_1, SINR_Range_constraint },
-	0, 0,	/* No members */
-	0	/* No specifics */
-};
-
diff --git a/e2sm/lib/SINR-RangeEUTRA.c b/e2sm/lib/SINR-RangeEUTRA.c
deleted file mode 100644
index fdee3e7..0000000
--- a/e2sm/lib/SINR-RangeEUTRA.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "SINR-RangeEUTRA.h"
-
-int
-SINR_RangeEUTRA_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	long value;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	value = *(const long *)sptr;
-	
-	if((value >= 0 && value <= 127)) {
-		/* Constraint check succeeded */
-		return 0;
-	} else {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: constraint failed (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-}
-
-/*
- * This type is implemented using NativeInteger,
- * so here we adjust the DEF accordingly.
- */
-static asn_oer_constraints_t asn_OER_type_SINR_RangeEUTRA_constr_1 CC_NOTUSED = {
-	{ 1, 1 }	/* (0..127) */,
-	-1};
-asn_per_constraints_t asn_PER_type_SINR_RangeEUTRA_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED,	 7,  7,  0,  127 }	/* (0..127) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static const ber_tlv_tag_t asn_DEF_SINR_RangeEUTRA_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
-};
-asn_TYPE_descriptor_t asn_DEF_SINR_RangeEUTRA = {
-	"SINR-RangeEUTRA",
-	"SINR-RangeEUTRA",
-	&asn_OP_NativeInteger,
-	asn_DEF_SINR_RangeEUTRA_tags_1,
-	sizeof(asn_DEF_SINR_RangeEUTRA_tags_1)
-		/sizeof(asn_DEF_SINR_RangeEUTRA_tags_1[0]), /* 1 */
-	asn_DEF_SINR_RangeEUTRA_tags_1,	/* Same as above */
-	sizeof(asn_DEF_SINR_RangeEUTRA_tags_1)
-		/sizeof(asn_DEF_SINR_RangeEUTRA_tags_1[0]), /* 1 */
-	{ &asn_OER_type_SINR_RangeEUTRA_constr_1, &asn_PER_type_SINR_RangeEUTRA_constr_1, SINR_RangeEUTRA_constraint },
-	0, 0,	/* No members */
-	0	/* No specifics */
-};
-
diff --git a/e2sm/lib/SSB-Index.c b/e2sm/lib/SSB-Index.c
deleted file mode 100644
index 3f9975e..0000000
--- a/e2sm/lib/SSB-Index.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "SSB-Index.h"
-
-int
-SSB_Index_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	long value;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	value = *(const long *)sptr;
-	
-	if((value >= 0 && value <= 63)) {
-		/* Constraint check succeeded */
-		return 0;
-	} else {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: constraint failed (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-}
-
-/*
- * This type is implemented using NativeInteger,
- * so here we adjust the DEF accordingly.
- */
-static asn_oer_constraints_t asn_OER_type_SSB_Index_constr_1 CC_NOTUSED = {
-	{ 1, 1 }	/* (0..63) */,
-	-1};
-asn_per_constraints_t asn_PER_type_SSB_Index_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED,	 6,  6,  0,  63 }	/* (0..63) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static const ber_tlv_tag_t asn_DEF_SSB_Index_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
-};
-asn_TYPE_descriptor_t asn_DEF_SSB_Index = {
-	"SSB-Index",
-	"SSB-Index",
-	&asn_OP_NativeInteger,
-	asn_DEF_SSB_Index_tags_1,
-	sizeof(asn_DEF_SSB_Index_tags_1)
-		/sizeof(asn_DEF_SSB_Index_tags_1[0]), /* 1 */
-	asn_DEF_SSB_Index_tags_1,	/* Same as above */
-	sizeof(asn_DEF_SSB_Index_tags_1)
-		/sizeof(asn_DEF_SSB_Index_tags_1[0]), /* 1 */
-	{ &asn_OER_type_SSB_Index_constr_1, &asn_PER_type_SSB_Index_constr_1, SSB_Index_constraint },
-	0, 0,	/* No members */
-	0	/* No specifics */
-};
-
diff --git a/e2sm/lib/SST.c b/e2sm/lib/SST.c
new file mode 100644
index 0000000..2712cd1
--- /dev/null
+++ b/e2sm/lib/SST.c
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "SST.h"
+
+int
+SST_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
+	size_t size;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	size = st->size;
+	
+	if((size == 1)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using OCTET_STRING,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_SST_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	1	/* (SIZE(1..1)) */};
+asn_per_constraints_t asn_PER_type_SST_constr_1 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 0,  0,  1,  1 }	/* (SIZE(1..1)) */,
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_SST_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_SST = {
+	"SST",
+	"SST",
+	&asn_OP_OCTET_STRING,
+	asn_DEF_SST_tags_1,
+	sizeof(asn_DEF_SST_tags_1)
+		/sizeof(asn_DEF_SST_tags_1[0]), /* 1 */
+	asn_DEF_SST_tags_1,	/* Same as above */
+	sizeof(asn_DEF_SST_tags_1)
+		/sizeof(asn_DEF_SST_tags_1[0]), /* 1 */
+	{ &asn_OER_type_SST_constr_1, &asn_PER_type_SST_constr_1, SST_constraint },
+	0, 0,	/* No members */
+	&asn_SPC_OCTET_STRING_specs	/* Additional specs */
+};
+
diff --git a/e2sm/lib/ServCellIndex.c b/e2sm/lib/ServCellIndex.c
deleted file mode 100644
index a7dec96..0000000
--- a/e2sm/lib/ServCellIndex.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "ServCellIndex.h"
-
-int
-ServCellIndex_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	long value;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	value = *(const long *)sptr;
-	
-	if((value >= 0 && value <= 31)) {
-		/* Constraint check succeeded */
-		return 0;
-	} else {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: constraint failed (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-}
-
-/*
- * This type is implemented using NativeInteger,
- * so here we adjust the DEF accordingly.
- */
-static asn_oer_constraints_t asn_OER_type_ServCellIndex_constr_1 CC_NOTUSED = {
-	{ 1, 1 }	/* (0..31) */,
-	-1};
-asn_per_constraints_t asn_PER_type_ServCellIndex_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED,	 5,  5,  0,  31 }	/* (0..31) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static const ber_tlv_tag_t asn_DEF_ServCellIndex_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
-};
-asn_TYPE_descriptor_t asn_DEF_ServCellIndex = {
-	"ServCellIndex",
-	"ServCellIndex",
-	&asn_OP_NativeInteger,
-	asn_DEF_ServCellIndex_tags_1,
-	sizeof(asn_DEF_ServCellIndex_tags_1)
-		/sizeof(asn_DEF_ServCellIndex_tags_1[0]), /* 1 */
-	asn_DEF_ServCellIndex_tags_1,	/* Same as above */
-	sizeof(asn_DEF_ServCellIndex_tags_1)
-		/sizeof(asn_DEF_ServCellIndex_tags_1[0]), /* 1 */
-	{ &asn_OER_type_ServCellIndex_constr_1, &asn_PER_type_ServCellIndex_constr_1, ServCellIndex_constraint },
-	0, 0,	/* No members */
-	0	/* No specifics */
-};
-
diff --git a/e2sm/lib/ServedPlmnPerCellListItem.c b/e2sm/lib/ServedPlmnPerCellListItem.c
deleted file mode 100644
index 4f10db7..0000000
--- a/e2sm/lib/ServedPlmnPerCellListItem.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "ServedPlmnPerCellListItem.h"
-
-#include "FGC-DU-PM-Container.h"
-#include "EPC-DU-PM-Container.h"
-asn_TYPE_member_t asn_MBR_ServedPlmnPerCellListItem_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct ServedPlmnPerCellListItem, pLMN_Identity),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_PLMN_Identity,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"pLMN-Identity"
-		},
-	{ ATF_POINTER, 2, offsetof(struct ServedPlmnPerCellListItem, du_PM_5GC),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_FGC_DU_PM_Container,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"du-PM-5GC"
-		},
-	{ ATF_POINTER, 1, offsetof(struct ServedPlmnPerCellListItem, du_PM_EPC),
-		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_EPC_DU_PM_Container,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"du-PM-EPC"
-		},
-};
-static const int asn_MAP_ServedPlmnPerCellListItem_oms_1[] = { 1, 2 };
-static const ber_tlv_tag_t asn_DEF_ServedPlmnPerCellListItem_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_ServedPlmnPerCellListItem_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMN-Identity */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* du-PM-5GC */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* du-PM-EPC */
-};
-asn_SEQUENCE_specifics_t asn_SPC_ServedPlmnPerCellListItem_specs_1 = {
-	sizeof(struct ServedPlmnPerCellListItem),
-	offsetof(struct ServedPlmnPerCellListItem, _asn_ctx),
-	asn_MAP_ServedPlmnPerCellListItem_tag2el_1,
-	3,	/* Count of tags in the map */
-	asn_MAP_ServedPlmnPerCellListItem_oms_1,	/* Optional members */
-	2, 0,	/* Root/Additions */
-	3,	/* First extension addition */
-};
-asn_TYPE_descriptor_t asn_DEF_ServedPlmnPerCellListItem = {
-	"ServedPlmnPerCellListItem",
-	"ServedPlmnPerCellListItem",
-	&asn_OP_SEQUENCE,
-	asn_DEF_ServedPlmnPerCellListItem_tags_1,
-	sizeof(asn_DEF_ServedPlmnPerCellListItem_tags_1)
-		/sizeof(asn_DEF_ServedPlmnPerCellListItem_tags_1[0]), /* 1 */
-	asn_DEF_ServedPlmnPerCellListItem_tags_1,	/* Same as above */
-	sizeof(asn_DEF_ServedPlmnPerCellListItem_tags_1)
-		/sizeof(asn_DEF_ServedPlmnPerCellListItem_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_ServedPlmnPerCellListItem_1,
-	3,	/* Elements count */
-	&asn_SPC_ServedPlmnPerCellListItem_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/ServingCell-ARFCN.c b/e2sm/lib/ServingCell-ARFCN.c
new file mode 100644
index 0000000..1e6bf06
--- /dev/null
+++ b/e2sm/lib/ServingCell-ARFCN.c
@@ -0,0 +1,66 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "ServingCell-ARFCN.h"
+
+#include "NR-ARFCN.h"
+static asn_oer_constraints_t asn_OER_type_ServingCell_ARFCN_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_ServingCell_ARFCN_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_ServingCell_ARFCN_1[] = {
+	{ ATF_POINTER, 0, offsetof(struct ServingCell_ARFCN, choice.nR),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NR_ARFCN,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"nR"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct ServingCell_ARFCN, choice.eUTRA),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E_UTRA_ARFCN,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"eUTRA"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_ServingCell_ARFCN_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nR */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* eUTRA */
+};
+asn_CHOICE_specifics_t asn_SPC_ServingCell_ARFCN_specs_1 = {
+	sizeof(struct ServingCell_ARFCN),
+	offsetof(struct ServingCell_ARFCN, _asn_ctx),
+	offsetof(struct ServingCell_ARFCN, present),
+	sizeof(((struct ServingCell_ARFCN *)0)->present),
+	asn_MAP_ServingCell_ARFCN_tag2el_1,
+	2,	/* Count of tags in the map */
+	0, 0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_ServingCell_ARFCN = {
+	"ServingCell-ARFCN",
+	"ServingCell-ARFCN",
+	&asn_OP_CHOICE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ &asn_OER_type_ServingCell_ARFCN_constr_1, &asn_PER_type_ServingCell_ARFCN_constr_1, CHOICE_constraint },
+	asn_MBR_ServingCell_ARFCN_1,
+	2,	/* Elements count */
+	&asn_SPC_ServingCell_ARFCN_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/ServingCell-PCI.c b/e2sm/lib/ServingCell-PCI.c
new file mode 100644
index 0000000..191d27f
--- /dev/null
+++ b/e2sm/lib/ServingCell-PCI.c
@@ -0,0 +1,65 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "ServingCell-PCI.h"
+
+static asn_oer_constraints_t asn_OER_type_ServingCell_PCI_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_ServingCell_PCI_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }	/* (0..1,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_ServingCell_PCI_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct ServingCell_PCI, choice.nR),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NR_PCI,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"nR"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct ServingCell_PCI, choice.eUTRA),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_E_UTRA_PCI,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"eUTRA"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_ServingCell_PCI_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nR */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* eUTRA */
+};
+asn_CHOICE_specifics_t asn_SPC_ServingCell_PCI_specs_1 = {
+	sizeof(struct ServingCell_PCI),
+	offsetof(struct ServingCell_PCI, _asn_ctx),
+	offsetof(struct ServingCell_PCI, present),
+	sizeof(((struct ServingCell_PCI *)0)->present),
+	asn_MAP_ServingCell_PCI_tag2el_1,
+	2,	/* Count of tags in the map */
+	0, 0,
+	2	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_ServingCell_PCI = {
+	"ServingCell-PCI",
+	"ServingCell-PCI",
+	&asn_OP_CHOICE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ &asn_OER_type_ServingCell_PCI_constr_1, &asn_PER_type_ServingCell_PCI_constr_1, CHOICE_constraint },
+	asn_MBR_ServingCell_PCI_1,
+	2,	/* Elements count */
+	&asn_SPC_ServingCell_PCI_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/ServingCellMeasurements.c b/e2sm/lib/ServingCellMeasurements.c
deleted file mode 100644
index 8ff6d3b..0000000
--- a/e2sm/lib/ServingCellMeasurements.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "ServingCellMeasurements.h"
-
-#include "MeasResultServMOList.h"
-#include "MeasResultPCell.h"
-static asn_oer_constraints_t asn_OER_type_ServingCellMeasurements_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	-1};
-asn_per_constraints_t asn_PER_type_ServingCellMeasurements_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }	/* (0..1,...) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-asn_TYPE_member_t asn_MBR_ServingCellMeasurements_1[] = {
-	{ ATF_POINTER, 0, offsetof(struct ServingCellMeasurements, choice.nr_measResultServingMOList),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_MeasResultServMOList,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"nr-measResultServingMOList"
-		},
-	{ ATF_POINTER, 0, offsetof(struct ServingCellMeasurements, choice.eutra_measResultPCell),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_MeasResultPCell,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"eutra-measResultPCell"
-		},
-};
-static const asn_TYPE_tag2member_t asn_MAP_ServingCellMeasurements_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nr-measResultServingMOList */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* eutra-measResultPCell */
-};
-asn_CHOICE_specifics_t asn_SPC_ServingCellMeasurements_specs_1 = {
-	sizeof(struct ServingCellMeasurements),
-	offsetof(struct ServingCellMeasurements, _asn_ctx),
-	offsetof(struct ServingCellMeasurements, present),
-	sizeof(((struct ServingCellMeasurements *)0)->present),
-	asn_MAP_ServingCellMeasurements_tag2el_1,
-	2,	/* Count of tags in the map */
-	0, 0,
-	2	/* Extensions start */
-};
-asn_TYPE_descriptor_t asn_DEF_ServingCellMeasurements = {
-	"ServingCellMeasurements",
-	"ServingCellMeasurements",
-	&asn_OP_CHOICE,
-	0,	/* No effective tags (pointer) */
-	0,	/* No effective tags (count) */
-	0,	/* No tags (pointer) */
-	0,	/* No tags (count) */
-	{ &asn_OER_type_ServingCellMeasurements_constr_1, &asn_PER_type_ServingCellMeasurements_constr_1, CHOICE_constraint },
-	asn_MBR_ServingCellMeasurements_1,
-	2,	/* Elements count */
-	&asn_SPC_ServingCellMeasurements_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/SlicePerPlmnPerCellListItem.c b/e2sm/lib/SlicePerPlmnPerCellListItem.c
deleted file mode 100644
index 021489f..0000000
--- a/e2sm/lib/SlicePerPlmnPerCellListItem.c
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "SlicePerPlmnPerCellListItem.h"
-
-#include "FQIPERSlicesPerPlmnPerCellListItem.h"
-static int
-memb_fQIPERSlicesPerPlmnPerCellList_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 <= 64)) {
-		/* 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_fQIPERSlicesPerPlmnPerCellList_constr_3 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..64)) */};
-static asn_per_constraints_t asn_PER_type_fQIPERSlicesPerPlmnPerCellList_constr_3 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 6,  6,  1,  64 }	/* (SIZE(1..64)) */,
-	0, 0	/* No PER value map */
-};
-static asn_oer_constraints_t asn_OER_memb_fQIPERSlicesPerPlmnPerCellList_constr_3 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..64)) */};
-static asn_per_constraints_t asn_PER_memb_fQIPERSlicesPerPlmnPerCellList_constr_3 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 6,  6,  1,  64 }	/* (SIZE(1..64)) */,
-	0, 0	/* No PER value map */
-};
-static asn_TYPE_member_t asn_MBR_fQIPERSlicesPerPlmnPerCellList_3[] = {
-	{ ATF_POINTER, 0, 0,
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_FQIPERSlicesPerPlmnPerCellListItem,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		""
-		},
-};
-static const ber_tlv_tag_t asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3[] = {
-	(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static asn_SET_OF_specifics_t asn_SPC_fQIPERSlicesPerPlmnPerCellList_specs_3 = {
-	sizeof(struct SlicePerPlmnPerCellListItem__fQIPERSlicesPerPlmnPerCellList),
-	offsetof(struct SlicePerPlmnPerCellListItem__fQIPERSlicesPerPlmnPerCellList, _asn_ctx),
-	0,	/* XER encoding is XMLDelimitedItemList */
-};
-static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_fQIPERSlicesPerPlmnPerCellList_3 = {
-	"fQIPERSlicesPerPlmnPerCellList",
-	"fQIPERSlicesPerPlmnPerCellList",
-	&asn_OP_SEQUENCE_OF,
-	asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3,
-	sizeof(asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3)
-		/sizeof(asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3[0]) - 1, /* 1 */
-	asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3,	/* Same as above */
-	sizeof(asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3)
-		/sizeof(asn_DEF_fQIPERSlicesPerPlmnPerCellList_tags_3[0]), /* 2 */
-	{ &asn_OER_type_fQIPERSlicesPerPlmnPerCellList_constr_3, &asn_PER_type_fQIPERSlicesPerPlmnPerCellList_constr_3, SEQUENCE_OF_constraint },
-	asn_MBR_fQIPERSlicesPerPlmnPerCellList_3,
-	1,	/* Single element */
-	&asn_SPC_fQIPERSlicesPerPlmnPerCellList_specs_3	/* Additional specs */
-};
-
-asn_TYPE_member_t asn_MBR_SlicePerPlmnPerCellListItem_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct SlicePerPlmnPerCellListItem, sliceID),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_S_NSSAI,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"sliceID"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct SlicePerPlmnPerCellListItem, fQIPERSlicesPerPlmnPerCellList),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		0,
-		&asn_DEF_fQIPERSlicesPerPlmnPerCellList_3,
-		0,
-		{ &asn_OER_memb_fQIPERSlicesPerPlmnPerCellList_constr_3, &asn_PER_memb_fQIPERSlicesPerPlmnPerCellList_constr_3,  memb_fQIPERSlicesPerPlmnPerCellList_constraint_1 },
-		0, 0, /* No default value */
-		"fQIPERSlicesPerPlmnPerCellList"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_SlicePerPlmnPerCellListItem_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_SlicePerPlmnPerCellListItem_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sliceID */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fQIPERSlicesPerPlmnPerCellList */
-};
-asn_SEQUENCE_specifics_t asn_SPC_SlicePerPlmnPerCellListItem_specs_1 = {
-	sizeof(struct SlicePerPlmnPerCellListItem),
-	offsetof(struct SlicePerPlmnPerCellListItem, _asn_ctx),
-	asn_MAP_SlicePerPlmnPerCellListItem_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_SlicePerPlmnPerCellListItem = {
-	"SlicePerPlmnPerCellListItem",
-	"SlicePerPlmnPerCellListItem",
-	&asn_OP_SEQUENCE,
-	asn_DEF_SlicePerPlmnPerCellListItem_tags_1,
-	sizeof(asn_DEF_SlicePerPlmnPerCellListItem_tags_1)
-		/sizeof(asn_DEF_SlicePerPlmnPerCellListItem_tags_1[0]), /* 1 */
-	asn_DEF_SlicePerPlmnPerCellListItem_tags_1,	/* Same as above */
-	sizeof(asn_DEF_SlicePerPlmnPerCellListItem_tags_1)
-		/sizeof(asn_DEF_SlicePerPlmnPerCellListItem_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_SlicePerPlmnPerCellListItem_1,
-	2,	/* Elements count */
-	&asn_SPC_SlicePerPlmnPerCellListItem_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/SliceToReportListItem.c b/e2sm/lib/SliceToReportListItem.c
deleted file mode 100644
index b466fc3..0000000
--- a/e2sm/lib/SliceToReportListItem.c
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "SliceToReportListItem.h"
-
-#include "FQIPERSlicesPerPlmnListItem.h"
-static int
-memb_fQIPERSlicesPerPlmnList_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 <= 64)) {
-		/* 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_fQIPERSlicesPerPlmnList_constr_3 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..64)) */};
-static asn_per_constraints_t asn_PER_type_fQIPERSlicesPerPlmnList_constr_3 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 6,  6,  1,  64 }	/* (SIZE(1..64)) */,
-	0, 0	/* No PER value map */
-};
-static asn_oer_constraints_t asn_OER_memb_fQIPERSlicesPerPlmnList_constr_3 CC_NOTUSED = {
-	{ 0, 0 },
-	-1	/* (SIZE(1..64)) */};
-static asn_per_constraints_t asn_PER_memb_fQIPERSlicesPerPlmnList_constr_3 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 6,  6,  1,  64 }	/* (SIZE(1..64)) */,
-	0, 0	/* No PER value map */
-};
-static asn_TYPE_member_t asn_MBR_fQIPERSlicesPerPlmnList_3[] = {
-	{ ATF_POINTER, 0, 0,
-		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
-		0,
-		&asn_DEF_FQIPERSlicesPerPlmnListItem,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		""
-		},
-};
-static const ber_tlv_tag_t asn_DEF_fQIPERSlicesPerPlmnList_tags_3[] = {
-	(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static asn_SET_OF_specifics_t asn_SPC_fQIPERSlicesPerPlmnList_specs_3 = {
-	sizeof(struct SliceToReportListItem__fQIPERSlicesPerPlmnList),
-	offsetof(struct SliceToReportListItem__fQIPERSlicesPerPlmnList, _asn_ctx),
-	0,	/* XER encoding is XMLDelimitedItemList */
-};
-static /* Use -fall-defs-global to expose */
-asn_TYPE_descriptor_t asn_DEF_fQIPERSlicesPerPlmnList_3 = {
-	"fQIPERSlicesPerPlmnList",
-	"fQIPERSlicesPerPlmnList",
-	&asn_OP_SEQUENCE_OF,
-	asn_DEF_fQIPERSlicesPerPlmnList_tags_3,
-	sizeof(asn_DEF_fQIPERSlicesPerPlmnList_tags_3)
-		/sizeof(asn_DEF_fQIPERSlicesPerPlmnList_tags_3[0]) - 1, /* 1 */
-	asn_DEF_fQIPERSlicesPerPlmnList_tags_3,	/* Same as above */
-	sizeof(asn_DEF_fQIPERSlicesPerPlmnList_tags_3)
-		/sizeof(asn_DEF_fQIPERSlicesPerPlmnList_tags_3[0]), /* 2 */
-	{ &asn_OER_type_fQIPERSlicesPerPlmnList_constr_3, &asn_PER_type_fQIPERSlicesPerPlmnList_constr_3, SEQUENCE_OF_constraint },
-	asn_MBR_fQIPERSlicesPerPlmnList_3,
-	1,	/* Single element */
-	&asn_SPC_fQIPERSlicesPerPlmnList_specs_3	/* Additional specs */
-};
-
-asn_TYPE_member_t asn_MBR_SliceToReportListItem_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct SliceToReportListItem, sliceID),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_S_NSSAI,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"sliceID"
-		},
-	{ ATF_NOFLAGS, 0, offsetof(struct SliceToReportListItem, fQIPERSlicesPerPlmnList),
-		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
-		0,
-		&asn_DEF_fQIPERSlicesPerPlmnList_3,
-		0,
-		{ &asn_OER_memb_fQIPERSlicesPerPlmnList_constr_3, &asn_PER_memb_fQIPERSlicesPerPlmnList_constr_3,  memb_fQIPERSlicesPerPlmnList_constraint_1 },
-		0, 0, /* No default value */
-		"fQIPERSlicesPerPlmnList"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_SliceToReportListItem_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_SliceToReportListItem_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sliceID */
-    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fQIPERSlicesPerPlmnList */
-};
-asn_SEQUENCE_specifics_t asn_SPC_SliceToReportListItem_specs_1 = {
-	sizeof(struct SliceToReportListItem),
-	offsetof(struct SliceToReportListItem, _asn_ctx),
-	asn_MAP_SliceToReportListItem_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_SliceToReportListItem = {
-	"SliceToReportListItem",
-	"SliceToReportListItem",
-	&asn_OP_SEQUENCE,
-	asn_DEF_SliceToReportListItem_tags_1,
-	sizeof(asn_DEF_SliceToReportListItem_tags_1)
-		/sizeof(asn_DEF_SliceToReportListItem_tags_1[0]), /* 1 */
-	asn_DEF_SliceToReportListItem_tags_1,	/* Same as above */
-	sizeof(asn_DEF_SliceToReportListItem_tags_1)
-		/sizeof(asn_DEF_SliceToReportListItem_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_SliceToReportListItem_1,
-	2,	/* Elements count */
-	&asn_SPC_SliceToReportListItem_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/SubscriberProfileIDforRFP.c b/e2sm/lib/SubscriberProfileIDforRFP.c
new file mode 100644
index 0000000..ab0182d
--- /dev/null
+++ b/e2sm/lib/SubscriberProfileIDforRFP.c
@@ -0,0 +1,64 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "SubscriberProfileIDforRFP.h"
+
+int
+SubscriberProfileIDforRFP_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1 && value <= 256)) {
+		/* Constraint check succeeded */
+		return 0;
+	} else {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: constraint failed (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+}
+
+/*
+ * This type is implemented using NativeInteger,
+ * so here we adjust the DEF accordingly.
+ */
+static asn_oer_constraints_t asn_OER_type_SubscriberProfileIDforRFP_constr_1 CC_NOTUSED = {
+	{ 2, 1 }	/* (1..256) */,
+	-1};
+static asn_per_constraints_t asn_PER_type_SubscriberProfileIDforRFP_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED,	 8,  8,  1,  256 }	/* (1..256) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+static const ber_tlv_tag_t asn_DEF_SubscriberProfileIDforRFP_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
+};
+asn_TYPE_descriptor_t asn_DEF_SubscriberProfileIDforRFP = {
+	"SubscriberProfileIDforRFP",
+	"SubscriberProfileIDforRFP",
+	&asn_OP_NativeInteger,
+	asn_DEF_SubscriberProfileIDforRFP_tags_1,
+	sizeof(asn_DEF_SubscriberProfileIDforRFP_tags_1)
+		/sizeof(asn_DEF_SubscriberProfileIDforRFP_tags_1[0]), /* 1 */
+	asn_DEF_SubscriberProfileIDforRFP_tags_1,	/* Same as above */
+	sizeof(asn_DEF_SubscriberProfileIDforRFP_tags_1)
+		/sizeof(asn_DEF_SubscriberProfileIDforRFP_tags_1[0]), /* 1 */
+	{ &asn_OER_type_SubscriberProfileIDforRFP_constr_1, &asn_PER_type_SubscriberProfileIDforRFP_constr_1, SubscriberProfileIDforRFP_constraint },
+	0, 0,	/* No members */
+	0	/* No specifics */
+};
+
diff --git a/e2sm/lib/SupportedSULBandList.c b/e2sm/lib/SupportedSULBandList.c
new file mode 100644
index 0000000..7e74326
--- /dev/null
+++ b/e2sm/lib/SupportedSULBandList.c
@@ -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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "SupportedSULBandList.h"
+
+#include "SupportedSULFreqBandItem.h"
+static asn_oer_constraints_t asn_OER_type_SupportedSULBandList_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(0..32)) */};
+asn_per_constraints_t asn_PER_type_SupportedSULBandList_constr_1 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 6,  6,  0,  32 }	/* (SIZE(0..32)) */,
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_SupportedSULBandList_1[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_SupportedSULFreqBandItem,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_SupportedSULBandList_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_SupportedSULBandList_specs_1 = {
+	sizeof(struct SupportedSULBandList),
+	offsetof(struct SupportedSULBandList, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_SupportedSULBandList = {
+	"SupportedSULBandList",
+	"SupportedSULBandList",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_SupportedSULBandList_tags_1,
+	sizeof(asn_DEF_SupportedSULBandList_tags_1)
+		/sizeof(asn_DEF_SupportedSULBandList_tags_1[0]), /* 1 */
+	asn_DEF_SupportedSULBandList_tags_1,	/* Same as above */
+	sizeof(asn_DEF_SupportedSULBandList_tags_1)
+		/sizeof(asn_DEF_SupportedSULBandList_tags_1[0]), /* 1 */
+	{ &asn_OER_type_SupportedSULBandList_constr_1, &asn_PER_type_SupportedSULBandList_constr_1, SEQUENCE_OF_constraint },
+	asn_MBR_SupportedSULBandList_1,
+	1,	/* Single element */
+	&asn_SPC_SupportedSULBandList_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/SupportedSULFreqBandItem.c b/e2sm/lib/SupportedSULFreqBandItem.c
new file mode 100644
index 0000000..ea7192f
--- /dev/null
+++ b/e2sm/lib/SupportedSULFreqBandItem.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "SupportedSULFreqBandItem.h"
+
+static int
+memb_freqBandIndicatorNr_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1 && value <= 1024)) {
+		/* Constraint check succeeded */
+		return 0;
+	} 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_memb_freqBandIndicatorNr_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_memb_freqBandIndicatorNr_constr_2 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  10,  10,  1,  1024 }	/* (1..1024,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_SupportedSULFreqBandItem_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct SupportedSULFreqBandItem, freqBandIndicatorNr),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		0,
+		{ &asn_OER_memb_freqBandIndicatorNr_constr_2, &asn_PER_memb_freqBandIndicatorNr_constr_2,  memb_freqBandIndicatorNr_constraint_1 },
+		0, 0, /* No default value */
+		"freqBandIndicatorNr"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_SupportedSULFreqBandItem_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SupportedSULFreqBandItem_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* freqBandIndicatorNr */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SupportedSULFreqBandItem_specs_1 = {
+	sizeof(struct SupportedSULFreqBandItem),
+	offsetof(struct SupportedSULFreqBandItem, _asn_ctx),
+	asn_MAP_SupportedSULFreqBandItem_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_SupportedSULFreqBandItem = {
+	"SupportedSULFreqBandItem",
+	"SupportedSULFreqBandItem",
+	&asn_OP_SEQUENCE,
+	asn_DEF_SupportedSULFreqBandItem_tags_1,
+	sizeof(asn_DEF_SupportedSULFreqBandItem_tags_1)
+		/sizeof(asn_DEF_SupportedSULFreqBandItem_tags_1[0]), /* 1 */
+	asn_DEF_SupportedSULFreqBandItem_tags_1,	/* Same as above */
+	sizeof(asn_DEF_SupportedSULFreqBandItem_tags_1)
+		/sizeof(asn_DEF_SupportedSULFreqBandItem_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_SupportedSULFreqBandItem_1,
+	1,	/* Elements count */
+	&asn_SPC_SupportedSULFreqBandItem_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/TimeStamp.c b/e2sm/lib/TimeStamp.c
deleted file mode 100644
index 6d6fd9c..0000000
--- a/e2sm/lib/TimeStamp.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "TimeStamp.h"
-
-int
-TimeStamp_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
-			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
-	const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
-	size_t size;
-	
-	if(!sptr) {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: value not given (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-	
-	size = st->size;
-	
-	if((size == 8)) {
-		/* Constraint check succeeded */
-		return 0;
-	} else {
-		ASN__CTFAIL(app_key, td, sptr,
-			"%s: constraint failed (%s:%d)",
-			td->name, __FILE__, __LINE__);
-		return -1;
-	}
-}
-
-/*
- * This type is implemented using OCTET_STRING,
- * so here we adjust the DEF accordingly.
- */
-static asn_oer_constraints_t asn_OER_type_TimeStamp_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	8	/* (SIZE(8..8)) */};
-asn_per_constraints_t asn_PER_type_TimeStamp_constr_1 CC_NOTUSED = {
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	{ APC_CONSTRAINED,	 0,  0,  8,  8 }	/* (SIZE(8..8)) */,
-	0, 0	/* No PER value map */
-};
-static const ber_tlv_tag_t asn_DEF_TimeStamp_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
-};
-asn_TYPE_descriptor_t asn_DEF_TimeStamp = {
-	"TimeStamp",
-	"TimeStamp",
-	&asn_OP_OCTET_STRING,
-	asn_DEF_TimeStamp_tags_1,
-	sizeof(asn_DEF_TimeStamp_tags_1)
-		/sizeof(asn_DEF_TimeStamp_tags_1[0]), /* 1 */
-	asn_DEF_TimeStamp_tags_1,	/* Same as above */
-	sizeof(asn_DEF_TimeStamp_tags_1)
-		/sizeof(asn_DEF_TimeStamp_tags_1[0]), /* 1 */
-	{ &asn_OER_type_TimeStamp_constr_1, &asn_PER_type_TimeStamp_constr_1, TimeStamp_constraint },
-	0, 0,	/* No members */
-	&asn_SPC_OCTET_STRING_specs	/* Additional specs */
-};
-
diff --git a/e2sm/lib/Trigger-ConditionIE-Item.c b/e2sm/lib/Trigger-ConditionIE-Item.c
deleted file mode 100644
index dd0e6f4..0000000
--- a/e2sm/lib/Trigger-ConditionIE-Item.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "Trigger-ConditionIE-Item.h"
-
-asn_TYPE_member_t asn_MBR_Trigger_ConditionIE_Item_1[] = {
-	{ ATF_NOFLAGS, 0, offsetof(struct Trigger_ConditionIE_Item, report_Period_IE),
-		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
-		-1,	/* IMPLICIT tag at current level */
-		&asn_DEF_RT_Period_IE,
-		0,
-		{ 0, 0, 0 },
-		0, 0, /* No default value */
-		"report-Period-IE"
-		},
-};
-static const ber_tlv_tag_t asn_DEF_Trigger_ConditionIE_Item_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
-};
-static const asn_TYPE_tag2member_t asn_MAP_Trigger_ConditionIE_Item_tag2el_1[] = {
-    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* report-Period-IE */
-};
-asn_SEQUENCE_specifics_t asn_SPC_Trigger_ConditionIE_Item_specs_1 = {
-	sizeof(struct Trigger_ConditionIE_Item),
-	offsetof(struct Trigger_ConditionIE_Item, _asn_ctx),
-	asn_MAP_Trigger_ConditionIE_Item_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_Trigger_ConditionIE_Item = {
-	"Trigger-ConditionIE-Item",
-	"Trigger-ConditionIE-Item",
-	&asn_OP_SEQUENCE,
-	asn_DEF_Trigger_ConditionIE_Item_tags_1,
-	sizeof(asn_DEF_Trigger_ConditionIE_Item_tags_1)
-		/sizeof(asn_DEF_Trigger_ConditionIE_Item_tags_1[0]), /* 1 */
-	asn_DEF_Trigger_ConditionIE_Item_tags_1,	/* Same as above */
-	sizeof(asn_DEF_Trigger_ConditionIE_Item_tags_1)
-		/sizeof(asn_DEF_Trigger_ConditionIE_Item_tags_1[0]), /* 1 */
-	{ 0, 0, SEQUENCE_constraint },
-	asn_MBR_Trigger_ConditionIE_Item_1,
-	1,	/* Elements count */
-	&asn_SPC_Trigger_ConditionIE_Item_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/TriggerType-Choice-L2state.c b/e2sm/lib/TriggerType-Choice-L2state.c
new file mode 100644
index 0000000..bfb7433
--- /dev/null
+++ b/e2sm/lib/TriggerType-Choice-L2state.c
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "TriggerType-Choice-L2state.h"
+
+asn_TYPE_member_t asn_MBR_TriggerType_Choice_L2state_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct TriggerType_Choice_L2state, associatedL2variables),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANParameter_Testing,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"associatedL2variables"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_TriggerType_Choice_L2state_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_TriggerType_Choice_L2state_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* associatedL2variables */
+};
+asn_SEQUENCE_specifics_t asn_SPC_TriggerType_Choice_L2state_specs_1 = {
+	sizeof(struct TriggerType_Choice_L2state),
+	offsetof(struct TriggerType_Choice_L2state, _asn_ctx),
+	asn_MAP_TriggerType_Choice_L2state_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_TriggerType_Choice_L2state = {
+	"TriggerType-Choice-L2state",
+	"TriggerType-Choice-L2state",
+	&asn_OP_SEQUENCE,
+	asn_DEF_TriggerType_Choice_L2state_tags_1,
+	sizeof(asn_DEF_TriggerType_Choice_L2state_tags_1)
+		/sizeof(asn_DEF_TriggerType_Choice_L2state_tags_1[0]), /* 1 */
+	asn_DEF_TriggerType_Choice_L2state_tags_1,	/* Same as above */
+	sizeof(asn_DEF_TriggerType_Choice_L2state_tags_1)
+		/sizeof(asn_DEF_TriggerType_Choice_L2state_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_TriggerType_Choice_L2state_1,
+	1,	/* Elements count */
+	&asn_SPC_TriggerType_Choice_L2state_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/TriggerType-Choice-RRCstate-Item.c b/e2sm/lib/TriggerType-Choice-RRCstate-Item.c
new file mode 100644
index 0000000..5d95e41
--- /dev/null
+++ b/e2sm/lib/TriggerType-Choice-RRCstate-Item.c
@@ -0,0 +1,62 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "TriggerType-Choice-RRCstate-Item.h"
+
+asn_TYPE_member_t asn_MBR_TriggerType_Choice_RRCstate_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct TriggerType_Choice_RRCstate_Item, stateChangedTo),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RRC_State,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"stateChangedTo"
+		},
+	{ ATF_POINTER, 1, offsetof(struct TriggerType_Choice_RRCstate_Item, logicalOR),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_LogicalOR,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"logicalOR"
+		},
+};
+static const int asn_MAP_TriggerType_Choice_RRCstate_Item_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_TriggerType_Choice_RRCstate_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_TriggerType_Choice_RRCstate_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* stateChangedTo */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* logicalOR */
+};
+asn_SEQUENCE_specifics_t asn_SPC_TriggerType_Choice_RRCstate_Item_specs_1 = {
+	sizeof(struct TriggerType_Choice_RRCstate_Item),
+	offsetof(struct TriggerType_Choice_RRCstate_Item, _asn_ctx),
+	asn_MAP_TriggerType_Choice_RRCstate_Item_tag2el_1,
+	2,	/* Count of tags in the map */
+	asn_MAP_TriggerType_Choice_RRCstate_Item_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_TriggerType_Choice_RRCstate_Item = {
+	"TriggerType-Choice-RRCstate-Item",
+	"TriggerType-Choice-RRCstate-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_TriggerType_Choice_RRCstate_Item_tags_1,
+	sizeof(asn_DEF_TriggerType_Choice_RRCstate_Item_tags_1)
+		/sizeof(asn_DEF_TriggerType_Choice_RRCstate_Item_tags_1[0]), /* 1 */
+	asn_DEF_TriggerType_Choice_RRCstate_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_TriggerType_Choice_RRCstate_Item_tags_1)
+		/sizeof(asn_DEF_TriggerType_Choice_RRCstate_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_TriggerType_Choice_RRCstate_Item_1,
+	2,	/* Elements count */
+	&asn_SPC_TriggerType_Choice_RRCstate_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/TriggerType-Choice-RRCstate.c b/e2sm/lib/TriggerType-Choice-RRCstate.c
new file mode 100644
index 0000000..b62aef3
--- /dev/null
+++ b/e2sm/lib/TriggerType-Choice-RRCstate.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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "TriggerType-Choice-RRCstate.h"
+
+#include "TriggerType-Choice-RRCstate-Item.h"
+static int
+memb_rrcState_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 <= 8)) {
+		/* 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_rrcState_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..8)) */};
+static asn_per_constraints_t asn_PER_type_rrcState_List_constr_2 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 3,  3,  1,  8 }	/* (SIZE(1..8)) */,
+	0, 0	/* No PER value map */
+};
+static asn_oer_constraints_t asn_OER_memb_rrcState_List_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..8)) */};
+static asn_per_constraints_t asn_PER_memb_rrcState_List_constr_2 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 3,  3,  1,  8 }	/* (SIZE(1..8)) */,
+	0, 0	/* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_rrcState_List_2[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_TriggerType_Choice_RRCstate_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_rrcState_List_tags_2[] = {
+	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_rrcState_List_specs_2 = {
+	sizeof(struct TriggerType_Choice_RRCstate__rrcState_List),
+	offsetof(struct TriggerType_Choice_RRCstate__rrcState_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_rrcState_List_2 = {
+	"rrcState-List",
+	"rrcState-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_rrcState_List_tags_2,
+	sizeof(asn_DEF_rrcState_List_tags_2)
+		/sizeof(asn_DEF_rrcState_List_tags_2[0]) - 1, /* 1 */
+	asn_DEF_rrcState_List_tags_2,	/* Same as above */
+	sizeof(asn_DEF_rrcState_List_tags_2)
+		/sizeof(asn_DEF_rrcState_List_tags_2[0]), /* 2 */
+	{ &asn_OER_type_rrcState_List_constr_2, &asn_PER_type_rrcState_List_constr_2, SEQUENCE_OF_constraint },
+	asn_MBR_rrcState_List_2,
+	1,	/* Single element */
+	&asn_SPC_rrcState_List_specs_2	/* Additional specs */
+};
+
+asn_TYPE_member_t asn_MBR_TriggerType_Choice_RRCstate_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct TriggerType_Choice_RRCstate, rrcState_List),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		0,
+		&asn_DEF_rrcState_List_2,
+		0,
+		{ &asn_OER_memb_rrcState_List_constr_2, &asn_PER_memb_rrcState_List_constr_2,  memb_rrcState_List_constraint_1 },
+		0, 0, /* No default value */
+		"rrcState-List"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_TriggerType_Choice_RRCstate_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_TriggerType_Choice_RRCstate_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* rrcState-List */
+};
+asn_SEQUENCE_specifics_t asn_SPC_TriggerType_Choice_RRCstate_specs_1 = {
+	sizeof(struct TriggerType_Choice_RRCstate),
+	offsetof(struct TriggerType_Choice_RRCstate, _asn_ctx),
+	asn_MAP_TriggerType_Choice_RRCstate_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_TriggerType_Choice_RRCstate = {
+	"TriggerType-Choice-RRCstate",
+	"TriggerType-Choice-RRCstate",
+	&asn_OP_SEQUENCE,
+	asn_DEF_TriggerType_Choice_RRCstate_tags_1,
+	sizeof(asn_DEF_TriggerType_Choice_RRCstate_tags_1)
+		/sizeof(asn_DEF_TriggerType_Choice_RRCstate_tags_1[0]), /* 1 */
+	asn_DEF_TriggerType_Choice_RRCstate_tags_1,	/* Same as above */
+	sizeof(asn_DEF_TriggerType_Choice_RRCstate_tags_1)
+		/sizeof(asn_DEF_TriggerType_Choice_RRCstate_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_TriggerType_Choice_RRCstate_1,
+	1,	/* Elements count */
+	&asn_SPC_TriggerType_Choice_RRCstate_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/TriggerType-Choice-UEID.c b/e2sm/lib/TriggerType-Choice-UEID.c
new file mode 100644
index 0000000..26967e1
--- /dev/null
+++ b/e2sm/lib/TriggerType-Choice-UEID.c
@@ -0,0 +1,83 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "TriggerType-Choice-UEID.h"
+
+static int
+memb_ueIDchange_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+	long value;
+	
+	if(!sptr) {
+		ASN__CTFAIL(app_key, td, sptr,
+			"%s: value not given (%s:%d)",
+			td->name, __FILE__, __LINE__);
+		return -1;
+	}
+	
+	value = *(const long *)sptr;
+	
+	if((value >= 1 && value <= 512)) {
+		/* Constraint check succeeded */
+		return 0;
+	} 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_memb_ueIDchange_ID_constr_2 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+static asn_per_constraints_t asn_PER_memb_ueIDchange_ID_constr_2 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  9,  9,  1,  512 }	/* (1..512,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_TriggerType_Choice_UEID_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct TriggerType_Choice_UEID, ueIDchange_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NativeInteger,
+		0,
+		{ &asn_OER_memb_ueIDchange_ID_constr_2, &asn_PER_memb_ueIDchange_ID_constr_2,  memb_ueIDchange_ID_constraint_1 },
+		0, 0, /* No default value */
+		"ueIDchange-ID"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_TriggerType_Choice_UEID_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_TriggerType_Choice_UEID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ueIDchange-ID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_TriggerType_Choice_UEID_specs_1 = {
+	sizeof(struct TriggerType_Choice_UEID),
+	offsetof(struct TriggerType_Choice_UEID, _asn_ctx),
+	asn_MAP_TriggerType_Choice_UEID_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_TriggerType_Choice_UEID = {
+	"TriggerType-Choice-UEID",
+	"TriggerType-Choice-UEID",
+	&asn_OP_SEQUENCE,
+	asn_DEF_TriggerType_Choice_UEID_tags_1,
+	sizeof(asn_DEF_TriggerType_Choice_UEID_tags_1)
+		/sizeof(asn_DEF_TriggerType_Choice_UEID_tags_1[0]), /* 1 */
+	asn_DEF_TriggerType_Choice_UEID_tags_1,	/* Same as above */
+	sizeof(asn_DEF_TriggerType_Choice_UEID_tags_1)
+		/sizeof(asn_DEF_TriggerType_Choice_UEID_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_TriggerType_Choice_UEID_1,
+	1,	/* Elements count */
+	&asn_SPC_TriggerType_Choice_UEID_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/TriggerType-Choice.c b/e2sm/lib/TriggerType-Choice.c
new file mode 100644
index 0000000..230194b
--- /dev/null
+++ b/e2sm/lib/TriggerType-Choice.c
@@ -0,0 +1,78 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "TriggerType-Choice.h"
+
+#include "TriggerType-Choice-RRCstate.h"
+#include "TriggerType-Choice-UEID.h"
+#include "TriggerType-Choice-L2state.h"
+static asn_oer_constraints_t asn_OER_type_TriggerType_Choice_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_TriggerType_Choice_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }	/* (0..2,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_TriggerType_Choice_1[] = {
+	{ ATF_POINTER, 0, offsetof(struct TriggerType_Choice, choice.triggerType_Choice_RRCstate),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_TriggerType_Choice_RRCstate,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"triggerType-Choice-RRCstate"
+		},
+	{ ATF_POINTER, 0, offsetof(struct TriggerType_Choice, choice.triggerType_Choice_UEID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_TriggerType_Choice_UEID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"triggerType-Choice-UEID"
+		},
+	{ ATF_POINTER, 0, offsetof(struct TriggerType_Choice, choice.triggerType_Choice_L2state),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_TriggerType_Choice_L2state,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"triggerType-Choice-L2state"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_TriggerType_Choice_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* triggerType-Choice-RRCstate */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* triggerType-Choice-UEID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* triggerType-Choice-L2state */
+};
+asn_CHOICE_specifics_t asn_SPC_TriggerType_Choice_specs_1 = {
+	sizeof(struct TriggerType_Choice),
+	offsetof(struct TriggerType_Choice, _asn_ctx),
+	offsetof(struct TriggerType_Choice, present),
+	sizeof(((struct TriggerType_Choice *)0)->present),
+	asn_MAP_TriggerType_Choice_tag2el_1,
+	3,	/* Count of tags in the map */
+	0, 0,
+	3	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_TriggerType_Choice = {
+	"TriggerType-Choice",
+	"TriggerType-Choice",
+	&asn_OP_CHOICE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ &asn_OER_type_TriggerType_Choice_constr_1, &asn_PER_type_TriggerType_Choice_constr_1, CHOICE_constraint },
+	asn_MBR_TriggerType_Choice_1,
+	3,	/* Elements count */
+	&asn_SPC_TriggerType_Choice_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/TriggeringMessage.c b/e2sm/lib/TriggeringMessage.c
deleted file mode 100644
index 4af15f3..0000000
--- a/e2sm/lib/TriggeringMessage.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "TriggeringMessage.h"
-
-/*
- * This type is implemented using NativeEnumerated,
- * so here we adjust the DEF accordingly.
- */
-static asn_oer_constraints_t asn_OER_type_TriggeringMessage_constr_1 CC_NOTUSED = {
-	{ 0, 0 },
-	-1};
-static asn_per_constraints_t asn_PER_type_TriggeringMessage_constr_1 CC_NOTUSED = {
-	{ APC_CONSTRAINED,	 2,  2,  0,  2 }	/* (0..2) */,
-	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
-	0, 0	/* No PER value map */
-};
-static const asn_INTEGER_enum_map_t asn_MAP_TriggeringMessage_value2enum_1[] = {
-	{ 0,	18,	"initiating-message" },
-	{ 1,	18,	"successful-outcome" },
-	{ 2,	21,	"unsuccessfull-outcome" }
-};
-static const unsigned int asn_MAP_TriggeringMessage_enum2value_1[] = {
-	0,	/* initiating-message(0) */
-	1,	/* successful-outcome(1) */
-	2	/* unsuccessfull-outcome(2) */
-};
-static const asn_INTEGER_specifics_t asn_SPC_TriggeringMessage_specs_1 = {
-	asn_MAP_TriggeringMessage_value2enum_1,	/* "tag" => N; sorted by tag */
-	asn_MAP_TriggeringMessage_enum2value_1,	/* N => "tag"; sorted by N */
-	3,	/* Number of elements in the maps */
-	0,	/* Enumeration is not extensible */
-	1,	/* Strict enumeration */
-	0,	/* Native long size */
-	0
-};
-static const ber_tlv_tag_t asn_DEF_TriggeringMessage_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
-};
-asn_TYPE_descriptor_t asn_DEF_TriggeringMessage = {
-	"TriggeringMessage",
-	"TriggeringMessage",
-	&asn_OP_NativeEnumerated,
-	asn_DEF_TriggeringMessage_tags_1,
-	sizeof(asn_DEF_TriggeringMessage_tags_1)
-		/sizeof(asn_DEF_TriggeringMessage_tags_1[0]), /* 1 */
-	asn_DEF_TriggeringMessage_tags_1,	/* Same as above */
-	sizeof(asn_DEF_TriggeringMessage_tags_1)
-		/sizeof(asn_DEF_TriggeringMessage_tags_1[0]), /* 1 */
-	{ &asn_OER_type_TriggeringMessage_constr_1, &asn_PER_type_TriggeringMessage_constr_1, NativeEnumerated_constraint },
-	0, 0,	/* Defined elsewhere */
-	&asn_SPC_TriggeringMessage_specs_1	/* Additional specs */
-};
-
diff --git a/e2sm/lib/UE-Identity.c b/e2sm/lib/UE-Identity.c
deleted file mode 100644
index f0c1410..0000000
--- a/e2sm/lib/UE-Identity.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- * From ASN.1 module "E2SM-KPM-RC"
- * 	found in "e2sm-kpm-rc.asn"
- * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
- */
-
-#include "UE-Identity.h"
-
-/*
- * This type is implemented using OCTET_STRING,
- * so here we adjust the DEF accordingly.
- */
-static const ber_tlv_tag_t asn_DEF_UE_Identity_tags_1[] = {
-	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
-};
-asn_TYPE_descriptor_t asn_DEF_UE_Identity = {
-	"UE-Identity",
-	"UE-Identity",
-	&asn_OP_OCTET_STRING,
-	asn_DEF_UE_Identity_tags_1,
-	sizeof(asn_DEF_UE_Identity_tags_1)
-		/sizeof(asn_DEF_UE_Identity_tags_1[0]), /* 1 */
-	asn_DEF_UE_Identity_tags_1,	/* Same as above */
-	sizeof(asn_DEF_UE_Identity_tags_1)
-		/sizeof(asn_DEF_UE_Identity_tags_1[0]), /* 1 */
-	{ 0, 0, OCTET_STRING_constraint },
-	0, 0,	/* No members */
-	&asn_SPC_OCTET_STRING_specs	/* Additional specs */
-};
-
diff --git a/e2sm/lib/UEID-EN-GNB.c b/e2sm/lib/UEID-EN-GNB.c
new file mode 100644
index 0000000..e5da432
--- /dev/null
+++ b/e2sm/lib/UEID-EN-GNB.c
@@ -0,0 +1,103 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "UEID-EN-GNB.h"
+
+#include "UEID-GNB-CU-CP-E1AP-ID-List.h"
+asn_TYPE_member_t asn_MBR_UEID_EN_GNB_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct UEID_EN_GNB, m_eNB_UE_X2AP_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_ENB_UE_X2AP_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"m-eNB-UE-X2AP-ID"
+		},
+	{ ATF_POINTER, 1, offsetof(struct UEID_EN_GNB, m_eNB_UE_X2AP_ID_Extension),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_ENB_UE_X2AP_ID_Extension,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"m-eNB-UE-X2AP-ID-Extension"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct UEID_EN_GNB, globalENB_ID),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GlobalENB_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"globalENB-ID"
+		},
+	{ ATF_POINTER, 3, offsetof(struct UEID_EN_GNB, gNB_CU_UE_F1AP_ID),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GNB_CU_UE_F1AP_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"gNB-CU-UE-F1AP-ID"
+		},
+	{ ATF_POINTER, 2, offsetof(struct UEID_EN_GNB, gNB_CU_CP_UE_E1AP_ID_List),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_UEID_GNB_CU_CP_E1AP_ID_List,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"gNB-CU-CP-UE-E1AP-ID-List"
+		},
+	{ ATF_POINTER, 1, offsetof(struct UEID_EN_GNB, ran_UEID),
+		(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANUEID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ran-UEID"
+		},
+};
+static const int asn_MAP_UEID_EN_GNB_oms_1[] = { 1, 3, 4, 5 };
+static const ber_tlv_tag_t asn_DEF_UEID_EN_GNB_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UEID_EN_GNB_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* m-eNB-UE-X2AP-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* m-eNB-UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* globalENB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* gNB-CU-UE-F1AP-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* gNB-CU-CP-UE-E1AP-ID-List */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* ran-UEID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UEID_EN_GNB_specs_1 = {
+	sizeof(struct UEID_EN_GNB),
+	offsetof(struct UEID_EN_GNB, _asn_ctx),
+	asn_MAP_UEID_EN_GNB_tag2el_1,
+	6,	/* Count of tags in the map */
+	asn_MAP_UEID_EN_GNB_oms_1,	/* Optional members */
+	4, 0,	/* Root/Additions */
+	6,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UEID_EN_GNB = {
+	"UEID-EN-GNB",
+	"UEID-EN-GNB",
+	&asn_OP_SEQUENCE,
+	asn_DEF_UEID_EN_GNB_tags_1,
+	sizeof(asn_DEF_UEID_EN_GNB_tags_1)
+		/sizeof(asn_DEF_UEID_EN_GNB_tags_1[0]), /* 1 */
+	asn_DEF_UEID_EN_GNB_tags_1,	/* Same as above */
+	sizeof(asn_DEF_UEID_EN_GNB_tags_1)
+		/sizeof(asn_DEF_UEID_EN_GNB_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_UEID_EN_GNB_1,
+	6,	/* Elements count */
+	&asn_SPC_UEID_EN_GNB_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/UEID-ENB.c b/e2sm/lib/UEID-ENB.c
new file mode 100644
index 0000000..bdf2af8
--- /dev/null
+++ b/e2sm/lib/UEID-ENB.c
@@ -0,0 +1,93 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "UEID-ENB.h"
+
+#include "GlobalENB-ID.h"
+asn_TYPE_member_t asn_MBR_UEID_ENB_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct UEID_ENB, mME_UE_S1AP_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_MME_UE_S1AP_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"mME-UE-S1AP-ID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct UEID_ENB, gUMMEI),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GUMMEI,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"gUMMEI"
+		},
+	{ ATF_POINTER, 3, offsetof(struct UEID_ENB, m_eNB_UE_X2AP_ID),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_ENB_UE_X2AP_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"m-eNB-UE-X2AP-ID"
+		},
+	{ ATF_POINTER, 2, offsetof(struct UEID_ENB, m_eNB_UE_X2AP_ID_Extension),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_ENB_UE_X2AP_ID_Extension,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"m-eNB-UE-X2AP-ID-Extension"
+		},
+	{ ATF_POINTER, 1, offsetof(struct UEID_ENB, globalENB_ID),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GlobalENB_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"globalENB-ID"
+		},
+};
+static const int asn_MAP_UEID_ENB_oms_1[] = { 2, 3, 4 };
+static const ber_tlv_tag_t asn_DEF_UEID_ENB_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UEID_ENB_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mME-UE-S1AP-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* gUMMEI */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* m-eNB-UE-X2AP-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* m-eNB-UE-X2AP-ID-Extension */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* globalENB-ID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UEID_ENB_specs_1 = {
+	sizeof(struct UEID_ENB),
+	offsetof(struct UEID_ENB, _asn_ctx),
+	asn_MAP_UEID_ENB_tag2el_1,
+	5,	/* Count of tags in the map */
+	asn_MAP_UEID_ENB_oms_1,	/* Optional members */
+	3, 0,	/* Root/Additions */
+	5,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UEID_ENB = {
+	"UEID-ENB",
+	"UEID-ENB",
+	&asn_OP_SEQUENCE,
+	asn_DEF_UEID_ENB_tags_1,
+	sizeof(asn_DEF_UEID_ENB_tags_1)
+		/sizeof(asn_DEF_UEID_ENB_tags_1[0]), /* 1 */
+	asn_DEF_UEID_ENB_tags_1,	/* Same as above */
+	sizeof(asn_DEF_UEID_ENB_tags_1)
+		/sizeof(asn_DEF_UEID_ENB_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_UEID_ENB_1,
+	5,	/* Elements count */
+	&asn_SPC_UEID_ENB_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/UEID-GNB-CU-CP-E1AP-ID-Item.c b/e2sm/lib/UEID-GNB-CU-CP-E1AP-ID-Item.c
new file mode 100644
index 0000000..893be77
--- /dev/null
+++ b/e2sm/lib/UEID-GNB-CU-CP-E1AP-ID-Item.c
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "UEID-GNB-CU-CP-E1AP-ID-Item.h"
+
+asn_TYPE_member_t asn_MBR_UEID_GNB_CU_CP_E1AP_ID_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct UEID_GNB_CU_CP_E1AP_ID_Item, gNB_CU_CP_UE_E1AP_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GNB_CU_CP_UE_E1AP_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"gNB-CU-CP-UE-E1AP-ID"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_UEID_GNB_CU_CP_E1AP_ID_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UEID_GNB_CU_CP_E1AP_ID_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gNB-CU-CP-UE-E1AP-ID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UEID_GNB_CU_CP_E1AP_ID_Item_specs_1 = {
+	sizeof(struct UEID_GNB_CU_CP_E1AP_ID_Item),
+	offsetof(struct UEID_GNB_CU_CP_E1AP_ID_Item, _asn_ctx),
+	asn_MAP_UEID_GNB_CU_CP_E1AP_ID_Item_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_UEID_GNB_CU_CP_E1AP_ID_Item = {
+	"UEID-GNB-CU-CP-E1AP-ID-Item",
+	"UEID-GNB-CU-CP-E1AP-ID-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_UEID_GNB_CU_CP_E1AP_ID_Item_tags_1,
+	sizeof(asn_DEF_UEID_GNB_CU_CP_E1AP_ID_Item_tags_1)
+		/sizeof(asn_DEF_UEID_GNB_CU_CP_E1AP_ID_Item_tags_1[0]), /* 1 */
+	asn_DEF_UEID_GNB_CU_CP_E1AP_ID_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_UEID_GNB_CU_CP_E1AP_ID_Item_tags_1)
+		/sizeof(asn_DEF_UEID_GNB_CU_CP_E1AP_ID_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_UEID_GNB_CU_CP_E1AP_ID_Item_1,
+	1,	/* Elements count */
+	&asn_SPC_UEID_GNB_CU_CP_E1AP_ID_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/UEID-GNB-CU-CP-E1AP-ID-List.c b/e2sm/lib/UEID-GNB-CU-CP-E1AP-ID-List.c
new file mode 100644
index 0000000..d6d6bc2
--- /dev/null
+++ b/e2sm/lib/UEID-GNB-CU-CP-E1AP-ID-List.c
@@ -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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "UEID-GNB-CU-CP-E1AP-ID-List.h"
+
+#include "UEID-GNB-CU-CP-E1AP-ID-Item.h"
+static asn_oer_constraints_t asn_OER_type_UEID_GNB_CU_CP_E1AP_ID_List_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..65535)) */};
+asn_per_constraints_t asn_PER_type_UEID_GNB_CU_CP_E1AP_ID_List_constr_1 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 16,  16,  1,  65535 }	/* (SIZE(1..65535)) */,
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_UEID_GNB_CU_CP_E1AP_ID_List_1[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_UEID_GNB_CU_CP_E1AP_ID_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_UEID_GNB_CU_CP_E1AP_ID_List_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_UEID_GNB_CU_CP_E1AP_ID_List_specs_1 = {
+	sizeof(struct UEID_GNB_CU_CP_E1AP_ID_List),
+	offsetof(struct UEID_GNB_CU_CP_E1AP_ID_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_UEID_GNB_CU_CP_E1AP_ID_List = {
+	"UEID-GNB-CU-CP-E1AP-ID-List",
+	"UEID-GNB-CU-CP-E1AP-ID-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_UEID_GNB_CU_CP_E1AP_ID_List_tags_1,
+	sizeof(asn_DEF_UEID_GNB_CU_CP_E1AP_ID_List_tags_1)
+		/sizeof(asn_DEF_UEID_GNB_CU_CP_E1AP_ID_List_tags_1[0]), /* 1 */
+	asn_DEF_UEID_GNB_CU_CP_E1AP_ID_List_tags_1,	/* Same as above */
+	sizeof(asn_DEF_UEID_GNB_CU_CP_E1AP_ID_List_tags_1)
+		/sizeof(asn_DEF_UEID_GNB_CU_CP_E1AP_ID_List_tags_1[0]), /* 1 */
+	{ &asn_OER_type_UEID_GNB_CU_CP_E1AP_ID_List_constr_1, &asn_PER_type_UEID_GNB_CU_CP_E1AP_ID_List_constr_1, SEQUENCE_OF_constraint },
+	asn_MBR_UEID_GNB_CU_CP_E1AP_ID_List_1,
+	1,	/* Single element */
+	&asn_SPC_UEID_GNB_CU_CP_E1AP_ID_List_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/UEID-GNB-CU-CP-F1AP-ID-Item.c b/e2sm/lib/UEID-GNB-CU-CP-F1AP-ID-Item.c
new file mode 100644
index 0000000..0a893b4
--- /dev/null
+++ b/e2sm/lib/UEID-GNB-CU-CP-F1AP-ID-Item.c
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "UEID-GNB-CU-CP-F1AP-ID-Item.h"
+
+asn_TYPE_member_t asn_MBR_UEID_GNB_CU_CP_F1AP_ID_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct UEID_GNB_CU_CP_F1AP_ID_Item, gNB_CU_UE_F1AP_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GNB_CU_UE_F1AP_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"gNB-CU-UE-F1AP-ID"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_UEID_GNB_CU_CP_F1AP_ID_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UEID_GNB_CU_CP_F1AP_ID_Item_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gNB-CU-UE-F1AP-ID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UEID_GNB_CU_CP_F1AP_ID_Item_specs_1 = {
+	sizeof(struct UEID_GNB_CU_CP_F1AP_ID_Item),
+	offsetof(struct UEID_GNB_CU_CP_F1AP_ID_Item, _asn_ctx),
+	asn_MAP_UEID_GNB_CU_CP_F1AP_ID_Item_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_UEID_GNB_CU_CP_F1AP_ID_Item = {
+	"UEID-GNB-CU-CP-F1AP-ID-Item",
+	"UEID-GNB-CU-CP-F1AP-ID-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_UEID_GNB_CU_CP_F1AP_ID_Item_tags_1,
+	sizeof(asn_DEF_UEID_GNB_CU_CP_F1AP_ID_Item_tags_1)
+		/sizeof(asn_DEF_UEID_GNB_CU_CP_F1AP_ID_Item_tags_1[0]), /* 1 */
+	asn_DEF_UEID_GNB_CU_CP_F1AP_ID_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_UEID_GNB_CU_CP_F1AP_ID_Item_tags_1)
+		/sizeof(asn_DEF_UEID_GNB_CU_CP_F1AP_ID_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_UEID_GNB_CU_CP_F1AP_ID_Item_1,
+	1,	/* Elements count */
+	&asn_SPC_UEID_GNB_CU_CP_F1AP_ID_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/UEID-GNB-CU-F1AP-ID-List.c b/e2sm/lib/UEID-GNB-CU-F1AP-ID-List.c
new file mode 100644
index 0000000..98da296
--- /dev/null
+++ b/e2sm/lib/UEID-GNB-CU-F1AP-ID-List.c
@@ -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-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "UEID-GNB-CU-F1AP-ID-List.h"
+
+#include "UEID-GNB-CU-CP-F1AP-ID-Item.h"
+static asn_oer_constraints_t asn_OER_type_UEID_GNB_CU_F1AP_ID_List_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1	/* (SIZE(1..4)) */};
+asn_per_constraints_t asn_PER_type_UEID_GNB_CU_F1AP_ID_List_constr_1 CC_NOTUSED = {
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	{ APC_CONSTRAINED,	 2,  2,  1,  4 }	/* (SIZE(1..4)) */,
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_UEID_GNB_CU_F1AP_ID_List_1[] = {
+	{ ATF_POINTER, 0, 0,
+		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
+		0,
+		&asn_DEF_UEID_GNB_CU_CP_F1AP_ID_Item,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		""
+		},
+};
+static const ber_tlv_tag_t asn_DEF_UEID_GNB_CU_F1AP_ID_List_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+asn_SET_OF_specifics_t asn_SPC_UEID_GNB_CU_F1AP_ID_List_specs_1 = {
+	sizeof(struct UEID_GNB_CU_F1AP_ID_List),
+	offsetof(struct UEID_GNB_CU_F1AP_ID_List, _asn_ctx),
+	0,	/* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_UEID_GNB_CU_F1AP_ID_List = {
+	"UEID-GNB-CU-F1AP-ID-List",
+	"UEID-GNB-CU-F1AP-ID-List",
+	&asn_OP_SEQUENCE_OF,
+	asn_DEF_UEID_GNB_CU_F1AP_ID_List_tags_1,
+	sizeof(asn_DEF_UEID_GNB_CU_F1AP_ID_List_tags_1)
+		/sizeof(asn_DEF_UEID_GNB_CU_F1AP_ID_List_tags_1[0]), /* 1 */
+	asn_DEF_UEID_GNB_CU_F1AP_ID_List_tags_1,	/* Same as above */
+	sizeof(asn_DEF_UEID_GNB_CU_F1AP_ID_List_tags_1)
+		/sizeof(asn_DEF_UEID_GNB_CU_F1AP_ID_List_tags_1[0]), /* 1 */
+	{ &asn_OER_type_UEID_GNB_CU_F1AP_ID_List_constr_1, &asn_PER_type_UEID_GNB_CU_F1AP_ID_List_constr_1, SEQUENCE_OF_constraint },
+	asn_MBR_UEID_GNB_CU_F1AP_ID_List_1,
+	1,	/* Single element */
+	&asn_SPC_UEID_GNB_CU_F1AP_ID_List_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/UEID-GNB-CU-UP.c b/e2sm/lib/UEID-GNB-CU-UP.c
new file mode 100644
index 0000000..169b1b5
--- /dev/null
+++ b/e2sm/lib/UEID-GNB-CU-UP.c
@@ -0,0 +1,62 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "UEID-GNB-CU-UP.h"
+
+asn_TYPE_member_t asn_MBR_UEID_GNB_CU_UP_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct UEID_GNB_CU_UP, gNB_CU_CP_UE_E1AP_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GNB_CU_CP_UE_E1AP_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"gNB-CU-CP-UE-E1AP-ID"
+		},
+	{ ATF_POINTER, 1, offsetof(struct UEID_GNB_CU_UP, ran_UEID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANUEID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ran-UEID"
+		},
+};
+static const int asn_MAP_UEID_GNB_CU_UP_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_UEID_GNB_CU_UP_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UEID_GNB_CU_UP_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB-CU-CP-UE-E1AP-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ran-UEID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UEID_GNB_CU_UP_specs_1 = {
+	sizeof(struct UEID_GNB_CU_UP),
+	offsetof(struct UEID_GNB_CU_UP, _asn_ctx),
+	asn_MAP_UEID_GNB_CU_UP_tag2el_1,
+	2,	/* Count of tags in the map */
+	asn_MAP_UEID_GNB_CU_UP_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UEID_GNB_CU_UP = {
+	"UEID-GNB-CU-UP",
+	"UEID-GNB-CU-UP",
+	&asn_OP_SEQUENCE,
+	asn_DEF_UEID_GNB_CU_UP_tags_1,
+	sizeof(asn_DEF_UEID_GNB_CU_UP_tags_1)
+		/sizeof(asn_DEF_UEID_GNB_CU_UP_tags_1[0]), /* 1 */
+	asn_DEF_UEID_GNB_CU_UP_tags_1,	/* Same as above */
+	sizeof(asn_DEF_UEID_GNB_CU_UP_tags_1)
+		/sizeof(asn_DEF_UEID_GNB_CU_UP_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_UEID_GNB_CU_UP_1,
+	2,	/* Elements count */
+	&asn_SPC_UEID_GNB_CU_UP_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/UEID-GNB-DU.c b/e2sm/lib/UEID-GNB-DU.c
new file mode 100644
index 0000000..4bc5c7f
--- /dev/null
+++ b/e2sm/lib/UEID-GNB-DU.c
@@ -0,0 +1,62 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "UEID-GNB-DU.h"
+
+asn_TYPE_member_t asn_MBR_UEID_GNB_DU_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct UEID_GNB_DU, gNB_CU_UE_F1AP_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GNB_CU_UE_F1AP_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"gNB-CU-UE-F1AP-ID"
+		},
+	{ ATF_POINTER, 1, offsetof(struct UEID_GNB_DU, ran_UEID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANUEID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ran-UEID"
+		},
+};
+static const int asn_MAP_UEID_GNB_DU_oms_1[] = { 1 };
+static const ber_tlv_tag_t asn_DEF_UEID_GNB_DU_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UEID_GNB_DU_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB-CU-UE-F1AP-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ran-UEID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UEID_GNB_DU_specs_1 = {
+	sizeof(struct UEID_GNB_DU),
+	offsetof(struct UEID_GNB_DU, _asn_ctx),
+	asn_MAP_UEID_GNB_DU_tag2el_1,
+	2,	/* Count of tags in the map */
+	asn_MAP_UEID_GNB_DU_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UEID_GNB_DU = {
+	"UEID-GNB-DU",
+	"UEID-GNB-DU",
+	&asn_OP_SEQUENCE,
+	asn_DEF_UEID_GNB_DU_tags_1,
+	sizeof(asn_DEF_UEID_GNB_DU_tags_1)
+		/sizeof(asn_DEF_UEID_GNB_DU_tags_1[0]), /* 1 */
+	asn_DEF_UEID_GNB_DU_tags_1,	/* Same as above */
+	sizeof(asn_DEF_UEID_GNB_DU_tags_1)
+		/sizeof(asn_DEF_UEID_GNB_DU_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_UEID_GNB_DU_1,
+	2,	/* Elements count */
+	&asn_SPC_UEID_GNB_DU_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/UEID-GNB.c b/e2sm/lib/UEID-GNB.c
new file mode 100644
index 0000000..f529b8b
--- /dev/null
+++ b/e2sm/lib/UEID-GNB.c
@@ -0,0 +1,126 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "UEID-GNB.h"
+
+#include "UEID-GNB-CU-F1AP-ID-List.h"
+#include "UEID-GNB-CU-CP-E1AP-ID-List.h"
+#include "GlobalGNB-ID.h"
+#include "GlobalNGRANNodeID.h"
+asn_TYPE_member_t asn_MBR_UEID_GNB_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct UEID_GNB, amf_UE_NGAP_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_AMF_UE_NGAP_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"amf-UE-NGAP-ID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct UEID_GNB, guami),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GUAMI,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"guami"
+		},
+	{ ATF_POINTER, 6, offsetof(struct UEID_GNB, gNB_CU_UE_F1AP_ID_List),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_UEID_GNB_CU_F1AP_ID_List,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"gNB-CU-UE-F1AP-ID-List"
+		},
+	{ ATF_POINTER, 5, offsetof(struct UEID_GNB, gNB_CU_CP_UE_E1AP_ID_List),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_UEID_GNB_CU_CP_E1AP_ID_List,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"gNB-CU-CP-UE-E1AP-ID-List"
+		},
+	{ ATF_POINTER, 4, offsetof(struct UEID_GNB, ran_UEID),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RANUEID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ran-UEID"
+		},
+	{ ATF_POINTER, 3, offsetof(struct UEID_GNB, m_NG_RAN_UE_XnAP_ID),
+		(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NG_RANnodeUEXnAPID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"m-NG-RAN-UE-XnAP-ID"
+		},
+	{ ATF_POINTER, 2, offsetof(struct UEID_GNB, globalGNB_ID),
+		(ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GlobalGNB_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"globalGNB-ID"
+		},
+	{ ATF_POINTER, 1, offsetof(struct UEID_GNB, globalNG_RANNode_ID),
+		(ASN_TAG_CLASS_CONTEXT | (7 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_GlobalNGRANNodeID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"globalNG-RANNode-ID"
+		},
+};
+static const int asn_MAP_UEID_GNB_oms_1[] = { 2, 3, 4, 5, 6, 7 };
+static const ber_tlv_tag_t asn_DEF_UEID_GNB_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UEID_GNB_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* amf-UE-NGAP-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* guami */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* gNB-CU-UE-F1AP-ID-List */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* gNB-CU-CP-UE-E1AP-ID-List */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* ran-UEID */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* m-NG-RAN-UE-XnAP-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* globalGNB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* globalNG-RANNode-ID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UEID_GNB_specs_1 = {
+	sizeof(struct UEID_GNB),
+	offsetof(struct UEID_GNB, _asn_ctx),
+	asn_MAP_UEID_GNB_tag2el_1,
+	8,	/* Count of tags in the map */
+	asn_MAP_UEID_GNB_oms_1,	/* Optional members */
+	5, 1,	/* Root/Additions */
+	7,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UEID_GNB = {
+	"UEID-GNB",
+	"UEID-GNB",
+	&asn_OP_SEQUENCE,
+	asn_DEF_UEID_GNB_tags_1,
+	sizeof(asn_DEF_UEID_GNB_tags_1)
+		/sizeof(asn_DEF_UEID_GNB_tags_1[0]), /* 1 */
+	asn_DEF_UEID_GNB_tags_1,	/* Same as above */
+	sizeof(asn_DEF_UEID_GNB_tags_1)
+		/sizeof(asn_DEF_UEID_GNB_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_UEID_GNB_1,
+	8,	/* Elements count */
+	&asn_SPC_UEID_GNB_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/UEID-NG-ENB-DU.c b/e2sm/lib/UEID-NG-ENB-DU.c
new file mode 100644
index 0000000..bba9b70
--- /dev/null
+++ b/e2sm/lib/UEID-NG-ENB-DU.c
@@ -0,0 +1,50 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "UEID-NG-ENB-DU.h"
+
+asn_TYPE_member_t asn_MBR_UEID_NG_ENB_DU_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct UEID_NG_ENB_DU, ng_eNB_CU_UE_W1AP_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NGENB_CU_UE_W1AP_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ng-eNB-CU-UE-W1AP-ID"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_UEID_NG_ENB_DU_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UEID_NG_ENB_DU_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ng-eNB-CU-UE-W1AP-ID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UEID_NG_ENB_DU_specs_1 = {
+	sizeof(struct UEID_NG_ENB_DU),
+	offsetof(struct UEID_NG_ENB_DU, _asn_ctx),
+	asn_MAP_UEID_NG_ENB_DU_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_UEID_NG_ENB_DU = {
+	"UEID-NG-ENB-DU",
+	"UEID-NG-ENB-DU",
+	&asn_OP_SEQUENCE,
+	asn_DEF_UEID_NG_ENB_DU_tags_1,
+	sizeof(asn_DEF_UEID_NG_ENB_DU_tags_1)
+		/sizeof(asn_DEF_UEID_NG_ENB_DU_tags_1[0]), /* 1 */
+	asn_DEF_UEID_NG_ENB_DU_tags_1,	/* Same as above */
+	sizeof(asn_DEF_UEID_NG_ENB_DU_tags_1)
+		/sizeof(asn_DEF_UEID_NG_ENB_DU_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_UEID_NG_ENB_DU_1,
+	1,	/* Elements count */
+	&asn_SPC_UEID_NG_ENB_DU_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/UEID-NG-ENB.c b/e2sm/lib/UEID-NG-ENB.c
new file mode 100644
index 0000000..5681365
--- /dev/null
+++ b/e2sm/lib/UEID-NG-ENB.c
@@ -0,0 +1,104 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "UEID-NG-ENB.h"
+
+#include "GlobalNgENB-ID.h"
+#include "GlobalNGRANNodeID.h"
+asn_TYPE_member_t asn_MBR_UEID_NG_ENB_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct UEID_NG_ENB, amf_UE_NGAP_ID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_AMF_UE_NGAP_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"amf-UE-NGAP-ID"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct UEID_NG_ENB, guami),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GUAMI,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"guami"
+		},
+	{ ATF_POINTER, 4, offsetof(struct UEID_NG_ENB, ng_eNB_CU_UE_W1AP_ID),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NGENB_CU_UE_W1AP_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ng-eNB-CU-UE-W1AP-ID"
+		},
+	{ ATF_POINTER, 3, offsetof(struct UEID_NG_ENB, m_NG_RAN_UE_XnAP_ID),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_NG_RANnodeUEXnAPID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"m-NG-RAN-UE-XnAP-ID"
+		},
+	{ ATF_POINTER, 2, offsetof(struct UEID_NG_ENB, globalNgENB_ID),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_GlobalNgENB_ID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"globalNgENB-ID"
+		},
+	{ ATF_POINTER, 1, offsetof(struct UEID_NG_ENB, globalNG_RANNode_ID),
+		(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_GlobalNGRANNodeID,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"globalNG-RANNode-ID"
+		},
+};
+static const int asn_MAP_UEID_NG_ENB_oms_1[] = { 2, 3, 4, 5 };
+static const ber_tlv_tag_t asn_DEF_UEID_NG_ENB_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UEID_NG_ENB_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* amf-UE-NGAP-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* guami */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ng-eNB-CU-UE-W1AP-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* m-NG-RAN-UE-XnAP-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* globalNgENB-ID */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* globalNG-RANNode-ID */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UEID_NG_ENB_specs_1 = {
+	sizeof(struct UEID_NG_ENB),
+	offsetof(struct UEID_NG_ENB, _asn_ctx),
+	asn_MAP_UEID_NG_ENB_tag2el_1,
+	6,	/* Count of tags in the map */
+	asn_MAP_UEID_NG_ENB_oms_1,	/* Optional members */
+	3, 1,	/* Root/Additions */
+	5,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UEID_NG_ENB = {
+	"UEID-NG-ENB",
+	"UEID-NG-ENB",
+	&asn_OP_SEQUENCE,
+	asn_DEF_UEID_NG_ENB_tags_1,
+	sizeof(asn_DEF_UEID_NG_ENB_tags_1)
+		/sizeof(asn_DEF_UEID_NG_ENB_tags_1[0]), /* 1 */
+	asn_DEF_UEID_NG_ENB_tags_1,	/* Same as above */
+	sizeof(asn_DEF_UEID_NG_ENB_tags_1)
+		/sizeof(asn_DEF_UEID_NG_ENB_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_UEID_NG_ENB_1,
+	6,	/* Elements count */
+	&asn_SPC_UEID_NG_ENB_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/UEID.c b/e2sm/lib/UEID.c
new file mode 100644
index 0000000..42c27ab
--- /dev/null
+++ b/e2sm/lib/UEID.c
@@ -0,0 +1,122 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "UEID.h"
+
+#include "UEID-GNB.h"
+#include "UEID-GNB-DU.h"
+#include "UEID-GNB-CU-UP.h"
+#include "UEID-NG-ENB.h"
+#include "UEID-NG-ENB-DU.h"
+#include "UEID-EN-GNB.h"
+#include "UEID-ENB.h"
+static asn_oer_constraints_t asn_OER_type_UEID_constr_1 CC_NOTUSED = {
+	{ 0, 0 },
+	-1};
+asn_per_constraints_t asn_PER_type_UEID_constr_1 CC_NOTUSED = {
+	{ APC_CONSTRAINED | APC_EXTENSIBLE,  3,  3,  0,  6 }	/* (0..6,...) */,
+	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
+	0, 0	/* No PER value map */
+};
+asn_TYPE_member_t asn_MBR_UEID_1[] = {
+	{ ATF_POINTER, 0, offsetof(struct UEID, choice.gNB_UEID),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_UEID_GNB,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"gNB-UEID"
+		},
+	{ ATF_POINTER, 0, offsetof(struct UEID, choice.gNB_DU_UEID),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_UEID_GNB_DU,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"gNB-DU-UEID"
+		},
+	{ ATF_POINTER, 0, offsetof(struct UEID, choice.gNB_CU_UP_UEID),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_UEID_GNB_CU_UP,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"gNB-CU-UP-UEID"
+		},
+	{ ATF_POINTER, 0, offsetof(struct UEID, choice.ng_eNB_UEID),
+		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_UEID_NG_ENB,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ng-eNB-UEID"
+		},
+	{ ATF_POINTER, 0, offsetof(struct UEID, choice.ng_eNB_DU_UEID),
+		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_UEID_NG_ENB_DU,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"ng-eNB-DU-UEID"
+		},
+	{ ATF_POINTER, 0, offsetof(struct UEID, choice.en_gNB_UEID),
+		(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_UEID_EN_GNB,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"en-gNB-UEID"
+		},
+	{ ATF_POINTER, 0, offsetof(struct UEID, choice.eNB_UEID),
+		(ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_UEID_ENB,
+		0,
+		{ 0, 0, 0 },
+		0, 0, /* No default value */
+		"eNB-UEID"
+		},
+};
+static const asn_TYPE_tag2member_t asn_MAP_UEID_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB-UEID */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* gNB-DU-UEID */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* gNB-CU-UP-UEID */
+    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ng-eNB-UEID */
+    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* ng-eNB-DU-UEID */
+    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* en-gNB-UEID */
+    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* eNB-UEID */
+};
+asn_CHOICE_specifics_t asn_SPC_UEID_specs_1 = {
+	sizeof(struct UEID),
+	offsetof(struct UEID, _asn_ctx),
+	offsetof(struct UEID, present),
+	sizeof(((struct UEID *)0)->present),
+	asn_MAP_UEID_tag2el_1,
+	7,	/* Count of tags in the map */
+	0, 0,
+	7	/* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_UEID = {
+	"UEID",
+	"UEID",
+	&asn_OP_CHOICE,
+	0,	/* No effective tags (pointer) */
+	0,	/* No effective tags (count) */
+	0,	/* No tags (pointer) */
+	0,	/* No tags (count) */
+	{ &asn_OER_type_UEID_constr_1, &asn_PER_type_UEID_constr_1, CHOICE_constraint },
+	asn_MBR_UEID_1,
+	7,	/* Elements count */
+	&asn_SPC_UEID_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/UEIdentification-RANParameter-Item.c b/e2sm/lib/UEIdentification-RANParameter-Item.c
new file mode 100644
index 0000000..7349bbd
--- /dev/null
+++ b/e2sm/lib/UEIdentification-RANParameter-Item.c
@@ -0,0 +1,73 @@
+/*
+ * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
+ * From ASN.1 module "E2SM-RC-IEs"
+ * 	found in "e2sm-rc-nov2021.asn"
+ * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
+ */
+
+#include "UEIdentification-RANParameter-Item.h"
+
+#include "RANParameter-Definition.h"
+asn_TYPE_member_t asn_MBR_UEIdentification_RANParameter_Item_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct UEIdentification_RANParameter_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 UEIdentification_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"
+		},
+	{ ATF_POINTER, 1, offsetof(struct UEIdentification_RANParameter_Item, ranParameter_Definition),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 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_UEIdentification_RANParameter_Item_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_UEIdentification_RANParameter_Item_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UEIdentification_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 | (2 << 2)), 2, 0, 0 } /* ranParameter-Definition */
+};
+asn_SEQUENCE_specifics_t asn_SPC_UEIdentification_RANParameter_Item_specs_1 = {
+	sizeof(struct UEIdentification_RANParameter_Item),
+	offsetof(struct UEIdentification_RANParameter_Item, _asn_ctx),
+	asn_MAP_UEIdentification_RANParameter_Item_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_UEIdentification_RANParameter_Item_oms_1,	/* Optional members */
+	0, 1,	/* Root/Additions */
+	2,	/* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_UEIdentification_RANParameter_Item = {
+	"UEIdentification-RANParameter-Item",
+	"UEIdentification-RANParameter-Item",
+	&asn_OP_SEQUENCE,
+	asn_DEF_UEIdentification_RANParameter_Item_tags_1,
+	sizeof(asn_DEF_UEIdentification_RANParameter_Item_tags_1)
+		/sizeof(asn_DEF_UEIdentification_RANParameter_Item_tags_1[0]), /* 1 */
+	asn_DEF_UEIdentification_RANParameter_Item_tags_1,	/* Same as above */
+	sizeof(asn_DEF_UEIdentification_RANParameter_Item_tags_1)
+		/sizeof(asn_DEF_UEIdentification_RANParameter_Item_tags_1[0]), /* 1 */
+	{ 0, 0, SEQUENCE_constraint },
+	asn_MBR_UEIdentification_RANParameter_Item_1,
+	3,	/* Elements count */
+	&asn_SPC_UEIdentification_RANParameter_Item_specs_1	/* Additional specs */
+};
+
diff --git a/e2sm/lib/asn_random_fill.c b/e2sm/lib/asn_random_fill.c
index 2e3e892..819cf70 100644
--- a/e2sm/lib/asn_random_fill.c
+++ b/e2sm/lib/asn_random_fill.c
@@ -48,11 +48,7 @@
 
         for(; got_entropy < range;) {
             got_entropy = (got_entropy << 24) | 0xffffff;
-#ifdef WIN32
-            value = (value << 24) | (rand() % 0xffffff); //MCHECK:for building on Windows
-#else
-            value = (value << 24) | (random() % 0xffffff); //MCHECK:for building on Linux
-#endif
+            value = (value << 24) | (random() % 0xffffff);
         }
 
         return lb + (intmax_t)(value % (range + 1));
diff --git a/e2sm/lib/pdu_collection.c b/e2sm/lib/pdu_collection.c
deleted file mode 100644
index deea97d..0000000
--- a/e2sm/lib/pdu_collection.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
- */
-
-struct asn_TYPE_descriptor_s;	/* Forward declaration */
-
-extern struct asn_TYPE_descriptor_s asn_DEF_Criticality;
-extern struct asn_TYPE_descriptor_s asn_DEF_Presence;
-extern struct asn_TYPE_descriptor_s asn_DEF_ProcedureCode;
-extern struct asn_TYPE_descriptor_s asn_DEF_TriggeringMessage;
-extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_KPM_RANFunctionDefinition;
-extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_KPM_ActionDefinition;
-extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_KPM_IndicationHeader;
-extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_KPM_IndicationMessage;
-extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_RC_RANFunctionDefinition;
-extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_RC_ControlHeader;
-extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_RC_ControlMessage;
-extern struct asn_TYPE_descriptor_s asn_DEF_E2SM_KPM_EventTriggerDefinition;
-extern struct asn_TYPE_descriptor_s asn_DEF_RANcallProcess_ID_string;
-
-
-struct asn_TYPE_descriptor_s *asn_pdu_collection[] = {
-	/* From module E2SM-KPM-RC in e2sm-kpm-rc.asn */
-	&asn_DEF_Criticality,	
-	&asn_DEF_Presence,	
-	&asn_DEF_ProcedureCode,	
-	&asn_DEF_TriggeringMessage,	
-	&asn_DEF_E2SM_KPM_RANFunctionDefinition,	
-	&asn_DEF_E2SM_KPM_ActionDefinition,	
-	&asn_DEF_E2SM_KPM_IndicationHeader,	
-	&asn_DEF_E2SM_KPM_IndicationMessage,	
-	&asn_DEF_E2SM_RC_RANFunctionDefinition,	
-	&asn_DEF_E2SM_RC_ControlHeader,	
-	&asn_DEF_E2SM_RC_ControlMessage,	
-	&asn_DEF_E2SM_KPM_EventTriggerDefinition,	
-	&asn_DEF_RANcallProcess_ID_string,	
-	0
-};
-
diff --git a/e2sm/wrapper.c b/e2sm/wrapper.c
old mode 100644
new mode 100755
index 9f0fdcf..1d5deb2
--- a/e2sm/wrapper.c
+++ b/e2sm/wrapper.c
@@ -2,10 +2,12 @@
 #include "wrapper.h"
 #include "OCTET_STRING.h"
 
+//ssize_t e2sm_encode_ric_control_header(void *buffer, size_t buf_size,struct uEID *inUEID,long f1AP[1],long e1AP[1],long ricControlStyleType, long ricControlActionID)
+ssize_t e2sm_encode_ric_control_header(void *buffer, size_t buf_size,struct uEID *inUEID,long f1AP[],size_t f1AP_len,long e1AP[],size_t e1Ap_len,long ricControlStyleType, long ricControlActionID, void* plmnId, size_t  plmnIdSize)
+{
+        fprintf(stderr,"e2SM wrapper function Entered\n");	
+	fprintf(stderr,"plmn Size = %ld and aMFRegionID Size = %ld and aMFSetID_size = %ld and aMFPointer_size = %ld \n", inUEID->pLMNIdentity_size,inUEID->aMFRegionID_size,inUEID->aMFSetID_size,inUEID->aMFPointer_size);
 
-ssize_t e2sm_encode_ric_control_header(void *buffer, size_t buf_size, void *ueIDbuf, size_t ueIDbuf_size, 
-                        long ricControlStyleType, long ricControlActionID)
-{ 
         E2SM_RC_ControlHeader_t *controlHeaderIE = (E2SM_RC_ControlHeader_t *)calloc(1, sizeof(E2SM_RC_ControlHeader_t));
         if(!controlHeaderIE)
         {
@@ -13,23 +15,167 @@
                    return -1;
         }
 
-        controlHeaderIE->present = E2SM_RC_ControlHeader_PR_controlHeader_Format1;
-        //E2SM_RC_ControlHeader_Format1_t  *controlHeader_Fmt1 = controlHeaderIE->choice.controlHeader_Format1;
+        controlHeaderIE->ric_controlHeader_formats.present = E2SM_RC_ControlHeader__ric_controlHeader_formats_PR_controlHeader_Format1;
         E2SM_RC_ControlHeader_Format1_t  *controlHeader_Fmt1 = (E2SM_RC_ControlHeader_Format1_t *)calloc(1, sizeof(E2SM_RC_ControlHeader_Format1_t));
         if(!controlHeader_Fmt1)
         {
                 fprintf(stderr, "alloc E2SM_RC_ControlHeader failed\n");
                 return -1;
         }
-        
-        controlHeader_Fmt1->ueId.buf = (uint8_t*)calloc(1, ueIDbuf_size);   
-        memcpy(controlHeader_Fmt1->ueId.buf, ueIDbuf, ueIDbuf_size);        //Check how to get ueIDbuf from string
-        controlHeader_Fmt1->ueId.size = ueIDbuf_size;
+       
+	controlHeader_Fmt1->ueID.present = UEID_PR_gNB_UEID;
+	controlHeader_Fmt1->ueID.choice.gNB_UEID = (UEID_GNB_t *)calloc(1,sizeof(UEID_GNB_t));
+	if(! controlHeader_Fmt1->ueID.choice.gNB_UEID)
+	{
+		ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlHeader, controlHeaderIE);
+		fprintf(stderr, "alloc gNB_UEID failed\n");
+                return -1;
+	}
 
-        controlHeader_Fmt1->ric_ControlStyle_Type = ricControlStyleType;
+	asn_long2INTEGER(&controlHeader_Fmt1->ueID.choice.gNB_UEID->amf_UE_NGAP_ID,inUEID->amf_UE_NGAP_Id);
+
+	fprintf(stderr, "e2sm_encode_ric_control_header amf_UE_NGAP_ID encoded \n");
+	
+	//OCTET_STRING_fromBuf(&controlHeader_Fmt1->ueID.choice.gNB_UEID->guami.pLMNIdentity,inUEID->pLMNIdentity, inUEID->pLMNIdentity_size);
+
+	OCTET_STRING_fromBuf(&controlHeader_Fmt1->ueID.choice.gNB_UEID->guami.pLMNIdentity, plmnId,plmnIdSize);
+	fprintf(stderr, "e2smrc_encode_ric_control_header pLMNIdentity encoded \n");
+
+	controlHeader_Fmt1->ueID.choice.gNB_UEID->guami.aMFRegionID.buf = (uint8_t*)calloc(1,inUEID->aMFRegionID_size);
+        if(!controlHeader_Fmt1->ueID.choice.gNB_UEID->guami.aMFRegionID.buf)
+        {
+                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlHeader, controlHeaderIE);
+                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.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);
+
+	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)
+        {
+                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlHeader, controlHeaderIE);
+                fprintf(stderr, "alloc aMFSetID Value failed\n");
+                return -1;
+        }
+	controlHeader_Fmt1->ueID.choice.gNB_UEID->guami.aMFSetID.size = inUEID->aMFSetID_size;
+	//controlHeader_Fmt1->ueID.choice.gNB_UEID->guami.aMFSetID.buf[0] = (inUEID->aMFSetID && 0xFF00) >> 8;
+	//controlHeader_Fmt1->ueID.choice.gNB_UEID->guami.aMFSetID.buf[1] = inUEID->aMFSetID && 0XFF00 && 0X00FF;
+	controlHeader_Fmt1->ueID.choice.gNB_UEID->guami.aMFSetID.buf[0] = (*(inUEID->aMFSetID) & 0xFFC0) >> 8;
+	controlHeader_Fmt1->ueID.choice.gNB_UEID->guami.aMFSetID.bits_unused = 6;
+
+
+	controlHeader_Fmt1->ueID.choice.gNB_UEID->guami.aMFPointer.buf = (uint8_t*)calloc(1, inUEID->aMFPointer_size);
+        if(!controlHeader_Fmt1->ueID.choice.gNB_UEID->guami.aMFPointer.buf)
+        {
+                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlHeader, controlHeaderIE);
+                fprintf(stderr, "alloc aMFPointer Value failed\n");
+                return -1;
+        }
+
+	controlHeader_Fmt1->ueID.choice.gNB_UEID->guami.aMFPointer.size = 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.bits_unused = 2;
+
+
+	controlHeader_Fmt1->ueID.choice.gNB_UEID->gNB_CU_UE_F1AP_ID_List = (UEID_GNB_CU_F1AP_ID_List_t *)calloc(1,sizeof(UEID_GNB_CU_F1AP_ID_List_t));
+	if(! controlHeader_Fmt1->ueID.choice.gNB_UEID->gNB_CU_UE_F1AP_ID_List)
+        {
+                fprintf(stderr, "alloc gNB_CU_CP_UE_E1AP_ID_list failed\n");
+		ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlHeader, controlHeaderIE);
+                return -1;
+        }
+	/*
+	UEID_GNB_CU_CP_F1AP_ID_Item_t *F1AP_ID_Item = (UEID_GNB_CU_CP_F1AP_ID_Item_t *)calloc (1, sizeof(UEID_GNB_CU_CP_F1AP_ID_Item_t ));
+        if(! F1AP_ID_Item)
+        {
+        	fprintf(stderr, "alloc UEID_GNB_CU_CP_F1AP_ID_Item failed\n");
+                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlHeader, controlHeaderIE);
+                return -1;
+        }
+	*/
+	//f1AP is an array of data
+	//int n = sizeof(f1AP)/sizeof(long int);
+	for(int i =0; i < f1AP_len; i++)
+	{
+		UEID_GNB_CU_CP_F1AP_ID_Item_t *F1AP_ID_Item = (UEID_GNB_CU_CP_F1AP_ID_Item_t *)calloc (1, sizeof(UEID_GNB_CU_CP_F1AP_ID_Item_t ));
+		if(! F1AP_ID_Item)
+		{
+                	fprintf(stderr, "alloc UEID_GNB_CU_CP_F1AP_ID_Item failed\n");
+			ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlHeader, controlHeaderIE);
+                	return -1;
+		} 
+		F1AP_ID_Item->gNB_CU_UE_F1AP_ID  = f1AP[i];
+		fprintf(stderr, "F1AP_id %d =%lu\n",i,*((unsigned long *) F1AP_id +i ));
+		ASN_SEQUENCE_ADD(&controlHeader_Fmt1->ueID.choice.gNB_UEID->gNB_CU_UE_F1AP_ID_List->list,F1AP_ID_Item);
+	}
+	//F1AP_ID_Item->gNB_CU_UE_F1AP_ID  = f1AP[0];
+	//ASN_SEQUENCE_ADD(&controlHeader_Fmt1->ueID.choice.gNB_UEID->gNB_CU_UE_F1AP_ID_List->list,F1AP_ID_Item);
+
+
+	
+	controlHeader_Fmt1->ueID.choice.gNB_UEID->gNB_CU_CP_UE_E1AP_ID_List = (UEID_GNB_CU_CP_E1AP_ID_List_t *)calloc(1,sizeof(UEID_GNB_CU_CP_E1AP_ID_List_t));
+
+	if(! controlHeader_Fmt1->ueID.choice.gNB_UEID->gNB_CU_CP_UE_E1AP_ID_List)
+	{
+		fprintf(stderr, "alloc gNB_CU_CP_UE_E1AP_ID_list failed\n");
+		ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlHeader, controlHeaderIE);
+                return -1;
+	}
+
+	
+	//n = sizeof(e1AP)/sizeof(long int);
+	for(int i =0; i < e1Ap_len; i++)
+	{
+		UEID_GNB_CU_CP_E1AP_ID_Item_t *E1AP_ID_Item = (UEID_GNB_CU_CP_E1AP_ID_Item_t *)calloc (1, sizeof(UEID_GNB_CU_CP_E1AP_ID_Item_t ));
+        	if(! E1AP_ID_Item)
+        	{
+                	fprintf(stderr, "alloc UEID_GNB_CU_CP_E1AP_ID_Item failed\n");
+			ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlHeader, controlHeaderIE);
+                	return -1;
+
+        	}
+		E1AP_ID_Item->gNB_CU_CP_UE_E1AP_ID = e1AP[i];
+         	ASN_SEQUENCE_ADD(&controlHeader_Fmt1->ueID.choice.gNB_UEID->gNB_CU_CP_UE_E1AP_ID_List->list,E1AP_ID_Item);
+	//E1AP_ID_Item->gNB_CU_CP_UE_E1AP_ID = (*(unsigned long *) E1AP_id) ;
+	//ASN_SEQUENCE_ADD(&controlHeader_Fmt1->ueID.choice.gNB_UEID->gNB_CU_CP_UE_E1AP_ID_List->list,E1AP_ID_Item);
+	}
+	
+
+	 /*UEID_GNB_CU_CP_E1AP_ID_Item_t *E1AP_ID_Item = (UEID_GNB_CU_CP_E1AP_ID_Item_t *)calloc (1, sizeof(UEID_GNB_CU_CP_E1AP_ID_Item_t ));
+         if(! E1AP_ID_Item)
+         {
+         	fprintf(stderr, "alloc UEID_GNB_CU_CP_E1AP_ID_Item failed\n");
+                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlHeader, controlHeaderIE);
+                return -1;
+
+         }
+	 E1AP_ID_Item->gNB_CU_CP_UE_E1AP_ID = e1AP[0];
+	 ASN_SEQUENCE_ADD(&controlHeader_Fmt1->ueID.choice.gNB_UEID->gNB_CU_CP_UE_E1AP_ID_List->list,E1AP_ID_Item);
+	*/
+        controlHeader_Fmt1->ric_Style_Type = ricControlStyleType;
         controlHeader_Fmt1->ric_ControlAction_ID = ricControlActionID;
 
-        controlHeaderIE->choice.controlHeader_Format1 = controlHeader_Fmt1;
+        controlHeaderIE->ric_controlHeader_formats.choice.controlHeader_Format1 = controlHeader_Fmt1;
+
+	fprintf(stderr, "Manju string %s\n",controlHeaderIE->ric_controlHeader_formats.choice.controlHeader_Format1->ueID.choice.gNB_UEID->amf_UE_NGAP_ID.buf) ;
+
+	fprintf(stderr, "Manju string %s\n",controlHeaderIE->ric_controlHeader_formats.choice.controlHeader_Format1->ueID.choice.gNB_UEID->guami.pLMNIdentity.buf);
+
+
+	fprintf(stderr, "Manju string %s\n",controlHeaderIE->ric_controlHeader_formats.choice.controlHeader_Format1->ueID.choice.gNB_UEID->guami.aMFRegionID.buf);
+
+fprintf(stderr, "Manju string %s\n",controlHeaderIE->ric_controlHeader_formats.choice.controlHeader_Format1->ueID.choice.gNB_UEID->guami.aMFSetID.buf);
+
+fprintf(stderr, "Manju string %s\n",controlHeaderIE->ric_controlHeader_formats.choice.controlHeader_Format1->ueID.choice.gNB_UEID->guami.aMFPointer.buf);
+        
+fprintf(stderr, "Manju string %lu\n",(**(controlHeaderIE->ric_controlHeader_formats.choice.controlHeader_Format1->ueID.choice.gNB_UEID->gNB_CU_CP_UE_E1AP_ID_List->list.array)).gNB_CU_CP_UE_E1AP_ID);
+
+fprintf(stderr, "Manju string %lu\n",(**(controlHeaderIE->ric_controlHeader_formats.choice.controlHeader_Format1->ueID.choice.gNB_UEID->gNB_CU_UE_F1AP_ID_List->list.array)).gNB_CU_UE_F1AP_ID);
+
 
         fprintf(stderr, "showing xer of asn_DEF_E2SM_RC_ControlHeader data\n");
         xer_fprint(stderr, &asn_DEF_E2SM_RC_ControlHeader, controlHeaderIE);
@@ -38,11 +184,13 @@
    
         asn_enc_rval_t encode_result;
         encode_result = aper_encode_to_buffer(&asn_DEF_E2SM_RC_ControlHeader, NULL, controlHeaderIE, buffer, buf_size);
+
+
         ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlHeader, controlHeaderIE);
         if(encode_result.encoded == -1)
         {
                 fprintf(stderr, "Cannot encode %s: %s\n", encode_result.failed_type->name, strerror(errno));
-                return -1;
+		return -1;
         }
         else
         {
@@ -50,185 +198,280 @@
         }
 }
 
+ssize_t e2sm_encode_nrcgi(NR_CGI_t *nr_cgi, void* plmnIdValue, size_t  plmnId_size,ulong lNRCellId, uint8_t* buffer, size_t buf_size)
+{
+        nr_cgi = (NR_CGI_t*)calloc(1, sizeof(NR_CGI_t));
+        if(!nr_cgi) {
+                fprintf(stderr, "e2src_encode_nrcgi alloc nr_cgi failed \n");
+                return -1;
+        }
+        OCTET_STRING_fromBuf(&nr_cgi->pLMNIdentity,plmnIdValue, plmnId_size);
+        //fprintf(stderr, "encodec Plmn Id = %s  plmnIdValue %s and lNRCellId = %lu \n", nr_cgi->pLMNIdentity, plmnIdValue,lNRCellId);
+        //fprintf(stderr, "encodec Plmn Id = %s  and lNRCellId = %d \n", nr_cgi->pLMNIdentity,plmnIdValue,lNRCellId);
+	BIT_STRING_t *nr_cell_id = (BIT_STRING_t*)calloc(1, sizeof(BIT_STRING_t));
+           if(nr_cell_id)
+           {
+               nr_cell_id->buf = (uint8_t*)calloc(1,5);
+               if(nr_cell_id->buf)
+               {
+                   nr_cell_id->size = 5;
+                   nr_cell_id->buf[0] = ((lNRCellId & 0X0FF0000000) >> 28);
+                   nr_cell_id->buf[1] = ((lNRCellId & 0X000FF00000) >> 20);
+                   nr_cell_id->buf[2] = ((lNRCellId & 0X00000FF000) >> 12);
+                   nr_cell_id->buf[3] = ((lNRCellId & 0X0000000FF0) >> 4);
+                   nr_cell_id->buf[4] = (lNRCellId & 0X000000000F) << 4;
+                   nr_cell_id->bits_unused = 4;
 
+                   nr_cgi->nRCellIdentity = *nr_cell_id;
+               }
+           }
 
-ssize_t e2sm_encode_ric_control_message(void *buffer, size_t buf_size, long targetPrimaryCell, 
+          fprintf(stderr, "showing xer of asn_DEF_NR_CGI NR_CGI_t data\n");
+          xer_fprint(stderr, &asn_DEF_NR_CGI, nr_cgi);
+
+	   asn_enc_rval_t encode_result = aper_encode_to_buffer(&asn_DEF_NR_CGI, NULL, nr_cgi, buffer, buf_size);
+
+           if(encode_result.encoded != -1)
+           {
+               fprintf(stderr, "nr_cgi encodedi length = %zd \n", encode_result.encoded) ;
+               return encode_result.encoded;
+           }
+           else
+           {
+               fprintf(stderr, "nr_cgi encode failed =%zd \n", encode_result.encoded) ;
+               return -1 ;
+           }
+}
+
+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 *e2smRcControlMsg = (E2SM_RC_ControlMessage_t*)calloc(1, sizeof(E2SM_RC_ControlMessage_t));
-        if(!e2smRcControlMsg) {
-            fprintf(stderr, "alloc E2SM_RC_ControlMessage_t failed\n");
+	fprintf(stderr, "e2sm_encode_ric_control_message \n") ;
+	//NR_CGI_t *nr_cgi = NULL;
+	//uint8_t nrcgiBuf[buf_size];
+	//ssize_t nrcgiBuf_size,nrcgiLen;
+
+
+	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;
 
-        e2smRcControlMsg->present = E2SM_RC_ControlMessage_PR_controlMessage_Format1;
-
-       // E2SM_RC_ControlMessage_Format1_t *e2smRcControlFormat1 = e2smRcControlMsg->choice.controlMessage_Format1;
-
-        E2SM_RC_ControlMessage_Format1_t *e2smRcControlFormat1 = (E2SM_RC_ControlMessage_Format1_t*)calloc(1, sizeof(E2SM_RC_ControlMessage_Format1_t));
-        if(!e2smRcControlMsg) {
-            fprintf(stderr, "alloc E2SM_RC_ControlMessage_Format1_t failed\n");
-        return -1;
+        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;
         }
-        
-
-        e2smRcControlFormat1->ranParameters_List =  
-                        (struct E2SM_RC_ControlMessage_Format1__ranParameters_List*)calloc(1, sizeof(struct E2SM_RC_ControlMessage_Format1__ranParameters_List));
-	if(!e2smRcControlFormat1->ranParameters_List)
-	{
-                fprintf(stderr, "alloc e2smRcControlFormat1->ranParameters_List failed\n");
-                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smRcControlMsg);
-                return -1;
-	}
-
-        // Start Target Primary Cell 
-        RANParameter_Item_t *ranParameterItem1 = (RANParameter_Item_t*)calloc(1,sizeof(RANParameter_Item_t));
+	// Start Target Primary Cell
+        E2SM_RC_ControlMessage_Format1_Item_t *ranParameterItem1 = (E2SM_RC_ControlMessage_Format1_Item_t *) calloc(1,sizeof(
+                                                                                E2SM_RC_ControlMessage_Format1_Item_t));
         if(!ranParameterItem1) {
                 fprintf(stderr, "alloc RANParameter_Item_t1 failed\n");
-                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smRcControlMsg);
+                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smrcRcControlMsg);
                 return -1;
         }
 
-        
-        ranParameterItem1->ranParameterItem_ID = targetPrimaryCell;     // Target Primary Cell ID value = 1
-        RANParameter_ValueType_t *ranParameterValueType1 = (RANParameter_ValueType_t*)calloc(1, sizeof(RANParameter_ValueType_t));
-        if(!ranParameterValueType1)
-        {
-                fprintf(stderr, "alloc RANParameter_ValueType_t1 failed\n");
-                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smRcControlMsg);
-                return -1;
-        }
-        
-        ranParameterValueType1->present = RANParameter_ValueType_PR_ranParameter_Structure;
-        RANParameter_STRUCTURE_t *ranParameterStructure1 = (RANParameter_STRUCTURE_t*)calloc(1, sizeof(RANParameter_STRUCTURE_t));
+        ranParameterItem1->ranParameter_ID = targetPrimaryCell;     // Target Primary Cell ID value = 1
+	ranParameterItem1->ranParameter_valueType.present = RANParameter_ValueType_PR_ranP_Choice_Structure;
+
+	RANParameter_ValueType_Choice_Structure_t *ranParameterStructure1 = (RANParameter_ValueType_Choice_Structure_t*)calloc(1, sizeof(RANParameter_ValueType_Choice_Structure_t));
         if(!ranParameterStructure1)
         {
                 fprintf(stderr, "alloc RANParameter_STRUCTURE_t1 failed\n");
-                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smRcControlMsg);
+                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smrcRcControlMsg);
                 return -1;
         }
 
-   
-         // Start Target Cell 
-        RANParameter_Item_t *ranParameterItem2 = (RANParameter_Item_t*)calloc(1,sizeof(RANParameter_Item_t));
+	fprintf(stderr, "targetPrimaryCell encoded \n");
+
+	 // Start Target Cell
+        RANParameter_STRUCTURE_Item_t *ranParameterItem2 = (RANParameter_STRUCTURE_Item_t *)calloc(1,sizeof(RANParameter_STRUCTURE_Item_t));
+
         if(!ranParameterItem2)
         {
 
-                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smRcControlMsg);
+                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smrcRcControlMsg);
                 fprintf(stderr, "alloc RANParameter_Item_t2 failed\n");
                 return -1;
         }
 
-        ranParameterItem2->ranParameterItem_ID = targetCell;    // Target Cell ID value = 2
-        RANParameter_ValueType_t *ranParameterValueType2 = (RANParameter_ValueType_t*)calloc(1, sizeof(RANParameter_ValueType_t));
-        if(!ranParameterValueType2)
-        {
-                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smRcControlMsg);
-                fprintf(stderr, "alloc RANParameter_STRUCTURE_t2 failed\n");
-                return -1;
-        }
-        
+	ranParameterItem2->ranParameter_ID = targetCell;    // Target Cell ID value = 2
 
-        ranParameterValueType2->present = RANParameter_ValueType_PR_ranParameter_Structure;
-        RANParameter_STRUCTURE_t *ranParameterStructure2 = (RANParameter_STRUCTURE_t*)calloc(1, sizeof(struct RANParameter_STRUCTURE));
+	RANParameter_ValueType_Choice_Structure_t *ranParameterStructure2 = (RANParameter_ValueType_Choice_Structure_t*)calloc(1, sizeof(struct RANParameter_ValueType_Choice_Structure));
         if(!ranParameterStructure2)
         {
-                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smRcControlMsg);
+                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smrcRcControlMsg);
                 fprintf(stderr, "alloc RANParameter_STRUCTURE_t2 failed\n");
                 return -1;
         }
 
-      
-        // Start NR Cell  (or E-UTRA Cell) 
-        RANParameter_Item_t *ranParameterItem3 = (RANParameter_Item_t*)calloc(1,sizeof(RANParameter_Item_t));
+	fprintf(stderr, "targetPrimaryCellId Value encoded \n");
+
+        // Start NR Cell  (or E-UTRA Cell)
+         RANParameter_STRUCTURE_Item_t *ranParameterItem3 = (RANParameter_STRUCTURE_Item_t*)calloc(1,sizeof(RANParameter_STRUCTURE_Item_t));
         if(!ranParameterItem3)
         {
-                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smRcControlMsg);
+                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smrcRcControlMsg);
                 fprintf(stderr, "alloc RANParameter_Item_t3 failed\n");
                 return -1;
         }
 
-        ranParameterItem3->ranParameterItem_ID = nrOrEUtraCell; // NR Cell ID (or E-UTRA Cell ID) value = 
-        RANParameter_ValueType_t *ranParameterValueType3 = (RANParameter_ValueType_t*)calloc(1, sizeof(RANParameter_ValueType_t));
-        if(!ranParameterValueType3)
-        {
-                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smRcControlMsg);
-                fprintf(stderr, "alloc RANParameter_Item_t3 failed\n");
-                return -1;
-        }
+        ranParameterItem3->ranParameter_ID = nrOrEUtraCell; // NR Cell ID (or E-UTRA Cell ID) value =
 
-        ranParameterValueType3->present = RANParameter_ValueType_PR_ranParameter_Structure;
-        RANParameter_STRUCTURE_t *ranParameterStructure3 = (struct RANParameter_STRUCTURE*)calloc(1, sizeof(struct RANParameter_STRUCTURE));
+	RANParameter_ValueType_Choice_Structure_t *ranParameterStructure3 = (struct RANParameter_ValueType_Choice_Structure*)calloc(1, sizeof(struct RANParameter_ValueType_Choice_Structure));
         if(!ranParameterStructure3)
         {
-                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smRcControlMsg);
+                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smrcRcControlMsg);
                 fprintf(stderr, "alloc RANParameter_Item_t3 failed\n");
                 return -1;
         }
+	fprintf(stderr, " NR Cell ID  Value encoded \n");
 
-        // Start NR CGI (or ECGI) 
-        RANParameter_Item_t *ranParameterItem4 = (RANParameter_Item_t*)calloc(1, sizeof(RANParameter_Item_t));
+	// Start NR CGI (or ECGI)
+        RANParameter_STRUCTURE_Item_t *ranParameterItem4 = (RANParameter_STRUCTURE_Item_t *) calloc(1,sizeof(
+                                                                        RANParameter_STRUCTURE_Item_t));
         if(!ranParameterItem4)
         {
-                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smRcControlMsg);
+                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smrcRcControlMsg);
                 fprintf(stderr, "alloc RANParameter_Item_t4 failed\n");
                 return -1;
         }
-        ranParameterItem4->ranParameterItem_ID = nrCGIOrECGI;   // NR CGI ID (or ECGI ID) value = 
-        RANParameter_ValueType_t *ranParameterValueType4 = (RANParameter_ValueType_t*)calloc(1, sizeof(RANParameter_ValueType_t));
-        if(!ranParameterValueType4)
+
+        ranParameterItem4->ranParameter_ID = nrCGIOrECGI;   // NR CGI ID (or ECGI ID) value =
+
+	ranParameterItem4->ranParameter_valueType = (RANParameter_ValueType_t*)calloc(1,sizeof(RANParameter_ValueType_t));
+	if(!ranParameterItem4->ranParameter_valueType)
+	{
+                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smrcRcControlMsg);
+                fprintf(stderr, "alloc ranParameterItem4->ranParameter_valueType failed\n");
+                return -1;
+	}
+
+	ranParameterItem4->ranParameter_valueType->present = RANParameter_ValueType_PR_ranP_Choice_ElementFalse;
+        ranParameterItem4->ranParameter_valueType->choice.ranP_Choice_ElementFalse = (RANParameter_ValueType_Choice_ElementFalse_t *)calloc(1, sizeof(RANParameter_ValueType_Choice_ElementFalse_t));
+        if(!ranParameterItem4->ranParameter_valueType->choice.ranP_Choice_ElementFalse)
         {
-                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smRcControlMsg);
+                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smrcRcControlMsg);
                 fprintf(stderr, "alloc RANParameter_Item_t4 failed\n");
                 return -1;
         }
-        ranParameterValueType4->present = RANParameter_ValueType_PR_ranParameter_Element;
-        ranParameterValueType4->choice.ranParameter_Element = (RANParameter_ELEMENT_t*)calloc(1, sizeof(RANParameter_ELEMENT_t));
-        if(!ranParameterValueType4->choice.ranParameter_Element)
-        {
-                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smRcControlMsg);
-                fprintf(stderr, "alloc RANParameter_Item_t4 failed\n");
+
+	ranParameterItem4->ranParameter_valueType->choice.ranP_Choice_ElementFalse->ranParameter_value = (RANParameter_Value_t *)calloc(1, sizeof(RANParameter_Value_t));
+	if(!ranParameterItem4->ranParameter_valueType->choice.ranP_Choice_ElementFalse->ranParameter_value)
+	{
+                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smrcRcControlMsg);
+                fprintf(stderr, "alloc ranParameter_value failed\n");
                 return -1;
-        }
-        ranParameterValueType4->choice.ranParameter_Element->keyFlag = 0;
-        ranParameterValueType4->choice.ranParameter_Element->ranParameter_Value.present = RANParameter_Value_PR_valueOctS;
+	}
+        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);
 
-        ranParameterValueType4->choice.ranParameter_Element->ranParameter_Value.choice.valueOctS.buf = 
-                                                (uint8_t*)calloc(1, ranParameterValue_size);
-        if(!ranParameterValueType4->choice.ranParameter_Element->ranParameter_Value.choice.valueOctS.buf)
-        {
-                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smRcControlMsg);
-                fprintf(stderr, "alloc RANParameter Value failed\n");
+	/*
+	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 )
+	{
+		 fprintf(stderr,"e2srmc_encode_nrcgi failed \n");
+		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));
+	if(!ranParameterStructure3->ranParameter_Structure)
+	{
+                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smrcRcControlMsg);
+                fprintf(stderr, "alloc ranParameterStructure3->ranParameter_Structure  failed\n");
                 return -1;
-        }
-	memcpy(ranParameterValueType4->choice.ranParameter_Element->ranParameter_Value.choice.valueOctS.buf, ranParameterValue, ranParameterValue_size);
-        ranParameterValueType4->choice.ranParameter_Element->ranParameter_Value.choice.valueOctS.size = ranParameterValue_size;
-        ranParameterItem4->ranParameterItem_valueType = ranParameterValueType4; // NR CGI (or ECGI)
-        
-        ASN_SEQUENCE_ADD(&ranParameterStructure3->sequence_of_ranParameters.list, ranParameterItem4);   // NR CGI (or ECGI)
-        ranParameterValueType3->choice.ranParameter_Structure = ranParameterStructure3; // NR Cell  (or E-UTRA Cell)
-        ranParameterItem3->ranParameterItem_valueType = ranParameterValueType3;
+	}
 
-        ASN_SEQUENCE_ADD(&ranParameterStructure2->sequence_of_ranParameters.list, ranParameterItem3);   // NR Cell  (or E-UTRA Cell)
-        ranParameterValueType2->choice.ranParameter_Structure = ranParameterStructure2; // Target Cell
-        ranParameterItem2->ranParameterItem_valueType = ranParameterValueType2;
+	ranParameterStructure3->ranParameter_Structure->sequence_of_ranParameters = (struct RANParameter_STRUCTURE__sequence_of_ranParameters*)calloc(1,sizeof(struct RANParameter_STRUCTURE__sequence_of_ranParameters));
+	if(!ranParameterStructure3->ranParameter_Structure->sequence_of_ranParameters)
+	{
+                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smrcRcControlMsg);
+                fprintf(stderr, "alloc ranParameterStructure3->ranParameter_Structure->sequence_of_ranParameters failed\n");
+                return -1;
+	}
 
-        ASN_SEQUENCE_ADD(&ranParameterStructure1->sequence_of_ranParameters.list, ranParameterItem2);   // Target Cell
-        ranParameterValueType1->choice.ranParameter_Structure = ranParameterStructure1; // Target Primary Cell
-        ranParameterItem1->ranParameterItem_valueType = ranParameterValueType1;
 
-        ASN_SEQUENCE_ADD(&e2smRcControlFormat1->ranParameters_List->list, ranParameterItem1); // Target Primary Cell
-        e2smRcControlMsg->choice.controlMessage_Format1 = e2smRcControlFormat1;
+
+	ASN_SEQUENCE_ADD(&ranParameterStructure3->ranParameter_Structure->sequence_of_ranParameters->list, ranParameterItem4);   // NR CGI (or ECGI)
+	ranParameterItem3->ranParameter_valueType = (RANParameter_ValueType_t*)calloc(1,sizeof(RANParameter_ValueType_t));
+	if(!ranParameterItem3->ranParameter_valueType)
+	{
+                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smrcRcControlMsg);
+                fprintf(stderr, "alloc ranParameterItem3->ranParameter_valueType failed\n");
+                return -1;
+	}
+        ranParameterItem3->ranParameter_valueType->present = RANParameter_ValueType_PR_ranP_Choice_Structure;
+        ranParameterItem3->ranParameter_valueType->choice.ranP_Choice_Structure = ranParameterStructure3; // NR Cell  (or E-UTRA Cell)
+	fprintf(stderr, " ranParameterStructure3 encoded \n");
+
+	ranParameterStructure2->ranParameter_Structure = (RANParameter_STRUCTURE_t*)calloc(1,sizeof(RANParameter_STRUCTURE_t));
+	if(!ranParameterStructure2->ranParameter_Structure)
+	{
+                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smrcRcControlMsg);
+                fprintf(stderr, "alloc ranParameterStructure2->ranParameter_Structure  failed\n");
+                return -1;
+	}
+
+	ranParameterStructure2->ranParameter_Structure->sequence_of_ranParameters = (struct RANParameter_STRUCTURE__sequence_of_ranParameters*)calloc(1,sizeof(struct RANParameter_STRUCTURE__sequence_of_ranParameters));
+	if(!ranParameterStructure2->ranParameter_Structure->sequence_of_ranParameters)
+	{
+                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smrcRcControlMsg);
+                fprintf(stderr, "alloc ranParameterStructure3->ranParameter_Structure->sequence_of_ranParameters failed\n");
+                return -1;
+	}
+
+        ASN_SEQUENCE_ADD(&ranParameterStructure2->ranParameter_Structure->sequence_of_ranParameters->list, ranParameterItem3);   // NR Cell  (or E-UTRA Cell)
+	ranParameterItem2->ranParameter_valueType = (RANParameter_ValueType_t*)calloc(1,sizeof(RANParameter_ValueType_t));
+	if(!ranParameterItem2->ranParameter_valueType)
+	{
+                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smrcRcControlMsg);
+                fprintf(stderr, "alloc ranParameterItem2->ranParameter_valueType failed\n");
+                return -1;
+	}
+        ranParameterItem2->ranParameter_valueType->present = RANParameter_ValueType_PR_ranP_Choice_Structure;
+        ranParameterItem2->ranParameter_valueType->choice.ranP_Choice_Structure = ranParameterStructure2; // Target Cell
+	fprintf(stderr, " ranParameterStructure2 encoded \n");
+
+	ranParameterStructure1->ranParameter_Structure = (RANParameter_STRUCTURE_t*)calloc(1,sizeof(RANParameter_STRUCTURE_t));
+	if(!ranParameterStructure1->ranParameter_Structure)
+	{
+                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smrcRcControlMsg);
+                fprintf(stderr, "alloc ranParameterStructure1->ranParameter_Structure  failed\n");
+                return -1;
+	}
+
+	ranParameterStructure1->ranParameter_Structure->sequence_of_ranParameters = (struct RANParameter_STRUCTURE__sequence_of_ranParameters*)calloc(1,sizeof(struct RANParameter_STRUCTURE__sequence_of_ranParameters));
+	if(!ranParameterStructure1->ranParameter_Structure->sequence_of_ranParameters)
+	{
+                ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smrcRcControlMsg);
+                fprintf(stderr, "alloc ranParameterStructure1->ranParameter_Structure->sequence_of_ranParameters failed\n");
+                return -1;
+	}
+	fprintf(stderr, " ranParameterStructure1 encoded \n");
+
+        ASN_SEQUENCE_ADD(&ranParameterStructure1->ranParameter_Structure->sequence_of_ranParameters->list, ranParameterItem2);   // Target Cell
+        ranParameterItem1->ranParameter_valueType.choice.ranP_Choice_Structure = ranParameterStructure1; // Target Primary Cell
+
+        ASN_SEQUENCE_ADD(&e2smrcRcControlFormat1->ranP_List.list, ranParameterItem1); // Target Primary Cell
+        e2smrcRcControlMsg->ric_controlMessage_formats.choice.controlMessage_Format1 = e2smrcRcControlFormat1;
 
 
         fprintf(stderr, "showing xer of asn_DEF_E2SM_RC_ControlMessage data\n");
-        xer_fprint(stderr, &asn_DEF_E2SM_RC_ControlMessage, e2smRcControlMsg);
+        xer_fprint(stderr, &asn_DEF_E2SM_RC_ControlMessage, e2smrcRcControlMsg);
         fprintf(stderr, "\n");
         fprintf(stderr, "After xer of asn_DEF_E2SM_RC_ControlMessage data\n");
 
         asn_enc_rval_t encode_result;
-        encode_result = aper_encode_to_buffer(&asn_DEF_E2SM_RC_ControlMessage, NULL, e2smRcControlMsg, buffer, buf_size);
-        ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smRcControlMsg);
+        encode_result = aper_encode_to_buffer(&asn_DEF_E2SM_RC_ControlMessage, NULL, e2smrcRcControlMsg, buffer, buf_size);
+        ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlMessage, e2smrcRcControlMsg);
+	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));
@@ -240,3 +483,23 @@
         }
 }
 
+
+E2SM_RC_ControlOutcome_t* e2sm_decode_ric_call_process_outcome(void *buffer, size_t buf_size)
+{
+	fprintf(stderr, "e2sm_decode_ric_call_process_outcome Enter \n");
+	asn_dec_rval_t decode_result;
+	E2SM_RC_ControlOutcome_t* controlOutcome = NULL;
+        decode_result = aper_decode_complete(NULL, &asn_DEF_E2SM_RC_ControlOutcome, (void **)&controlOutcome, buffer, buf_size);
+        if(decode_result.code == RC_OK) {
+        	xer_fprint(stdout, &asn_DEF_E2SM_RC_ControlOutcome, controlOutcome);
+        	return controlOutcome;
+    	}
+        else {
+        ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlOutcome, controlOutcome);
+        return NULL;
+        }
+}
+
+void e2sm_free_ric_call_process_outcome(E2SM_RC_ControlOutcome_t* controlOutcome) {
+        ASN_STRUCT_FREE(asn_DEF_E2SM_RC_ControlOutcome, controlOutcome);
+}
diff --git a/e2sm/wrapper.h b/e2sm/wrapper.h
old mode 100644
new mode 100755
index 98dd0a6..b41dab2
--- a/e2sm/wrapper.h
+++ b/e2sm/wrapper.h
@@ -4,9 +4,9 @@
 //#include "ARP.h"
 #include "BOOLEAN.h"
 #include "NativeReal.h"
-#include "NULL.h"
+//#include "NULL.h"
 #include "REAL.h"
-#include "TimeStamp.h"
+//#include "TimeStamp.h"
 #include "OCTET_STRING.h"
 #include "E2SM-RC-ControlHeader-Format1.h"
 #include "E2SM-RC-ControlHeader.h"
@@ -17,10 +17,10 @@
 #include "NativeInteger.h"
 #include "OPEN_TYPE.h"
 #include "PrintableString.h"
-#include "RAN-ControlParameter-Item.h"
-#include "RANParameter-ELEMENT.h"
+//#include "RAN-ControlParameter-Item.h"
+//#include "RANParameter-ELEMENT.h"
 #include "RANParameter-ID.h"
-#include "RANParameter-Item.h"
+//#include "RANParameter-Item.h"
 #include "RANParameter-LIST.h"
 #include "RANParameter-Name.h"
 #include "RANParameter-STRUCTURE.h"
@@ -28,20 +28,55 @@
 #include "RANParameter-ValueType.h"
 #include "RANfunction-Name.h"
 #include "RIC-ControlAction-ID.h"
-#include "RIC-ControlAction-Item.h"
+//#include "RIC-ControlAction-Item.h"
 #include "RIC-ControlAction-Name.h"
-#include "RIC-ControlStyle-Item.h"
-#include "RIC-EventTriggerStyle-Item.h"
+//#include "RIC-ControlStyle-Item.h"
+//#include "RIC-EventTriggerStyle-Item.h"
 #include "RIC-Format-Type.h"
 #include "RIC-Style-Name.h"
 #include "RIC-Style-Type.h"
-#include "UE-Identity.h"
+//#include "UE-Identity.h"
+#include "RANParameter-ValueType-Choice-ElementFalse.h"
+#include "RANParameter-ValueType-Choice-Structure.h"
+#include "UEID.h"
+#include "UEID-GNB.h"
+#include "UEID-GNB-CU-F1AP-ID-List.h"
+#include "UEID-GNB-CU-CP-E1AP-ID-List.h"
+#include "UEID-GNB-CU-CP-F1AP-ID-Item.h"
+#include "UEID-GNB-CU-CP-E1AP-ID-Item.h"
+#include "E2SM-RC-ControlMessage-Format1-Item.h"
+#include "RANParameter-STRUCTURE-Item.h"
+#include "E2SM-RC-ControlOutcome.h"
+#include "E2SM-RC-ControlOutcome-Format1.h"
+#include "E2SM-RC-ControlOutcome-Format1-Item.h"
+#include "NR-CGI.h"
 
 
-extern ssize_t e2sm_encode_ric_control_header(void *buffer, size_t buf_size, void *ueIDbuf, size_t ueIDbuf_size, long ricControlStyleType, long ricControlActionID);
+long    F1AP_id[1];
+long    E1AP_id[1];
+struct uEID {
+    long    amf_UE_NGAP_Id;
+    //size_t  amf_UE_NGAP_Id_size;
+    const char* pLMNIdentity;
+    size_t  pLMNIdentity_size;
+    const char* aMFRegionID;
+    size_t  aMFRegionID_size;
+    const char* aMFSetID;
+    size_t  aMFSetID_size;
+    const char* aMFPointer;
+    size_t  aMFPointer_size;
+};
 
-//extern ssize_t e2sm_encode_ric_control_header(void *buffer, size_t buf_size, long ricControlStyleType, long ricControlActionID);
+//extern ssize_t e2sm_encode_ric_control_header(void *buffer, size_t buf_size,struct uEID *in,long f1AP[1],long e1AP[1],long ricControlStyleType, long ricControlActionID);
+
+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 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) ;
+extern ssize_t e2sm_encode_nrcgi(NR_CGI_t *nr_cgi, void* ranParameterValue, size_t ranParameterValue_size,
+				ulong lNRCellId,uint8_t* buffer, size_t buf_size);
+
+//extern ssize_t encodeRANParameterTestingItemForStructure(RANParameter_ValueType_Choice_Structure_t **ranParameterChoiceItemStruct,E2SM_RC_ControlMessage_Format1_Item_t **ranParameterItem,long ranParameterID);
 #endif /* _WRAPPER_H_ */
diff --git a/go.mod b/go.mod
index 2e78dfc..6f3c2c8 100644
--- a/go.mod
+++ b/go.mod
@@ -1,4 +1,4 @@
-module nrtric 
+module nrtric
 
 go 1.14
 
@@ -6,7 +6,8 @@
 	gerrit.o-ran-sc.org/r/ric-plt/xapp-frame v0.0.0-00010101000000-000000000000
 	github.com/golang/protobuf v1.5.2
 	golang.org/x/net v0.0.0-20210614182718-04defd469f4e
-        google.golang.org/grpc v1.39.0 
+	google.golang.org/grpc v1.39.0
+	google.golang.org/protobuf v1.28.0 // indirect
 	k8s.io/utils v0.0.0-20210629042839-4a2b36d8d73f // indirect
 )
 
diff --git a/go.sum b/go.sum
index 3cef1f4..c01bd1e 100644
--- a/go.sum
+++ b/go.sum
@@ -61,6 +61,7 @@
 github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
 github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
 github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
+github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
 github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
 github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
 github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
@@ -122,6 +123,7 @@
 github.com/go-openapi/validate v0.19.6/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4=
 github.com/go-redis/redis v6.15.3+incompatible h1:NZ0O90AhLSvSrvLZ/S9h7D4kl1mW2PrKyxL7MyBKO2g=
 github.com/go-redis/redis v6.15.3+incompatible/go.mod h1:W2YCLaZryXHirdd9QqwkiVUxCQsrx8SbLq9Uqk7JS7A=
+github.com/go-redis/redis v6.15.9+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA=
 github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
 github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
 github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
@@ -195,12 +197,17 @@
 github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE=
 github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
 github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
+github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
 github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
 github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
 github.com/onsi/ginkgo v1.8.0 h1:VkHVNpR4iVnU8XQR6DBm8BqYjN7CRzw+xKUbVVbbW9w=
 github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
+github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
+github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
 github.com/onsi/gomega v1.5.0 h1:izbySO9zDPmjJ8rDjLvkA2zJHIo+HkYXHnf7eN7SSyo=
 github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
+github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
+github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
 github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
 github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc=
 github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
@@ -289,6 +296,7 @@
 golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
 golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
 golang.org/x/net v0.0.0-20210614182718-04defd469f4e h1:XpT3nA5TvE525Ne3hInMh6+GETgn27Zfm9dxsThnX2Q=
 golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
@@ -308,7 +316,11 @@
 golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210423082822-04245dca01da h1:b3NXsE2LusjYGGjL5bxEVZZORm/YEFFrWFjR8eFrw/c=
 golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -358,6 +370,8 @@
 google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
 google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk=
 google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
+google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw=
+google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
 gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
@@ -373,8 +387,10 @@
 gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I=
 gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
+k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
 k8s.io/utils v0.0.0-20210629042839-4a2b36d8d73f h1:6Cyc8f2OS555SrragQyv4rQ5G7F2haZ6KY2oxO1wzlE=
 k8s.io/utils v0.0.0-20210629042839-4a2b36d8d73f/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
diff --git a/protocol/grpc/ricmsgcommrpc/proto/rc.proto b/protocol/grpc/ricmsgcommrpc/proto/rc.proto
index 6de5b1c..7ff8e8e 100644
--- a/protocol/grpc/ricmsgcommrpc/proto/rc.proto
+++ b/protocol/grpc/ricmsgcommrpc/proto/rc.proto
@@ -24,9 +24,26 @@
 message RICControlHeader {
         int64           ControlStyle = 1;
         int64           ControlActionId = 2;
-        string          UEID = 3;
+        UeId            UEID = 3;
 }
 
+message UeId {
+	gNBUEID         GnbUEID = 1;
+}
+
+message gNBUEID {
+	int64		amfUENGAPID = 1;
+	Guami           guami = 2;
+        repeated int64  gNBCUUEF1APID = 3;
+        repeated int64  gNBCUCPUEE1APID = 4;
+}
+
+message Guami {
+	string          pLMNIdentity = 1;
+	string 		aMFRegionID  = 2;
+	string		aMFSetID     = 3;
+	string		aMFPointer   = 4;
+}
 
 message RICControlMessage {
 	RICControlCellTypeEnum    RICControlCellTypeVal = 1;
diff --git a/protocol/grpc/ricmsgcommrpc/rc/rc.pb.go b/protocol/grpc/ricmsgcommrpc/rc/rc.pb.go
index 18fbde2..967ff88 100644
--- a/protocol/grpc/ricmsgcommrpc/rc/rc.pb.go
+++ b/protocol/grpc/ricmsgcommrpc/rc/rc.pb.go
@@ -1,16 +1,32 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
+// Code generated by protoc-gen-go.
 // source: rc.proto
+// DO NOT EDIT!
 
+/*
+Package rc is a generated protocol buffer package.
+
+It is generated from these files:
+	rc.proto
+
+It has these top-level messages:
+	RICE2APHeader
+	RICControlHeader
+	UeId
+	GNBUEID
+	Guami
+	RICControlMessage
+	RicControlGrpcReq
+	RicControlGrpcRsp
+*/
 package rc
 
+import proto "github.com/golang/protobuf/proto"
+import fmt "fmt"
+import math "math"
+
 import (
-	context "context"
-	fmt "fmt"
-	proto "github.com/golang/protobuf/proto"
+	context "golang.org/x/net/context"
 	grpc "google.golang.org/grpc"
-	codes "google.golang.org/grpc/codes"
-	status "google.golang.org/grpc/status"
-	math "math"
 )
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -22,7 +38,7 @@
 // is compatible with the proto package it is being compiled against.
 // A compilation error at this line likely means your copy of the
 // proto package needs to be updated.
-const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 
 type RICControlCellTypeEnum int32
 
@@ -37,7 +53,6 @@
 	1: "RIC_CONTROL_NR_CELL",
 	2: "RIC_CONTROL_EUTRAN_CELL",
 }
-
 var RICControlCellTypeEnum_value = map[string]int32{
 	"RIC_CONTROL_CELL_UNKWON": 0,
 	"RIC_CONTROL_NR_CELL":     1,
@@ -47,10 +62,7 @@
 func (x RICControlCellTypeEnum) String() string {
 	return proto.EnumName(RICControlCellTypeEnum_name, int32(x))
 }
-
-func (RICControlCellTypeEnum) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_a4fc9282119cff7c, []int{0}
-}
+func (RICControlCellTypeEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
 
 type RICControlAckEnum int32
 
@@ -67,7 +79,6 @@
 	2: "RIC_CONTROL_ACK",
 	3: "RIC_CONTROL_NACK",
 }
-
 var RICControlAckEnum_value = map[string]int32{
 	"RIC_CONTROL_ACK_UNKWON": 0,
 	"RIC_CONTROL_NO_ACK":     1,
@@ -78,43 +89,17 @@
 func (x RICControlAckEnum) String() string {
 	return proto.EnumName(RICControlAckEnum_name, int32(x))
 }
-
-func (RICControlAckEnum) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_a4fc9282119cff7c, []int{1}
-}
+func (RICControlAckEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
 
 type RICE2APHeader struct {
-	RanFuncId            int64    `protobuf:"varint,1,opt,name=RanFuncId,proto3" json:"RanFuncId,omitempty"`
-	RICRequestorID       int64    `protobuf:"varint,2,opt,name=RICRequestorID,proto3" json:"RICRequestorID,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	RanFuncId      int64 `protobuf:"varint,1,opt,name=RanFuncId" json:"RanFuncId,omitempty"`
+	RICRequestorID int64 `protobuf:"varint,2,opt,name=RICRequestorID" json:"RICRequestorID,omitempty"`
 }
 
-func (m *RICE2APHeader) Reset()         { *m = RICE2APHeader{} }
-func (m *RICE2APHeader) String() string { return proto.CompactTextString(m) }
-func (*RICE2APHeader) ProtoMessage()    {}
-func (*RICE2APHeader) Descriptor() ([]byte, []int) {
-	return fileDescriptor_a4fc9282119cff7c, []int{0}
-}
-
-func (m *RICE2APHeader) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_RICE2APHeader.Unmarshal(m, b)
-}
-func (m *RICE2APHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_RICE2APHeader.Marshal(b, m, deterministic)
-}
-func (m *RICE2APHeader) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_RICE2APHeader.Merge(m, src)
-}
-func (m *RICE2APHeader) XXX_Size() int {
-	return xxx_messageInfo_RICE2APHeader.Size(m)
-}
-func (m *RICE2APHeader) XXX_DiscardUnknown() {
-	xxx_messageInfo_RICE2APHeader.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_RICE2APHeader proto.InternalMessageInfo
+func (m *RICE2APHeader) Reset()                    { *m = RICE2APHeader{} }
+func (m *RICE2APHeader) String() string            { return proto.CompactTextString(m) }
+func (*RICE2APHeader) ProtoMessage()               {}
+func (*RICE2APHeader) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
 
 func (m *RICE2APHeader) GetRanFuncId() int64 {
 	if m != nil {
@@ -131,38 +116,15 @@
 }
 
 type RICControlHeader struct {
-	ControlStyle         int64    `protobuf:"varint,1,opt,name=ControlStyle,proto3" json:"ControlStyle,omitempty"`
-	ControlActionId      int64    `protobuf:"varint,2,opt,name=ControlActionId,proto3" json:"ControlActionId,omitempty"`
-	UEID                 string   `protobuf:"bytes,3,opt,name=UEID,proto3" json:"UEID,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	ControlStyle    int64 `protobuf:"varint,1,opt,name=ControlStyle" json:"ControlStyle,omitempty"`
+	ControlActionId int64 `protobuf:"varint,2,opt,name=ControlActionId" json:"ControlActionId,omitempty"`
+	UEID            *UeId `protobuf:"bytes,3,opt,name=UEID" json:"UEID,omitempty"`
 }
 
-func (m *RICControlHeader) Reset()         { *m = RICControlHeader{} }
-func (m *RICControlHeader) String() string { return proto.CompactTextString(m) }
-func (*RICControlHeader) ProtoMessage()    {}
-func (*RICControlHeader) Descriptor() ([]byte, []int) {
-	return fileDescriptor_a4fc9282119cff7c, []int{1}
-}
-
-func (m *RICControlHeader) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_RICControlHeader.Unmarshal(m, b)
-}
-func (m *RICControlHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_RICControlHeader.Marshal(b, m, deterministic)
-}
-func (m *RICControlHeader) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_RICControlHeader.Merge(m, src)
-}
-func (m *RICControlHeader) XXX_Size() int {
-	return xxx_messageInfo_RICControlHeader.Size(m)
-}
-func (m *RICControlHeader) XXX_DiscardUnknown() {
-	xxx_messageInfo_RICControlHeader.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_RICControlHeader proto.InternalMessageInfo
+func (m *RICControlHeader) Reset()                    { *m = RICControlHeader{} }
+func (m *RICControlHeader) String() string            { return proto.CompactTextString(m) }
+func (*RICControlHeader) ProtoMessage()               {}
+func (*RICControlHeader) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
 
 func (m *RICControlHeader) GetControlStyle() int64 {
 	if m != nil {
@@ -178,45 +140,118 @@
 	return 0
 }
 
-func (m *RICControlHeader) GetUEID() string {
+func (m *RICControlHeader) GetUEID() *UeId {
 	if m != nil {
 		return m.UEID
 	}
+	return nil
+}
+
+type UeId struct {
+	GnbUEID *GNBUEID `protobuf:"bytes,1,opt,name=GnbUEID" json:"GnbUEID,omitempty"`
+}
+
+func (m *UeId) Reset()                    { *m = UeId{} }
+func (m *UeId) String() string            { return proto.CompactTextString(m) }
+func (*UeId) ProtoMessage()               {}
+func (*UeId) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
+
+func (m *UeId) GetGnbUEID() *GNBUEID {
+	if m != nil {
+		return m.GnbUEID
+	}
+	return nil
+}
+
+type GNBUEID struct {
+	AmfUENGAPID     int64   `protobuf:"varint,1,opt,name=amfUENGAPID" json:"amfUENGAPID,omitempty"`
+	Guami           *Guami  `protobuf:"bytes,2,opt,name=guami" json:"guami,omitempty"`
+	GNBCUUEF1APID   []int64 `protobuf:"varint,3,rep,packed,name=gNBCUUEF1APID" json:"gNBCUUEF1APID,omitempty"`
+	GNBCUCPUEE1APID []int64 `protobuf:"varint,4,rep,packed,name=gNBCUCPUEE1APID" json:"gNBCUCPUEE1APID,omitempty"`
+}
+
+func (m *GNBUEID) Reset()                    { *m = GNBUEID{} }
+func (m *GNBUEID) String() string            { return proto.CompactTextString(m) }
+func (*GNBUEID) ProtoMessage()               {}
+func (*GNBUEID) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
+
+func (m *GNBUEID) GetAmfUENGAPID() int64 {
+	if m != nil {
+		return m.AmfUENGAPID
+	}
+	return 0
+}
+
+func (m *GNBUEID) GetGuami() *Guami {
+	if m != nil {
+		return m.Guami
+	}
+	return nil
+}
+
+func (m *GNBUEID) GetGNBCUUEF1APID() []int64 {
+	if m != nil {
+		return m.GNBCUUEF1APID
+	}
+	return nil
+}
+
+func (m *GNBUEID) GetGNBCUCPUEE1APID() []int64 {
+	if m != nil {
+		return m.GNBCUCPUEE1APID
+	}
+	return nil
+}
+
+type Guami struct {
+	PLMNIdentity string `protobuf:"bytes,1,opt,name=pLMNIdentity" json:"pLMNIdentity,omitempty"`
+	AMFRegionID  string `protobuf:"bytes,2,opt,name=aMFRegionID" json:"aMFRegionID,omitempty"`
+	AMFSetID     string `protobuf:"bytes,3,opt,name=aMFSetID" json:"aMFSetID,omitempty"`
+	AMFPointer   string `protobuf:"bytes,4,opt,name=aMFPointer" json:"aMFPointer,omitempty"`
+}
+
+func (m *Guami) Reset()                    { *m = Guami{} }
+func (m *Guami) String() string            { return proto.CompactTextString(m) }
+func (*Guami) ProtoMessage()               {}
+func (*Guami) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
+
+func (m *Guami) GetPLMNIdentity() string {
+	if m != nil {
+		return m.PLMNIdentity
+	}
+	return ""
+}
+
+func (m *Guami) GetAMFRegionID() string {
+	if m != nil {
+		return m.AMFRegionID
+	}
+	return ""
+}
+
+func (m *Guami) GetAMFSetID() string {
+	if m != nil {
+		return m.AMFSetID
+	}
+	return ""
+}
+
+func (m *Guami) GetAMFPointer() string {
+	if m != nil {
+		return m.AMFPointer
+	}
 	return ""
 }
 
 type RICControlMessage struct {
-	RICControlCellTypeVal RICControlCellTypeEnum `protobuf:"varint,1,opt,name=RICControlCellTypeVal,proto3,enum=rc.RICControlCellTypeEnum" json:"RICControlCellTypeVal,omitempty"`
-	TargetCellID          string                 `protobuf:"bytes,2,opt,name=TargetCellID,proto3" json:"TargetCellID,omitempty"`
-	XXX_NoUnkeyedLiteral  struct{}               `json:"-"`
-	XXX_unrecognized      []byte                 `json:"-"`
-	XXX_sizecache         int32                  `json:"-"`
+	RICControlCellTypeVal RICControlCellTypeEnum `protobuf:"varint,1,opt,name=RICControlCellTypeVal,enum=rc.RICControlCellTypeEnum" json:"RICControlCellTypeVal,omitempty"`
+	TargetCellID          string                 `protobuf:"bytes,2,opt,name=TargetCellID" json:"TargetCellID,omitempty"`
 }
 
-func (m *RICControlMessage) Reset()         { *m = RICControlMessage{} }
-func (m *RICControlMessage) String() string { return proto.CompactTextString(m) }
-func (*RICControlMessage) ProtoMessage()    {}
-func (*RICControlMessage) Descriptor() ([]byte, []int) {
-	return fileDescriptor_a4fc9282119cff7c, []int{2}
-}
-
-func (m *RICControlMessage) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_RICControlMessage.Unmarshal(m, b)
-}
-func (m *RICControlMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_RICControlMessage.Marshal(b, m, deterministic)
-}
-func (m *RICControlMessage) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_RICControlMessage.Merge(m, src)
-}
-func (m *RICControlMessage) XXX_Size() int {
-	return xxx_messageInfo_RICControlMessage.Size(m)
-}
-func (m *RICControlMessage) XXX_DiscardUnknown() {
-	xxx_messageInfo_RICControlMessage.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_RICControlMessage proto.InternalMessageInfo
+func (m *RICControlMessage) Reset()                    { *m = RICControlMessage{} }
+func (m *RICControlMessage) String() string            { return proto.CompactTextString(m) }
+func (*RICControlMessage) ProtoMessage()               {}
+func (*RICControlMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
 
 func (m *RICControlMessage) GetRICControlCellTypeVal() RICControlCellTypeEnum {
 	if m != nil {
@@ -232,44 +267,21 @@
 	return ""
 }
 
-//RicControl GRPC Req
+// RicControl GRPC Req
 type RicControlGrpcReq struct {
-	E2NodeID              string             `protobuf:"bytes,1,opt,name=e2NodeID,proto3" json:"e2NodeID,omitempty"`
-	PlmnID                string             `protobuf:"bytes,2,opt,name=plmnID,proto3" json:"plmnID,omitempty"`
-	RanName               string             `protobuf:"bytes,3,opt,name=ranName,proto3" json:"ranName,omitempty"`
-	RICE2APHeaderData     *RICE2APHeader     `protobuf:"bytes,4,opt,name=RICE2APHeaderData,proto3" json:"RICE2APHeaderData,omitempty"`
-	RICControlHeaderData  *RICControlHeader  `protobuf:"bytes,5,opt,name=RICControlHeaderData,proto3" json:"RICControlHeaderData,omitempty"`
-	RICControlMessageData *RICControlMessage `protobuf:"bytes,6,opt,name=RICControlMessageData,proto3" json:"RICControlMessageData,omitempty"`
-	RICControlAckReqVal   RICControlAckEnum  `protobuf:"varint,7,opt,name=RICControlAckReqVal,proto3,enum=rc.RICControlAckEnum" json:"RICControlAckReqVal,omitempty"`
-	XXX_NoUnkeyedLiteral  struct{}           `json:"-"`
-	XXX_unrecognized      []byte             `json:"-"`
-	XXX_sizecache         int32              `json:"-"`
+	E2NodeID              string             `protobuf:"bytes,1,opt,name=e2NodeID" json:"e2NodeID,omitempty"`
+	PlmnID                string             `protobuf:"bytes,2,opt,name=plmnID" json:"plmnID,omitempty"`
+	RanName               string             `protobuf:"bytes,3,opt,name=ranName" json:"ranName,omitempty"`
+	RICE2APHeaderData     *RICE2APHeader     `protobuf:"bytes,4,opt,name=RICE2APHeaderData" json:"RICE2APHeaderData,omitempty"`
+	RICControlHeaderData  *RICControlHeader  `protobuf:"bytes,5,opt,name=RICControlHeaderData" json:"RICControlHeaderData,omitempty"`
+	RICControlMessageData *RICControlMessage `protobuf:"bytes,6,opt,name=RICControlMessageData" json:"RICControlMessageData,omitempty"`
+	RICControlAckReqVal   RICControlAckEnum  `protobuf:"varint,7,opt,name=RICControlAckReqVal,enum=rc.RICControlAckEnum" json:"RICControlAckReqVal,omitempty"`
 }
 
-func (m *RicControlGrpcReq) Reset()         { *m = RicControlGrpcReq{} }
-func (m *RicControlGrpcReq) String() string { return proto.CompactTextString(m) }
-func (*RicControlGrpcReq) ProtoMessage()    {}
-func (*RicControlGrpcReq) Descriptor() ([]byte, []int) {
-	return fileDescriptor_a4fc9282119cff7c, []int{3}
-}
-
-func (m *RicControlGrpcReq) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_RicControlGrpcReq.Unmarshal(m, b)
-}
-func (m *RicControlGrpcReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_RicControlGrpcReq.Marshal(b, m, deterministic)
-}
-func (m *RicControlGrpcReq) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_RicControlGrpcReq.Merge(m, src)
-}
-func (m *RicControlGrpcReq) XXX_Size() int {
-	return xxx_messageInfo_RicControlGrpcReq.Size(m)
-}
-func (m *RicControlGrpcReq) XXX_DiscardUnknown() {
-	xxx_messageInfo_RicControlGrpcReq.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_RicControlGrpcReq proto.InternalMessageInfo
+func (m *RicControlGrpcReq) Reset()                    { *m = RicControlGrpcReq{} }
+func (m *RicControlGrpcReq) String() string            { return proto.CompactTextString(m) }
+func (*RicControlGrpcReq) ProtoMessage()               {}
+func (*RicControlGrpcReq) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
 
 func (m *RicControlGrpcReq) GetE2NodeID() string {
 	if m != nil {
@@ -320,39 +332,16 @@
 	return RICControlAckEnum_RIC_CONTROL_ACK_UNKWON
 }
 
-//RicControlGrpc Rsp
+// RicControlGrpc Rsp
 type RicControlGrpcRsp struct {
-	RspCode              int32    `protobuf:"varint,1,opt,name=rspCode,proto3" json:"rspCode,omitempty"`
-	Description          string   `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	RspCode     int32  `protobuf:"varint,1,opt,name=rspCode" json:"rspCode,omitempty"`
+	Description string `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
 }
 
-func (m *RicControlGrpcRsp) Reset()         { *m = RicControlGrpcRsp{} }
-func (m *RicControlGrpcRsp) String() string { return proto.CompactTextString(m) }
-func (*RicControlGrpcRsp) ProtoMessage()    {}
-func (*RicControlGrpcRsp) Descriptor() ([]byte, []int) {
-	return fileDescriptor_a4fc9282119cff7c, []int{4}
-}
-
-func (m *RicControlGrpcRsp) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_RicControlGrpcRsp.Unmarshal(m, b)
-}
-func (m *RicControlGrpcRsp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_RicControlGrpcRsp.Marshal(b, m, deterministic)
-}
-func (m *RicControlGrpcRsp) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_RicControlGrpcRsp.Merge(m, src)
-}
-func (m *RicControlGrpcRsp) XXX_Size() int {
-	return xxx_messageInfo_RicControlGrpcRsp.Size(m)
-}
-func (m *RicControlGrpcRsp) XXX_DiscardUnknown() {
-	xxx_messageInfo_RicControlGrpcRsp.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_RicControlGrpcRsp proto.InternalMessageInfo
+func (m *RicControlGrpcRsp) Reset()                    { *m = RicControlGrpcRsp{} }
+func (m *RicControlGrpcRsp) String() string            { return proto.CompactTextString(m) }
+func (*RicControlGrpcRsp) ProtoMessage()               {}
+func (*RicControlGrpcRsp) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
 
 func (m *RicControlGrpcRsp) GetRspCode() int32 {
 	if m != nil {
@@ -369,52 +358,16 @@
 }
 
 func init() {
-	proto.RegisterEnum("rc.RICControlCellTypeEnum", RICControlCellTypeEnum_name, RICControlCellTypeEnum_value)
-	proto.RegisterEnum("rc.RICControlAckEnum", RICControlAckEnum_name, RICControlAckEnum_value)
 	proto.RegisterType((*RICE2APHeader)(nil), "rc.RICE2APHeader")
 	proto.RegisterType((*RICControlHeader)(nil), "rc.RICControlHeader")
+	proto.RegisterType((*UeId)(nil), "rc.UeId")
+	proto.RegisterType((*GNBUEID)(nil), "rc.gNBUEID")
+	proto.RegisterType((*Guami)(nil), "rc.Guami")
 	proto.RegisterType((*RICControlMessage)(nil), "rc.RICControlMessage")
 	proto.RegisterType((*RicControlGrpcReq)(nil), "rc.RicControlGrpcReq")
 	proto.RegisterType((*RicControlGrpcRsp)(nil), "rc.RicControlGrpcRsp")
-}
-
-func init() { proto.RegisterFile("rc.proto", fileDescriptor_a4fc9282119cff7c) }
-
-var fileDescriptor_a4fc9282119cff7c = []byte{
-	// 527 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x54, 0x4d, 0x6f, 0xda, 0x40,
-	0x10, 0xad, 0x21, 0x5f, 0x4c, 0xda, 0x84, 0x4c, 0x08, 0x41, 0x34, 0x07, 0xe4, 0x43, 0x85, 0x72,
-	0xe0, 0x40, 0x7f, 0x40, 0x65, 0x2d, 0x34, 0xb1, 0x20, 0x26, 0x1a, 0xa0, 0x39, 0x22, 0x77, 0xbd,
-	0x42, 0x08, 0x63, 0x9b, 0xb5, 0xa9, 0x94, 0x6b, 0x6f, 0xfd, 0xd7, 0x95, 0x97, 0x0d, 0x06, 0xe3,
-	0x1b, 0xf3, 0x66, 0xde, 0x9b, 0x9d, 0x79, 0x83, 0xe1, 0x42, 0xf2, 0x4e, 0x24, 0xc3, 0x24, 0xc4,
-	0x92, 0xe4, 0xe6, 0x14, 0xbe, 0x90, 0xcd, 0xfa, 0x5d, 0xeb, 0xf5, 0x59, 0xb8, 0x9e, 0x90, 0xf8,
-	0x00, 0x15, 0x72, 0x83, 0x9f, 0x9b, 0x80, 0xdb, 0x5e, 0xc3, 0x68, 0x19, 0xed, 0x32, 0x65, 0x00,
-	0x7e, 0x83, 0x2b, 0xb2, 0x19, 0x89, 0xf5, 0x46, 0xc4, 0x49, 0x28, 0xed, 0x5e, 0xa3, 0xa4, 0x4a,
-	0x72, 0xa8, 0x99, 0x40, 0x95, 0x6c, 0xc6, 0xc2, 0x20, 0x91, 0xa1, 0xaf, 0x95, 0x4d, 0xf8, 0xac,
-	0x81, 0x71, 0xf2, 0xee, 0x0b, 0x2d, 0x7e, 0x80, 0x61, 0x1b, 0xae, 0x75, 0x6c, 0xf1, 0x64, 0x11,
-	0x06, 0xb6, 0xa7, 0x1b, 0xe4, 0x61, 0x44, 0x38, 0x99, 0xf6, 0xed, 0x5e, 0xa3, 0xdc, 0x32, 0xda,
-	0x15, 0x52, 0xbf, 0xcd, 0x7f, 0x06, 0xdc, 0x64, 0x6d, 0x5f, 0x44, 0x1c, 0xbb, 0x73, 0x81, 0xaf,
-	0x70, 0x97, 0x81, 0x4c, 0xf8, 0xfe, 0xe4, 0x3d, 0x12, 0xbf, 0x5c, 0x5f, 0x3d, 0xe0, 0xaa, 0xdb,
-	0xec, 0x48, 0xde, 0x39, 0x2e, 0xe8, 0x07, 0x9b, 0x15, 0x15, 0x13, 0xd3, 0x49, 0x26, 0xae, 0x9c,
-	0x8b, 0x24, 0x05, 0xf5, 0x0e, 0x2a, 0x74, 0x80, 0x99, 0x7f, 0xcb, 0x70, 0x43, 0x0b, 0xae, 0xd9,
-	0x4f, 0x32, 0xe2, 0x24, 0xd6, 0xd8, 0x84, 0x0b, 0xd1, 0x75, 0x42, 0x4f, 0xd8, 0x3d, 0xd5, 0xbe,
-	0x42, 0xbb, 0x18, 0xeb, 0x70, 0x16, 0xf9, 0xab, 0x60, 0xa7, 0xa7, 0x23, 0x6c, 0xc0, 0xb9, 0x74,
-	0x03, 0xc7, 0x5d, 0x09, 0x3d, 0xec, 0x47, 0x88, 0x3f, 0xd4, 0xb8, 0x99, 0x79, 0x3d, 0x37, 0x71,
-	0x1b, 0x27, 0x2d, 0xa3, 0x7d, 0xd9, 0xbd, 0xd1, 0x53, 0x65, 0x49, 0x3a, 0xae, 0xc5, 0x67, 0xa8,
-	0xe5, 0x6d, 0x52, 0x1a, 0xa7, 0x4a, 0xa3, 0x76, 0xb8, 0x19, 0x2d, 0x53, 0xc8, 0xc0, 0xc1, 0xfe,
-	0x92, 0xf5, 0xe6, 0x95, 0xd4, 0x99, 0x92, 0xba, 0x3b, 0x94, 0xd2, 0x05, 0x54, 0xcc, 0xc1, 0x27,
-	0xb8, 0xcd, 0x12, 0x16, 0x5f, 0x92, 0x58, 0xa7, 0x7e, 0x9d, 0x2b, 0xbf, 0x72, 0x52, 0x16, 0x5f,
-	0x2a, 0xab, 0x8a, 0x18, 0xe6, 0xe8, 0xc8, 0x83, 0x38, 0x52, 0xfb, 0x8c, 0x23, 0x16, 0x7a, 0xdb,
-	0x13, 0x3c, 0xa5, 0x8f, 0x10, 0x5b, 0x70, 0xe9, 0x89, 0x98, 0xcb, 0x45, 0x94, 0x1e, 0x99, 0xb6,
-	0x61, 0x1f, 0x7a, 0x5c, 0x42, 0xbd, 0xf8, 0x54, 0xf0, 0x2b, 0xdc, 0x93, 0xcd, 0x66, 0x6c, 0xe4,
-	0x4c, 0x68, 0x34, 0x9c, 0xb1, 0xfe, 0x70, 0x38, 0x9b, 0x3a, 0x83, 0xb7, 0x91, 0x53, 0xfd, 0x84,
-	0xf7, 0x6a, 0xa0, 0x5d, 0xd2, 0x21, 0x95, 0xaf, 0x1a, 0x79, 0x56, 0x7f, 0x3a, 0x21, 0xcb, 0xd9,
-	0x26, 0x4b, 0x8f, 0x72, 0xff, 0x9a, 0xf5, 0x9c, 0xd8, 0x54, 0x2f, 0xd8, 0x31, 0x2c, 0x36, 0xc8,
-	0xda, 0xd4, 0x01, 0x0f, 0xda, 0x8c, 0xd2, 0x74, 0xd5, 0xc0, 0x5b, 0xb8, 0xce, 0x71, 0xaa, 0x25,
-	0xac, 0xa9, 0xbf, 0x68, 0x56, 0x9c, 0xa2, 0xe5, 0xee, 0x1b, 0x9c, 0xbf, 0xc4, 0x73, 0x16, 0xae,
-	0x56, 0x38, 0x84, 0x87, 0xb1, 0x08, 0xbc, 0xec, 0x09, 0x24, 0xd6, 0x63, 0x21, 0xff, 0x2c, 0xb8,
-	0x48, 0x57, 0x89, 0x5b, 0x23, 0xf2, 0x27, 0xde, 0x2c, 0x82, 0xe3, 0xe8, 0xf7, 0x99, 0xfa, 0xe6,
-	0x7c, 0xff, 0x1f, 0x00, 0x00, 0xff, 0xff, 0xd2, 0xb8, 0xbb, 0xfc, 0x7f, 0x04, 0x00, 0x00,
+	proto.RegisterEnum("rc.RICControlCellTypeEnum", RICControlCellTypeEnum_name, RICControlCellTypeEnum_value)
+	proto.RegisterEnum("rc.RICControlAckEnum", RICControlAckEnum_name, RICControlAckEnum_value)
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -425,11 +378,10 @@
 // is compatible with the grpc package it is being compiled against.
 const _ = grpc.SupportPackageIsVersion4
 
-// MsgCommClient is the client API for MsgComm service.
-//
-// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+// Client API for MsgComm service
+
 type MsgCommClient interface {
-	//gRPC call to Send RICControlReqServiceGrpc
+	// gRPC call to Send RICControlReqServiceGrpc
 	SendRICControlReqServiceGrpc(ctx context.Context, in *RicControlGrpcReq, opts ...grpc.CallOption) (*RicControlGrpcRsp, error)
 }
 
@@ -443,27 +395,20 @@
 
 func (c *msgCommClient) SendRICControlReqServiceGrpc(ctx context.Context, in *RicControlGrpcReq, opts ...grpc.CallOption) (*RicControlGrpcRsp, error) {
 	out := new(RicControlGrpcRsp)
-	err := c.cc.Invoke(ctx, "/rc.MsgComm/SendRICControlReqServiceGrpc", in, out, opts...)
+	err := grpc.Invoke(ctx, "/rc.MsgComm/SendRICControlReqServiceGrpc", in, out, c.cc, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-// MsgCommServer is the server API for MsgComm service.
+// Server API for MsgComm service
+
 type MsgCommServer interface {
-	//gRPC call to Send RICControlReqServiceGrpc
+	// gRPC call to Send RICControlReqServiceGrpc
 	SendRICControlReqServiceGrpc(context.Context, *RicControlGrpcReq) (*RicControlGrpcRsp, error)
 }
 
-// UnimplementedMsgCommServer can be embedded to have forward compatible implementations.
-type UnimplementedMsgCommServer struct {
-}
-
-func (*UnimplementedMsgCommServer) SendRICControlReqServiceGrpc(ctx context.Context, req *RicControlGrpcReq) (*RicControlGrpcRsp, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method SendRICControlReqServiceGrpc not implemented")
-}
-
 func RegisterMsgCommServer(s *grpc.Server, srv MsgCommServer) {
 	s.RegisterService(&_MsgComm_serviceDesc, srv)
 }
@@ -498,3 +443,53 @@
 	Streams:  []grpc.StreamDesc{},
 	Metadata: "rc.proto",
 }
+
+func init() { proto.RegisterFile("rc.proto", fileDescriptor0) }
+
+var fileDescriptor0 = []byte{
+	// 692 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x94, 0xcd, 0x6e, 0xda, 0x40,
+	0x10, 0xc7, 0x6b, 0x0c, 0x21, 0x0c, 0x4d, 0x42, 0x36, 0x5f, 0x88, 0x46, 0x2d, 0xb2, 0xda, 0x0a,
+	0x45, 0x6a, 0xa4, 0xd2, 0x07, 0xa8, 0x88, 0x63, 0x88, 0x15, 0x30, 0x68, 0xc0, 0xcd, 0x31, 0x72,
+	0xec, 0x2d, 0x42, 0xc1, 0x1f, 0xac, 0x4d, 0xa5, 0x5c, 0x7a, 0xe8, 0xad, 0xef, 0xd0, 0x87, 0xad,
+	0x76, 0x59, 0x30, 0x76, 0x38, 0xce, 0x6f, 0x3e, 0x76, 0xe6, 0x3f, 0xbb, 0x0b, 0xfb, 0xcc, 0xbd,
+	0x8e, 0x58, 0x98, 0x84, 0xa4, 0xc0, 0x5c, 0xcd, 0x86, 0x03, 0x34, 0x75, 0xa3, 0xdd, 0x19, 0xdd,
+	0x51, 0xc7, 0xa3, 0x8c, 0x5c, 0x42, 0x05, 0x9d, 0xa0, 0xbb, 0x0c, 0x5c, 0xd3, 0xab, 0x2b, 0x4d,
+	0xa5, 0xa5, 0x62, 0x0a, 0xc8, 0x67, 0x38, 0x44, 0x53, 0x47, 0xba, 0x58, 0xd2, 0x38, 0x09, 0x99,
+	0x79, 0x5b, 0x2f, 0x88, 0x90, 0x1c, 0xd5, 0x7e, 0x43, 0x0d, 0x4d, 0x5d, 0x0f, 0x83, 0x84, 0x85,
+	0x73, 0x59, 0x59, 0x83, 0xb7, 0x12, 0x8c, 0x93, 0x97, 0x39, 0x95, 0xc5, 0x33, 0x8c, 0xb4, 0xe0,
+	0x48, 0xda, 0x1d, 0x37, 0x99, 0x85, 0x81, 0xe9, 0xc9, 0x03, 0xf2, 0x98, 0x5c, 0x42, 0xd1, 0x36,
+	0xcc, 0xdb, 0xba, 0xda, 0x54, 0x5a, 0xd5, 0xf6, 0xfe, 0x35, 0x73, 0xaf, 0x6d, 0x6a, 0x7a, 0x28,
+	0xa8, 0xf6, 0x05, 0x8a, 0xdc, 0x22, 0x9f, 0xa0, 0xdc, 0x0b, 0x9e, 0x44, 0xa0, 0x22, 0x02, 0xab,
+	0x3c, 0x70, 0x6a, 0xdd, 0x70, 0x84, 0x6b, 0x9f, 0xf6, 0x4f, 0x81, 0xb2, 0x84, 0xa4, 0x09, 0x55,
+	0xc7, 0xff, 0x69, 0x1b, 0x56, 0xaf, 0x33, 0x92, 0x69, 0x2a, 0x6e, 0x23, 0xf2, 0x01, 0x4a, 0xd3,
+	0xa5, 0xe3, 0xcf, 0x44, 0x6b, 0xd5, 0x76, 0x85, 0x97, 0xec, 0x71, 0x80, 0x2b, 0x4e, 0x3e, 0xc2,
+	0xc1, 0xd4, 0xba, 0xd1, 0x6d, 0xdb, 0xe8, 0x7e, 0x15, 0x45, 0xd4, 0xa6, 0xda, 0x52, 0x31, 0x0b,
+	0xf9, 0xac, 0x02, 0xe8, 0x23, 0xdb, 0x30, 0x56, 0x71, 0x45, 0x11, 0x97, 0xc7, 0xda, 0x5f, 0x05,
+	0x4a, 0xe2, 0x00, 0xae, 0x61, 0xd4, 0x1f, 0x58, 0xa6, 0x47, 0x83, 0x64, 0x96, 0xbc, 0x88, 0xee,
+	0x2a, 0x98, 0x61, 0x62, 0x80, 0x41, 0x17, 0xe9, 0x94, 0x0b, 0xb5, 0x5a, 0x50, 0x05, 0xb7, 0x11,
+	0x69, 0xc0, 0xbe, 0x33, 0xe8, 0x8e, 0x69, 0x22, 0xf5, 0xab, 0xe0, 0xc6, 0x26, 0xef, 0x01, 0x9c,
+	0x41, 0x77, 0x14, 0xce, 0x82, 0x84, 0xb2, 0x7a, 0x51, 0x78, 0xb7, 0x08, 0xef, 0xe5, 0x38, 0x5d,
+	0xed, 0x80, 0xc6, 0xb1, 0x33, 0xa5, 0x64, 0x04, 0x67, 0x29, 0xd4, 0xe9, 0x7c, 0x3e, 0x79, 0x89,
+	0xe8, 0x0f, 0x67, 0x2e, 0x1a, 0x3c, 0x6c, 0x37, 0xb8, 0x44, 0xaf, 0x03, 0x8c, 0x60, 0xe9, 0xe3,
+	0xee, 0x44, 0x3e, 0xe9, 0xc4, 0x61, 0x53, 0x9a, 0x70, 0xb8, 0x19, 0x23, 0xc3, 0xb4, 0x3f, 0x2a,
+	0x1c, 0xe3, 0xcc, 0x95, 0xd9, 0x3d, 0x16, 0xb9, 0x48, 0x17, 0x7c, 0x3a, 0xda, 0xb6, 0x42, 0x8f,
+	0xca, 0xed, 0x55, 0x70, 0x63, 0x93, 0x73, 0xd8, 0x8b, 0xe6, 0x7e, 0x2a, 0x8b, 0xb4, 0x48, 0x1d,
+	0xca, 0xcc, 0x09, 0x2c, 0xc7, 0xa7, 0x52, 0x90, 0xb5, 0x49, 0xbe, 0x8b, 0x71, 0xd3, 0x07, 0x72,
+	0xeb, 0x24, 0x8e, 0x90, 0xa5, 0xda, 0x3e, 0x96, 0x53, 0xa5, 0x4e, 0x7c, 0x1d, 0x4b, 0xee, 0xe0,
+	0x34, 0xff, 0x14, 0x44, 0x8d, 0x92, 0xa8, 0x71, 0x9a, 0x55, 0x46, 0x96, 0xd9, 0x99, 0x41, 0xee,
+	0xb7, 0x45, 0x96, 0xca, 0x8b, 0x52, 0x7b, 0xa2, 0xd4, 0x59, 0xb6, 0x94, 0x0c, 0xc0, 0xdd, 0x39,
+	0xa4, 0x07, 0x27, 0xa9, 0xa3, 0xe3, 0x3e, 0x23, 0x5d, 0xf0, 0x7d, 0x95, 0xc5, 0xbe, 0x72, 0xa5,
+	0x3a, 0xee, 0xb3, 0x58, 0xd5, 0xae, 0x0c, 0x6d, 0xf8, 0x6a, 0x07, 0x71, 0x24, 0xf4, 0x8c, 0x23,
+	0x3d, 0xf4, 0x56, 0xcf, 0xbc, 0x84, 0x6b, 0x93, 0xdf, 0x4e, 0x8f, 0xc6, 0x2e, 0x9b, 0x45, 0xfc,
+	0x21, 0xaf, 0x6f, 0xe7, 0x16, 0xba, 0x7a, 0x86, 0xf3, 0xdd, 0x57, 0x85, 0xbc, 0x83, 0x0b, 0x34,
+	0xf5, 0x47, 0x7d, 0x68, 0x4d, 0x70, 0xd8, 0x7f, 0xd4, 0x8d, 0x7e, 0xff, 0xd1, 0xb6, 0xee, 0x1f,
+	0x86, 0x56, 0xed, 0x0d, 0xb9, 0x10, 0x03, 0x6d, 0x9c, 0x16, 0x0a, 0x7f, 0x4d, 0xc9, 0x67, 0x19,
+	0xf6, 0x04, 0x3b, 0xd6, 0xca, 0x59, 0xb8, 0x62, 0xdb, 0xb7, 0x59, 0xce, 0x49, 0x1a, 0xa2, 0x83,
+	0x4d, 0x46, 0x47, 0xbf, 0x4f, 0x8f, 0x39, 0x07, 0x92, 0x39, 0x66, 0xc8, 0xdd, 0x35, 0x85, 0x9c,
+	0xc0, 0x51, 0x2e, 0xa7, 0x56, 0x20, 0xa7, 0xe2, 0x1b, 0x4c, 0x83, 0x39, 0x55, 0xdb, 0x0f, 0x50,
+	0x1e, 0xc4, 0x53, 0x3d, 0xf4, 0x7d, 0xd2, 0x87, 0xcb, 0x31, 0x0d, 0xbc, 0xb4, 0x05, 0xa4, 0x8b,
+	0x31, 0x65, 0xbf, 0x66, 0x2e, 0xe5, 0x52, 0x92, 0xd5, 0x22, 0xf2, 0x57, 0xbc, 0xb1, 0x0b, 0xc7,
+	0xd1, 0xd3, 0x9e, 0xf8, 0xd7, 0xbf, 0xfd, 0x0f, 0x00, 0x00, 0xff, 0xff, 0xfb, 0x53, 0x8b, 0xc3,
+	0xe3, 0x05, 0x00, 0x00,
+}
diff --git a/unitTest/grpcClient.sh b/unitTest/grpcClient.sh
index 74ecbba..dede506 100644
--- a/unitTest/grpcClient.sh
+++ b/unitTest/grpcClient.sh
@@ -1,5 +1,7 @@
-./grpcurl -plaintext -d "{ \"e2NodeID\": \"36000000\", \"plmnID\": \"111\", \"ranName\": \"gnb_131_133_36000000\", \"RICE2APHeaderData\": { \"RanFuncId\": 300, \"RICRequestorID\": 2 }, \"RICControlHeaderData\": { \"ControlStyle\": 3, \"ControlActionId\": 1, \"UEID\": \"00006\" }, \"RICControlMessageData\": { \"RICControlCellTypeVal\": 4, \"TargetCellID\": \"1113\" }, \"RICControlAckReqVal\": 0 }"  10.96.106.3:7777 rc.MsgComm.SendRICControlReqServiceGrpc
+#./grpcurl -plaintext -d "{ \"e2NodeID\": \"36000000\", \"plmnID\": \"111\", \"ranName\": \"gnb_131_133_36000000\", \"RICE2APHeaderData\": { \"RanFuncId\": 300, \"RICRequestorID\": 2 }, \"RICControlHeaderData\": { \"ControlStyle\": 3, \"ControlActionId\": 1, \"UEID\": \"00006\" }, \"RICControlMessageData\": { \"RICControlCellTypeVal\": 4, \"TargetCellID\": \"1113\" }, \"RICControlAckReqVal\": 0 }"  10.96.106.3:7777 rc.MsgComm.SendRICControlReqServiceGrpc
 
 #10.96.106.3:7777  is the grpc server ip and port
 #Values of other parameters can be provided as shown above
 
+./grpcurl -plaintext -d "{ \"e2NodeID\": \"gnb_208_092_303030\", \"plmnID\": \"111\", \"ranName\": \"gnb_208_092_303030\", \"RICE2APHeaderData\": { \"RanFuncId\": 300, \"RICRequestorID\": 2 }, \"RICControlHeaderData\": { \"ControlStyle\": 3, \"ControlActionId\": 1, \"UEID\": {\"GnbUEID\": { \"amfUENGAPID\": 10 , \"guami\": {\"pLMNIdentity\": \"111111\",\"aMFRegionID\": \"00001001\", \"aMFSetID\": \"000000 \", \"aMFPointer\": \" 000\"  },\"gNBCUUEF1APID\": 2, \"gNBCUCPUEE1APID\": 1 }} }, \"RICControlMessageData\": { \"RICControlCellTypeVal\": 4, \"TargetCellID\": \"1113\" }, \"RICControlAckReqVal\": 1 }" 10.99.225.43:7777 rc.MsgComm.SendRICControlReqServiceGrpc
+
diff --git a/xapp-descriptor/config.json b/xapp-descriptor/config.json
index 21fd680..ed21c00 100644
--- a/xapp-descriptor/config.json
+++ b/xapp-descriptor/config.json
@@ -5,9 +5,9 @@
     {
       "name": "rc",
       "image": {
-        "registry": "nexus3.o-ran-sc.org:10002",
-        "name": "o-ran-sc/ric-app-rc",
-        "tag": "1.0.1"
+        "registry": "hub.docker.com",
+        "name": "mthykand/rcxapp",
+        "tag": "v1.1"
       }
     }
   ],
@@ -68,6 +68,7 @@
   },
    "controls": {
 	   "ricHOControlgRpcServerPort" : "7777",
-	   "logLevel": 4
+	   "logLevel": 3,
+	   "controlAckTimer" : 2
    }
 }