diff --git a/common/ran_context.h b/common/ran_context.h
index 1201753d1d477aa36f3fffea0c08fb8eb67c4116..ae8d5b02c462c1179f35aa7d2feb74f098832501 100644
--- a/common/ran_context.h
+++ b/common/ran_context.h
@@ -110,4 +110,5 @@ typedef struct {
 } RAN_CONTEXT_t;
 
 extern RAN_CONTEXT_t RC;
+
 #endif
diff --git a/common/utils/asn1_conversions.h b/common/utils/oai_asn1.h
similarity index 88%
rename from common/utils/asn1_conversions.h
rename to common/utils/oai_asn1.h
index 82dca54c0825744504bebf715c2eb283bc377a9d..f76f75c84cbcd76cb17def9c7b5b76510a9b458e 100644
--- a/common/utils/asn1_conversions.h
+++ b/common/utils/oai_asn1.h
@@ -71,12 +71,11 @@ static inline uint16_t BIT_STRING_to_uint16(BIT_STRING_t *asn) {
  */
 static inline uint32_t BIT_STRING_to_uint32(BIT_STRING_t *asn) {
   uint32_t result = 0;
-  int index;
-  int shift;
+  size_t index;
 
   DevCheck ((asn->size > 0) && (asn->size <= 4), asn->size, 0, 0);
 
-  shift = ((asn->size - 1) * 8) - asn->bits_unused;
+  int shift = ((asn->size - 1) * 8) - asn->bits_unused;
   for (index = 0; index < (asn->size - 1); index++) {
     result |= asn->buf[index] << shift;
     shift -= 8;
@@ -94,7 +93,7 @@ static inline uint32_t BIT_STRING_to_uint32(BIT_STRING_t *asn) {
  */
 static inline uint64_t BIT_STRING_to_uint64(BIT_STRING_t *asn) {
   uint64_t result = 0;
-  int index;
+  size_t index;
   int shift;
 
   DevCheck ((asn->size > 0) && (asn->size <= 8), asn->size, 0, 0);
@@ -110,4 +109,13 @@ static inline uint64_t BIT_STRING_to_uint64(BIT_STRING_t *asn) {
   return result;
 }
 
+#define asn1cSeqAdd(VaR, PtR) if (ASN_SEQUENCE_ADD(VaR,PtR)!=0) AssertFatal(false, "ASN.1 encoding error " #VaR "\n")
+#define asn1cCallocOne(VaR, VaLue) \
+  VaR = calloc(1,sizeof(*VaR)); *VaR=VaLue
+#define asn1cCalloc(VaR, lOcPtr) \
+  typeof(VaR) lOcPtr = VaR = calloc(1,sizeof(*VaR))
+#define asn1cSequenceAdd(VaR, TyPe, lOcPtr) \
+  TyPe *lOcPtr= calloc(1,sizeof(TyPe)); \
+  asn1cSeqAdd(&VaR,lOcPtr)
+
 #endif
diff --git a/doc/Doxyfile b/doc/Doxyfile
index 0da3180b99957d665e0592bfc689267055541b8c..5b849ccaa4a9fee30c77f331bdb6f9aaa930f296 100644
--- a/doc/Doxyfile
+++ b/doc/Doxyfile
@@ -888,6 +888,7 @@ INPUT                  = \
 @CMAKE_CURRENT_SOURCE_DIR@/../common/config/libconfig/config_libconfig.c \
 @CMAKE_CURRENT_SOURCE_DIR@/../common/config/libconfig/config_libconfig_private.h \
 @CMAKE_CURRENT_SOURCE_DIR@/../common/config/config_userapi.c \
+@CMAKE_CURRENT_SOURCE_DIR@/../common/oai_asn1.h \
 @CMAKE_CURRENT_SOURCE_DIR@/../common/utils/time_meas.h \
 @CMAKE_CURRENT_SOURCE_DIR@/../common/utils/backtrace.c \
 @CMAKE_CURRENT_SOURCE_DIR@/../common/utils/time_stat.h \
@@ -930,7 +931,7 @@ INPUT                  = \
 @CMAKE_CURRENT_SOURCE_DIR@/../common/utils/load_module_shlib.c \
 @CMAKE_CURRENT_SOURCE_DIR@/../common/utils/backtrace.h \
 @CMAKE_CURRENT_SOURCE_DIR@/../common/utils/assertions.h \
-@CMAKE_CURRENT_SOURCE_DIR@/../common/utils/asn1_conversions.h \
+@CMAKE_CURRENT_SOURCE_DIR@/../common/utils/oai_asn1.h \
 @CMAKE_CURRENT_SOURCE_DIR@/../common/utils/threadPool/thread-pool.h \
 @CMAKE_CURRENT_SOURCE_DIR@/../common/utils/threadPool/thread-pool.c \
 @CMAKE_CURRENT_SOURCE_DIR@/../common/utils/T/T.c \
@@ -1248,7 +1249,7 @@ INPUT                  = \
 @CMAKE_CURRENT_SOURCE_DIR@/../openair2/LAYER2/rlc_v2/rlc_entity_am.h \
 @CMAKE_CURRENT_SOURCE_DIR@/../openair2/LAYER2/rlc_v2/rlc_sdu.c \
 @CMAKE_CURRENT_SOURCE_DIR@/../openair2/LAYER2/rlc_v2/rlc_entity.c \
-@CMAKE_CURRENT_SOURCE_DIR@/../openair2/LAYER2/rlc_v2/asn1_utils.h \
+@CMAKE_CURRENT_SOURCE_DIR@/../openair2/LAYER2/rlc_v2/rlc_asn1_utils.h \
 @CMAKE_CURRENT_SOURCE_DIR@/../openair2/LAYER2/rlc_v2/rlc_ue_manager.h \
 @CMAKE_CURRENT_SOURCE_DIR@/../openair2/LAYER2/rlc_v2/rlc_oai_api.c \
 @CMAKE_CURRENT_SOURCE_DIR@/../openair2/LAYER2/rlc_v2/rlc_sdu.h \
@@ -1356,7 +1357,7 @@ INPUT                  = \
 @CMAKE_CURRENT_SOURCE_DIR@/../openair2/LAYER2/nr_pdcp/nr_pdcp_security_nea2.h \
 @CMAKE_CURRENT_SOURCE_DIR@/../openair2/LAYER2/nr_pdcp/nr_pdcp_ue_manager.h \
 @CMAKE_CURRENT_SOURCE_DIR@/../openair2/LAYER2/nr_pdcp/nr_pdcp_integrity_nia1.h \
-@CMAKE_CURRENT_SOURCE_DIR@/../openair2/LAYER2/nr_pdcp/asn1_utils.h \
+@CMAKE_CURRENT_SOURCE_DIR@/../openair2/LAYER2/nr_pdcp/nr_pdcp_asn1_utils.h \
 @CMAKE_CURRENT_SOURCE_DIR@/../openair2/LAYER2/nr_pdcp/nr_pdcp_integrity_nia1.c \
 @CMAKE_CURRENT_SOURCE_DIR@/../openair2/LAYER2/nr_pdcp/nr_pdcp.h \
 @CMAKE_CURRENT_SOURCE_DIR@/../openair2/LAYER2/nr_pdcp/asn1_utils.c \
@@ -1390,7 +1391,7 @@ INPUT                  = \
 @CMAKE_CURRENT_SOURCE_DIR@/../openair2/LAYER2/nr_rlc/nr_rlc_entity.c \
 @CMAKE_CURRENT_SOURCE_DIR@/../openair2/LAYER2/nr_rlc/nr_rlc_pdu.h \
 @CMAKE_CURRENT_SOURCE_DIR@/../openair2/LAYER2/nr_rlc/nr_rlc_sdu.h \
-@CMAKE_CURRENT_SOURCE_DIR@/../openair2/LAYER2/nr_rlc/asn1_utils.h \
+@CMAKE_CURRENT_SOURCE_DIR@/../openair2/LAYER2/nr_rlc/nr_rlc_asn1_utils.h \
 @CMAKE_CURRENT_SOURCE_DIR@/../openair2/LAYER2/nr_rlc/nr_rlc_pdu.c \
 @CMAKE_CURRENT_SOURCE_DIR@/../openair2/LAYER2/nr_rlc/nr_rlc_entity_am.h \
 @CMAKE_CURRENT_SOURCE_DIR@/../openair2/LAYER2/nr_rlc/asn1_utils.c \
diff --git a/openair1/PHY/MODULATION/modulation_UE.h b/openair1/PHY/MODULATION/modulation_UE.h
index 031b444323b7f5699f1f3a0f827e749a625a9169..147e0855d0a049ae5da614666a336906e8fa3588 100644
--- a/openair1/PHY/MODULATION/modulation_UE.h
+++ b/openair1/PHY/MODULATION/modulation_UE.h
@@ -48,10 +48,10 @@ int slot_fep(PHY_VARS_UE *phy_vars_ue,
              int no_prefix,
 	     int reset_freq_est);
 
-int nr_slot_fep(PHY_VARS_NR_UE *phy_vars_ue,
+int nr_slot_fep(PHY_VARS_NR_UE *ue,
                 UE_nr_rxtx_proc_t *proc,
                 unsigned char l,
-                c16_t rxdataF[][phy_vars_ue->frame_parms.samples_per_slot_wCP]);
+                c16_t rxdataF[][ue->frame_parms.samples_per_slot_wCP]);
 
 int nr_slot_fep_init_sync(PHY_VARS_NR_UE *ue,
                           UE_nr_rxtx_proc_t *proc,
diff --git a/openair1/PHY/NR_UE_ESTIMATION/filt16a_32.c b/openair1/PHY/NR_UE_ESTIMATION/filt16a_32.c
index c3ef1edb28f5a016ffea9e2ddd35827cf8fea4d3..d2a25b12582f30903cc4fa976da875ad77484f90 100644
--- a/openair1/PHY/NR_UE_ESTIMATION/filt16a_32.c
+++ b/openair1/PHY/NR_UE_ESTIMATION/filt16a_32.c
@@ -341,4 +341,4 @@ short filt16_ul_middle[16] = {2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
                               2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048};
 
 short filt16_ul_last[16] = {4096, 4096, 4096, 4096, 8192, 8192, 8192, 8192,
-                            0, 0, 0, 0, 0, 0, 0, 0};
\ No newline at end of file
+                            0, 0, 0, 0, 0, 0, 0, 0};
diff --git a/openair1/SCHED_NR/phy_procedures_nr_common.c b/openair1/SCHED_NR/phy_procedures_nr_common.c
old mode 100755
new mode 100644
diff --git a/openair1/SCHED_NR_UE/fapi_nr_ue_l1.h b/openair1/SCHED_NR_UE/fapi_nr_ue_l1.h
old mode 100755
new mode 100644
diff --git a/openair1/SIMULATION/TOOLS/scm_corrmat.h b/openair1/SIMULATION/TOOLS/scm_corrmat.h
index b3e4f0b6adb7a2443123ddb4bef7a3dc47efb83d..6cb77b5796ed5468775b6a13ed41430f33dbf640 100644
--- a/openair1/SIMULATION/TOOLS/scm_corrmat.h
+++ b/openair1/SIMULATION/TOOLS/scm_corrmat.h
@@ -136,4 +136,4 @@ static double R18_medium_high[8][8] = {
     {0.947664, 0.966182, 0.980834, 0.991436, 0.997852, 1.000000, 0.997852, 0.991436},
     {0.925512, 0.947664, 0.966182, 0.980834, 0.991436, 0.997852, 1.000000, 0.997852},
     {0.900000, 0.925512, 0.947664, 0.966182, 0.980834, 0.991436, 0.997852, 1.000000}
-};
\ No newline at end of file
+};
diff --git a/openair2/F1AP/f1ap_common.h b/openair2/F1AP/f1ap_common.h
index b322c4b3aafb0eff1998cb850348a9def3b4ec52..1c537f172267ec51dd046919b54a96316c7c8ae1 100644
--- a/openair2/F1AP/f1ap_common.h
+++ b/openair2/F1AP/f1ap_common.h
@@ -33,6 +33,7 @@
 #define F1AP_COMMON_H_
 
 #include "common/openairinterface5g_limits.h"
+#include "oai_asn1.h"
 #include <openair2/RRC/NR/MESSAGES/asn1_msg.h>
 
 #define F1AP_UE_IDENTIFIER_NUMBER 3
diff --git a/openair2/F1AP/f1ap_cu_system_information.c b/openair2/F1AP/f1ap_cu_system_information.c
index b6bbedba2f0ed9c62704a0f9fdcf52c3e182ed60..725bb4e1af40df750c8acad8ceddcf48ba0c9b13 100644
--- a/openair2/F1AP/f1ap_cu_system_information.c
+++ b/openair2/F1AP/f1ap_cu_system_information.c
@@ -28,4 +28,4 @@
  * \email: navid.nikaein@eurecom.fr, bing-kai.hong@eurecom.fr
  * \note
  * \warning
- */
\ No newline at end of file
+ */
diff --git a/openair2/F1AP/f1ap_cu_ue_context_management.c b/openair2/F1AP/f1ap_cu_ue_context_management.c
index b8f1d7d84ea8ff043923cc12bb5e7fa3aebac4c4..7e29cba635e4d5acc82db601900880c9268ae788 100644
--- a/openair2/F1AP/f1ap_cu_ue_context_management.c
+++ b/openair2/F1AP/f1ap_cu_ue_context_management.c
@@ -1262,7 +1262,7 @@ int CU_send_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance, f1ap_ue_context
                         F1AP_ULUPTNLInformation_ToBeSetup_Item_t, uLUPTNLInformation_ToBeSetup_Item);
           uLUPTNLInformation_ToBeSetup_Item->uLUPTNLInformation.present = F1AP_UPTransportLayerInformation_PR_gTPTunnel;
           asn1cCalloc(uLUPTNLInformation_ToBeSetup_Item->uLUPTNLInformation.choice.gTPTunnel,
-                  gTPTunnel)
+                      gTPTunnel);
           /* transportLayerAddress */
           TRANSPORT_LAYER_ADDRESS_IPv4_TO_BIT_STRING(1234, &gTPTunnel->transportLayerAddress);
           /* gTP_TEID */
diff --git a/openair2/F1AP/f1ap_cu_warning_message_transmission.c b/openair2/F1AP/f1ap_cu_warning_message_transmission.c
index b6bbedba2f0ed9c62704a0f9fdcf52c3e182ed60..725bb4e1af40df750c8acad8ceddcf48ba0c9b13 100644
--- a/openair2/F1AP/f1ap_cu_warning_message_transmission.c
+++ b/openair2/F1AP/f1ap_cu_warning_message_transmission.c
@@ -28,4 +28,4 @@
  * \email: navid.nikaein@eurecom.fr, bing-kai.hong@eurecom.fr
  * \note
  * \warning
- */
\ No newline at end of file
+ */
diff --git a/openair2/F1AP/f1ap_du_paging.c b/openair2/F1AP/f1ap_du_paging.c
index 46f17fd64d0430b970dcd07534786cb93b70dfd8..92601b357d5773a8969dddba792a78c10a023e83 100644
--- a/openair2/F1AP/f1ap_du_paging.c
+++ b/openair2/F1AP/f1ap_du_paging.c
@@ -32,7 +32,7 @@
 #include "f1ap_common.h"
 #include "f1ap_du_paging.h"
 #include "conversions.h"
-#include "asn1_conversions.h"
+#include "oai_asn1.h"
 #include "openair2/RRC/LTE/rrc_proto.h"
 
 int DU_handle_Paging(instance_t       instance,
@@ -94,4 +94,4 @@ int DU_handle_Paging(instance_t       instance,
   }
 
   return 0;
-}
\ No newline at end of file
+}
diff --git a/openair2/F1AP/f1ap_du_rrc_message_transfer.c b/openair2/F1AP/f1ap_du_rrc_message_transfer.c
index 433e8414a351fbd459a2e6bb2bff713b1e76fb20..c3e1595f423738b4c72f052da5f9a140c596c47e 100644
--- a/openair2/F1AP/f1ap_du_rrc_message_transfer.c
+++ b/openair2/F1AP/f1ap_du_rrc_message_transfer.c
@@ -550,7 +550,7 @@ int DU_send_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
   ie->criticality                    = F1AP_Criticality_reject;
   ie->value.present                  = F1AP_ULRRCMessageTransferIEs__value_PR_GNB_CU_UE_F1AP_ID;
   ie->value.choice.GNB_CU_UE_F1AP_ID = f1ap_get_cu_ue_f1ap_id(DUtype, instance, rnti);
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   /* mandatory */
   /* c2. GNB_DU_UE_F1AP_ID */
   ie = (F1AP_ULRRCMessageTransferIEs_t *)calloc(1, sizeof(F1AP_ULRRCMessageTransferIEs_t));
@@ -558,7 +558,7 @@ int DU_send_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
   ie->criticality                    = F1AP_Criticality_reject;
   ie->value.present                  = F1AP_ULRRCMessageTransferIEs__value_PR_GNB_DU_UE_F1AP_ID;
   ie->value.choice.GNB_DU_UE_F1AP_ID = f1ap_get_du_ue_f1ap_id(DUtype, instance, rnti);
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   /* mandatory */
   /* c3. SRBID */
   ie = (F1AP_ULRRCMessageTransferIEs_t *)calloc(1, sizeof(F1AP_ULRRCMessageTransferIEs_t));
@@ -566,7 +566,7 @@ int DU_send_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
   ie->criticality                   = F1AP_Criticality_reject;
   ie->value.present                 = F1AP_ULRRCMessageTransferIEs__value_PR_SRBID;
   ie->value.choice.SRBID            = msg->srb_id;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   // issue in here
   /* mandatory */
   /* c4. RRCContainer */
@@ -577,7 +577,7 @@ int DU_send_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
   OCTET_STRING_fromBuf(&ie->value.choice.RRCContainer,
                        (const char *) msg->rrc_container,
                        msg->rrc_container_length);
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   if (msg->srb_id == 1 || msg->srb_id == 2) {
     struct rrc_eNB_ue_context_s *ue_context_p = rrc_eNB_get_ue_context(RC.rrc[instance], rnti);
diff --git a/openair2/F1AP/f1ap_du_system_information.c b/openair2/F1AP/f1ap_du_system_information.c
index b6bbedba2f0ed9c62704a0f9fdcf52c3e182ed60..725bb4e1af40df750c8acad8ceddcf48ba0c9b13 100644
--- a/openair2/F1AP/f1ap_du_system_information.c
+++ b/openair2/F1AP/f1ap_du_system_information.c
@@ -28,4 +28,4 @@
  * \email: navid.nikaein@eurecom.fr, bing-kai.hong@eurecom.fr
  * \note
  * \warning
- */
\ No newline at end of file
+ */
diff --git a/openair2/F1AP/f1ap_du_ue_context_management.c b/openair2/F1AP/f1ap_du_ue_context_management.c
index aae59bbdae333c00ab55852a486fdd052f43b56a..05b4effbc0db8706a86286777d5e3238cf089af4 100644
--- a/openair2/F1AP/f1ap_du_ue_context_management.c
+++ b/openair2/F1AP/f1ap_du_ue_context_management.c
@@ -1053,11 +1053,11 @@ int DU_send_UE_CONTEXT_RELEASE_COMPLETE(instance_t instance,
   //        criticalityDiagnostics_ie_item->iECriticality = F1AP_Criticality_reject;
   //        criticalityDiagnostics_ie_item->iE_ID         = 0L;
   //        criticalityDiagnostics_ie_item->typeOfError   = F1AP_TypeOfError_not_understood;
-  //        ASN_SEQUENCE_ADD(&ie->value.choice.CriticalityDiagnostics.iEsCriticalityDiagnostics->list,
+  //        asn1cSeqAdd(&ie->value.choice.CriticalityDiagnostics.iEsCriticalityDiagnostics->list,
   //                    criticalityDiagnostics_ie_item);
   //    }
   //  }
-  //  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  //  asn1cSeqAdd(&out->protocolIEs.list, ie);
   //}
   /* encode */
   uint8_t  *buffer;
@@ -1078,7 +1078,7 @@ int DU_send_UE_CONTEXT_RELEASE_COMPLETE(instance_t instance,
 
 static instance_t du_create_gtpu_instance_to_cu(char *CUaddr, uint16_t CUport, char *DUaddr, uint16_t DUport)
 {
-  openAddr_t tmp;
+  openAddr_t tmp={0};
   strncpy(tmp.originHost, DUaddr, sizeof(tmp.originHost)-1);
   strncpy(tmp.destinationHost, CUaddr, sizeof(tmp.destinationHost)-1);
   sprintf(tmp.originService, "%d", DUport);
@@ -1427,7 +1427,7 @@ int DU_send_UE_CONTEXT_MODIFICATION_RESPONSE(instance_t instance, f1ap_ue_contex
         &srbs_failedToBeSetupMod_item_ies->value.choice.SRBs_FailedToBeSetupMod_Item;
       /* - sRBID */
       srbs_failedToBeSetupMod_item->sRBID = resp->srbs_failed_to_be_setup[i].rb_id;
-      asn1cCalloc(srbs_failedToBeSetupMod_item->cause, tmp)
+      asn1cCalloc(srbs_failedToBeSetupMod_item->cause, tmp);
       tmp->present = F1AP_Cause_PR_radioNetwork;
       tmp->choice.radioNetwork = F1AP_CauseRadioNetwork_unknown_or_already_allocated_gnb_du_ue_f1ap_id;
     }
diff --git a/openair2/F1AP/f1ap_du_warning_message_transmission.c b/openair2/F1AP/f1ap_du_warning_message_transmission.c
index b6bbedba2f0ed9c62704a0f9fdcf52c3e182ed60..725bb4e1af40df750c8acad8ceddcf48ba0c9b13 100644
--- a/openair2/F1AP/f1ap_du_warning_message_transmission.c
+++ b/openair2/F1AP/f1ap_du_warning_message_transmission.c
@@ -28,4 +28,4 @@
  * \email: navid.nikaein@eurecom.fr, bing-kai.hong@eurecom.fr
  * \note
  * \warning
- */
\ No newline at end of file
+ */
diff --git a/openair2/GNB_APP/gnb_config.c b/openair2/GNB_APP/gnb_config.c
index a33bbd0741e8facf57441393451a82419e74c8bd..2c5db19d6d768bb15fa930f5a357b47aabd8e576 100644
--- a/openair2/GNB_APP/gnb_config.c
+++ b/openair2/GNB_APP/gnb_config.c
@@ -34,6 +34,7 @@
 #include "common/utils/nr/nr_common.h"
 #include "common/utils/LOG/log_extern.h"
 #include "assertions.h"
+#include "oai_asn1.h"
 #include "executables/softmodem-common.h"
 #include "gnb_config.h"
 #include "gnb_paramdef.h"
@@ -125,8 +126,8 @@ void prepare_scc(NR_ServingCellConfigCommon_t *scc) {
   dl_frequencyBandList              = CALLOC(1,sizeof(NR_FreqBandIndicatorNR_t));
   dl_scs_SpecificCarrierList        = CALLOC(1,sizeof(struct NR_SCS_SpecificCarrier));
 
-  ASN_SEQUENCE_ADD(&scc->downlinkConfigCommon->frequencyInfoDL->frequencyBandList.list,dl_frequencyBandList);  
-  ASN_SEQUENCE_ADD(&scc->downlinkConfigCommon->frequencyInfoDL->scs_SpecificCarrierList.list,dl_scs_SpecificCarrierList);		   		   
+  asn1cSeqAdd(&scc->downlinkConfigCommon->frequencyInfoDL->frequencyBandList.list,dl_frequencyBandList);  
+  asn1cSeqAdd(&scc->downlinkConfigCommon->frequencyInfoDL->scs_SpecificCarrierList.list,dl_scs_SpecificCarrierList);		   		   
   //  scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters.cyclicPrefix    = CALLOC(1,sizeof(long));
   scc->downlinkConfigCommon->initialDownlinkBWP->pdcch_ConfigCommon                = CALLOC(1,sizeof(struct NR_SetupRelease_PDCCH_ConfigCommon));
   scc->downlinkConfigCommon->initialDownlinkBWP->pdcch_ConfigCommon->present=NR_SetupRelease_PDCCH_ConfigCommon_PR_setup; 
@@ -148,7 +149,7 @@ void prepare_scc(NR_ServingCellConfigCommon_t *scc) {
 
   ul_frequencyBandList              = CALLOC(1,sizeof(NR_FreqBandIndicatorNR_t));
   scc->uplinkConfigCommon->frequencyInfoUL->frequencyBandList          = CALLOC(1,sizeof(struct NR_MultiFrequencyBandListNR));
-  ASN_SEQUENCE_ADD(&scc->uplinkConfigCommon->frequencyInfoUL->frequencyBandList->list,ul_frequencyBandList);
+  asn1cSeqAdd(&scc->uplinkConfigCommon->frequencyInfoUL->frequencyBandList->list,ul_frequencyBandList);
 
   scc->uplinkConfigCommon->frequencyInfoUL->absoluteFrequencyPointA    = CALLOC(1,sizeof(NR_ARFCN_ValueNR_t));
   //  scc->uplinkConfigCommon->frequencyInfoUL->additionalSpectrumEmission = CALLOC(1,sizeof(NR_AdditionalSpectrumEmission_t));
@@ -191,7 +192,7 @@ void prepare_scc(NR_ServingCellConfigCommon_t *scc) {
   
 
   ul_scs_SpecificCarrierList  = CALLOC(1,sizeof(struct NR_SCS_SpecificCarrier));
-  ASN_SEQUENCE_ADD(&scc->uplinkConfigCommon->frequencyInfoUL->scs_SpecificCarrierList.list,ul_scs_SpecificCarrierList);
+  asn1cSeqAdd(&scc->uplinkConfigCommon->frequencyInfoUL->scs_SpecificCarrierList.list,ul_scs_SpecificCarrierList);
 
   //ratematchpattern                              = CALLOC(1,sizeof(struct NR_RateMatchPattern));
   //ratematchpattern->patternType.choice.bitmaps  = CALLOC(1,sizeof(struct NR_RateMatchPattern__patternType__bitmaps));
@@ -237,12 +238,12 @@ void fill_scc_sim(NR_ServingCellConfigCommon_t *scc,uint64_t *ssb_bitmap,int N_R
   struct NR_PDSCH_TimeDomainResourceAllocation *timedomainresourceallocation0 = CALLOC(1,sizeof(NR_PDSCH_TimeDomainResourceAllocation_t));
   timedomainresourceallocation0->mappingType=NR_PDSCH_TimeDomainResourceAllocation__mappingType_typeA;
   timedomainresourceallocation0->startSymbolAndLength=54;
-  ASN_SEQUENCE_ADD(&scc->downlinkConfigCommon->initialDownlinkBWP->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList->list,
+  asn1cSeqAdd(&scc->downlinkConfigCommon->initialDownlinkBWP->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList->list,
                    timedomainresourceallocation0);
   struct NR_PDSCH_TimeDomainResourceAllocation *timedomainresourceallocation1 = CALLOC(1,sizeof(NR_PDSCH_TimeDomainResourceAllocation_t));
   timedomainresourceallocation1->mappingType=NR_PDSCH_TimeDomainResourceAllocation__mappingType_typeA;
   timedomainresourceallocation1->startSymbolAndLength=57;
-  ASN_SEQUENCE_ADD(&scc->downlinkConfigCommon->initialDownlinkBWP->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList->list,
+  asn1cSeqAdd(&scc->downlinkConfigCommon->initialDownlinkBWP->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList->list,
                    timedomainresourceallocation1);
   *scc->uplinkConfigCommon->frequencyInfoUL->frequencyBandList->list.array[0]=mu_ul?78:38;
   *scc->uplinkConfigCommon->frequencyInfoUL->absoluteFrequencyPointA=-1;
@@ -272,13 +273,13 @@ void fill_scc_sim(NR_ServingCellConfigCommon_t *scc,uint64_t *ssb_bitmap,int N_R
   *pusch_timedomainresourceallocation0->k2=6;
   pusch_timedomainresourceallocation0->mappingType=NR_PUSCH_TimeDomainResourceAllocation__mappingType_typeB;
   pusch_timedomainresourceallocation0->startSymbolAndLength=55;
-  ASN_SEQUENCE_ADD(&scc->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList->list,pusch_timedomainresourceallocation0);
+  asn1cSeqAdd(&scc->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList->list,pusch_timedomainresourceallocation0);
   struct NR_PUSCH_TimeDomainResourceAllocation *pusch_timedomainresourceallocation1 = CALLOC(1,sizeof(struct NR_PUSCH_TimeDomainResourceAllocation));
   pusch_timedomainresourceallocation1->k2  = CALLOC(1,sizeof(long));
   *pusch_timedomainresourceallocation1->k2=6;
   pusch_timedomainresourceallocation1->mappingType=NR_PUSCH_TimeDomainResourceAllocation__mappingType_typeB;
   pusch_timedomainresourceallocation1->startSymbolAndLength=38;
-  ASN_SEQUENCE_ADD(&scc->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList->list,pusch_timedomainresourceallocation1);
+  asn1cSeqAdd(&scc->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList->list,pusch_timedomainresourceallocation1);
   *scc->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon->choice.setup->msg3_DeltaPreamble=1;
   *scc->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon->choice.setup->p0_NominalWithGrant=-90;
  scc->uplinkConfigCommon->initialUplinkBWP->pucch_ConfigCommon->choice.setup->pucch_GroupHopping=NR_PUCCH_ConfigCommon__pucch_GroupHopping_neither; 
@@ -426,17 +427,17 @@ void prepare_scd(NR_ServingCellConfig_t *scd) {
     NR_PTRS_DownlinkCfg->frequencyDensity = CALLOC(1, sizeof(*NR_PTRS_DownlinkCfg->frequencyDensity));
     long *dl_rbs = CALLOC(2, sizeof(long));
     for (int i=0;i<2;i++) {
-      ASN_SEQUENCE_ADD(&NR_PTRS_DownlinkCfg->frequencyDensity->list, &dl_rbs[i]);
+      asn1cSeqAdd(&NR_PTRS_DownlinkCfg->frequencyDensity->list, &dl_rbs[i]);
     }
     NR_PTRS_DownlinkCfg->timeDensity = CALLOC(1, sizeof(*NR_PTRS_DownlinkCfg->timeDensity));
     long *dl_mcs = CALLOC(3, sizeof(long));
     for (int i=0;i<3;i++) {
-      ASN_SEQUENCE_ADD(&NR_PTRS_DownlinkCfg->timeDensity->list, &dl_mcs[i]);
+      asn1cSeqAdd(&NR_PTRS_DownlinkCfg->timeDensity->list, &dl_mcs[i]);
     }
     NR_PTRS_DownlinkCfg->epre_Ratio = CALLOC(1, sizeof(*NR_PTRS_DownlinkCfg->epre_Ratio));
     NR_PTRS_DownlinkCfg->resourceElementOffset = CALLOC(1, sizeof(*NR_PTRS_DownlinkCfg->resourceElementOffset));
     *NR_PTRS_DownlinkCfg->resourceElementOffset = 0;
-    ASN_SEQUENCE_ADD(&scd->downlinkBWP_ToAddModList->list,bwp);
+    asn1cSeqAdd(&scd->downlinkBWP_ToAddModList->list,bwp);
 
     // Allocate uplink structures
 
@@ -455,12 +456,12 @@ void prepare_scd(NR_ServingCellConfig_t *scd) {
     NR_PTRS_UplinkConfig->transformPrecoderDisabled->frequencyDensity = CALLOC(1, sizeof(*NR_PTRS_UplinkConfig->transformPrecoderDisabled->frequencyDensity));
     long *n_rbs = CALLOC(2, sizeof(long));
     for (int i=0;i<2;i++) {
-      ASN_SEQUENCE_ADD(&NR_PTRS_UplinkConfig->transformPrecoderDisabled->frequencyDensity->list, &n_rbs[i]);
+      asn1cSeqAdd(&NR_PTRS_UplinkConfig->transformPrecoderDisabled->frequencyDensity->list, &n_rbs[i]);
     }
     NR_PTRS_UplinkConfig->transformPrecoderDisabled->timeDensity = CALLOC(1, sizeof(*NR_PTRS_UplinkConfig->transformPrecoderDisabled->timeDensity));
     long *ptrs_mcs = CALLOC(3, sizeof(long));
     for (int i = 0; i < 3; i++) {
-      ASN_SEQUENCE_ADD(&NR_PTRS_UplinkConfig->transformPrecoderDisabled->timeDensity->list, &ptrs_mcs[i]);
+      asn1cSeqAdd(&NR_PTRS_UplinkConfig->transformPrecoderDisabled->timeDensity->list, &ptrs_mcs[i]);
     }
     NR_PTRS_UplinkConfig->transformPrecoderDisabled->resourceElementOffset = CALLOC(1, sizeof(*NR_PTRS_UplinkConfig->transformPrecoderDisabled->resourceElementOffset));
     *NR_PTRS_UplinkConfig->transformPrecoderDisabled->resourceElementOffset = 0;
@@ -475,7 +476,7 @@ void prepare_scd(NR_ServingCellConfig_t *scd) {
     ubwp->bwp_Dedicated->pusch_Config->present = NR_SetupRelease_PUSCH_Config_PR_setup;
     ubwp->bwp_Dedicated->pusch_Config->choice.setup = pusch_Config;
 
-    ASN_SEQUENCE_ADD(&scd->uplinkConfig->uplinkBWP_ToAddModList->list,ubwp);
+    asn1cSeqAdd(&scd->uplinkConfig->uplinkBWP_ToAddModList->list,ubwp);
   }
 }
 
diff --git a/openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c b/openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
index cef268d517b59ce1815617d580dccd23b624f1e7..4ba6a19c2a3424501417d484afbe6da96a3d1b86 100644
--- a/openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
+++ b/openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
@@ -53,7 +53,7 @@
 
 /* utils */
 #include "assertions.h"
-#include "asn1_conversions.h"
+#include "oai_asn1.h"
 #include "common/utils/LOG/log.h"
 #include "common/utils/LOG/vcd_signal_dumper.h"
 
diff --git a/openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c b/openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
index 902bb2aec8ba1b0473a95616c118be1efc3d6244..0a742e2b5fb9fd1a8ad3a06afe609080c43a918f 100644
--- a/openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
+++ b/openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
@@ -43,7 +43,7 @@
 
 /* utils */
 #include "assertions.h"
-#include "asn1_conversions.h"
+#include "oai_asn1.h"
 #include "SIMULATION/TOOLS/sim.h" // for taus
 #include "utils.h"
 
diff --git a/openair2/LAYER2/nr_pdcp/asn1_utils.h b/openair2/LAYER2/nr_pdcp/nr_pdcp_asn1_utils.h
similarity index 100%
rename from openair2/LAYER2/nr_pdcp/asn1_utils.h
rename to openair2/LAYER2/nr_pdcp/nr_pdcp_asn1_utils.h
diff --git a/openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c b/openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
index 1c1ee59e9e925c0216e7c867fa2eae4181e4825c..c0046a7713df04b5e49751cb698b14071525453f 100644
--- a/openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
+++ b/openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
@@ -22,7 +22,7 @@
 #ifndef _GNU_SOURCE
 #define _GNU_SOURCE
 #endif
-#include "asn1_utils.h"
+#include "nr_pdcp_asn1_utils.h"
 #include "nr_pdcp_ue_manager.h"
 #include "nr_pdcp_timer_thread.h"
 #include "NR_RadioBearerConfig.h"
@@ -33,6 +33,7 @@
 #include <stdint.h>
 
 /* from OAI */
+#include "oai_asn1.h"
 #include "pdcp.h"
 #include "LAYER2/nr_rlc/nr_rlc_oai_api.h"
 #include <openair3/ocp-gtpu/gtp_itf.h>
@@ -1071,7 +1072,7 @@ void nr_DRB_preconfiguration(ue_id_t crntiMaybeUEid)
   *drb_ToAddMod->pdcp_Config->t_Reordering = NR_PDCP_Config__t_Reordering_ms0;
   drb_ToAddMod->pdcp_Config->ext1 = NULL;
 
-  ASN_SEQUENCE_ADD(&rbconfig->drb_ToAddModList->list,drb_ToAddMod);
+  asn1cSeqAdd(&rbconfig->drb_ToAddModList->list,drb_ToAddMod);
 
   rbconfig->drb_ToReleaseList = NULL;
 
@@ -1093,7 +1094,7 @@ void nr_DRB_preconfiguration(ue_id_t crntiMaybeUEid)
   nr_rlc_bearer_init_ul_spec(RLC_BearerConfig->mac_LogicalChannelConfig);
 
   Rlc_Bearer_ToAdd_list = calloc(1,sizeof(*Rlc_Bearer_ToAdd_list));
-  ASN_SEQUENCE_ADD(&Rlc_Bearer_ToAdd_list->list, RLC_BearerConfig);
+  asn1cSeqAdd(&Rlc_Bearer_ToAdd_list->list, RLC_BearerConfig);
 
   if (ENB_NAS_USE_TUN){
     PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, 0, ENB_FLAG_YES, crntiMaybeUEid, 0, 0, 0);
diff --git a/openair2/LAYER2/nr_rlc/asn1_utils.h b/openair2/LAYER2/nr_rlc/nr_rlc_asn1_utils.h
similarity index 100%
rename from openair2/LAYER2/nr_rlc/asn1_utils.h
rename to openair2/LAYER2/nr_rlc/nr_rlc_asn1_utils.h
diff --git a/openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c b/openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
index d841260475918ee1ca88f0498a0d749069771bef..d17e53cce49f2d4f32d127540128b394b0387439 100644
--- a/openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
+++ b/openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
@@ -24,7 +24,7 @@
 #include "pdcp.h"
 
 /* from nr rlc module */
-#include "asn1_utils.h"
+#include "nr_rlc_asn1_utils.h"
 #include "nr_rlc_ue_manager.h"
 #include "nr_rlc_entity.h"
 #include "nr_rlc_oai_api.h"
diff --git a/openair2/LAYER2/rlc_v2/asn1_utils.h b/openair2/LAYER2/rlc_v2/rlc_asn1_utils.h
similarity index 100%
rename from openair2/LAYER2/rlc_v2/asn1_utils.h
rename to openair2/LAYER2/rlc_v2/rlc_asn1_utils.h
diff --git a/openair2/LAYER2/rlc_v2/rlc_oai_api.c b/openair2/LAYER2/rlc_v2/rlc_oai_api.c
index d0ab6a0632e29f1f37e53ef2e72238de288fb9e9..7e9a33e087723858300a2973232d5e38c676bab1 100644
--- a/openair2/LAYER2/rlc_v2/rlc_oai_api.c
+++ b/openair2/LAYER2/rlc_v2/rlc_oai_api.c
@@ -24,7 +24,7 @@
 #include "pdcp.h"
 
 /* from new rlc module */
-#include "asn1_utils.h"
+#include "rlc_asn1_utils.h"
 #include "rlc_ue_manager.h"
 #include "rlc_entity.h"
 
diff --git a/openair2/M2AP/m2ap_MCE_generate_messages.c b/openair2/M2AP/m2ap_MCE_generate_messages.c
index 969863b4459b29a3308aa5fb8b7fe6ecc5241e44..3a4c1bb4734c7519332721d2ec5b8a421d7ce70c 100644
--- a/openair2/M2AP/m2ap_MCE_generate_messages.c
+++ b/openair2/M2AP/m2ap_MCE_generate_messages.c
@@ -83,7 +83,7 @@ int m2ap_MCE_generate_m2_setup_request(
   //          ie->value.choice.GlobalMCE_ID.MCE_ID.choice.macro_MCE_ID.buf[0],
   //          ie->value.choice.GlobalMCE_ID.MCE_ID.choice.macro_MCE_ID.buf[1],
   //          ie->value.choice.GlobalMCE_ID.MCE_ID.choice.macro_MCE_ID.buf[2]);
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (M2AP_M2SetupRequest_Ies_t *)calloc(1, sizeof(M2AP_M2SetupRequest_Ies_t));
@@ -105,7 +105,7 @@ int m2ap_MCE_generate_m2_setup_request(
   //      plmn = (M2AP_PLMN_Identity_t *)calloc(1,sizeof(M2AP_PLMN_Identity_t));
   //      {
   //        MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length, plmn);
-  //        ASN_SEQUENCE_ADD(&servedCellMember->servedCellInfo.broadcastPLMNs.list, plmn);
+  //        asn1cSeqAdd(&servedCellMember->servedCellInfo.broadcastPLMNs.list, plmn);
   //      }
 
   //      if (instance_p->frame_type[i] == FDD) {
@@ -146,10 +146,10 @@ int m2ap_MCE_generate_m2_setup_request(
   //        AssertFatal(0,"M2Setuprequest not supported for TDD!");
   //      }
   //    }
-  //    ASN_SEQUENCE_ADD(&ie->value.choice.ServedCells.list, servedCellMember);
+  //    asn1cSeqAdd(&ie->value.choice.ServedCells.list, servedCellMember);
   //  }
   //}
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (M2AP_M2SetupRequest_Ies_t *)calloc(1, sizeof(M2AP_M2SetupRequest_Ies_t));
@@ -164,9 +164,9 @@ int m2ap_MCE_generate_m2_setup_request(
   //    //@TODO: consider to update this value
   //    INT16_TO_OCTET_STRING(0, &gu->mME_Group_ID);
   //  }
-  //  ASN_SEQUENCE_ADD(&ie->value.choice.GUGroupIDList.list, gu);
+  //  asn1cSeqAdd(&ie->value.choice.GUGroupIDList.list, gu);
   //}
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   if (m2ap_encode_pdu(&pdu, &buffer, &len) < 0) {
     M2AP_ERROR("Failed to encode M2 setup request\n");
@@ -216,7 +216,7 @@ int m2ap_MCE_generate_m2_setup_response(m2ap_MCE_instance_t *instance_p, m2ap_MC
   //          ie->value.choice.GlobalMCE_ID.MCE_ID.choice.macro_MCE_ID.buf[0],
   //          ie->value.choice.GlobalMCE_ID.MCE_ID.choice.macro_MCE_ID.buf[1],
   //          ie->value.choice.GlobalMCE_ID.MCE_ID.choice.macro_MCE_ID.buf[2]);
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (M2AP_M2SetupResponse_Ies_t *)calloc(1, sizeof(M2AP_M2SetupResponse_Ies_t));
@@ -238,7 +238,7 @@ int m2ap_MCE_generate_m2_setup_response(m2ap_MCE_instance_t *instance_p, m2ap_MC
   //      plmn = (M2AP_PLMN_Identity_t *)calloc(1,sizeof(M2AP_PLMN_Identity_t));
   //      {
   //        MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length, plmn);
-  //        ASN_SEQUENCE_ADD(&servedCellMember->servedCellInfo.broadcastPLMNs.list, plmn);
+  //        asn1cSeqAdd(&servedCellMember->servedCellInfo.broadcastPLMNs.list, plmn);
   //      }
 
   //      if (instance_p->frame_type[i] == FDD) {
@@ -279,10 +279,10 @@ int m2ap_MCE_generate_m2_setup_response(m2ap_MCE_instance_t *instance_p, m2ap_MC
   //        AssertFatal(0,"M2Setupresponse not supported for TDD!");
   //      }
   //    }
-  //    ASN_SEQUENCE_ADD(&ie->value.choice.ServedCells.list, servedCellMember);
+  //    asn1cSeqAdd(&ie->value.choice.ServedCells.list, servedCellMember);
   //  }
   //}
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (M2AP_M2SetupResponse_Ies_t *)calloc(1, sizeof(M2AP_M2SetupResponse_Ies_t));
@@ -297,9 +297,9 @@ int m2ap_MCE_generate_m2_setup_response(m2ap_MCE_instance_t *instance_p, m2ap_MC
   //    //@TODO: consider to update this value
   //    INT16_TO_OCTET_STRING(0, &gu->mME_Group_ID);
   //  }
-  //  ASN_SEQUENCE_ADD(&ie->value.choice.GUGroupIDList.list, gu);
+  //  asn1cSeqAdd(&ie->value.choice.GUGroupIDList.list, gu);
   //}
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   if (m2ap_encode_pdu(&pdu, &buffer, &len) < 0) {
     M2AP_ERROR("Failed to encode M2 setup response\n");
@@ -343,7 +343,7 @@ int m2ap_MCE_generate_m2_setup_failure(instance_t instance,
 
   //m2ap_MCE_set_cause (&ie->value.choice.Cause, cause_type, cause_value);
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* optional: consider to handle this later */
   ie = (M2AP_M2SetupFailure_Ies_t *)calloc(1, sizeof(M2AP_M2SetupFailure_Ies_t));
@@ -355,7 +355,7 @@ int m2ap_MCE_generate_m2_setup_failure(instance_t instance,
   //  ie->value.choice.TimeToWait = time_to_wait;
   //}
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   if (m2ap_encode_pdu(&pdu, &buffer, &len) < 0) {
     M2AP_ERROR("Failed to encode M2 setup failure\n");
@@ -431,7 +431,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
 //  ie->criticality = M2AP_Criticality_reject;
 //  ie->value.present = M2AP_HandoverRequest_IEs__value_PR_UE_M2AP_ID;
 //  ie->value.choice.UE_M2AP_ID = m2ap_id_get_id_source(&instance_p->id_manager, ue_id);
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequest_IEs_t));
@@ -440,7 +440,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
 //  ie->value.present = M2AP_HandoverRequest_IEs__value_PR_Cause;
 //  ie->value.choice.Cause.present = M2AP_Cause_PR_radioNetwork;
 //  ie->value.choice.Cause.choice.radioNetwork = M2AP_CauseRadioNetwork_handover_desirable_for_radio_reasons;
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequest_IEs_t));
@@ -450,7 +450,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
 //  MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length,
 //                       &ie->value.choice.ECGI.pLMN_Identity);
 //  MACRO_MCE_ID_TO_CELL_IDENTITY(m2ap_MCE_data_p->MCE_id, 0, &ie->value.choice.ECGI.eUTRANcellIdentifier);
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequest_IEs_t));
@@ -462,7 +462,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
 //  //@TODO: consider to update these values
 //  INT16_TO_OCTET_STRING(m2ap_handover_req->ue_gummei.mme_group_id, &ie->value.choice.GUMMEI.gU_Group_ID.mME_Group_ID);
 //  MME_CODE_TO_OCTET_STRING(m2ap_handover_req->ue_gummei.mme_code, &ie->value.choice.GUMMEI.mME_Code);
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequest_IEs_t));
@@ -514,13 +514,13 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
 //
 //        INT32_TO_OCTET_STRING(m2ap_handover_req->e_rabs_tobesetup[i].gtp_teid,&e_RABs_ToBeSetup_Item->uL_GTPtunnelEndpoint.gTP_TEID);
 //      }
-//      ASN_SEQUENCE_ADD(&ie->value.choice.UE_ContextInformation.e_RABs_ToBeSetup_List.list, e_RABS_ToBeSetup_ItemIEs);
+//      asn1cSeqAdd(&ie->value.choice.UE_ContextInformation.e_RABs_ToBeSetup_List.list, e_RABS_ToBeSetup_ItemIEs);
 //    }
 //  }
 //
 //  OCTET_STRING_fromBuf(&ie->value.choice.UE_ContextInformation.rRC_Context, (char*) m2ap_handover_req->rrc_buffer, m2ap_handover_req->rrc_buffer_size);
 //
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequest_IEs_t));
@@ -536,10 +536,10 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
 //   MACRO_MCE_ID_TO_CELL_IDENTITY(0, 0, &lastVisitedCell_Item->choice.e_UTRAN_Cell.global_Cell_ID.eUTRANcellIdentifier);
 //   lastVisitedCell_Item->choice.e_UTRAN_Cell.cellType.cell_Size = M2AP_Cell_Size_small;
 //   lastVisitedCell_Item->choice.e_UTRAN_Cell.time_UE_StayedInCell = 2;
-//   ASN_SEQUENCE_ADD(&ie->value.choice.UE_HistoryInformation.list, lastVisitedCell_Item);
+//   asn1cSeqAdd(&ie->value.choice.UE_HistoryInformation.list, lastVisitedCell_Item);
 //  }
 //
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  if (m2ap_MCE_encode_pdu(&pdu, &buffer, &len) < 0) {
 //    M2AP_ERROR("Failed to encode X2 handover request\n");
@@ -590,7 +590,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
 //  ie->criticality = M2AP_Criticality_ignore;
 //  ie->value.present = M2AP_HandoverRequestAcknowledge_IEs__value_PR_UE_M2AP_ID;
 //  ie->value.choice.UE_M2AP_ID = id_source;
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequestAcknowledge_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequestAcknowledge_IEs_t));
@@ -598,7 +598,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
 //  ie->criticality = M2AP_Criticality_ignore;
 //  ie->value.present = M2AP_HandoverRequestAcknowledge_IEs__value_PR_UE_M2AP_ID_1;
 //  ie->value.choice.UE_M2AP_ID_1 = id_target;
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequestAcknowledge_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequestAcknowledge_IEs_t));
@@ -616,11 +616,11 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
 //        {
 //          e_RABs_Admitted_Item->e_RAB_ID = m2ap_handover_req_ack->e_rabs_tobesetup[i].e_rab_id;
 //        }
-//        ASN_SEQUENCE_ADD(&ie->value.choice.E_RABs_Admitted_List.list, e_RABS_Admitted_ItemIEs);
+//        asn1cSeqAdd(&ie->value.choice.E_RABs_Admitted_List.list, e_RABS_Admitted_ItemIEs);
 //      }
 //  }
 //
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequestAcknowledge_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequestAcknowledge_IEs_t));
@@ -630,7 +630,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
 //
 //  OCTET_STRING_fromBuf(&ie->value.choice.TargetMCEtoSource_MCETransparentContainer, (char*) m2ap_handover_req_ack->rrc_buffer, m2ap_handover_req_ack->rrc_buffer_size);
 //
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  if (m2ap_MCE_encode_pdu(&pdu, &buffer, &len) < 0) {
 //    M2AP_ERROR("Failed to encode X2 handover response\n");
@@ -682,7 +682,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
 //  ie->criticality = M2AP_Criticality_reject;
 //  ie->value.present = M2AP_UEContextRelease_IEs__value_PR_UE_M2AP_ID;
 //  ie->value.choice.UE_M2AP_ID = id_source;
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_UEContextRelease_IEs_t *)calloc(1, sizeof(M2AP_UEContextRelease_IEs_t));
@@ -690,7 +690,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
 //  ie->criticality = M2AP_Criticality_reject;
 //  ie->value.present = M2AP_UEContextRelease_IEs__value_PR_UE_M2AP_ID_1;
 //  ie->value.choice.UE_M2AP_ID_1 = id_target;
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  if (m2ap_MCE_encode_pdu(&pdu, &buffer, &len) < 0) {
 //    M2AP_ERROR("Failed to encode X2 UE Context Release\n");
@@ -739,7 +739,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
 //  ie->criticality = M2AP_Criticality_reject;
 //  ie->value.present = M2AP_HandoverCancel_IEs__value_PR_UE_M2AP_ID;
 //  ie->value.choice.UE_M2AP_ID = id_source;
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* optional */
 //  if (id_target != -1) {
@@ -748,7 +748,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
 //    ie->criticality = M2AP_Criticality_ignore;
 //    ie->value.present = M2AP_HandoverCancel_IEs__value_PR_UE_M2AP_ID_1;
 //    ie->value.choice.UE_M2AP_ID_1 = id_target;
-//    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//    asn1cSeqAdd(&out->protocolIEs.list, ie);
 //  }
 //
 //  /* mandatory */
@@ -772,7 +772,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
 //    M2AP_ERROR("unhandled cancel cause\n");
 //    exit(1);
 //  }
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  if (m2ap_MCE_encode_pdu(&pdu, &buffer, &len) < 0) {
 //    M2AP_ERROR("Failed to encode X2 Handover Cancel\n");
diff --git a/openair2/M2AP/m2ap_MCE_handler.c b/openair2/M2AP/m2ap_MCE_handler.c
index 3f6d5ff64df3d1f235bde37a81a7de05d5372fa2..540acc4f6d69f60ca11a10d6ef6a61a6dd8a901f 100644
--- a/openair2/M2AP/m2ap_MCE_handler.c
+++ b/openair2/M2AP/m2ap_MCE_handler.c
@@ -30,7 +30,7 @@
 
 #include "intertask_interface.h"
 
-#include "asn1_conversions.h"
+#include "oai_asn1.h"
 
 #include "m2ap_common.h"
 #include "m2ap_MCE_defs.h"
diff --git a/openair2/M2AP/m2ap_MCE_interface_management.c b/openair2/M2AP/m2ap_MCE_interface_management.c
index 28f5fccffa4916bb33bc5110bc72a430b093314f..0ece50b88e29075ff8bf5166e6bcbba3924ff951 100644
--- a/openair2/M2AP/m2ap_MCE_interface_management.c
+++ b/openair2/M2AP/m2ap_MCE_interface_management.c
@@ -76,7 +76,7 @@ int MCE_send_MBMS_SESSION_START_REQUEST(instance_t instance/*, uint32_t assoc_id
   ie->criticality               = M2AP_Criticality_reject;
   ie->value.present             = M2AP_SessionStartRequest_Ies__value_PR_MCE_MBMS_M2AP_ID;
   //ie->value.choice.MCE_MBMS_M2AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   /* c2. TMGI (integrer value) */
@@ -90,7 +90,7 @@ int MCE_send_MBMS_SESSION_START_REQUEST(instance_t instance/*, uint32_t assoc_id
  
                        //&ie->choice.TMGI.pLMN_Identity);
   //INT16_TO_OCTET_STRING(0,&ie->choice.TMGI.serviceId);
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   /* c3. MBMS_Session_ID (integrer value) */ //OCTET_STRING
@@ -100,7 +100,7 @@ int MCE_send_MBMS_SESSION_START_REQUEST(instance_t instance/*, uint32_t assoc_id
 	  ie->criticality               = M2AP_Criticality_reject;
 	  ie->value.present             = M2AP_SessionStartRequest_Ies__value_PR_MBMS_Session_ID;
   	  //INT16_TO_OCTET_STRING(0,&ie->choice.MBMS_Session_ID);
-	  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+	  asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
 
   /* mandatory */
@@ -113,7 +113,7 @@ int MCE_send_MBMS_SESSION_START_REQUEST(instance_t instance/*, uint32_t assoc_id
                          //strlen(m2ap_setup_resp->MCEname));
   //INT16_TO_OCTET_STRING(0,&ie->choice.TMGI.serviceId);
   ie->value.choice.MBMS_Service_Area.buf = calloc(3,sizeof(uint8_t));
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
 
   /* mandatory */
@@ -131,7 +131,7 @@ int MCE_send_MBMS_SESSION_START_REQUEST(instance_t instance/*, uint32_t assoc_id
   OCTET_STRING_fromBuf(&ie->value.choice.TNL_Information.iPMCAddress, "1204",strlen("1234"));
   OCTET_STRING_fromBuf(&ie->value.choice.TNL_Information.iPSourceAddress, "1204",strlen("1234"));
   
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   if(0){
 	 // /* optional */
@@ -141,7 +141,7 @@ int MCE_send_MBMS_SESSION_START_REQUEST(instance_t instance/*, uint32_t assoc_id
 	 // ie->criticality               = M2AP_Criticality_reject;
 	 // ie->value.present             = M2AP_SessionStartRequest_Ies__value_PR_TNL_Information_1;
 	 // //asn_int642INTEGER(&ie->value.choice.MBMS_Session_ID, f1ap_du_data->MBMS_Session_ID); //?
-	 // ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+	 // asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
    
 
@@ -258,8 +258,8 @@ int MCE_send_MBMS_SESSION_STOP_REQUEST(instance_t instance, m2ap_session_stop_re
   ie->id                        = M2AP_ProtocolIE_ID_id_MCE_MBMS_M2AP_ID;
   ie->criticality               = M2AP_Criticality_reject;
   ie->value.present             = M2AP_SessionStopRequest_Ies__value_PR_MCE_MBMS_M2AP_ID;
-  ie->value.choice.MCE_MBMS_M2AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  ie->value.choice.MCE_MBMS_M2AP_ID = 0; /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   /* c2. ENB_MBMS_M2AP_ID (integer value) */ //long
@@ -267,9 +267,9 @@ int MCE_send_MBMS_SESSION_STOP_REQUEST(instance_t instance, m2ap_session_stop_re
   ie->id                        = M2AP_ProtocolIE_ID_id_ENB_MBMS_M2AP_ID;
   ie->criticality               = M2AP_Criticality_reject;
   ie->value.present             = M2AP_SessionStopRequest_Ies__value_PR_ENB_MBMS_M2AP_ID;
-  ie->value.choice.ENB_MBMS_M2AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
+  ie->value.choice.ENB_MBMS_M2AP_ID = 0;/*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
 
   /* encode */
@@ -411,7 +411,7 @@ int MCE_send_MBMS_SCHEDULING_INFORMATION(instance_t instance, /*uint32_t assoc_i
   //ie->value.choice.MCCH_Update_Time =  ; 
   ie->value.choice.MCCH_Update_Time = m2ap_mbms_scheduling_information->mcch_update_time;
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);  
+  asn1cSeqAdd(&out->protocolIEs.list, ie);  
 
   /* mandatory */
   /* c2. MBSFN_Area_Configuration_List */ //long
@@ -471,7 +471,7 @@ int MCE_send_MBMS_SCHEDULING_INFORMATION(instance_t instance, /*uint32_t assoc_i
                 member->lcid = m2ap_mbms_scheduling_information->mbms_area_config_list[i].pmch_config_list[j].mbms_session_list[k].lcid;
 		//member->lcid = (M2AP_LCID_t*)calloc(1,sizeof(M2AP_LCID_t));
 		
-            	ASN_SEQUENCE_ADD(&pmch_configuration_item->mbms_Session_List.list,member);
+            	asn1cSeqAdd(&pmch_configuration_item->mbms_Session_List.list,member);
             }
       
       	}
@@ -479,11 +479,11 @@ int MCE_send_MBMS_SCHEDULING_INFORMATION(instance_t instance, /*uint32_t assoc_i
       // M2AP_MBSFN_Area_Configuration_Item_t *mbsfn_area_configuration_item_ie2;
       //(mbsfn_area_configuration_item_ie+1) =(M2AP_MBSFN_Area_Configuration_Item_t*)calloc(1,sizeof(M2AP_MBSFN_Area_Configuration_Item_t)); 
 
-      	ASN_SEQUENCE_ADD(&mbsfn_area_configuration_item_ie->value.choice.PMCH_Configuration_List.list,pmch_configuration_item_ies);
+      	asn1cSeqAdd(&mbsfn_area_configuration_item_ie->value.choice.PMCH_Configuration_List.list,pmch_configuration_item_ies);
 
       }
 
-      ASN_SEQUENCE_ADD(m2ap_mbsfn_area_configuration_list,mbsfn_area_configuration_item_ie);
+      asn1cSeqAdd(m2ap_mbsfn_area_configuration_list,mbsfn_area_configuration_item_ie);
 
       /*M2AP_MBSFN_Area_Configuration_Item_t*/
       M2AP_MBSFN_Area_Configuration_Item_t *mbsfn_area_configuration_item_ie_1;
@@ -523,11 +523,11 @@ int MCE_send_MBMS_SCHEDULING_INFORMATION(instance_t instance, /*uint32_t assoc_i
 			   mbsfn_subframe_configuration->subframeAllocation.choice.oneFrame.buf[0] = (m2ap_mbms_scheduling_information->mbms_area_config_list[i].mbms_sf_config_list[j].subframe_allocation & 0x3F)<<2;
 		   }
 
-		   ASN_SEQUENCE_ADD(&(mbsfn_area_configuration_item_ie_1)->value.choice.MBSFN_Subframe_ConfigurationList.list,mbsfn_subframe_configuration_item_ies);
+		   asn1cSeqAdd(&(mbsfn_area_configuration_item_ie_1)->value.choice.MBSFN_Subframe_ConfigurationList.list,mbsfn_subframe_configuration_item_ies);
 	   }
        }
 
-       ASN_SEQUENCE_ADD(m2ap_mbsfn_area_configuration_list,mbsfn_area_configuration_item_ie_1);
+       asn1cSeqAdd(m2ap_mbsfn_area_configuration_list,mbsfn_area_configuration_item_ie_1);
 
 
       /*M2AP_MBSFN_Area_Configuration_Item_t*/
@@ -538,7 +538,7 @@ int MCE_send_MBMS_SCHEDULING_INFORMATION(instance_t instance, /*uint32_t assoc_i
       (mbsfn_area_configuration_item_ie_2)->value.present = M2AP_MBSFN_Area_Configuration_Item__value_PR_Common_Subframe_Allocation_Period;
       (mbsfn_area_configuration_item_ie_2)->value.choice.Common_Subframe_Allocation_Period=m2ap_mbms_scheduling_information->mbms_area_config_list[i].common_sf_allocation_period;
 
-       ASN_SEQUENCE_ADD(m2ap_mbsfn_area_configuration_list,mbsfn_area_configuration_item_ie_2);
+       asn1cSeqAdd(m2ap_mbsfn_area_configuration_list,mbsfn_area_configuration_item_ie_2);
 
 
       /*M2AP_MBSFN_Area_Configuration_Item_t*/
@@ -549,7 +549,7 @@ int MCE_send_MBMS_SCHEDULING_INFORMATION(instance_t instance, /*uint32_t assoc_i
       (mbsfn_area_configuration_item_ie_3)->value.present = M2AP_MBSFN_Area_Configuration_Item__value_PR_MBSFN_Area_ID;
       (mbsfn_area_configuration_item_ie_3)->value.choice.MBSFN_Area_ID = m2ap_mbms_scheduling_information->mbms_area_config_list[i].mbms_area_id;
 
-      ASN_SEQUENCE_ADD(m2ap_mbsfn_area_configuration_list,mbsfn_area_configuration_item_ie_3);
+      asn1cSeqAdd(m2ap_mbsfn_area_configuration_list,mbsfn_area_configuration_item_ie_3);
 
 
 ASN_SET_ADD(&ie->value.choice.MBSFN_Area_Configuration_List,m2ap_mbsfn_area_configuration_list);
@@ -563,7 +563,7 @@ ASN_SET_ADD(&ie->value.choice.MBSFN_Area_Configuration_List,m2ap_mbsfn_area_conf
   }
 
 
- ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);  
+ asn1cSeqAdd(&out->protocolIEs.list, ie);  
 
  
  
@@ -879,7 +879,7 @@ int MCE_send_M2_SETUP_RESPONSE(instance_t instance, /*uint32_t assoc_id,*/
   ie->value.choice.GlobalMCE_ID.mCE_ID.size=2;
   //ie->value.choice.GlobalMCE_ID.mCE_ID.bits_unused=0;
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
  
   /* optional */
   /* c2. MCEname */
@@ -890,7 +890,7 @@ int MCE_send_M2_SETUP_RESPONSE(instance_t instance, /*uint32_t assoc_id,*/
     ie->value.present             = M2AP_M2SetupResponse_Ies__value_PR_MCEname;
     OCTET_STRING_fromBuf(&ie->value.choice.MCEname, m2ap_setup_resp->MCE_name,
                          strlen(m2ap_setup_resp->MCE_name));
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
 
   /* mandatory */
@@ -934,12 +934,12 @@ int MCE_send_M2_SETUP_RESPONSE(instance_t instance, /*uint32_t assoc_id,*/
 		//memset(&config_per_mbsfn_area_item->subframeAllocationInfo,0,sizeof(BIT_STRING_t));
 		
 		config_per_mbsfn_area_item->modulationAndCodingScheme = m2ap_setup_resp->mcch_config_per_mbsfn[i].mcs;//M2AP_MCCHrelatedBCCH_ConfigPerMBSFNArea_Item__modulationAndCodingScheme_n2;
-		ASN_SEQUENCE_ADD(&ie->value.choice.MCCHrelatedBCCH_ConfigPerMBSFNArea.list,mcch_related_bcch_config_per_mbsfn_area_item_ies);
+		asn1cSeqAdd(&ie->value.choice.MCCHrelatedBCCH_ConfigPerMBSFNArea.list,mcch_related_bcch_config_per_mbsfn_area_item_ies);
 	  }
 
   }
  
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   
 
   /* encode */
@@ -986,7 +986,7 @@ int MCE_send_M2_SETUP_FAILURE(instance_t instance,m2ap_setup_failure_t* m2ap_set
  // ie->criticality               = M2AP_Criticality_reject;
  // ie->value.present             = M2AP_M2SetupFailure_Ies__value_PR_GlobalENB_ID;
  // ie->value.choice.GlobalENB_ID = M2AP_get_next_transaction_identifier(enb_mod_idP, mce_mod_idP);
- // ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+ // asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   /* c2. Cause */
@@ -996,7 +996,7 @@ int MCE_send_M2_SETUP_FAILURE(instance_t instance,m2ap_setup_failure_t* m2ap_set
   ie->value.present             = M2AP_M2SetupFailure_Ies__value_PR_Cause;
   ie->value.choice.Cause.present = M2AP_Cause_PR_radioNetwork;
   ie->value.choice.Cause.choice.radioNetwork = M2AP_CauseRadioNetwork_unspecified;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* optional */
   /* c3. TimeToWait */
@@ -1006,7 +1006,7 @@ int MCE_send_M2_SETUP_FAILURE(instance_t instance,m2ap_setup_failure_t* m2ap_set
     ie->criticality               = M2AP_Criticality_ignore;
     ie->value.present             = M2AP_M2SetupFailure_Ies__value_PR_TimeToWait;
     ie->value.choice.TimeToWait = M2AP_TimeToWait_v10s;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
 
   /* optional */
@@ -1024,7 +1024,7 @@ int MCE_send_M2_SETUP_FAILURE(instance_t instance,m2ap_setup_failure_t* m2ap_set
     *ie->value.choice.CriticalityDiagnostics.procedureCriticality = M2AP_Criticality_reject;
     //ie->value.choice.CriticalityDiagnostics.transactionID = (M2AP_TransactionID_t *)calloc(1, sizeof(M2AP_TransactionID_t));
     //*ie->value.choice.CriticalityDiagnostics.transactionID = 0;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
 
   /* encode */
@@ -1080,7 +1080,7 @@ int MCE_send_MCE_CONFIGURATION_UPDATE(instance_t instance, module_id_t du_mod_id
   ie->value.choice.GlobalMCE_ID.mCE_ID.size=2;
   //ie->value.choice.GlobalMCE_ID.mCE_ID.bits_unused=6;
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
  
   /* optional */
   /* c2. MCEname */
@@ -1091,7 +1091,7 @@ int MCE_send_MCE_CONFIGURATION_UPDATE(instance_t instance, module_id_t du_mod_id
   //  ie->value.present             = M2AP_MCEConfigurationUpdate_Ies__value_PR_MCEname;
   //  OCTET_STRING_fromBuf(&ie->value.choice.MCEname, m2ap_setup_resp->MCEname,
   //                       strlen(m2ap_setup_resp->MCEname));
-  //  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  //  asn1cSeqAdd(&out->protocolIEs.list, ie);
   //}
 
   /* mandatory */
@@ -1122,10 +1122,10 @@ int MCE_send_MCE_CONFIGURATION_UPDATE(instance_t instance, module_id_t du_mod_id
 	//memset(&config_per_mbsfn_area_item->subframeAllocationInfo,0,sizeof(BIT_STRING_t));
 	
         config_per_mbsfn_area_item->modulationAndCodingScheme = M2AP_MCCHrelatedBCCH_ConfigPerMBSFNArea_Item__modulationAndCodingScheme_n2;
-	ASN_SEQUENCE_ADD(&ie->value.choice.MCCHrelatedBCCH_ConfigPerMBSFNArea.list,mcch_related_bcch_config_per_mbsfn_area_item_ies);
+	asn1cSeqAdd(&ie->value.choice.MCCHrelatedBCCH_ConfigPerMBSFNArea.list,mcch_related_bcch_config_per_mbsfn_area_item_ies);
   }
   
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   
 
   /* encode */
@@ -1428,7 +1428,7 @@ int MCE_handle_MBMS_SESSION_COUNTING_FAILURE(instance_t instance,  module_id_t d
   //ie->value.choice.MCCH_Update_Time =  ; 
   //ie->value.choice.MCCH_Update_Time = m2ap_mbms_scheduling_information->mcch_update_time;
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);  
+  asn1cSeqAdd(&out->protocolIEs.list, ie);  
 
 
   /* mandatory */
@@ -1438,7 +1438,7 @@ int MCE_handle_MBMS_SESSION_COUNTING_FAILURE(instance_t instance,  module_id_t d
   ie->criticality               = M2AP_Criticality_reject;
   ie->value.present             = M2AP_MbmsServiceCountingRequest_Ies__value_PR_MBSFN_Area_ID;
   //ie->value.choice.MCE_MBMS_M2AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   /* c2. TMGI (integrer value) */
@@ -1451,7 +1451,7 @@ int MCE_handle_MBMS_SESSION_COUNTING_FAILURE(instance_t instance,  module_id_t d
 
                         //&ie->choice.TMGI.pLMN_Identity);
   //INT16_TO_OCTET_STRING(0,&ie->choice.TMGI.serviceId);
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   if (m2ap_encode_pdu(&pdu, &buffer, &len) < 0) {
     LOG_E(M2AP, "Failed to encode MBMS Service Counting Results Report\n");
diff --git a/openair2/M2AP/m2ap_common.h b/openair2/M2AP/m2ap_common.h
index 2e84c51938dabc89e8577b5655902aa32d9ecb6d..c144c78dcfda957b8d0721a5b408c4e8305a7234 100644
--- a/openair2/M2AP/m2ap_common.h
+++ b/openair2/M2AP/m2ap_common.h
@@ -20,7 +20,7 @@
  */
 #ifndef M2AP_COMMON_H_
 #define M2AP_COMMON_H_
-
+#include "oai_asn1.h"
 #include "M2AP_ProtocolIE-Field.h"
 #include "M2AP_M2AP-PDU.h"
 #include "M2AP_InitiatingMessage.h"
diff --git a/openair2/M2AP/m2ap_eNB_generate_messages.c b/openair2/M2AP/m2ap_eNB_generate_messages.c
index 6496d608b8bddcc91ffdf2d9ae5e3952b1e10eda..89c83a87018a6e1ac5e2a952466cd00eb2f5456f 100644
--- a/openair2/M2AP/m2ap_eNB_generate_messages.c
+++ b/openair2/M2AP/m2ap_eNB_generate_messages.c
@@ -84,7 +84,7 @@
 //          ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf[1],
 //          ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf[2]);
 //
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  ///* mandatory */
 //  ///* c2. GNB_eNB_ID (integrer value) */
@@ -93,7 +93,7 @@
 //  //ie->criticality               = M2AP_Criticality_reject;
 //  //ie->value.present             = M2AP_M2SetupRequestIEs__value_PR_GNB_eNB_ID;
 //  //asn_int642INTEGER(&ie->value.choice.GNB_eNB_ID, f1ap_du_data->gNB_eNB_id);
-//  //ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  //asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* optional */
 //  /* c3. ENBname */
@@ -104,7 +104,7 @@
 //    ie->value.present             = M2AP_M2SetupRequest_Ies__value_PR_ENBname;
 //    //OCTET_STRING_fromBuf(&ie->value.choice.ENB_Name, m2ap_eNB_data_p->eNB_name,
 //                         //strlen(m2ap_eNB_data_p->eNB_name));
-//    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//    asn1cSeqAdd(&out->protocolIEs.list, ie);
 //  }
 //
 //  /* mandatory */
@@ -138,7 +138,7 @@
 //                                   &mbms_configuration_data_item->eCGI.eUTRANcellIdentifier);
 //		M2AP_MBMS_Service_Area_t * mbms_service_area;
 //		mbms_service_area = (M2AP_MBMS_Service_Area_t*)calloc(1,sizeof(M2AP_MBMS_Service_Area_t));
-//		ASN_SEQUENCE_ADD(&mbms_configuration_data_item->mbmsServiceAreaList.list,mbms_service_area);
+//		asn1cSeqAdd(&mbms_configuration_data_item->mbmsServiceAreaList.list,mbms_service_area);
 //
 //
 //	}
@@ -154,10 +154,10 @@
 //	//M2AP_MBMS_Service_Area_ID_List_t         mbmsServiceAreaList;
 //
 //
-//	ASN_SEQUENCE_ADD(&ie->value.choice.ENB_MBMS_Configuration_data_List.list,mbms_configuration_data_list_item_ies);
+//	asn1cSeqAdd(&ie->value.choice.ENB_MBMS_Configuration_data_List.list,mbms_configuration_data_list_item_ies);
 //
 // }
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  LOG_W(M2AP,"m2ap_eNB_data_p->assoc_id %d\n",m2ap_eNB_data_p->assoc_id);
 //  /* encode */
@@ -213,7 +213,7 @@
 //  //          ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf[0],
 //  //          ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf[1],
 //  //          ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf[2]);
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_M2SetupResponse_Ies_t *)calloc(1, sizeof(M2AP_M2SetupResponse_Ies_t));
@@ -235,7 +235,7 @@
 //  //      plmn = (M2AP_PLMN_Identity_t *)calloc(1,sizeof(M2AP_PLMN_Identity_t));
 //  //      {
 //  //        MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length, plmn);
-//  //        ASN_SEQUENCE_ADD(&servedCellMember->servedCellInfo.broadcastPLMNs.list, plmn);
+//  //        asn1cSeqAdd(&servedCellMember->servedCellInfo.broadcastPLMNs.list, plmn);
 //  //      }
 //
 //  //      if (instance_p->frame_type[i] == FDD) {
@@ -276,10 +276,10 @@
 //  //        AssertFatal(0,"M2Setupresponse not supported for TDD!");
 //  //      }
 //  //    }
-//  //    ASN_SEQUENCE_ADD(&ie->value.choice.ServedCells.list, servedCellMember);
+//  //    asn1cSeqAdd(&ie->value.choice.ServedCells.list, servedCellMember);
 //  //  }
 //  //}
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_M2SetupResponse_Ies_t *)calloc(1, sizeof(M2AP_M2SetupResponse_Ies_t));
@@ -294,9 +294,9 @@
 //  //    //@TODO: consider to update this value
 //  //    INT16_TO_OCTET_STRING(0, &gu->mME_Group_ID);
 //  //  }
-//  //  ASN_SEQUENCE_ADD(&ie->value.choice.GUGroupIDList.list, gu);
+//  //  asn1cSeqAdd(&ie->value.choice.GUGroupIDList.list, gu);
 //  //}
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  if (m2ap_encode_pdu(&pdu, &buffer, &len) < 0) {
 //    M2AP_ERROR("Failed to encode M2 setup response\n");
@@ -340,7 +340,7 @@
 //
 //  //m2ap_eNB_set_cause (&ie->value.choice.Cause, cause_type, cause_value);
 //
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* optional: consider to handle this later */
 //  ie = (M2AP_M2SetupFailure_Ies_t *)calloc(1, sizeof(M2AP_M2SetupFailure_Ies_t));
@@ -352,7 +352,7 @@
 //  //  ie->value.choice.TimeToWait = time_to_wait;
 //  //}
 //
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  if (m2ap_encode_pdu(&pdu, &buffer, &len) < 0) {
 //    M2AP_ERROR("Failed to encode M2 setup failure\n");
@@ -428,7 +428,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
 //  ie->criticality = M2AP_Criticality_reject;
 //  ie->value.present = M2AP_HandoverRequest_IEs__value_PR_UE_M2AP_ID;
 //  ie->value.choice.UE_M2AP_ID = m2ap_id_get_id_source(&instance_p->id_manager, ue_id);
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequest_IEs_t));
@@ -437,7 +437,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
 //  ie->value.present = M2AP_HandoverRequest_IEs__value_PR_Cause;
 //  ie->value.choice.Cause.present = M2AP_Cause_PR_radioNetwork;
 //  ie->value.choice.Cause.choice.radioNetwork = M2AP_CauseRadioNetwork_handover_desirable_for_radio_reasons;
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequest_IEs_t));
@@ -447,7 +447,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
 //  MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length,
 //                       &ie->value.choice.ECGI.pLMN_Identity);
 //  MACRO_ENB_ID_TO_CELL_IDENTITY(m2ap_eNB_data_p->eNB_id, 0, &ie->value.choice.ECGI.eUTRANcellIdentifier);
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequest_IEs_t));
@@ -459,7 +459,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
 //  //@TODO: consider to update these values
 //  INT16_TO_OCTET_STRING(m2ap_handover_req->ue_gummei.mme_group_id, &ie->value.choice.GUMMEI.gU_Group_ID.mME_Group_ID);
 //  MME_CODE_TO_OCTET_STRING(m2ap_handover_req->ue_gummei.mme_code, &ie->value.choice.GUMMEI.mME_Code);
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequest_IEs_t));
@@ -511,13 +511,13 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
 //
 //        INT32_TO_OCTET_STRING(m2ap_handover_req->e_rabs_tobesetup[i].gtp_teid,&e_RABs_ToBeSetup_Item->uL_GTPtunnelEndpoint.gTP_TEID);
 //      }
-//      ASN_SEQUENCE_ADD(&ie->value.choice.UE_ContextInformation.e_RABs_ToBeSetup_List.list, e_RABS_ToBeSetup_ItemIEs);
+//      asn1cSeqAdd(&ie->value.choice.UE_ContextInformation.e_RABs_ToBeSetup_List.list, e_RABS_ToBeSetup_ItemIEs);
 //    }
 //  }
 //
 //  OCTET_STRING_fromBuf(&ie->value.choice.UE_ContextInformation.rRC_Context, (char*) m2ap_handover_req->rrc_buffer, m2ap_handover_req->rrc_buffer_size);
 //
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequest_IEs_t));
@@ -533,10 +533,10 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
 //   MACRO_ENB_ID_TO_CELL_IDENTITY(0, 0, &lastVisitedCell_Item->choice.e_UTRAN_Cell.global_Cell_ID.eUTRANcellIdentifier);
 //   lastVisitedCell_Item->choice.e_UTRAN_Cell.cellType.cell_Size = M2AP_Cell_Size_small;
 //   lastVisitedCell_Item->choice.e_UTRAN_Cell.time_UE_StayedInCell = 2;
-//   ASN_SEQUENCE_ADD(&ie->value.choice.UE_HistoryInformation.list, lastVisitedCell_Item);
+//   asn1cSeqAdd(&ie->value.choice.UE_HistoryInformation.list, lastVisitedCell_Item);
 //  }
 //
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  if (m2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
 //    M2AP_ERROR("Failed to encode X2 handover request\n");
@@ -587,7 +587,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
 //  ie->criticality = M2AP_Criticality_ignore;
 //  ie->value.present = M2AP_HandoverRequestAcknowledge_IEs__value_PR_UE_M2AP_ID;
 //  ie->value.choice.UE_M2AP_ID = id_source;
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequestAcknowledge_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequestAcknowledge_IEs_t));
@@ -595,7 +595,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
 //  ie->criticality = M2AP_Criticality_ignore;
 //  ie->value.present = M2AP_HandoverRequestAcknowledge_IEs__value_PR_UE_M2AP_ID_1;
 //  ie->value.choice.UE_M2AP_ID_1 = id_target;
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequestAcknowledge_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequestAcknowledge_IEs_t));
@@ -613,11 +613,11 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
 //        {
 //          e_RABs_Admitted_Item->e_RAB_ID = m2ap_handover_req_ack->e_rabs_tobesetup[i].e_rab_id;
 //        }
-//        ASN_SEQUENCE_ADD(&ie->value.choice.E_RABs_Admitted_List.list, e_RABS_Admitted_ItemIEs);
+//        asn1cSeqAdd(&ie->value.choice.E_RABs_Admitted_List.list, e_RABS_Admitted_ItemIEs);
 //      }
 //  }
 //
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequestAcknowledge_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequestAcknowledge_IEs_t));
@@ -627,7 +627,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
 //
 //  OCTET_STRING_fromBuf(&ie->value.choice.TargeteNBtoSource_eNBTransparentContainer, (char*) m2ap_handover_req_ack->rrc_buffer, m2ap_handover_req_ack->rrc_buffer_size);
 //
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  if (m2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
 //    M2AP_ERROR("Failed to encode X2 handover response\n");
@@ -679,7 +679,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
 //  ie->criticality = M2AP_Criticality_reject;
 //  ie->value.present = M2AP_UEContextRelease_IEs__value_PR_UE_M2AP_ID;
 //  ie->value.choice.UE_M2AP_ID = id_source;
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_UEContextRelease_IEs_t *)calloc(1, sizeof(M2AP_UEContextRelease_IEs_t));
@@ -687,7 +687,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
 //  ie->criticality = M2AP_Criticality_reject;
 //  ie->value.present = M2AP_UEContextRelease_IEs__value_PR_UE_M2AP_ID_1;
 //  ie->value.choice.UE_M2AP_ID_1 = id_target;
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  if (m2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
 //    M2AP_ERROR("Failed to encode X2 UE Context Release\n");
@@ -736,7 +736,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
 //  ie->criticality = M2AP_Criticality_reject;
 //  ie->value.present = M2AP_HandoverCancel_IEs__value_PR_UE_M2AP_ID;
 //  ie->value.choice.UE_M2AP_ID = id_source;
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* optional */
 //  if (id_target != -1) {
@@ -745,7 +745,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
 //    ie->criticality = M2AP_Criticality_ignore;
 //    ie->value.present = M2AP_HandoverCancel_IEs__value_PR_UE_M2AP_ID_1;
 //    ie->value.choice.UE_M2AP_ID_1 = id_target;
-//    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//    asn1cSeqAdd(&out->protocolIEs.list, ie);
 //  }
 //
 //  /* mandatory */
@@ -769,7 +769,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
 //    M2AP_ERROR("unhandled cancel cause\n");
 //    exit(1);
 //  }
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  if (m2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
 //    M2AP_ERROR("Failed to encode X2 Handover Cancel\n");
diff --git a/openair2/M2AP/m2ap_eNB_handler.c b/openair2/M2AP/m2ap_eNB_handler.c
index 7c4a9758dab9f57565263e76afc84d76b72769da..cc73572492757544a1a318c968a79dd0181c415e 100644
--- a/openair2/M2AP/m2ap_eNB_handler.c
+++ b/openair2/M2AP/m2ap_eNB_handler.c
@@ -30,8 +30,6 @@
 
 #include "intertask_interface.h"
 
-#include "asn1_conversions.h"
-
 #include "m2ap_common.h"
 #include "m2ap_eNB_defs.h"
 #include "m2ap_eNB_handler.h"
diff --git a/openair2/M2AP/m2ap_eNB_interface_management.c b/openair2/M2AP/m2ap_eNB_interface_management.c
index 9bab8005257f20edd92c8ce6f6fda9e89b07b20e..df3f060226e602a0658cf4af65b5fe414c7e8623 100644
--- a/openair2/M2AP/m2ap_eNB_interface_management.c
+++ b/openair2/M2AP/m2ap_eNB_interface_management.c
@@ -235,7 +235,7 @@ int eNB_send_MBMS_SCHEDULING_INFORMATION_RESPONSE(instance_t instance, m2ap_mbms
 //  ie->criticality               = M2AP_Criticality_reject;
 //  ie->value.present             = M2AP_MbmsSchedulingInformationResponse_Ies__value_PR_MCE_MBMS_M2AP_ID;
 //  //ie->value.choice.MCE_MBMS_M2AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 // /* mandatory */
 //  /* c1. MCE_MBMS_M2AP_ID (integer value) */ //long
@@ -244,7 +244,7 @@ int eNB_send_MBMS_SCHEDULING_INFORMATION_RESPONSE(instance_t instance, m2ap_mbms
 //  ie->criticality               = M2AP_Criticality_reject;
 //  ie->value.present             = M2AP_MbmsSchedulingInformationResponse_Ies__value_PR_ENB_MBMS_M2AP_ID;
 //  //ie->value.choice.MCE_MBMS_M2AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 
   if (m2ap_encode_pdu(&pdu, &buffer, &len) < 0) {
@@ -330,7 +330,7 @@ int eNB_send_MBMS_SESSION_START_RESPONSE(instance_t instance, m2ap_session_start
   ie->criticality               = M2AP_Criticality_reject;
   ie->value.present             = M2AP_SessionStartResponse_Ies__value_PR_MCE_MBMS_M2AP_ID;
   //ie->value.choice.MCE_MBMS_M2AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
  /* mandatory */
   /* c1. MCE_MBMS_M2AP_ID (integer value) */ //long
@@ -339,7 +339,7 @@ int eNB_send_MBMS_SESSION_START_RESPONSE(instance_t instance, m2ap_session_start
   ie->criticality               = M2AP_Criticality_reject;
   ie->value.present             = M2AP_SessionStartResponse_Ies__value_PR_ENB_MBMS_M2AP_ID;
   //ie->value.choice.MCE_MBMS_M2AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
 
   if (m2ap_encode_pdu(&pdu, &buffer, &len) < 0) {
@@ -387,7 +387,7 @@ int eNB_send_MBMS_SESSION_START_FAILURE(instance_t instance, m2ap_session_start_
  // ie->criticality               = M2AP_Criticality_reject;
  // ie->value.present             = M2AP_M2SetupFailure_Ies__value_PR_GlobalENB_ID;
  // ie->value.choice.GlobalENB_ID = M2AP_get_next_transaction_identifier(enb_mod_idP, mce_mod_idP);
- // ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+ // asn1cSeqAdd(&out->protocolIEs.list, ie);
 
  /* mandatory */
   /* c1. MCE_MBMS_M2AP_ID (integer value) */ //long
@@ -396,7 +396,7 @@ int eNB_send_MBMS_SESSION_START_FAILURE(instance_t instance, m2ap_session_start_
   ie->criticality               = M2AP_Criticality_reject;
   ie->value.present             = M2AP_SessionStartFailure_Ies__value_PR_MCE_MBMS_M2AP_ID;
   //ie->value.choice.MCE_MBMS_M2AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
 
 
@@ -408,7 +408,7 @@ int eNB_send_MBMS_SESSION_START_FAILURE(instance_t instance, m2ap_session_start_
   ie->value.present             = M2AP_SessionStartFailure_Ies__value_PR_Cause;
   ie->value.choice.Cause.present = M2AP_Cause_PR_radioNetwork;
   ie->value.choice.Cause.choice.radioNetwork = M2AP_CauseRadioNetwork_unspecified;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
 
      /* encode */
@@ -494,7 +494,7 @@ int eNB_send_MBMS_SESSION_STOP_RESPONSE(instance_t instance, m2ap_session_stop_r
   ie->criticality               = M2AP_Criticality_reject;
   ie->value.present             = M2AP_SessionStopResponse_Ies__value_PR_MCE_MBMS_M2AP_ID;
   //ie->value.choice.MCE_MBMS_M2AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
  /* mandatory */
   /* c1. MCE_MBMS_M2AP_ID (integer value) */ //long
@@ -503,7 +503,7 @@ int eNB_send_MBMS_SESSION_STOP_RESPONSE(instance_t instance, m2ap_session_stop_r
   ie->criticality               = M2AP_Criticality_reject;
   ie->value.present             = M2AP_SessionStopResponse_Ies__value_PR_ENB_MBMS_M2AP_ID;
   //ie->value.choice.MCE_MBMS_M2AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
 
   if (m2ap_encode_pdu(&pdu, &buffer, &len) < 0) {
@@ -571,7 +571,7 @@ int eNB_send_M2_SETUP_REQUEST(m2ap_eNB_instance_t *instance_p, m2ap_eNB_data_t*
           ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf[1],
           ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf[2]);
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   ///* mandatory */
   ///* c2. GNB_eNB_ID (integrer value) */
@@ -580,7 +580,7 @@ int eNB_send_M2_SETUP_REQUEST(m2ap_eNB_instance_t *instance_p, m2ap_eNB_data_t*
   //ie->criticality               = M2AP_Criticality_reject;
   //ie->value.present             = M2AP_M2SetupRequestIEs__value_PR_GNB_eNB_ID;
   //asn_int642INTEGER(&ie->value.choice.GNB_eNB_ID, f1ap_du_data->gNB_eNB_id);
-  //ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  //asn1cSeqAdd(&out->protocolIEs.list, ie);
 
      /* optional */
   /* c3. ENBname */
@@ -591,7 +591,7 @@ int eNB_send_M2_SETUP_REQUEST(m2ap_eNB_instance_t *instance_p, m2ap_eNB_data_t*
     ie->value.present             = M2AP_M2SetupRequest_Ies__value_PR_ENBname;
     OCTET_STRING_fromBuf(&ie->value.choice.ENBname, m2ap_eNB_data_p->eNB_name,
                          strlen(m2ap_eNB_data_p->eNB_name));
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
 
   /* mandatory */
@@ -635,16 +635,16 @@ int eNB_send_M2_SETUP_REQUEST(m2ap_eNB_instance_t *instance_p, m2ap_eNB_data_t*
 			OCTET_STRING_fromBuf(mbms_service_area,buf,2);
 			//LOG_D(M2AP,"%s\n",instance_p->mbms_configuration_data_list[i].mbms_service_area_list[j]);
 			//OCTET_STRING_fromBuf(mbms_service_area,"03",2);
-                	ASN_SEQUENCE_ADD(&mbms_configuration_data_item->mbmsServiceAreaList.list,mbms_service_area);
+                	asn1cSeqAdd(&mbms_configuration_data_item->mbmsServiceAreaList.list,mbms_service_area);
 		}
                 /*M2AP_MBMS_Service_Area_t * mbms_service_area,*mbms_service_area2;
                 mbms_service_area = (M2AP_MBMS_Service_Area_t*)calloc(1,sizeof(M2AP_MBMS_Service_Area_t));
                 mbms_service_area2 = (M2AP_MBMS_Service_Area_t*)calloc(1,sizeof(M2AP_MBMS_Service_Area_t));
 		//memset(mbms_service_area,0,sizeof(OCTET_STRING_t));
 		OCTET_STRING_fromBuf(mbms_service_area,"01",2);
-                ASN_SEQUENCE_ADD(&mbms_configuration_data_item->mbmsServiceAreaList.list,mbms_service_area);
+                asn1cSeqAdd(&mbms_configuration_data_item->mbmsServiceAreaList.list,mbms_service_area);
 		OCTET_STRING_fromBuf(mbms_service_area2,"02",2);
-                ASN_SEQUENCE_ADD(&mbms_configuration_data_item->mbmsServiceAreaList.list,mbms_service_area2);*/
+                asn1cSeqAdd(&mbms_configuration_data_item->mbmsServiceAreaList.list,mbms_service_area2);*/
 
 
         }
@@ -660,10 +660,10 @@ int eNB_send_M2_SETUP_REQUEST(m2ap_eNB_instance_t *instance_p, m2ap_eNB_data_t*
         //M2AP_MBMS_Service_Area_ID_List_t         mbmsServiceAreaList;
 
 
-        ASN_SEQUENCE_ADD(&ie->value.choice.ENB_MBMS_Configuration_data_List.list,mbms_configuration_data_list_item_ies);
+        asn1cSeqAdd(&ie->value.choice.ENB_MBMS_Configuration_data_List.list,mbms_configuration_data_list_item_ies);
 
  }
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   
  LOG_D(M2AP,"m2ap_eNB_data_p->assoc_id %d\n",m2ap_eNB_data_p->assoc_id);
   /* encode */
@@ -888,7 +888,7 @@ int eNB_send_eNB_CONFIGURATION_UPDATE(instance_t instance, m2ap_enb_configuratio
           ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf[1],
           ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf[2]);
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* optional */
   /* c3. ENBname */
@@ -899,7 +899,7 @@ int eNB_send_eNB_CONFIGURATION_UPDATE(instance_t instance, m2ap_enb_configuratio
     ie->value.present             = M2AP_ENBConfigurationUpdate_Ies__value_PR_ENBname;
     //OCTET_STRING_fromBuf(&ie->value.choice.ENBname, m2ap_eNB_data_p->eNB_name,
                          //strlen(m2ap_eNB_data_p->eNB_name));
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
 
   /* mandatory */
@@ -940,9 +940,9 @@ int eNB_send_eNB_CONFIGURATION_UPDATE(instance_t instance, m2ap_enb_configuratio
                 mbms_service_area2 = (M2AP_MBMS_Service_Area_t*)calloc(1,sizeof(M2AP_MBMS_Service_Area_t));
 		//memset(mbms_service_area,0,sizeof(OCTET_STRING_t));
 		OCTET_STRING_fromBuf(mbms_service_area,"01",2);
-                ASN_SEQUENCE_ADD(&mbms_configuration_data_item->mbmsServiceAreaList.list,mbms_service_area);
+                asn1cSeqAdd(&mbms_configuration_data_item->mbmsServiceAreaList.list,mbms_service_area);
 		OCTET_STRING_fromBuf(mbms_service_area2,"02",2);
-                ASN_SEQUENCE_ADD(&mbms_configuration_data_item->mbmsServiceAreaList.list,mbms_service_area2);
+                asn1cSeqAdd(&mbms_configuration_data_item->mbmsServiceAreaList.list,mbms_service_area2);
 
 
         }
@@ -958,10 +958,10 @@ int eNB_send_eNB_CONFIGURATION_UPDATE(instance_t instance, m2ap_enb_configuratio
         //M2AP_MBMS_Service_Area_ID_List_t         mbmsServiceAreaList;
 
 
-        ASN_SEQUENCE_ADD(&ie->value.choice.ENB_MBMS_Configuration_data_List_ConfigUpdate.list,mbms_configuration_data_list_item_ies);
+        asn1cSeqAdd(&ie->value.choice.ENB_MBMS_Configuration_data_List_ConfigUpdate.list,mbms_configuration_data_list_item_ies);
 
  }
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   
  //LOG_D(M2AP,"m2ap_eNB_data_p->assoc_id %d\n",m2ap_eNB_data_p->assoc_id);
   /* encode */
@@ -1291,7 +1291,7 @@ int eNB_send_MBMS_SERVICE_COUNTING_REPORT(instance_t instance, m2ap_mbms_service
   ie->criticality               = M2AP_Criticality_reject;
   ie->value.present             = M2AP_MbmsServiceCountingResultsReport_Ies__value_PR_MBSFN_Area_ID;
   //ie->value.choice.MCE_MBMS_M2AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   /* c1. MBSFN_Area_ID (integer value) */ //long
@@ -1315,11 +1315,11 @@ int eNB_send_MBMS_SERVICE_COUNTING_REPORT(instance_t instance, m2ap_mbms_service
 
   //M2AP_CountingResult_t * m2ap_counting_result = &m2ap_mbms_counting_result->countingResult;
 
-  ASN_SEQUENCE_ADD(&m2ap_mbms_counting_result_list->list,m2ap_mbms_counting_result_item);
+  asn1cSeqAdd(&m2ap_mbms_counting_result_list->list,m2ap_mbms_counting_result_item);
 
 
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   if (m2ap_encode_pdu(&pdu, &buffer, &len) < 0) {
     LOG_E(M2AP, "Failed to encode MBMS Service Counting Results Report\n");
@@ -1357,7 +1357,7 @@ int eNB_send_MBMS_SERVICE_COUNTING_RESP(instance_t instance, m2ap_mbms_service_c
   ie->criticality               = M2AP_Criticality_reject;
   ie->value.present             = M2AP_MbmsServiceCountingResponse_Ies__value_PR_CriticalityDiagnostics;
   //ie->value.choice.MCE_MBMS_M2AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   if (m2ap_encode_pdu(&pdu, &buffer, &len) < 0) {
     LOG_E(M2AP, "Failed to encode MBMS Service Counting Results Report\n");
@@ -1396,7 +1396,7 @@ int eNB_send_MBMS_SERVICE_COUNTING_FAILURE(instance_t instance, m2ap_mbms_servic
   ie->criticality               = M2AP_Criticality_reject;
   ie->value.present             = M2AP_MbmsServiceCountingFailure_Ies__value_PR_CriticalityDiagnostics;
   //ie->value.choice.MCE_MBMS_M2AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
     /* mandatory */
   /* c2. Cause */
@@ -1406,7 +1406,7 @@ int eNB_send_MBMS_SERVICE_COUNTING_FAILURE(instance_t instance, m2ap_mbms_servic
   ie->value.present             = M2AP_MbmsServiceCountingFailure_Ies__value_PR_Cause;
   ie->value.choice.Cause.present = M2AP_Cause_PR_radioNetwork;
   ie->value.choice.Cause.choice.radioNetwork = M2AP_CauseRadioNetwork_unspecified;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
 
   if (m2ap_encode_pdu(&pdu, &buffer, &len) < 0) {
diff --git a/openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.h b/openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.h
old mode 100755
new mode 100644
diff --git a/openair2/RRC/LTE/MESSAGES/asn1_msg.c b/openair2/RRC/LTE/MESSAGES/asn1_msg.c
index 4cbf23ee9da9cbd515d495b1efdbc817a520383d..ec3f42ee22583d1e6da14d2878d6d828a1570f37 100644
--- a/openair2/RRC/LTE/MESSAGES/asn1_msg.c
+++ b/openair2/RRC/LTE/MESSAGES/asn1_msg.c
@@ -44,8 +44,8 @@
 #include <sysexits.h> /* for EX_* exit codes */
 #include <errno.h>  /* for errno */
 #include "common/utils/LOG/log.h"
+#include "oai_asn1.h"
 #include <asn_application.h>
-#include <asn_internal.h> /* for _ASN_DEFAULT_STACK_MAX */
 #include <per_encoder.h>
 #include "executables/lte-softmodem.h"
 #include "assertions.h"
@@ -456,9 +456,9 @@ uint8_t do_SIB1_MBMS(rrc_eNB_carrier_data_t *carrier,
     *dummy_mcc_1 = (configuration->mcc[i] / 10) % 10;
     *dummy_mcc_2 = (configuration->mcc[i] / 1) % 10;
 
-    ASN_SEQUENCE_ADD(&PLMN_identity_info[i].plmn_Identity.mcc->list, dummy_mcc_0);
-    ASN_SEQUENCE_ADD(&PLMN_identity_info[i].plmn_Identity.mcc->list, dummy_mcc_1);
-    ASN_SEQUENCE_ADD(&PLMN_identity_info[i].plmn_Identity.mcc->list, dummy_mcc_2);
+    asn1cSeqAdd(&PLMN_identity_info[i].plmn_Identity.mcc->list, dummy_mcc_0);
+    asn1cSeqAdd(&PLMN_identity_info[i].plmn_Identity.mcc->list, dummy_mcc_1);
+    asn1cSeqAdd(&PLMN_identity_info[i].plmn_Identity.mcc->list, dummy_mcc_2);
     PLMN_identity_info[i].plmn_Identity.mnc.list.size=0;
     PLMN_identity_info[i].plmn_Identity.mnc.list.count=0;
     dummy_mnc_0 = CALLOC(1, sizeof(LTE_MCC_MNC_Digit_t));
@@ -484,18 +484,18 @@ uint8_t do_SIB1_MBMS(rrc_eNB_carrier_data_t *carrier,
       }
     }
 
-    ASN_SEQUENCE_ADD(&PLMN_identity_info[i].plmn_Identity.mnc.list, dummy_mnc_0);
-    ASN_SEQUENCE_ADD(&PLMN_identity_info[i].plmn_Identity.mnc.list, dummy_mnc_1);
+    asn1cSeqAdd(&PLMN_identity_info[i].plmn_Identity.mnc.list, dummy_mnc_0);
+    asn1cSeqAdd(&PLMN_identity_info[i].plmn_Identity.mnc.list, dummy_mnc_1);
 
     if (*dummy_mnc_2 != 0xf) {
-      ASN_SEQUENCE_ADD(&PLMN_identity_info[i].plmn_Identity.mnc.list, dummy_mnc_2);
+      asn1cSeqAdd(&PLMN_identity_info[i].plmn_Identity.mnc.list, dummy_mnc_2);
     } else {
       free(dummy_mnc_2);
     }
 
     //assign_enum(&PLMN_identity_info.cellReservedForOperatorUse,PLMN_IdentityInfo__cellReservedForOperatorUse_notReserved);
     PLMN_identity_info[i].cellReservedForOperatorUse=LTE_PLMN_IdentityInfo__cellReservedForOperatorUse_notReserved;
-    ASN_SEQUENCE_ADD(&(*sib1_MBMS)->cellAccessRelatedInfo_r14.plmn_IdentityList_r14.list,&PLMN_identity_info[i]);
+    asn1cSeqAdd(&(*sib1_MBMS)->cellAccessRelatedInfo_r14.plmn_IdentityList_r14.list,&PLMN_identity_info[i]);
   }
 
   // 16 bits
@@ -516,8 +516,8 @@ uint8_t do_SIB1_MBMS(rrc_eNB_carrier_data_t *carrier,
 
   schedulingInfo->si_Periodicity_r14=LTE_SchedulingInfo__si_Periodicity_rf16;
   *sib_type = LTE_SIB_Type_MBMS_r14_sibType13_v920;
-  ASN_SEQUENCE_ADD(&schedulingInfo->sib_MappingInfo_r14.list, sib_type);
-  ASN_SEQUENCE_ADD(&(*sib1_MBMS)->schedulingInfoList_MBMS_r14.list, schedulingInfo);
+  asn1cSeqAdd(&schedulingInfo->sib_MappingInfo_r14.list, sib_type);
+  asn1cSeqAdd(&(*sib1_MBMS)->schedulingInfoList_MBMS_r14.list, schedulingInfo);
   (*sib1_MBMS)->si_WindowLength_r14=LTE_SystemInformationBlockType1_MBMS_r14__si_WindowLength_r14_ms20;
   (*sib1_MBMS)->systemInfoValueTag_r14=0;
   //  (*sib1).nonCriticalExtension = calloc(1,sizeof(*(*sib1).nonCriticalExtension));
@@ -553,7 +553,7 @@ uint8_t do_SIB1_MBMS(rrc_eNB_carrier_data_t *carrier,
     MBSFN_Area1->ext1->subcarrierSpacingMBMS_r14 = CALLOC(1,sizeof(*( MBSFN_Area1->ext1)->subcarrierSpacingMBMS_r14));
     memset(MBSFN_Area1->ext1->subcarrierSpacingMBMS_r14,0,sizeof(*((MBSFN_Area1)->ext1)->subcarrierSpacingMBMS_r14));
     *(MBSFN_Area1->ext1->subcarrierSpacingMBMS_r14) = LTE_MBSFN_AreaInfo_r9__ext1__subcarrierSpacingMBMS_r14_khz_1dot25;
-    ASN_SEQUENCE_ADD(&MBSFNArea_list->list,MBSFN_Area1);
+    asn1cSeqAdd(&MBSFNArea_list->list,MBSFN_Area1);
   }
 
   //nonMBSFN_SubframeConfig_r14 optional
@@ -875,9 +875,9 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
     *dummy_mcc_0 = (configuration->mcc[i] / 100) % 10;
     *dummy_mcc_1 = (configuration->mcc[i] / 10) % 10;
     *dummy_mcc_2 = (configuration->mcc[i] / 1) % 10;
-    ASN_SEQUENCE_ADD(&PLMN_identity_info[i].plmn_Identity.mcc->list, dummy_mcc_0);
-    ASN_SEQUENCE_ADD(&PLMN_identity_info[i].plmn_Identity.mcc->list, dummy_mcc_1);
-    ASN_SEQUENCE_ADD(&PLMN_identity_info[i].plmn_Identity.mcc->list, dummy_mcc_2);
+    asn1cSeqAdd(&PLMN_identity_info[i].plmn_Identity.mcc->list, dummy_mcc_0);
+    asn1cSeqAdd(&PLMN_identity_info[i].plmn_Identity.mcc->list, dummy_mcc_1);
+    asn1cSeqAdd(&PLMN_identity_info[i].plmn_Identity.mcc->list, dummy_mcc_2);
     PLMN_identity_info[i].plmn_Identity.mnc.list.size=0;
     PLMN_identity_info[i].plmn_Identity.mnc.list.count=0;
     dummy_mnc_0 = CALLOC(1, sizeof(LTE_MCC_MNC_Digit_t));
@@ -903,18 +903,18 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
         *dummy_mnc_2 = (configuration->mnc[i] / 1) % 10;
       }
     }
-    ASN_SEQUENCE_ADD(&PLMN_identity_info[i].plmn_Identity.mnc.list, dummy_mnc_0);
-    ASN_SEQUENCE_ADD(&PLMN_identity_info[i].plmn_Identity.mnc.list, dummy_mnc_1);
+    asn1cSeqAdd(&PLMN_identity_info[i].plmn_Identity.mnc.list, dummy_mnc_0);
+    asn1cSeqAdd(&PLMN_identity_info[i].plmn_Identity.mnc.list, dummy_mnc_1);
 
     if (*dummy_mnc_2 != 0xf) {
-      ASN_SEQUENCE_ADD(&PLMN_identity_info[i].plmn_Identity.mnc.list, dummy_mnc_2);
+      asn1cSeqAdd(&PLMN_identity_info[i].plmn_Identity.mnc.list, dummy_mnc_2);
     } else {
       free(dummy_mnc_2);
     }
 
     //assign_enum(&PLMN_identity_info.cellReservedForOperatorUse,PLMN_IdentityInfo__cellReservedForOperatorUse_notReserved);
     PLMN_identity_info[i].cellReservedForOperatorUse=LTE_PLMN_IdentityInfo__cellReservedForOperatorUse_notReserved;
-    ASN_SEQUENCE_ADD(&(*sib1)->cellAccessRelatedInfo.plmn_IdentityList.list,&PLMN_identity_info[i]);
+    asn1cSeqAdd(&(*sib1)->cellAccessRelatedInfo.plmn_IdentityList.list,&PLMN_identity_info[i]);
   }
 
   // 16 bits
@@ -947,14 +947,14 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
   }
   // This is for SIB2/3
   sib_type=LTE_SIB_Type_sibType3;
-  ASN_SEQUENCE_ADD(&schedulingInfo.sib_MappingInfo.list,&sib_type);
-  ASN_SEQUENCE_ADD(&(*sib1)->schedulingInfoList.list,&schedulingInfo);
+  asn1cSeqAdd(&schedulingInfo.sib_MappingInfo.list,&sib_type);
+  asn1cSeqAdd(&(*sib1)->schedulingInfoList.list,&schedulingInfo);
   if(configuration->eMBMS_M2_configured){
          sib_type2=LTE_SIB_Type_sibType13_v920;
-         ASN_SEQUENCE_ADD(&schedulingInfo2.sib_MappingInfo.list,&sib_type2);
-         ASN_SEQUENCE_ADD(&(*sib1)->schedulingInfoList.list,&schedulingInfo2);
+         asn1cSeqAdd(&schedulingInfo2.sib_MappingInfo.list,&sib_type2);
+         asn1cSeqAdd(&(*sib1)->schedulingInfoList.list,&schedulingInfo2);
   }
-  //  ASN_SEQUENCE_ADD(&schedulingInfo.sib_MappingInfo.list,NULL);
+  //  asn1cSeqAdd(&schedulingInfo.sib_MappingInfo.list,NULL);
 
   if (configuration->frame_type[CC_id] == TDD)
   {
@@ -1042,7 +1042,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
         schedulinginfo_br_13->si_Narrowband_r13 = configuration->si_Narrowband_r13[CC_id][index];
         schedulinginfo_br_13->si_TBS_r13 = configuration->si_TBS_r13[CC_id][index];
         LOG_I(RRC,"Adding (%d,%d) to scheduling_info_br_13\n",(int)schedulinginfo_br_13->si_Narrowband_r13,(int)schedulinginfo_br_13->si_TBS_r13);
-        ASN_SEQUENCE_ADD(&sib1_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13->list, schedulinginfo_br_13);
+        asn1cSeqAdd(&sib1_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13->list, schedulinginfo_br_13);
       }
 
       if (configuration->fdd_DownlinkOrTddSubframeBitmapBR_r13[CC_id]) {
@@ -1116,7 +1116,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
             *systemInfoValueTagSi_r13 = 0;
           }
 
-          ASN_SEQUENCE_ADD(&sib1_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13->list, systemInfoValueTagSi_r13);
+          asn1cSeqAdd(&sib1_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13->list, systemInfoValueTagSi_r13);
         }
       } else {
         sib1_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13 = NULL;
@@ -1357,7 +1357,7 @@ uint8_t do_SIB23(uint8_t Mod_id,
         rach_ce_levelinfo_r13->rar_HoppingConfig_r13 = LTE_RACH_CE_LevelInfo_r13__rar_HoppingConfig_r13_off;
       }
 
-      ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13->list, rach_ce_levelinfo_r13);
+      asn1cSeqAdd(&(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13->list, rach_ce_levelinfo_r13);
     }
   }
 
@@ -1578,7 +1578,7 @@ uint8_t do_SIB23(uint8_t Mod_id,
         if (configuration->rsrp_range_list_size[CC_id]) *rsrp_range = configuration->rsrp_range[CC_id][rsrp_index];
         else                                            *rsrp_range = 60;
 
-        ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->rsrp_ThresholdsPrachInfoList_r13.list, rsrp_range);
+        asn1cSeqAdd(&(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->rsrp_ThresholdsPrachInfoList_r13.list, rsrp_range);
       }
 
       (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13 = NULL;
@@ -1634,12 +1634,12 @@ uint8_t do_SIB23(uint8_t Mod_id,
         for (narrow_band_index = 0; narrow_band_index < num_narrow_bands; narrow_band_index++) {
           maxavailablenarrowband = CALLOC(1, sizeof(long));
           *maxavailablenarrowband = configuration->max_available_narrow_band[CC_id][prach_parameters_index][narrow_band_index];
-          ASN_SEQUENCE_ADD(&prach_parametersce_r13->mpdcch_NarrowbandsToMonitor_r13.list, maxavailablenarrowband);
+          asn1cSeqAdd(&prach_parametersce_r13->mpdcch_NarrowbandsToMonitor_r13.list, maxavailablenarrowband);
         }
 
         prach_parametersce_r13->mpdcch_NumRepetition_RA_r13 = LTE_PRACH_ParametersCE_r13__mpdcch_NumRepetition_RA_r13_r1;
         prach_parametersce_r13->prach_HoppingConfig_r13 = LTE_PRACH_ParametersCE_r13__prach_HoppingConfig_r13_off;
-        ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_ParametersListCE_r13.list, prach_parametersce_r13);
+        asn1cSeqAdd(&(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_ParametersListCE_r13.list, prach_parametersce_r13);
       }
     } else (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310 = NULL;
 
@@ -1656,7 +1656,7 @@ uint8_t do_SIB23(uint8_t Mod_id,
       if (configuration->pucch_info_value_size[CC_id]) *pucch_info_value = configuration->pucch_info_value[CC_id][pucch_index];
       else                                             *pucch_info_value = 0;
 
-      ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13->list, pucch_info_value);
+      asn1cSeqAdd(&(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13->list, pucch_info_value);
     }
 
     if (configuration->pucch_NumRepetitionCE_Msg4_Level0_r13[CC_id]) {
@@ -1714,7 +1714,7 @@ uint8_t do_SIB23(uint8_t Mod_id,
     sib2_mbsfn_SubframeConfig1->subframeAllocation.choice.oneFrame.size= 1;
     sib2_mbsfn_SubframeConfig1->subframeAllocation.choice.oneFrame.bits_unused= 2;
     sib2_mbsfn_SubframeConfig1->subframeAllocation.choice.oneFrame.buf[0]=0x38<<2;
-    ASN_SEQUENCE_ADD(&MBSFNSubframeConfigList->list,sib2_mbsfn_SubframeConfig1);
+    asn1cSeqAdd(&MBSFNSubframeConfigList->list,sib2_mbsfn_SubframeConfig1);
 
     if (configuration->eMBMS_configured == 4 ) {
       LOG_I(RRC,"Adding MBSFN subframe Configuration 2 to SIB2\n");
@@ -1728,7 +1728,7 @@ uint8_t do_SIB23(uint8_t Mod_id,
       sib2_mbsfn_SubframeConfig2->subframeAllocation.choice.oneFrame.size= 1;
       sib2_mbsfn_SubframeConfig2->subframeAllocation.choice.oneFrame.bits_unused= 2;
       sib2_mbsfn_SubframeConfig2->subframeAllocation.choice.oneFrame.buf[0]=0x07<<2;
-      ASN_SEQUENCE_ADD(&MBSFNSubframeConfigList->list,sib2_mbsfn_SubframeConfig2);
+      asn1cSeqAdd(&MBSFNSubframeConfigList->list,sib2_mbsfn_SubframeConfig2);
     }
   }
 
@@ -1788,7 +1788,7 @@ uint8_t do_SIB23(uint8_t Mod_id,
     MBSFN_Area1->mcch_Config_r9.sf_AllocInfo_r9.buf[0]=0x20<<2;  // FDD: SF1
     MBSFN_Area1->mcch_Config_r9.sf_AllocInfo_r9.bits_unused= 2;
     MBSFN_Area1->mcch_Config_r9.signallingMCS_r9= LTE_MBSFN_AreaInfo_r9__mcch_Config_r9__signallingMCS_r9_n7;
-    ASN_SEQUENCE_ADD(&MBSFNArea_list->list,MBSFN_Area1);
+    asn1cSeqAdd(&MBSFNArea_list->list,MBSFN_Area1);
 
     //MBSFN Area 2: currently only activated for eMBMS relaying
     if (configuration->eMBMS_configured == 4 ) {
@@ -1805,7 +1805,7 @@ uint8_t do_SIB23(uint8_t Mod_id,
       MBSFN_Area2->mcch_Config_r9.sf_AllocInfo_r9.bits_unused= 2;
       MBSFN_Area2->mcch_Config_r9.sf_AllocInfo_r9.buf[0]=0x04<<2;  // FDD: SF6
       MBSFN_Area2->mcch_Config_r9.signallingMCS_r9= LTE_MBSFN_AreaInfo_r9__mcch_Config_r9__signallingMCS_r9_n7;
-      ASN_SEQUENCE_ADD(&MBSFNArea_list->list,MBSFN_Area2);
+      asn1cSeqAdd(&MBSFNArea_list->list,MBSFN_Area2);
     }
 
     //  end of adding for MBMS SIB13
@@ -1908,7 +1908,7 @@ uint8_t do_SIB23(uint8_t Mod_id,
     SL_CommResourcePool->ext1 = NULL ;
     //end SL_CommResourcePool
     //add SL_CommResourcePool to SL_CommRxPoolList
-    ASN_SEQUENCE_ADD(&SL_CommRxPoolList->list,SL_CommResourcePool);
+    asn1cSeqAdd(&SL_CommRxPoolList->list,SL_CommResourcePool);
     //end commRxPool_r12
     //TODO:  commTxPoolNormalCommon_r12, similar to commRxPool_r12
     //TODO: commTxPoolExceptional_r12
@@ -1981,7 +1981,7 @@ uint8_t do_SIB23(uint8_t Mod_id,
     }
 
     //add SL_DiscResourcePool to SL_DiscRxPoolList
-    ASN_SEQUENCE_ADD(&SL_DiscRxPoolList->list,SL_DiscResourcePool);
+    asn1cSeqAdd(&SL_DiscRxPoolList->list,SL_DiscResourcePool);
     /*
     //for DiscRxPoolPS
     (*sib19)->ext1 = CALLOC (1, sizeof(*(*sib19)->ext1));
@@ -2048,7 +2048,7 @@ uint8_t do_SIB23(uint8_t Mod_id,
     }
 
     //add SL_DiscResourcePool to SL_DiscRxPoolList
-    ASN_SEQUENCE_ADD(&SL_DiscRxPoolPSList->list,SL_DiscResourcePoolPS);
+    asn1cSeqAdd(&SL_DiscRxPoolPSList->list,SL_DiscResourcePoolPS);
     */
     (*sib19)->lateNonCriticalExtension = NULL;
     //end SIB19
@@ -2084,7 +2084,7 @@ uint8_t do_SIB23(uint8_t Mod_id,
     SL_CommResourcePoolV2X->rxParametersNCell_r14->tdd_Config_r14->subframeAssignment = 0 ;
     SL_CommResourcePoolV2X->rxParametersNCell_r14->tdd_Config_r14->specialSubframePatterns = 0;
     SL_CommResourcePoolV2X->rxParametersNCell_r14->syncConfigIndex_r14 = 0;
-    ASN_SEQUENCE_ADD(&SL_CommRxPoolListV2X->list,SL_CommResourcePoolV2X);
+    asn1cSeqAdd(&SL_CommRxPoolListV2X->list,SL_CommResourcePoolV2X);
     //end SIB21
   }
 
@@ -2097,13 +2097,13 @@ uint8_t do_SIB23(uint8_t Mod_id,
   bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.count=0;
   //  asn_set_empty(&systemInformation->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list);//.size=0;
   //  systemInformation->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.count=0;
-  ASN_SEQUENCE_ADD(&bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list,
+  asn1cSeqAdd(&bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list,
                    sib2_part);
-  ASN_SEQUENCE_ADD(&bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list,
+  asn1cSeqAdd(&bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list,
                    sib3_part);
 
   if (configuration->eMBMS_configured > 0) {
-    ASN_SEQUENCE_ADD(&bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list, sib13_part);
+    asn1cSeqAdd(&bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list, sib13_part);
   }
 
   if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) {
@@ -2510,7 +2510,7 @@ do_RRCConnectionSetup(
   logicalchannelgroup = CALLOC(1,sizeof(long));
   *logicalchannelgroup=0;
   SRB1_ul_SpecificParameters->logicalChannelGroup = logicalchannelgroup;
-  ASN_SEQUENCE_ADD(&(*SRB_configList)->list,SRB1_config);
+  asn1cSeqAdd(&(*SRB_configList)->list,SRB1_config);
   // PhysicalConfigDedicated
   physicalConfigDedicated2 = CALLOC(1,sizeof(*physicalConfigDedicated2));
   *physicalConfigDedicated = physicalConfigDedicated2;
@@ -2876,7 +2876,7 @@ uint8_t do_RRCConnectionSetup_BR(
   logicalchannelgroup = CALLOC(1,sizeof(long));
   *logicalchannelgroup=0;
   SRB1_ul_SpecificParameters->logicalChannelGroup = logicalchannelgroup;
-  ASN_SEQUENCE_ADD(&(*SRB_configList)->list,SRB1_config);
+  asn1cSeqAdd(&(*SRB_configList)->list,SRB1_config);
   // PhysicalConfigDedicated
   physicalConfigDedicated2 = CALLOC(1,sizeof(*physicalConfigDedicated2));
   *physicalConfigDedicated = physicalConfigDedicated2;
@@ -3105,7 +3105,7 @@ uint8_t do_RRCConnectionSetup_BR(
   epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.choice.fdd_r13 = LTE_EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_StartSF_UESS_r13__fdd_r13_v1;
   epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_NumRepetition_r13               = LTE_EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_NumRepetition_r13_r1;
   epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13                  = 3; // note: this is narrowband index 2
-  ASN_SEQUENCE_ADD(physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11, epdcch_setconfig_r11);
+  asn1cSeqAdd(physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11, epdcch_setconfig_r11);
   // FIXME allocate physicalConfigDedicated2->ext7
   physicalConfigDedicated2->ext7 = CALLOC(1, sizeof(struct LTE_PhysicalConfigDedicated__ext7));
   physicalConfigDedicated2->ext7->pdsch_ConfigDedicated_v1310 = NULL; // has some parameters to be filled
@@ -3245,7 +3245,7 @@ uint8_t do_UECapabilityEnquiry( const protocol_ctxt_t *const ctxt_pP,
   dl_dcch_msg.message.choice.c1.choice.ueCapabilityEnquiry.criticalExtensions.choice.c1.present =
     LTE_UECapabilityEnquiry__criticalExtensions__c1_PR_ueCapabilityEnquiry_r8;
   dl_dcch_msg.message.choice.c1.choice.ueCapabilityEnquiry.criticalExtensions.choice.c1.choice.ueCapabilityEnquiry_r8.ue_CapabilityRequest.list.count=0;
-  ASN_SEQUENCE_ADD(&dl_dcch_msg.message.choice.c1.choice.ueCapabilityEnquiry.criticalExtensions.choice.c1.choice.ueCapabilityEnquiry_r8.ue_CapabilityRequest.list,
+  asn1cSeqAdd(&dl_dcch_msg.message.choice.c1.choice.ueCapabilityEnquiry.criticalExtensions.choice.c1.choice.ueCapabilityEnquiry_r8.ue_CapabilityRequest.list,
                    &rat);
 
   /* request NR configuration */
@@ -3276,7 +3276,7 @@ uint8_t do_UECapabilityEnquiry( const protocol_ctxt_t *const ctxt_pP,
   nsa_band->present = NR_FreqBandInformation_PR_bandInformationEUTRA;
   nsa_band->choice.bandInformationEUTRA = (NR_FreqBandInformationEUTRA_t *) calloc(1, sizeof(NR_FreqBandInformationEUTRA_t));
   nsa_band->choice.bandInformationEUTRA->bandEUTRA = eutra_band;
-  ASN_SEQUENCE_ADD(&nsa_band_list->list, nsa_band);
+  asn1cSeqAdd(&nsa_band_list->list, nsa_band);
 
   nsa_band = (NR_FreqBandInformation_t *) calloc(1,sizeof(NR_FreqBandInformation_t));
   nsa_band->present = NR_FreqBandInformation_PR_bandInformationNR;
@@ -3285,7 +3285,7 @@ uint8_t do_UECapabilityEnquiry( const protocol_ctxt_t *const ctxt_pP,
     nsa_band->choice.bandInformationNR->bandNR = nr_band;
   else
     nsa_band->choice.bandInformationNR->bandNR = 78;
-  ASN_SEQUENCE_ADD(&nsa_band_list->list, nsa_band);
+  asn1cSeqAdd(&nsa_band_list->list, nsa_band);
 
   OCTET_STRING_t req_freq;
   //unsigned char req_freq_buf[5] = { 0x00, 0x20, 0x1a, 0x02, 0x68 };  // bands 7 & nr78
@@ -3361,9 +3361,9 @@ uint8_t do_NR_UECapabilityEnquiry( const protocol_ctxt_t *const ctxt_pP,
   dl_dcch_msg.message.choice.c1.choice.ueCapabilityEnquiry.criticalExtensions.choice.c1.present =
     LTE_UECapabilityEnquiry__criticalExtensions__c1_PR_ueCapabilityEnquiry_r8;
   dl_dcch_msg.message.choice.c1.choice.ueCapabilityEnquiry.criticalExtensions.choice.c1.choice.ueCapabilityEnquiry_r8.ue_CapabilityRequest.list.count=0;
-  ASN_SEQUENCE_ADD(&dl_dcch_msg.message.choice.c1.choice.ueCapabilityEnquiry.criticalExtensions.choice.c1.choice.ueCapabilityEnquiry_r8.ue_CapabilityRequest.list,
+  asn1cSeqAdd(&dl_dcch_msg.message.choice.c1.choice.ueCapabilityEnquiry.criticalExtensions.choice.c1.choice.ueCapabilityEnquiry_r8.ue_CapabilityRequest.list,
                    &rat_nr);
-  ASN_SEQUENCE_ADD(&dl_dcch_msg.message.choice.c1.choice.ueCapabilityEnquiry.criticalExtensions.choice.c1.choice.ueCapabilityEnquiry_r8.ue_CapabilityRequest.list,
+  asn1cSeqAdd(&dl_dcch_msg.message.choice.c1.choice.ueCapabilityEnquiry.criticalExtensions.choice.c1.choice.ueCapabilityEnquiry_r8.ue_CapabilityRequest.list,
                    &rat_eutra_nr);
 
   /* request NR configuration */
@@ -3394,7 +3394,7 @@ uint8_t do_NR_UECapabilityEnquiry( const protocol_ctxt_t *const ctxt_pP,
   nsa_band->present = NR_FreqBandInformation_PR_bandInformationEUTRA;
   nsa_band->choice.bandInformationEUTRA = (NR_FreqBandInformationEUTRA_t *) calloc(1, sizeof(NR_FreqBandInformationEUTRA_t));
   nsa_band->choice.bandInformationEUTRA->bandEUTRA = eutra_band;
-  ASN_SEQUENCE_ADD(&nsa_band_list->list, nsa_band);
+  asn1cSeqAdd(&nsa_band_list->list, nsa_band);
 
   nsa_band = (NR_FreqBandInformation_t *) calloc(1,sizeof(NR_FreqBandInformation_t));
   nsa_band->present = NR_FreqBandInformation_PR_bandInformationNR;
@@ -3403,7 +3403,7 @@ uint8_t do_NR_UECapabilityEnquiry( const protocol_ctxt_t *const ctxt_pP,
     nsa_band->choice.bandInformationNR->bandNR = nr_band;
   else
     nsa_band->choice.bandInformationNR->bandNR = 78;
-  ASN_SEQUENCE_ADD(&nsa_band_list->list, nsa_band);
+  asn1cSeqAdd(&nsa_band_list->list, nsa_band);
 
   OCTET_STRING_t req_freq;
   //unsigned char req_freq_buf[5] = { 0x00, 0x20, 0x1a, 0x02, 0x68 };  // bands 7 & nr78
@@ -3843,7 +3843,7 @@ do_RRCConnectionReestablishment(
   if (SRB2_config == NULL) {
     LOG_W(RRC,"SRB2 configuration does not exist in SRB configuration list\n");
   } else {
-    ASN_SEQUENCE_ADD(&(*SRB_configList2)->list, SRB2_config);
+    asn1cSeqAdd(&(*SRB_configList2)->list, SRB2_config);
   }
 
   if (*SRB_configList) {
@@ -3851,7 +3851,7 @@ do_RRCConnectionReestablishment(
   }
 
   *SRB_configList = CALLOC(1, sizeof(LTE_SRB_ToAddModList_t));
-  ASN_SEQUENCE_ADD(&(*SRB_configList)->list,SRB1_config);
+  asn1cSeqAdd(&(*SRB_configList)->list,SRB1_config);
   physicalConfigDedicated2 = *physicalConfigDedicated;
   rrcConnectionReestablishment->rrc_TransactionIdentifier = Transaction_id;
   rrcConnectionReestablishment->criticalExtensions.present = LTE_RRCConnectionReestablishment__criticalExtensions_PR_c1;
@@ -4070,7 +4070,7 @@ uint8_t do_MBSFNAreaConfig(uint8_t Mod_id,
       break;
   }
 
-  ASN_SEQUENCE_ADD(&(*mbsfnAreaConfiguration)->commonSF_Alloc_r9.list,mbsfn_SubframeConfig1);
+  asn1cSeqAdd(&(*mbsfnAreaConfiguration)->commonSF_Alloc_r9.list,mbsfn_SubframeConfig1);
   //  commonSF-AllocPeriod-r9
   (*mbsfnAreaConfiguration)->commonSF_AllocPeriod_r9= LTE_MBSFNAreaConfiguration_r9__commonSF_AllocPeriod_r9_rf16;
   // PMCHs Information List (PMCH-InfoList-r9)
@@ -4102,7 +4102,7 @@ uint8_t do_MBSFNAreaConfig(uint8_t Mod_id,
   mbms_Session_1->sessionId_r9->buf[0]= MTCH;
   // Logical Channel ID
   mbms_Session_1->logicalChannelIdentity_r9= MTCH;
-  ASN_SEQUENCE_ADD(&pmch_Info_1->mbms_SessionInfoList_r9.list,mbms_Session_1);
+  asn1cSeqAdd(&pmch_Info_1->mbms_SessionInfoList_r9.list,mbms_Session_1);
   /*    //  Session 2
   //mbms_Session_2 = CALLOC(1,sizeof(MBMS_SessionInfo_r9_t));
   memset(mbms_Session_2,0,sizeof(MBMS_SessionInfo_r9_t));
@@ -4118,9 +4118,9 @@ uint8_t do_MBSFNAreaConfig(uint8_t Mod_id,
   mbms_Session_2->sessionID_r9->buf[0]= 0x11;
   // Logical Channel ID
   mbms_Session_2->logicalChannelIdentity_r9= 2;
-  ASN_SEQUENCE_ADD(&pmch_Info_1->mbms_SessionInfoList_r9.list,mbms_Session_2);
+  asn1cSeqAdd(&pmch_Info_1->mbms_SessionInfoList_r9.list,mbms_Session_2);
   */
-  ASN_SEQUENCE_ADD(&(*mbsfnAreaConfiguration)->pmch_InfoList_r9.list,pmch_Info_1);
+  asn1cSeqAdd(&(*mbsfnAreaConfiguration)->pmch_InfoList_r9.list,pmch_Info_1);
 
   if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) {
     xer_fprint(stdout,&asn_DEF_LTE_MCCH_Message,(void *)mcch_message);
@@ -4181,17 +4181,17 @@ uint8_t do_MeasurementReport(uint8_t Mod_id, uint8_t *buffer, size_t buffer_size
   asn_set_empty(&measresult_cgi2->cellGlobalId.plmn_Identity.mcc->list);//.size=0;
   LTE_MCC_MNC_Digit_t dummy;
   dummy=2;
-  ASN_SEQUENCE_ADD(&measresult_cgi2->cellGlobalId.plmn_Identity.mcc->list,&dummy);
+  asn1cSeqAdd(&measresult_cgi2->cellGlobalId.plmn_Identity.mcc->list,&dummy);
   dummy=6;
-  ASN_SEQUENCE_ADD(&measresult_cgi2->cellGlobalId.plmn_Identity.mcc->list,&dummy);
+  asn1cSeqAdd(&measresult_cgi2->cellGlobalId.plmn_Identity.mcc->list,&dummy);
   dummy=2;
-  ASN_SEQUENCE_ADD(&measresult_cgi2->cellGlobalId.plmn_Identity.mcc->list,&dummy);
+  asn1cSeqAdd(&measresult_cgi2->cellGlobalId.plmn_Identity.mcc->list,&dummy);
   measresult_cgi2->cellGlobalId.plmn_Identity.mnc.list.size=0;
   measresult_cgi2->cellGlobalId.plmn_Identity.mnc.list.count=0;
   dummy=8;
-  ASN_SEQUENCE_ADD(&measresult_cgi2->cellGlobalId.plmn_Identity.mnc.list,&dummy);
+  asn1cSeqAdd(&measresult_cgi2->cellGlobalId.plmn_Identity.mnc.list,&dummy);
   dummy=0;
-  ASN_SEQUENCE_ADD(&measresult_cgi2->cellGlobalId.plmn_Identity.mnc.list,&dummy);
+  asn1cSeqAdd(&measresult_cgi2->cellGlobalId.plmn_Identity.mnc.list,&dummy);
   measresult_cgi2->cellGlobalId.cellIdentity.buf=MALLOC(8);
   measresult_cgi2->cellGlobalId.cellIdentity.buf[0]=0x01;
   measresult_cgi2->cellGlobalId.cellIdentity.buf[1]=0x48;
@@ -4212,7 +4212,7 @@ uint8_t do_MeasurementReport(uint8_t Mod_id, uint8_t *buffer, size_t buffer_size
   meas2.rsrqResult=&(rsrq_t);
   meas2.ext1 = NULL;
   measresulteutra2->measResult=meas2;
-  ASN_SEQUENCE_ADD(&measResultListEUTRA2->list,measresulteutra2);
+  asn1cSeqAdd(&measResultListEUTRA2->list,measresulteutra2);
   measurementReport->criticalExtensions.choice.c1.choice.measurementReport_r8.measResults.measResultNeighCells->choice.measResultListEUTRA=*(measResultListEUTRA2);
 
   if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) {
@@ -4237,15 +4237,6 @@ uint8_t do_MeasurementReport(uint8_t Mod_id, uint8_t *buffer, size_t buffer_size
   measResultListEUTRA2 = NULL;
   return((enc_rval.encoded+7)/8);
 }
-
-#define asn1cCallocOne(VaR, VaLue) \
-  VaR = calloc(1,sizeof(*VaR)); *VaR=VaLue;
-#define asn1cCalloc(VaR, lOcPtr) \
-  typeof(VaR) lOcPtr = VaR = calloc(1,sizeof(*VaR));
-#define asn1cSequenceAdd(VaR, TyPe, lOcPtr) \
-  TyPe *lOcPtr= calloc(1,sizeof(TyPe)); \
-  ASN_SEQUENCE_ADD(&VaR,lOcPtr);
-
 ssize_t do_nrMeasurementReport(uint8_t *buffer,
                                size_t bufsize,
                                LTE_MeasId_t measid,
@@ -4353,7 +4344,7 @@ uint8_t do_Paging(uint8_t Mod_id, uint8_t *buffer, size_t buffer_size,
 
     for (j = 0; j< ue_paging_identity.choice.imsi.length; j++) {  /* IMSI size */
       imsi_digit[j] = (LTE_IMSI_Digit_t)ue_paging_identity.choice.imsi.buffer[j];
-      ASN_SEQUENCE_ADD(&paging_record_p->ue_Identity.choice.imsi.list, &imsi_digit[j]);
+      asn1cSeqAdd(&paging_record_p->ue_Identity.choice.imsi.list, &imsi_digit[j]);
     }
   }
 
@@ -4365,7 +4356,7 @@ uint8_t do_Paging(uint8_t Mod_id, uint8_t *buffer, size_t buffer_size,
   }
 
   /* add to list */
-  ASN_SEQUENCE_ADD(&pcch_msg.message.choice.c1.choice.paging.pagingRecordList->list, paging_record_p);
+  asn1cSeqAdd(&pcch_msg.message.choice.c1.choice.paging.pagingRecordList->list, paging_record_p);
   LOG_D(RRC, "[eNB %d] do_Paging paging_record: cn_Domain %ld, ue_paging_identity.presenceMask %d, PagingRecordList.count %d\n",
         Mod_id, paging_record_p->cn_Domain, ue_paging_identity.presenceMask, pcch_msg.message.choice.c1.choice.paging.pagingRecordList->list.count);
   enc_rval = uper_encode_to_buffer(&asn_DEF_LTE_PCCH_Message, NULL, (void *)&pcch_msg,
@@ -4425,7 +4416,7 @@ int do_HandoverPreparation(char *ho_buf, int ho_size, LTE_UE_EUTRA_Capability_t
     AssertFatal (OCTET_STRING_fromBuf(
                    &ue_cap_rat_container->ueCapabilityRAT_Container,
                    rrc_buf, rrc_size) != -1, "fatal: OCTET_STRING_fromBuf failed\n");
-    ASN_SEQUENCE_ADD(&ho_info->ue_RadioAccessCapabilityInfo.list, ue_cap_rat_container);
+    asn1cSeqAdd(&ho_info->ue_RadioAccessCapabilityInfo.list, ue_cap_rat_container);
   }
   enc_rval = uper_encode_to_buffer(&asn_DEF_LTE_HandoverPreparationInformation,
                                    NULL,
@@ -4614,9 +4605,9 @@ void allocate_en_DC_r15(LTE_UE_EUTRA_Capability_t *cap)
 
 OAI_UECapability_t *fill_ue_capability(char *UE_EUTRA_Capability_xer_fname, bool received_nr_msg) {
   static OAI_UECapability_t UECapability; /* TODO declared static to allow returning this has an address should be allocated in a cleaner way. */
-  static LTE_SupportedBandEUTRA_t Bandlist[4]; // the macro ASN_SEQUENCE_ADD() does not copy the source, but only stores a reference to it
-  static LTE_InterFreqBandInfo_t InterFreqBandInfo[4][4]; // the macro ASN_SEQUENCE_ADD() does not copy the source, but only stores a reference to it
-  static LTE_BandInfoEUTRA_t BandInfoEUTRA[4]; // the macro ASN_SEQUENCE_ADD() does not copy the source, but only stores a reference to it
+  static LTE_SupportedBandEUTRA_t Bandlist[4]; // the macro asn1cSeqAdd() does not copy the source, but only stores a reference to it
+  static LTE_InterFreqBandInfo_t InterFreqBandInfo[4][4]; // the macro asn1cSeqAdd() does not copy the source, but only stores a reference to it
+  static LTE_BandInfoEUTRA_t BandInfoEUTRA[4]; // the macro asn1cSeqAdd() does not copy the source, but only stores a reference to it
   asn_enc_rval_t enc_rval;
   asn_dec_rval_t dec_rval;
   long maxNumberROHC_ContextSessions = LTE_PDCP_Parameters__maxNumberROHC_ContextSessions_cs16;
@@ -4670,30 +4661,30 @@ OAI_UECapability_t *fill_ue_capability(char *UE_EUTRA_Capability_xer_fname, bool
     UE_EUTRA_Capability->phyLayerParameters.ue_TxAntennaSelectionSupported = 0;
     UE_EUTRA_Capability->phyLayerParameters.ue_SpecificRefSigsSupported    = 0;
     UE_EUTRA_Capability->rf_Parameters.supportedBandListEUTRA.list.count                          = 0;
-    ASN_SEQUENCE_ADD(&UE_EUTRA_Capability->rf_Parameters.supportedBandListEUTRA.list,(void *)&Bandlist[0]);
-    ASN_SEQUENCE_ADD(&UE_EUTRA_Capability->rf_Parameters.supportedBandListEUTRA.list,(void *)&Bandlist[1]);
-    ASN_SEQUENCE_ADD(&UE_EUTRA_Capability->rf_Parameters.supportedBandListEUTRA.list,(void *)&Bandlist[2]);
-    ASN_SEQUENCE_ADD(&UE_EUTRA_Capability->rf_Parameters.supportedBandListEUTRA.list,(void *)&Bandlist[3]);
-    ASN_SEQUENCE_ADD(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list,(void *)&BandInfoEUTRA[0]);
-    ASN_SEQUENCE_ADD(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list,(void *)&BandInfoEUTRA[1]);
-    ASN_SEQUENCE_ADD(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list,(void *)&BandInfoEUTRA[2]);
-    ASN_SEQUENCE_ADD(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list,(void *)&BandInfoEUTRA[3]);
-    ASN_SEQUENCE_ADD(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[0]->interFreqBandList.list,(void *)&InterFreqBandInfo[0][0]);
-    ASN_SEQUENCE_ADD(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[0]->interFreqBandList.list,(void *)&InterFreqBandInfo[0][1]);
-    ASN_SEQUENCE_ADD(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[0]->interFreqBandList.list,(void *)&InterFreqBandInfo[0][2]);
-    ASN_SEQUENCE_ADD(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[0]->interFreqBandList.list,(void *)&InterFreqBandInfo[0][3]);
-    ASN_SEQUENCE_ADD(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[1]->interFreqBandList.list,(void *)&InterFreqBandInfo[1][0]);
-    ASN_SEQUENCE_ADD(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[1]->interFreqBandList.list,(void *)&InterFreqBandInfo[1][1]);
-    ASN_SEQUENCE_ADD(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[1]->interFreqBandList.list,(void *)&InterFreqBandInfo[1][2]);
-    ASN_SEQUENCE_ADD(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[1]->interFreqBandList.list,(void *)&InterFreqBandInfo[1][3]);
-    ASN_SEQUENCE_ADD(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[2]->interFreqBandList.list,(void *)&InterFreqBandInfo[2][0]);
-    ASN_SEQUENCE_ADD(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[2]->interFreqBandList.list,(void *)&InterFreqBandInfo[2][1]);
-    ASN_SEQUENCE_ADD(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[2]->interFreqBandList.list,(void *)&InterFreqBandInfo[2][2]);
-    ASN_SEQUENCE_ADD(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[2]->interFreqBandList.list,(void *)&InterFreqBandInfo[2][3]);
-    ASN_SEQUENCE_ADD(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[3]->interFreqBandList.list,(void *)&InterFreqBandInfo[3][0]);
-    ASN_SEQUENCE_ADD(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[3]->interFreqBandList.list,(void *)&InterFreqBandInfo[3][1]);
-    ASN_SEQUENCE_ADD(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[3]->interFreqBandList.list,(void *)&InterFreqBandInfo[3][2]);
-    ASN_SEQUENCE_ADD(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[3]->interFreqBandList.list,(void *)&InterFreqBandInfo[3][3]);
+    asn1cSeqAdd(&UE_EUTRA_Capability->rf_Parameters.supportedBandListEUTRA.list,(void *)&Bandlist[0]);
+    asn1cSeqAdd(&UE_EUTRA_Capability->rf_Parameters.supportedBandListEUTRA.list,(void *)&Bandlist[1]);
+    asn1cSeqAdd(&UE_EUTRA_Capability->rf_Parameters.supportedBandListEUTRA.list,(void *)&Bandlist[2]);
+    asn1cSeqAdd(&UE_EUTRA_Capability->rf_Parameters.supportedBandListEUTRA.list,(void *)&Bandlist[3]);
+    asn1cSeqAdd(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list,(void *)&BandInfoEUTRA[0]);
+    asn1cSeqAdd(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list,(void *)&BandInfoEUTRA[1]);
+    asn1cSeqAdd(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list,(void *)&BandInfoEUTRA[2]);
+    asn1cSeqAdd(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list,(void *)&BandInfoEUTRA[3]);
+    asn1cSeqAdd(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[0]->interFreqBandList.list,(void *)&InterFreqBandInfo[0][0]);
+    asn1cSeqAdd(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[0]->interFreqBandList.list,(void *)&InterFreqBandInfo[0][1]);
+    asn1cSeqAdd(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[0]->interFreqBandList.list,(void *)&InterFreqBandInfo[0][2]);
+    asn1cSeqAdd(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[0]->interFreqBandList.list,(void *)&InterFreqBandInfo[0][3]);
+    asn1cSeqAdd(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[1]->interFreqBandList.list,(void *)&InterFreqBandInfo[1][0]);
+    asn1cSeqAdd(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[1]->interFreqBandList.list,(void *)&InterFreqBandInfo[1][1]);
+    asn1cSeqAdd(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[1]->interFreqBandList.list,(void *)&InterFreqBandInfo[1][2]);
+    asn1cSeqAdd(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[1]->interFreqBandList.list,(void *)&InterFreqBandInfo[1][3]);
+    asn1cSeqAdd(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[2]->interFreqBandList.list,(void *)&InterFreqBandInfo[2][0]);
+    asn1cSeqAdd(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[2]->interFreqBandList.list,(void *)&InterFreqBandInfo[2][1]);
+    asn1cSeqAdd(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[2]->interFreqBandList.list,(void *)&InterFreqBandInfo[2][2]);
+    asn1cSeqAdd(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[2]->interFreqBandList.list,(void *)&InterFreqBandInfo[2][3]);
+    asn1cSeqAdd(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[3]->interFreqBandList.list,(void *)&InterFreqBandInfo[3][0]);
+    asn1cSeqAdd(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[3]->interFreqBandList.list,(void *)&InterFreqBandInfo[3][1]);
+    asn1cSeqAdd(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[3]->interFreqBandList.list,(void *)&InterFreqBandInfo[3][2]);
+    asn1cSeqAdd(&UE_EUTRA_Capability->measParameters.bandListEUTRA.list.array[3]->interFreqBandList.list,(void *)&InterFreqBandInfo[3][3]);
 
     // UE_EUTRA_Capability->measParameters.bandListEUTRA.list.count                         = 0;  // no measurements on other bands
     // UE_EUTRA_Capability->featureGroupIndicators  // null
diff --git a/openair2/RRC/LTE/MESSAGES/asn1_msg.h b/openair2/RRC/LTE/MESSAGES/asn1_msg.h
index 8373bb53f330b0c7bae733322ea0ace7089fd318..3d5a8bb68c2deb8d5c82766d3f85f3d69ff4a6f4 100644
--- a/openair2/RRC/LTE/MESSAGES/asn1_msg.h
+++ b/openair2/RRC/LTE/MESSAGES/asn1_msg.h
@@ -40,7 +40,6 @@
 #include <errno.h>  /* for errno */
 
 #include <asn_application.h>
-#include <asn_internal.h> /* for _ASN_DEFAULT_STACK_MAX */
 
 #include "RRC/LTE/rrc_defs.h"
 #include "LTE_SL-DestinationInfoList-r12.h"
@@ -56,14 +55,6 @@
  */
 int xer_sprint(char *string, size_t string_size, struct asn_TYPE_descriptor_s *td, void *sptr);
 
-#define asn1cCallocOne(VaR, VaLue) \
-  VaR = calloc(1,sizeof(*VaR)); *VaR=VaLue;
-#define asn1cCalloc(VaR, lOcPtr) \
-  typeof(VaR) lOcPtr = VaR = calloc(1,sizeof(*VaR));
-#define asn1cSequenceAdd(VaR, TyPe, lOcPtr) \
-  TyPe *lOcPtr= calloc(1,sizeof(TyPe)); \
-  ASN_SEQUENCE_ADD(&VaR,lOcPtr);
-
 uint16_t get_adjacent_cell_id(uint8_t Mod_id,uint8_t index);
 
 uint8_t get_adjacent_cell_mod_id(uint16_t phyCellId);
diff --git a/openair2/RRC/LTE/MESSAGES/asn1_msg_NB_IoT.c b/openair2/RRC/LTE/MESSAGES/asn1_msg_NB_IoT.c
index 1f6a578a8a57801cd281ee47be1e17eb5830e135..f9df7f3581095e3a8ec16ec02f660f867ac05b34 100644
--- a/openair2/RRC/LTE/MESSAGES/asn1_msg_NB_IoT.c
+++ b/openair2/RRC/LTE/MESSAGES/asn1_msg_NB_IoT.c
@@ -35,8 +35,8 @@
 #include <sysexits.h> /* for EX_* exit codes */
 #include <errno.h>  /* for errno */
 #include "common/utils/LOG/log.h"
+#include "oai_asn1.h"
 #include <asn_application.h>
-#include <asn_internal.h> /* for _ASN_DEFAULT_STACK_MAX */
 #include <per_encoder.h>
 #include "asn1_msg.h"
 
@@ -180,9 +180,9 @@ uint8_t do_SIB1_NB_IoT(uint8_t Mod_id, int CC_id,
   dummy_mcc[0] = (configuration->mcc / 100) % 10;
   dummy_mcc[1] = (configuration->mcc / 10) % 10;
   dummy_mcc[2] = (configuration->mcc / 1) % 10;
-  ASN_SEQUENCE_ADD(&PLMN_identity_info_NB_IoT.plmn_Identity_r13.mcc->list,&dummy_mcc[0]);
-  ASN_SEQUENCE_ADD(&PLMN_identity_info_NB_IoT.plmn_Identity_r13.mcc->list,&dummy_mcc[1]);
-  ASN_SEQUENCE_ADD(&PLMN_identity_info_NB_IoT.plmn_Identity_r13.mcc->list,&dummy_mcc[2]);
+  asn1cSeqAdd(&PLMN_identity_info_NB_IoT.plmn_Identity_r13.mcc->list,&dummy_mcc[0]);
+  asn1cSeqAdd(&PLMN_identity_info_NB_IoT.plmn_Identity_r13.mcc->list,&dummy_mcc[1]);
+  asn1cSeqAdd(&PLMN_identity_info_NB_IoT.plmn_Identity_r13.mcc->list,&dummy_mcc[2]);
   PLMN_identity_info_NB_IoT.plmn_Identity_r13.mnc.list.size=0;
   PLMN_identity_info_NB_IoT.plmn_Identity_r13.mnc.list.count=0;
 
@@ -202,18 +202,18 @@ uint8_t do_SIB1_NB_IoT(uint8_t Mod_id, int CC_id,
     }
   }
 
-  ASN_SEQUENCE_ADD(&PLMN_identity_info_NB_IoT.plmn_Identity_r13.mnc.list,&dummy_mnc[0]);
-  ASN_SEQUENCE_ADD(&PLMN_identity_info_NB_IoT.plmn_Identity_r13.mnc.list,&dummy_mnc[1]);
+  asn1cSeqAdd(&PLMN_identity_info_NB_IoT.plmn_Identity_r13.mnc.list,&dummy_mnc[0]);
+  asn1cSeqAdd(&PLMN_identity_info_NB_IoT.plmn_Identity_r13.mnc.list,&dummy_mnc[1]);
 
   if (dummy_mnc[2] != 0xf) {
-    ASN_SEQUENCE_ADD(&PLMN_identity_info_NB_IoT.plmn_Identity_r13.mnc.list,&dummy_mnc[2]);
+    asn1cSeqAdd(&PLMN_identity_info_NB_IoT.plmn_Identity_r13.mnc.list,&dummy_mnc[2]);
   }
 
   //still set to "notReserved" as in the previous case
   PLMN_identity_info_NB_IoT.cellReservedForOperatorUse_r13=LTE_PLMN_IdentityInfo_NB_r13__cellReservedForOperatorUse_r13_notReserved;
   *attachWithoutPDN_Connectivity = 0;
   PLMN_identity_info_NB_IoT.attachWithoutPDN_Connectivity_r13 = attachWithoutPDN_Connectivity;
-  ASN_SEQUENCE_ADD(&(*sib1_NB_IoT)->cellAccessRelatedInfo_r13.plmn_IdentityList_r13.list,&PLMN_identity_info_NB_IoT);
+  asn1cSeqAdd(&(*sib1_NB_IoT)->cellAccessRelatedInfo_r13.plmn_IdentityList_r13.list,&PLMN_identity_info_NB_IoT);
   // 16 bits = 2 byte
   (*sib1_NB_IoT)->cellAccessRelatedInfo_r13.trackingAreaCode_r13.buf = MALLOC(2); //MALLOC works in byte
   //lefts as it is?
@@ -274,8 +274,8 @@ uint8_t do_SIB1_NB_IoT(uint8_t Mod_id, int CC_id,
     * listed in the schedulingInfoList list.
     * */
   sib_type_NB_IoT[0]=LTE_SIB_Type_NB_r13_sibType3_NB_r13;
-  ASN_SEQUENCE_ADD(&schedulingInfo_NB_IoT[0].sib_MappingInfo_r13.list,&sib_type_NB_IoT[0]);
-  ASN_SEQUENCE_ADD(&(*sib1_NB_IoT)->schedulingInfoList_r13.list,&schedulingInfo_NB_IoT[0]);
+  asn1cSeqAdd(&schedulingInfo_NB_IoT[0].sib_MappingInfo_r13.list,&sib_type_NB_IoT[0]);
+  asn1cSeqAdd(&(*sib1_NB_IoT)->schedulingInfoList_r13.list,&schedulingInfo_NB_IoT[0]);
   //printf("[ASN Debug] SI P: %ld\n",(*sib1_NB_IoT)->schedulingInfoList_r13.list.array[0]->si_Periodicity_r13);
 
   if (configuration->frame_type == TDD)
@@ -295,7 +295,7 @@ uint8_t do_SIB1_NB_IoT(uint8_t Mod_id, int CC_id,
   //FIXME correct?
   (*sib1_NB_IoT)->systemInfoValueTagList_r13 = CALLOC(1, sizeof(struct LTE_SystemInfoValueTagList_NB_r13));
   asn_set_empty(&(*sib1_NB_IoT)->systemInfoValueTagList_r13->list);
-  ASN_SEQUENCE_ADD(&(*sib1_NB_IoT)->systemInfoValueTagList_r13->list,&systemInfoValueTagSI);
+  asn1cSeqAdd(&(*sib1_NB_IoT)->systemInfoValueTagList_r13->list,&systemInfoValueTagSI);
 
   if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) {
     xer_fprint(stdout, &asn_DEF_LTE_BCCH_DL_SCH_Message_NB, (void *)bcch_message);
@@ -391,7 +391,7 @@ uint8_t do_SIB23_NB_IoT(uint8_t Mod_id,
   rach_Info_NB_IoT.ra_ResponseWindowSize_r13 = configuration->rach_raResponseWindowSize_NB;
   rach_Info_NB_IoT.mac_ContentionResolutionTimer_r13 = configuration-> rach_macContentionResolutionTimer_NB;
   //rach_infoList max size = maxNPRACH-Resources-NB-r13 = 3
-  ASN_SEQUENCE_ADD(&sib2_NB_IoT->radioResourceConfigCommon_r13.rach_ConfigCommon_r13.rach_InfoList_r13.list,&rach_Info_NB_IoT);
+  asn1cSeqAdd(&sib2_NB_IoT->radioResourceConfigCommon_r13.rach_ConfigCommon_r13.rach_InfoList_r13.list,&rach_Info_NB_IoT);
   //TS 36.331 pag 614 --> if not present the value to infinity sould be used
   *connEstFailOffset = 0;
   sib2_NB_IoT->radioResourceConfigCommon_r13.rach_ConfigCommon_r13.connEstFailOffset_r13 = connEstFailOffset; /*OPTIONAL*/
@@ -410,7 +410,7 @@ uint8_t do_SIB23_NB_IoT(uint8_t Mod_id,
   //   =CALLOC(1, sizeof(struct RSRP_ThresholdsNPRACH_InfoList_NB_r13)); //fatto uguale dopo
   //   rsrp_ThresholdsPrachInfoList = sib2_NB_IoT->radioResourceConfigCommon_r13.nprach_Config_r13.rsrp_ThresholdsPrachInfoList_r13;
   //   rsrp_range = configuration->nprach_rsrp_range_NB;
-  //   ASN_SEQUENCE_ADD(&rsrp_ThresholdsPrachInfoList->list,rsrp_range);
+  //   asn1cSeqAdd(&rsrp_ThresholdsPrachInfoList->list,rsrp_range);
   // According configuration to set the 3 CE level configuration setting
   nprach_parameters[0].nprach_Periodicity_r13               = configuration->nprach_Periodicity[0];
   nprach_parameters[0].nprach_StartTime_r13                 = configuration->nprach_StartTime[0];
@@ -443,15 +443,15 @@ uint8_t do_SIB23_NB_IoT(uint8_t Mod_id,
   nprach_parameters[2].npdcch_StartSF_CSS_RA_r13            = configuration->npdcch_StartSF_CSS_RA[2];
   nprach_parameters[2].npdcch_Offset_RA_r13                 = configuration->npdcch_Offset_RA[2];
   //nprach_parameterList have a max size of 3 possible nprach configuration (see maxNPRACH_Resources_NB_r13)
-  ASN_SEQUENCE_ADD(&sib2_NB_IoT->radioResourceConfigCommon_r13.nprach_Config_r13.nprach_ParametersList_r13.list,&nprach_parameters[0]);
-  ASN_SEQUENCE_ADD(&sib2_NB_IoT->radioResourceConfigCommon_r13.nprach_Config_r13.nprach_ParametersList_r13.list,&nprach_parameters[1]);
-  ASN_SEQUENCE_ADD(&sib2_NB_IoT->radioResourceConfigCommon_r13.nprach_Config_r13.nprach_ParametersList_r13.list,&nprach_parameters[2]);
+  asn1cSeqAdd(&sib2_NB_IoT->radioResourceConfigCommon_r13.nprach_Config_r13.nprach_ParametersList_r13.list,&nprach_parameters[0]);
+  asn1cSeqAdd(&sib2_NB_IoT->radioResourceConfigCommon_r13.nprach_Config_r13.nprach_ParametersList_r13.list,&nprach_parameters[1]);
+  asn1cSeqAdd(&sib2_NB_IoT->radioResourceConfigCommon_r13.nprach_Config_r13.nprach_ParametersList_r13.list,&nprach_parameters[2]);
   // NPDSCH-Config NB-IOT
   sib2_NB_IoT->radioResourceConfigCommon_r13.npdsch_ConfigCommon_r13.nrs_Power_r13= configuration->npdsch_nrs_Power;
   //NPUSCH-Config NB-IoT----------------------------------------------------------------
   //list of size 3 (see maxNPRACH_Resources_NB_r13)
   ack_nack_repetition = configuration-> npusch_ack_nack_numRepetitions_NB; //is an enumerative
-  ASN_SEQUENCE_ADD(&(sib2_NB_IoT->radioResourceConfigCommon_r13.npusch_ConfigCommon_r13.ack_NACK_NumRepetitions_Msg4_r13.list) ,&ack_nack_repetition);
+  asn1cSeqAdd(&(sib2_NB_IoT->radioResourceConfigCommon_r13.npusch_ConfigCommon_r13.ack_NACK_NumRepetitions_Msg4_r13.list) ,&ack_nack_repetition);
   *srs_SubframeConfig = configuration->npusch_srs_SubframeConfig_NB;
   sib2_NB_IoT->radioResourceConfigCommon_r13.npusch_ConfigCommon_r13.srs_SubframeConfig_r13= srs_SubframeConfig; /*OPTIONAL*/
   /*OPTIONAL*/
@@ -515,9 +515,9 @@ uint8_t do_SIB23_NB_IoT(uint8_t Mod_id,
   bcch_message->message.choice.c1.present = LTE_BCCH_DL_SCH_MessageType_NB__c1_PR_systemInformation_r13;
   bcch_message->message.choice.c1.choice.systemInformation_r13.criticalExtensions.present = LTE_SystemInformation_NB__criticalExtensions_PR_systemInformation_r13;
   bcch_message->message.choice.c1.choice.systemInformation_r13.criticalExtensions.choice.systemInformation_r13.sib_TypeAndInfo_r13.list.count=0;
-  ASN_SEQUENCE_ADD(&bcch_message->message.choice.c1.choice.systemInformation_r13.criticalExtensions.choice.systemInformation_r13.sib_TypeAndInfo_r13.list,
+  asn1cSeqAdd(&bcch_message->message.choice.c1.choice.systemInformation_r13.criticalExtensions.choice.systemInformation_r13.sib_TypeAndInfo_r13.list,
                    sib2_NB_part);
-  ASN_SEQUENCE_ADD(&bcch_message->message.choice.c1.choice.systemInformation_r13.criticalExtensions.choice.systemInformation_r13.sib_TypeAndInfo_r13.list,
+  asn1cSeqAdd(&bcch_message->message.choice.c1.choice.systemInformation_r13.criticalExtensions.choice.systemInformation_r13.sib_TypeAndInfo_r13.list,
                    sib3_NB_part);
 
   if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) {
@@ -624,7 +624,7 @@ uint8_t do_RRCConnectionSetup_NB_IoT(
     // SRB1_lchan_config_NB->choice.explicitValue.logicalChannelSR_Prohibit_r13 = logicalChannelSR_Prohibit;
     //
     // //ADD SRB1
-    // ASN_SEQUENCE_ADD(&(*SRB_configList_NB_IoT)->list,SRB1_config_NB);
+    // asn1cSeqAdd(&(*SRB_configList_NB_IoT)->list,SRB1_config_NB);
   }
   ///SRB1bis (The configuration for SRB1 and SRB1bis is the same) the only difference is the logical channel identity = 3 but not set here
   SRB1bis_config_NB_IoT = CALLOC(1,sizeof(*SRB1bis_config_NB_IoT));
@@ -649,7 +649,7 @@ uint8_t do_RRCConnectionSetup_NB_IoT(
   //ADD SRB1bis
   //MP: Actually there is no way to distinguish SRB1 and SRB1bis once put in the list
   //MP: SRB_ToAddModList_NB_r13_t size = 1
-  ASN_SEQUENCE_ADD(&(*SRB_configList_NB_IoT)->list,SRB1bis_config_NB_IoT);
+  asn1cSeqAdd(&(*SRB_configList_NB_IoT)->list,SRB1bis_config_NB_IoT);
   // PhysicalConfigDedicated (NPDCCH, NPUSCH, CarrierConfig, UplinkPowerControl)
   physicalConfigDedicated2_NB_IoT = CALLOC(1,sizeof(*physicalConfigDedicated2_NB_IoT));
   *physicalConfigDedicated_NB_IoT = physicalConfigDedicated2_NB_IoT;
diff --git a/openair2/RRC/LTE/rrc_UE.c b/openair2/RRC/LTE/rrc_UE.c
index cd7e524bf9d81b2737fc80ec8b4bf791436009fb..3bb86d93b5ee3741e30ec6638a89024f02e65c71 100644
--- a/openair2/RRC/LTE/rrc_UE.c
+++ b/openair2/RRC/LTE/rrc_UE.c
@@ -36,7 +36,7 @@
 
 #include "assertions.h"
 #include "hashtable.h"
-#include "asn1_conversions.h"
+#include "oai_asn1.h"
 #include "rrc_defs.h"
 #include "rrc_extern.h"
 #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h"
@@ -373,7 +373,7 @@ void init_SL_preconfig(UE_RRC_INST *UE, const uint8_t eNB_index ) {
   preconfigpool->dataHoppingConfig_r12.numSubbands_r12                              = LTE_SL_HoppingConfigComm_r12__numSubbands_r12_ns1;
   preconfigpool->dataHoppingConfig_r12.rb_Offset_r12                                = 0;
   preconfigpool->dataTxParameters_r12                                               = 0;
-  ASN_SEQUENCE_ADD(&UE->SL_Preconfiguration[eNB_index]->preconfigComm_r12.list,preconfigpool);
+  asn1cSeqAdd(&UE->SL_Preconfiguration[eNB_index]->preconfigComm_r12.list,preconfigpool);
   // Rel13 extensions
   UE->SL_Preconfiguration[eNB_index]->ext1 = NULL;
 }
@@ -1656,7 +1656,7 @@ rrc_ue_process_MBMSCountingRequest(
   MBMSCountingResponse_r10_IEs->mbsfn_AreaIndex_r10 = calloc(1,sizeof(long));
  // MBMSCountingResponse_r10_IEs->countingResponseList_r10 = calloc(1,sizeof(struct LTE_CountingResponseList_r10));
 //
-//  ASN_SEQUENCE_ADD(
+//  asn1cSeqAdd(
 //        &MBMSCountingResponse->criticalExtensions.choice.c1.choice.countingResponse_r10.countingResponseList_r10.list,
 //        &CountingResponse);
 //
@@ -1743,7 +1743,7 @@ rrc_ue_process_nrueCapabilityEnquiry(
   for (int i = 0; i < count; i++) {
     enc_rval.encoded = 0;
     if (*cap_req->list.array[i] == LTE_RAT_Type_nr) {
-        ASN_SEQUENCE_ADD(&ue_cap->criticalExtensions.choice.c1.choice.ueCapabilityInformation_r8.ue_CapabilityRAT_ContainerList.list,
+        asn1cSeqAdd(&ue_cap->criticalExtensions.choice.c1.choice.ueCapabilityInformation_r8.ue_CapabilityRAT_ContainerList.list,
                          &ue_CapabilityRAT_Container);
         ue_cap->criticalExtensions.choice.c1.choice.ueCapabilityInformation_r8.ue_CapabilityRAT_ContainerList.list.array[i]->rat_Type = LTE_RAT_Type_nr;
         asn_enc_rval_t enc_rval_nr = uper_encode_to_buffer(&asn_DEF_LTE_UL_DCCH_Message, NULL, (void *) &ul_dcch_msg, buffer, sizeof(buffer));
@@ -1755,7 +1755,7 @@ rrc_ue_process_nrueCapabilityEnquiry(
               __FUNCTION__, enc_rval.encoded, (enc_rval.encoded+7)/8);
     }
     else if (*cap_req->list.array[i] == LTE_RAT_Type_eutra_nr) {
-        ASN_SEQUENCE_ADD(&ue_cap->criticalExtensions.choice.c1.choice.ueCapabilityInformation_r8.ue_CapabilityRAT_ContainerList.list,
+        asn1cSeqAdd(&ue_cap->criticalExtensions.choice.c1.choice.ueCapabilityInformation_r8.ue_CapabilityRAT_ContainerList.list,
                          &ue_CapabilityRAT_Container_mrdc);
         ue_cap->criticalExtensions.choice.c1.choice.ueCapabilityInformation_r8.ue_CapabilityRAT_ContainerList.list.array[i]->rat_Type = LTE_RAT_Type_eutra_nr;
         asn_enc_rval_t enc_rval_eutra_nr = uper_encode_to_buffer(&asn_DEF_LTE_UL_DCCH_Message, NULL, (void *) &ul_dcch_msg, buffer, sizeof(buffer));
@@ -1825,7 +1825,7 @@ rrc_ue_process_ueCapabilityEnquiry(
   for (i=0; i<UECapabilityEnquiry->criticalExtensions.choice.c1.choice.ueCapabilityEnquiry_r8.ue_CapabilityRequest.list.count; i++) {
     if (*UECapabilityEnquiry->criticalExtensions.choice.c1.choice.ueCapabilityEnquiry_r8.ue_CapabilityRequest.list.array[i]
         == LTE_RAT_Type_eutra) {
-      ASN_SEQUENCE_ADD(
+      asn1cSeqAdd(
         &ul_dcch_msg.message.choice.c1.choice.ueCapabilityInformation.criticalExtensions.choice.c1.choice.ueCapabilityInformation_r8.ue_CapabilityRAT_ContainerList.list,
         &ue_CapabilityRAT_Container);
       enc_rval = uper_encode_to_buffer(&asn_DEF_LTE_UL_DCCH_Message, NULL, (void *) &ul_dcch_msg, buffer, 100);
@@ -1849,7 +1849,7 @@ rrc_ue_process_ueCapabilityEnquiry(
     }
     else if (*UECapabilityEnquiry->criticalExtensions.choice.c1.choice.ueCapabilityEnquiry_r8.ue_CapabilityRequest.list.array[i]
             == LTE_RAT_Type_nr) {
-        ASN_SEQUENCE_ADD(
+        asn1cSeqAdd(
           &ul_dcch_msg.message.choice.c1.choice.ueCapabilityInformation.criticalExtensions.choice.c1.choice.ueCapabilityInformation_r8.ue_CapabilityRAT_ContainerList.list,
           &ue_CapabilityRAT_Container);
         enc_rval = uper_encode_to_buffer(&asn_DEF_LTE_UL_DCCH_Message, NULL, (void *) &ul_dcch_msg, buffer, 100);
@@ -2108,7 +2108,7 @@ rrc_ue_process_mobilityControlInfo(
   lcid= CALLOC (1, sizeof (DRB_Identity_t)); // long
   for (*lcid=0;*lcid<NB_RB_MAX;*lcid++)
   {
-    ASN_SEQUENCE_ADD (&(drb2release_list)->list,lcid);
+    asn1cSeqAdd (&(drb2release_list)->list,lcid);
   }
    */
   //Removing SRB1 and SRB2 and DRB0
@@ -2419,7 +2419,7 @@ rrc_ue_decode_dcch(
             sl_destination_identity->buf[1] = 0x00;
             sl_destination_identity->buf[2] = 0x01;
             sl_destination_identity->bits_unused = 0;
-            ASN_SEQUENCE_ADD(&destinationInfoList->list,sl_destination_identity);
+            asn1cSeqAdd(&destinationInfoList->list,sl_destination_identity);
             rrc_ue_generate_SidelinkUEInformation(ctxt_pP, eNB_indexP, destinationInfoList, NULL, SL_TRANSMIT_NON_RELAY_ONE_TO_ONE);
             send_ue_information ++;
           }
@@ -5813,7 +5813,7 @@ void *rrc_control_socket_thread_fct(void *arg) {
         *logicalchannelgroup_drb = 1;
         DRB_ul_SpecificParameters->logicalChannelGroup = logicalchannelgroup_drb;
         UE->DRB_configList = CALLOC(1,sizeof(LTE_DRB_ToAddModList_t));
-        ASN_SEQUENCE_ADD(&UE->DRB_configList->list,UE->DRB_config[0][0]);
+        asn1cSeqAdd(&UE->DRB_configList->list,UE->DRB_config[0][0]);
         rrc_pdcp_config_asn1_req(&ctxt,
                                  (LTE_SRB_ToAddModList_t *) NULL,
                                  UE->DRB_configList,
@@ -6018,7 +6018,7 @@ void *rrc_control_socket_thread_fct(void *arg) {
         *logicalchannelgroup_drb = 1;
         DRB_ul_SpecificParameters->logicalChannelGroup = logicalchannelgroup_drb;
         UE->DRB_configList = CALLOC(1,sizeof(LTE_DRB_ToAddModList_t));
-        ASN_SEQUENCE_ADD(&UE->DRB_configList->list,UE->DRB_config[0][0]);
+        asn1cSeqAdd(&UE->DRB_configList->list,UE->DRB_config[0][0]);
         rrc_pdcp_config_asn1_req(&ctxt,
                                  (LTE_SRB_ToAddModList_t *) NULL,
                                  UE->DRB_configList,
@@ -6172,7 +6172,7 @@ void *rrc_control_socket_thread_fct(void *arg) {
         *logicalchannelgroup_drb = 1;
         DRB_ul_SpecificParameters->logicalChannelGroup = logicalchannelgroup_drb;
         UE->DRB_configList = CALLOC(1,sizeof(LTE_DRB_ToAddModList_t));
-        ASN_SEQUENCE_ADD(&UE->DRB_configList->list,UE->DRB_config[0][0]);
+        asn1cSeqAdd(&UE->DRB_configList->list,UE->DRB_config[0][0]);
         rrc_pdcp_config_asn1_req(&ctxt,
                                  (LTE_SRB_ToAddModList_t *) NULL,
                                  UE->DRB_configList,
diff --git a/openair2/RRC/LTE/rrc_eNB.c b/openair2/RRC/LTE/rrc_eNB.c
index 07c90f74eba1afe6f7f47d5213829e53700030bb..b4f7eece01d609d4b1a981770863d4903f766e99 100644
--- a/openair2/RRC/LTE/rrc_eNB.c
+++ b/openair2/RRC/LTE/rrc_eNB.c
@@ -29,15 +29,13 @@
  */
 #define RRC_ENB
 #define RRC_ENB_C
+#include "oai_asn1.h"
 #include <asn_application.h>
-#include <asn_internal.h> /* for _ASN_DEFAULT_STACK_MAX */
 #include <per_encoder.h>
 #include "rrc_defs.h"
 #include "rrc_extern.h"
 #include "assertions.h"
 #include "common/ran_context.h"
-#include "asn1_conversions.h"
-#include "asn_internal.h"
 #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h"
 #include "LAYER2/RLC/rlc.h"
 #include "LAYER2/MAC/mac_proto.h"
@@ -1078,7 +1076,7 @@ int rrc_eNB_previous_SRB2(rrc_eNB_ue_context_t         *ue_context_pP) {
   }
 
   if (SRB2_config != NULL) {
-    ASN_SEQUENCE_ADD(&SRB_configList->list, SRB2_config);
+    asn1cSeqAdd(&SRB_configList->list, SRB2_config);
   } else {
     LOG_E(RRC, "rrc_eNB_previous_SRB2 SRB2_config NULL\n");
   }
@@ -1427,8 +1425,8 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete(
 
   if (SRB2_config != NULL) {
     // Add SRB2 to SRB configuration list
-    ASN_SEQUENCE_ADD(&SRB_configList->list, SRB2_config);
-    ASN_SEQUENCE_ADD(&(*SRB_configList2)->list, SRB2_config);
+    asn1cSeqAdd(&SRB_configList->list, SRB2_config);
+    asn1cSeqAdd(&(*SRB_configList2)->list, SRB2_config);
     LOG_D(RRC, "Add SRB2_config (srb_Identity:%ld) to ue_context_pP->ue_context.SRB_configList\n",
           SRB2_config->srb_Identity);
     LOG_D(RRC, "Add SRB2_config (srb_Identity:%ld) to ue_context_pP->ue_context.SRB_configList2[%d]\n",
@@ -1451,7 +1449,7 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete(
     for (i = 0; (i < DRB_configList->list.count) && (i < 3); i++) {
       DRB_config = DRB_configList->list.array[i];
       // Add DRB to DRB configuration list, for LTE_RRCConnectionReconfigurationComplete
-      ASN_SEQUENCE_ADD(&(*DRB_configList2)->list, DRB_config);
+      asn1cSeqAdd(&(*DRB_configList2)->list, DRB_config);
     }
   }
 
@@ -1556,32 +1554,32 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete(
   MeasId0->measId = 1;
   MeasId0->measObjectId = 1;
   MeasId0->reportConfigId = 1;
-  ASN_SEQUENCE_ADD(&MeasId_list->list, MeasId0);
+  asn1cSeqAdd(&MeasId_list->list, MeasId0);
   MeasId1 = CALLOC(1, sizeof(*MeasId1));
   MeasId1->measId = 2;
   MeasId1->measObjectId = 1;
   MeasId1->reportConfigId = 2;
-  ASN_SEQUENCE_ADD(&MeasId_list->list, MeasId1);
+  asn1cSeqAdd(&MeasId_list->list, MeasId1);
   MeasId2 = CALLOC(1, sizeof(*MeasId2));
   MeasId2->measId = 3;
   MeasId2->measObjectId = 1;
   MeasId2->reportConfigId = 3;
-  ASN_SEQUENCE_ADD(&MeasId_list->list, MeasId2);
+  asn1cSeqAdd(&MeasId_list->list, MeasId2);
   MeasId3 = CALLOC(1, sizeof(*MeasId3));
   MeasId3->measId = 4;
   MeasId3->measObjectId = 1;
   MeasId3->reportConfigId = 4;
-  ASN_SEQUENCE_ADD(&MeasId_list->list, MeasId3);
+  asn1cSeqAdd(&MeasId_list->list, MeasId3);
   MeasId4 = CALLOC(1, sizeof(*MeasId4));
   MeasId4->measId = 5;
   MeasId4->measObjectId = 1;
   MeasId4->reportConfigId = 5;
-  ASN_SEQUENCE_ADD(&MeasId_list->list, MeasId4);
+  asn1cSeqAdd(&MeasId_list->list, MeasId4);
   MeasId5 = CALLOC(1, sizeof(*MeasId5));
   MeasId5->measId = 6;
   MeasId5->measObjectId = 1;
   MeasId5->reportConfigId = 6;
-  ASN_SEQUENCE_ADD(&MeasId_list->list, MeasId5);
+  asn1cSeqAdd(&MeasId_list->list, MeasId5);
   //  LTE_RRCConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->measIdToAddModList = MeasId_list;
   // Add one EUTRA Measurement Object
   MeasObj_list = CALLOC(1, sizeof(*MeasObj_list));
@@ -1610,10 +1608,10 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete(
     CellToAdd->cellIndex = i + 1;
     CellToAdd->physCellId = get_adjacent_cell_id(ctxt_pP->module_id, i);
     CellToAdd->cellIndividualOffset = LTE_Q_OffsetRange_dB0;
-    ASN_SEQUENCE_ADD(&CellsToAddModList->list, CellToAdd);
+    asn1cSeqAdd(&CellsToAddModList->list, CellToAdd);
   }
 
-  ASN_SEQUENCE_ADD(&MeasObj_list->list, MeasObj);
+  asn1cSeqAdd(&MeasObj_list->list, MeasObj);
   //  LTE_RRCConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->measObjectToAddModList = MeasObj_list;
   // Report Configurations for periodical, A1-A5 events
   ReportConfig_list = CALLOC(1, sizeof(*ReportConfig_list));
@@ -1634,7 +1632,7 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete(
   ReportConfig_per->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
   ReportConfig_per->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
   ReportConfig_per->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
-  ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_per);
+  asn1cSeqAdd(&ReportConfig_list->list, ReportConfig_per);
   ReportConfig_A1->reportConfigId = 2;
   ReportConfig_A1->reportConfig.present = LTE_ReportConfigToAddMod__reportConfig_PR_reportConfigEUTRA;
   ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.triggerType.present =
@@ -1650,7 +1648,7 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete(
   ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
   ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
   ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
-  ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_A1);
+  asn1cSeqAdd(&ReportConfig_list->list, ReportConfig_A1);
 
   if (RC.rrc[ctxt_pP->module_id]->HO_flag == 1 /*HO_MEASUREMENT */ ) {
     LOG_I(RRC, "[eNB %d] frame %d: requesting A2, A3, A4, A5, and A6 event reporting\n",
@@ -1671,7 +1669,7 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete(
     ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
     ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
     ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
-    ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_A2);
+    asn1cSeqAdd(&ReportConfig_list->list, ReportConfig_A2);
     ReportConfig_A3->reportConfigId = 4;
     ReportConfig_A3->reportConfig.present = LTE_ReportConfigToAddMod__reportConfig_PR_reportConfigEUTRA;
     ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerType.present =
@@ -1690,7 +1688,7 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete(
     ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.hysteresis = 0.5; // FIXME ...hysteresis is of type long!
     ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.timeToTrigger =
       LTE_TimeToTrigger_ms40;
-    ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_A3);
+    asn1cSeqAdd(&ReportConfig_list->list, ReportConfig_A3);
     ReportConfig_A4->reportConfigId = 5;
     ReportConfig_A4->reportConfig.present = LTE_ReportConfigToAddMod__reportConfig_PR_reportConfigEUTRA;
     ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.triggerType.present =
@@ -1707,7 +1705,7 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete(
     ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
     ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
     ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
-    ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_A4);
+    asn1cSeqAdd(&ReportConfig_list->list, ReportConfig_A4);
     ReportConfig_A5->reportConfigId = 6;
     ReportConfig_A5->reportConfig.present = LTE_ReportConfigToAddMod__reportConfig_PR_reportConfigEUTRA;
     ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.triggerType.present =
@@ -1728,7 +1726,7 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete(
     ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
     ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
     ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
-    ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_A5);
+    asn1cSeqAdd(&ReportConfig_list->list, ReportConfig_A5);
     //  LTE_RRCConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->reportConfigToAddModList = ReportConfig_list;
 #if 0
     /* TODO: set a proper value.
@@ -1795,7 +1793,7 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete(
                            (char *)ue_context_pP->ue_context.e_rab[i].param.nas_pdu.buffer,
                            ue_context_pP->ue_context.e_rab[i].param.nas_pdu.length);
       LOG_D(RRC, "Add LTE_DedicatedInfoNAS(%d) to LTE_DedicatedInfoNASList\n", i);
-      ASN_SEQUENCE_ADD(&dedicatedInfoNASList->list, dedicatedInfoNas);
+      asn1cSeqAdd(&dedicatedInfoNASList->list, dedicatedInfoNas);
     }
 
     /* TODO parameters yet to process ... */
@@ -2220,8 +2218,8 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration(const protocol_ctxt_t *co
     logicalchannelgroup_drb = CALLOC(1, sizeof(long));
     *logicalchannelgroup_drb = 1;//(i+1) % 3;
     DRB_ul_SpecificParameters->logicalChannelGroup = logicalchannelgroup_drb;
-    ASN_SEQUENCE_ADD(&DRB_configList->list, DRB_config);
-    ASN_SEQUENCE_ADD(&(*DRB_configList2)->list, DRB_config);
+    asn1cSeqAdd(&DRB_configList->list, DRB_config);
+    asn1cSeqAdd(&(*DRB_configList2)->list, DRB_config);
     //ue_context_pP->ue_context.DRB_configList2[drb_identity_index] = &(*DRB_configList);
     LOG_I(RRC,"EPS ID %ld, DRB ID %ld (index %d), QCI %d, priority %ld, LCID %ld LCGID %ld \n",
           *DRB_config->eps_BearerIdentity,
@@ -2241,7 +2239,7 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration(const protocol_ctxt_t *co
         OCTET_STRING_fromBuf(dedicatedInfoNas,
                              (char *)ue_context_pP->ue_context.e_rab[i].param.nas_pdu.buffer,
                              ue_context_pP->ue_context.e_rab[i].param.nas_pdu.length);
-        ASN_SEQUENCE_ADD(&dedicatedInfoNASList->list, dedicatedInfoNas);
+        asn1cSeqAdd(&dedicatedInfoNASList->list, dedicatedInfoNas);
         LOG_I(RRC,"add NAS info with size %d (rab id %d)\n",ue_context_pP->ue_context.e_rab[i].param.nas_pdu.length, i);
       } else {
         LOG_W(RRC,"Not received activate dedicated EPS bearer context request\n");
@@ -2467,7 +2465,7 @@ rrc_eNB_modify_dedicatedRRCConnectionReconfiguration(const protocol_ctxt_t *cons
     DRB_ul_SpecificParameters->prioritisedBitRate = LTE_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps8;
     DRB_ul_SpecificParameters->bucketSizeDuration =
       LTE_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms50;
-    ASN_SEQUENCE_ADD(&(DRB_configList2)->list, DRB_config);
+    asn1cSeqAdd(&(DRB_configList2)->list, DRB_config);
     LOG_I(RRC, "EPS ID %ld, DRB ID %ld (index %d), QCI %d, priority %ld, LCID %ld LCGID %ld \n",
           *DRB_config->eps_BearerIdentity,
           DRB_config->drb_Identity, i,
@@ -2486,7 +2484,7 @@ rrc_eNB_modify_dedicatedRRCConnectionReconfiguration(const protocol_ctxt_t *cons
         OCTET_STRING_fromBuf(dedicatedInfoNas,
                              (char *)ue_context_pP->ue_context.modify_e_rab[i].param.nas_pdu.buffer,
                              ue_context_pP->ue_context.modify_e_rab[i].param.nas_pdu.length);
-        ASN_SEQUENCE_ADD(&dedicatedInfoNASList->list, dedicatedInfoNas);
+        asn1cSeqAdd(&dedicatedInfoNASList->list, dedicatedInfoNas);
         LOG_I(RRC, "add NAS info with size %d (rab id %d)\n",ue_context_pP->ue_context.modify_e_rab[i].param.nas_pdu.length, i);
       } else {
         LOG_W(RRC, "Not received activate dedicated EPS bearer context request\n");
@@ -2576,7 +2574,7 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration_release(  const protocol_
     if((ue_context_pP->ue_context.e_rab[i].status == E_RAB_STATUS_TORELEASE) && ue_context_pP->ue_context.e_rab[i].xid == xid) {
       DRB_release = CALLOC(1, sizeof(LTE_DRB_Identity_t));
       *DRB_release = i+1;
-      ASN_SEQUENCE_ADD(&(*DRB_Release_configList2)->list, DRB_release);
+      asn1cSeqAdd(&(*DRB_Release_configList2)->list, DRB_release);
       //free(DRB_release);
     }
   }
@@ -2590,7 +2588,7 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration_release(  const protocol_
     OCTET_STRING_fromBuf(dedicatedInfoNas,
                          (char *)nas_buffer,
                          nas_length);
-    ASN_SEQUENCE_ADD(&dedicatedInfoNASList->list, dedicatedInfoNas);
+    asn1cSeqAdd(&dedicatedInfoNASList->list, dedicatedInfoNas);
     LOG_I(RRC,"add NAS info with size %d\n",nas_length);
   } else {
     LOG_W(RRC,"dedlicated NAS list is empty\n");
@@ -2745,8 +2743,8 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
   *logicalchannelgroup = 0;
   SRB2_ul_SpecificParameters->logicalChannelGroup = logicalchannelgroup;
   SRB2_lchan_config->choice.explicitValue.ul_SpecificParameters = SRB2_ul_SpecificParameters;
-  ASN_SEQUENCE_ADD(&SRB_configList->list, SRB2_config); // this list has the configuration for SRB1 and SRB2
-  ASN_SEQUENCE_ADD(&(*SRB_configList2)->list, SRB2_config); // this list has only the configuration for SRB2
+  asn1cSeqAdd(&SRB_configList->list, SRB2_config); // this list has the configuration for SRB1 and SRB2
+  asn1cSeqAdd(&(*SRB_configList2)->list, SRB2_config); // this list has only the configuration for SRB2
 
   /* Configure DRB */
   // list for all the configured DRB
@@ -2817,8 +2815,8 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
   logicalchannelgroup_drb = CALLOC(1, sizeof(long));
   *logicalchannelgroup_drb = 1;
   DRB_ul_SpecificParameters->logicalChannelGroup = logicalchannelgroup_drb;
-  ASN_SEQUENCE_ADD(&(*DRB_configList)->list, DRB_config);
-  ASN_SEQUENCE_ADD(&(*DRB_configList2)->list, DRB_config);
+  asn1cSeqAdd(&(*DRB_configList)->list, DRB_config);
+  asn1cSeqAdd(&(*DRB_configList2)->list, DRB_config);
   /* MAC Main Config */
   // The different parts of MAC main config are set below
   mac_MainConfig = CALLOC(1, sizeof(*mac_MainConfig));
@@ -2943,32 +2941,32 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
   MeasId0->measId = 1;
   MeasId0->measObjectId = 1;
   MeasId0->reportConfigId = 1;
-  ASN_SEQUENCE_ADD(&MeasId_list->list, MeasId0);
+  asn1cSeqAdd(&MeasId_list->list, MeasId0);
   MeasId1 = CALLOC(1, sizeof(*MeasId1));
   MeasId1->measId = 2;
   MeasId1->measObjectId = 1;
   MeasId1->reportConfigId = 2;
-  ASN_SEQUENCE_ADD(&MeasId_list->list, MeasId1);
+  asn1cSeqAdd(&MeasId_list->list, MeasId1);
   MeasId2 = CALLOC(1, sizeof(*MeasId2));
   MeasId2->measId = 3;
   MeasId2->measObjectId = 1;
   MeasId2->reportConfigId = 3;
-  ASN_SEQUENCE_ADD(&MeasId_list->list, MeasId2);
+  asn1cSeqAdd(&MeasId_list->list, MeasId2);
   MeasId3 = CALLOC(1, sizeof(*MeasId3));
   MeasId3->measId = 4;
   MeasId3->measObjectId = 1;
   MeasId3->reportConfigId = 4;
-  ASN_SEQUENCE_ADD(&MeasId_list->list, MeasId3);
+  asn1cSeqAdd(&MeasId_list->list, MeasId3);
   MeasId4 = CALLOC(1, sizeof(*MeasId4));
   MeasId4->measId = 5;
   MeasId4->measObjectId = 1;
   MeasId4->reportConfigId = 5;
-  ASN_SEQUENCE_ADD(&MeasId_list->list, MeasId4);
+  asn1cSeqAdd(&MeasId_list->list, MeasId4);
   MeasId5 = CALLOC(1, sizeof(*MeasId5));
   MeasId5->measId = 6;
   MeasId5->measObjectId = 1;
   MeasId5->reportConfigId = 6;
-  ASN_SEQUENCE_ADD(&MeasId_list->list, MeasId5);
+  asn1cSeqAdd(&MeasId_list->list, MeasId5);
 
   if (ue_context_pP->ue_context.does_nr) {
     MeasId6 = calloc(1, sizeof(LTE_MeasIdToAddMod_t));
@@ -2978,7 +2976,7 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
     MeasId6->measId = 7;
     MeasId6->measObjectId = 2;
     MeasId6->reportConfigId = 7;
-    ASN_SEQUENCE_ADD(&MeasId_list->list, MeasId6);
+    asn1cSeqAdd(&MeasId_list->list, MeasId6);
   }
 
   //  LTE_RRCConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->measIdToAddModList = MeasId_list;
@@ -3024,10 +3022,10 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
     CellToAdd->physCellId = RC.rrc[ctxt_pP->module_id]->neigh_cells_id[i][0];//get_adjacent_cell_id(ctxt_pP->module_id, i);
     CellToAdd->cellIndividualOffset = LTE_Q_OffsetRange_dB0;
     ue_context_pP->ue_context.measurement_info->cellIndividualOffset[i+1] = CellToAdd->cellIndividualOffset;
-    ASN_SEQUENCE_ADD(&CellsToAddModList->list, CellToAdd);
+    asn1cSeqAdd(&CellsToAddModList->list, CellToAdd);
   }
 
-  ASN_SEQUENCE_ADD(&MeasObj_list->list, MeasObj);
+  asn1cSeqAdd(&MeasObj_list->list, MeasObj);
   //  LTE_RRCConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->measObjectToAddModList = MeasObj_list;
 
   if (ue_context_pP->ue_context.does_nr) {
@@ -3061,7 +3059,7 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
     else 
       MeasObj2->measObject.choice.measObjectNR_r15.ext1->bandNR_r15->choice.setup = 78;
 
-    ASN_SEQUENCE_ADD(&MeasObj_list->list, MeasObj2);
+    asn1cSeqAdd(&MeasObj_list->list, MeasObj2);
   }
 
   if (!ue_context_pP->ue_context.measurement_info->events) {
@@ -3092,7 +3090,7 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
   ReportConfig_per->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
   ReportConfig_per->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
   ReportConfig_per->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
-  ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_per);
+  asn1cSeqAdd(&ReportConfig_list->list, ReportConfig_per);
   ReportConfig_A1->reportConfigId = 2;
   ReportConfig_A1->reportConfig.present = LTE_ReportConfigToAddMod__reportConfig_PR_reportConfigEUTRA;
   ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.triggerType.present =
@@ -3108,7 +3106,7 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
   ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
   ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
   ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
-  ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_A1);
+  asn1cSeqAdd(&ReportConfig_list->list, ReportConfig_A1);
   //if (ho_state == 1 /*HO_MEASURMENT */ ) {
   LOG_I(RRC, "[eNB %d] frame %d: requesting A2, A3, A4, and A5 event reporting\n",
         ctxt_pP->module_id, ctxt_pP->frame);
@@ -3128,7 +3126,7 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
   ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
   ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
   ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
-  ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_A2);
+  asn1cSeqAdd(&ReportConfig_list->list, ReportConfig_A2);
   ReportConfig_A3->reportConfigId = 4;
   ReportConfig_A3->reportConfig.present = LTE_ReportConfigToAddMod__reportConfig_PR_reportConfigEUTRA;
   ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerType.present =
@@ -3147,7 +3145,7 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
   ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.hysteresis = 0; // FIXME ...hysteresis is of type long!
   ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.timeToTrigger =
     LTE_TimeToTrigger_ms40;
-  ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_A3);
+  asn1cSeqAdd(&ReportConfig_list->list, ReportConfig_A3);
   ReportConfig_A4->reportConfigId = 5;
   ReportConfig_A4->reportConfig.present = LTE_ReportConfigToAddMod__reportConfig_PR_reportConfigEUTRA;
   ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.triggerType.present =
@@ -3164,7 +3162,7 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
   ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
   ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
   ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
-  ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_A4);
+  asn1cSeqAdd(&ReportConfig_list->list, ReportConfig_A4);
   ReportConfig_A5->reportConfigId = 6;
   ReportConfig_A5->reportConfig.present = LTE_ReportConfigToAddMod__reportConfig_PR_reportConfigEUTRA;
   ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.triggerType.present =
@@ -3185,7 +3183,7 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
   ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
   ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
   ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
-  ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_A5);
+  asn1cSeqAdd(&ReportConfig_list->list, ReportConfig_A5);
 
   if (ue_context_pP->ue_context.does_nr) {
     LOG_I(RRC,"Configuring measurement for NR cell\n");
@@ -3212,7 +3210,7 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
     ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.ext7->reportQuantityCellNR_r15->ss_rsrp = true;
     ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.ext7->reportQuantityCellNR_r15->ss_rsrq = true;
     ReportConfig_NR->reportConfig.choice.reportConfigInterRAT.ext7->reportQuantityCellNR_r15->ss_sinr = true;
-    ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_NR);
+    asn1cSeqAdd(&ReportConfig_list->list, ReportConfig_NR);
     LOG_A(RRC, "Generating RRCCConnectionReconfigurationRequest (NRUE Measurement Report Request).\n");
   }
 
@@ -3271,7 +3269,7 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
       OCTET_STRING_fromBuf(dedicatedInfoNas,
                            (char *)ue_context_pP->ue_context.e_rab[i].param.nas_pdu.buffer,
                            ue_context_pP->ue_context.e_rab[i].param.nas_pdu.length);
-      ASN_SEQUENCE_ADD(&dedicatedInfoNASList->list, dedicatedInfoNas);
+      asn1cSeqAdd(&dedicatedInfoNASList->list, dedicatedInfoNas);
     }
 
     /* TODO parameters yet to process ... */
@@ -3519,9 +3517,9 @@ static int encode_CG_ConfigInfo(
     AssertFatal(cg_configinfo->criticalExtensions.choice.c1->choice.cg_ConfigInfo-> ue_CapabilityInfo != NULL, "failed to allocate memory for ue_capabilityinfo");
     ue_cap_rat_container_list = calloc(1,sizeof(NR_UE_CapabilityRAT_ContainerList_t));
     if (ue_cap_rat_container_MRDC != NULL)
-      ASN_SEQUENCE_ADD(&ue_cap_rat_container_list->list, ue_cap_rat_container_MRDC);
+      asn1cSeqAdd(&ue_cap_rat_container_list->list, ue_cap_rat_container_MRDC);
     if (ue_cap_rat_container_nr != NULL)
-      ASN_SEQUENCE_ADD(&ue_cap_rat_container_list->list, ue_cap_rat_container_nr);
+      asn1cSeqAdd(&ue_cap_rat_container_list->list, ue_cap_rat_container_nr);
     enc_rval = uper_encode_to_buffer(&asn_DEF_NR_UE_CapabilityRAT_ContainerList,NULL,
                                      (void *)ue_cap_rat_container_list,temp_buff,ASN_MAX_ENCODE_SIZE);
     AssertFatal(enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %jd)!\n",
@@ -3728,7 +3726,7 @@ rrc_eNB_process_MeasurementReport(
     for (i=0; i < neighboring_cells; i++) {
       if (i>=ue_context_pP->ue_context.measResults->measResultNeighCells->choice.measResultListEUTRA.list.count) {
         //printf("NeighCells number: %d \n", ue_context_pP->ue_context.measResults->measResultNeighCells->choice.measResultListEUTRA.list.count);
-        ASN_SEQUENCE_ADD(&ue_context_pP->ue_context.measResults->measResultNeighCells->choice.measResultListEUTRA.list,measResults2->measResultNeighCells->choice.measResultListEUTRA.list.array[i]);
+        asn1cSeqAdd(&ue_context_pP->ue_context.measResults->measResultNeighCells->choice.measResultListEUTRA.list,measResults2->measResultNeighCells->choice.measResultListEUTRA.list.array[i]);
       }
 
       ue_context_pP->ue_context.measResults->measResultNeighCells->choice.measResultListEUTRA.list.array[i]->physCellId =
@@ -4370,7 +4368,7 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
   logicalchannelgroup = CALLOC(1, sizeof(long));
   *logicalchannelgroup = 0;
   SRB1_ul_SpecificParameters->logicalChannelGroup = logicalchannelgroup;
-  ASN_SEQUENCE_ADD(&SRB_configList->list, SRB1_config);
+  asn1cSeqAdd(&SRB_configList->list, SRB1_config);
   ue_context_pP->ue_context.SRB_configList = SRB_configList;
   // Configure SRB2
   /// SRB2
@@ -4409,9 +4407,9 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
   SRB2_ul_SpecificParameters->logicalChannelGroup = logicalchannelgroup;
   SRB2_lchan_config->choice.explicitValue.ul_SpecificParameters = SRB2_ul_SpecificParameters;
   // this list has the configuration for SRB1 and SRB2
-  ASN_SEQUENCE_ADD(&SRB_configList->list, SRB2_config);
+  asn1cSeqAdd(&SRB_configList->list, SRB2_config);
   // this list has only the configuration for SRB2
-  ASN_SEQUENCE_ADD(&(*SRB_configList2)->list, SRB2_config);
+  asn1cSeqAdd(&(*SRB_configList2)->list, SRB2_config);
 
   // Configure DRB
   //*DRB_configList = CALLOC(1, sizeof(*DRB_configList));
@@ -4488,8 +4486,8 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
   logicalchannelgroup_drb = CALLOC(1, sizeof(long));
   *logicalchannelgroup_drb = 1;
   DRB_ul_SpecificParameters->logicalChannelGroup = logicalchannelgroup_drb;
-  ASN_SEQUENCE_ADD(&(*DRB_configList)->list, DRB_config);
-  ASN_SEQUENCE_ADD(&(*DRB_configList2)->list, DRB_config);
+  asn1cSeqAdd(&(*DRB_configList)->list, DRB_config);
+  asn1cSeqAdd(&(*DRB_configList2)->list, DRB_config);
   //ue_context_pP->ue_context.DRB_configList2[0] = &(*DRB_configList);
   mac_MainConfig = CALLOC(1, sizeof(*mac_MainConfig));
   ue_context_pP->ue_context.mac_MainConfig = mac_MainConfig;
@@ -4738,8 +4736,8 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
   *logicalchannelgroup = 0;
   SRB2_ul_SpecificParameters->logicalChannelGroup = logicalchannelgroup;
   SRB2_lchan_config->choice.explicitValue.ul_SpecificParameters = SRB2_ul_SpecificParameters;
-  ASN_SEQUENCE_ADD(&SRB_configList->list, SRB2_config);
-  ASN_SEQUENCE_ADD(&(*SRB_configList2)->list, SRB2_config);
+  asn1cSeqAdd(&SRB_configList->list, SRB2_config);
+  asn1cSeqAdd(&(*SRB_configList2)->list, SRB2_config);
   // Configure target eNB DRB
   DRB_configList2 = CALLOC(1, sizeof(*DRB_configList2));
   /// DRB
@@ -4776,7 +4774,7 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
   logicalchannelgroup_drb = CALLOC(1, sizeof(long));
   *logicalchannelgroup_drb = 1;
   DRB_ul_SpecificParameters->logicalChannelGroup = logicalchannelgroup_drb;
-  ASN_SEQUENCE_ADD(&(*DRB_configList2)->list, DRB_config);
+  asn1cSeqAdd(&(*DRB_configList2)->list, DRB_config);
   mac_MainConfig = CALLOC(1, sizeof(*mac_MainConfig));
   ue_context_pP->ue_context.mac_MainConfig = mac_MainConfig;
   mac_MainConfig->ul_SCH_Config = CALLOC(1, sizeof(*mac_MainConfig->ul_SCH_Config));
@@ -4805,32 +4803,32 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
   MeasId0->measId = 1;
   MeasId0->measObjectId = 1;
   MeasId0->reportConfigId = 1;
-  ASN_SEQUENCE_ADD(&MeasId_list->list, MeasId0);
+  asn1cSeqAdd(&MeasId_list->list, MeasId0);
   MeasId1 = CALLOC(1, sizeof(*MeasId1));
   MeasId1->measId = 2;
   MeasId1->measObjectId = 1;
   MeasId1->reportConfigId = 2;
-  ASN_SEQUENCE_ADD(&MeasId_list->list, MeasId1);
+  asn1cSeqAdd(&MeasId_list->list, MeasId1);
   MeasId2 = CALLOC(1, sizeof(*MeasId2));
   MeasId2->measId = 3;
   MeasId2->measObjectId = 1;
   MeasId2->reportConfigId = 3;
-  ASN_SEQUENCE_ADD(&MeasId_list->list, MeasId2);
+  asn1cSeqAdd(&MeasId_list->list, MeasId2);
   MeasId3 = CALLOC(1, sizeof(*MeasId3));
   MeasId3->measId = 4;
   MeasId3->measObjectId = 1;
   MeasId3->reportConfigId = 4;
-  ASN_SEQUENCE_ADD(&MeasId_list->list, MeasId3);
+  asn1cSeqAdd(&MeasId_list->list, MeasId3);
   MeasId4 = CALLOC(1, sizeof(*MeasId4));
   MeasId4->measId = 5;
   MeasId4->measObjectId = 1;
   MeasId4->reportConfigId = 5;
-  ASN_SEQUENCE_ADD(&MeasId_list->list, MeasId4);
+  asn1cSeqAdd(&MeasId_list->list, MeasId4);
   MeasId5 = CALLOC(1, sizeof(*MeasId5));
   MeasId5->measId = 6;
   MeasId5->measObjectId = 1;
   MeasId5->reportConfigId = 6;
-  ASN_SEQUENCE_ADD(&MeasId_list->list, MeasId5);
+  asn1cSeqAdd(&MeasId_list->list, MeasId5);
   //  LTE_RRCConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->measIdToAddModList = MeasId_list;
   // Add one EUTRA Measurement Object
   MeasObj_list = CALLOC(1, sizeof(*MeasObj_list));
@@ -4874,10 +4872,10 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
     CellToAdd->physCellId = RC.rrc[ctxt_pP->module_id]->neigh_cells_id[i][0];//get_adjacent_cell_id(ctxt_pP->module_id, i);
     CellToAdd->cellIndividualOffset = LTE_Q_OffsetRange_dB0;
     ue_context_pP->ue_context.measurement_info->cellIndividualOffset[i+1] = CellToAdd->cellIndividualOffset;
-    ASN_SEQUENCE_ADD(&CellsToAddModList->list, CellToAdd);
+    asn1cSeqAdd(&CellsToAddModList->list, CellToAdd);
   }
 
-  ASN_SEQUENCE_ADD(&MeasObj_list->list, MeasObj);
+  asn1cSeqAdd(&MeasObj_list->list, MeasObj);
   //  LTE_RRCConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->measObjectToAddModList = MeasObj_list;
 
   if (!ue_context_pP->ue_context.measurement_info->events) {
@@ -4903,7 +4901,7 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
   ReportConfig_per->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
   ReportConfig_per->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
   ReportConfig_per->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
-  ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_per);
+  asn1cSeqAdd(&ReportConfig_list->list, ReportConfig_per);
   ReportConfig_A1->reportConfigId = 2;
   ReportConfig_A1->reportConfig.present = LTE_ReportConfigToAddMod__reportConfig_PR_reportConfigEUTRA;
   ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.triggerType.present =
@@ -4919,7 +4917,7 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
   ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
   ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
   ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
-  ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_A1);
+  asn1cSeqAdd(&ReportConfig_list->list, ReportConfig_A1);
   //  if (ho_state == 1 /*HO_MEASUREMENT */ ) {
   LOG_I(RRC, "[eNB %d] frame %d: requesting A2, A3, A4, and A5 event reporting\n",
         ctxt_pP->module_id, ctxt_pP->frame);
@@ -4939,7 +4937,7 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
   ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
   ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
   ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
-  ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_A2);
+  asn1cSeqAdd(&ReportConfig_list->list, ReportConfig_A2);
   ReportConfig_A3->reportConfigId = 4;
   ReportConfig_A3->reportConfig.present = LTE_ReportConfigToAddMod__reportConfig_PR_reportConfigEUTRA;
   ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerType.present =
@@ -4958,7 +4956,7 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
   ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.hysteresis = 0; // FIXME ...hysteresis is of type long!
   ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.timeToTrigger =
     LTE_TimeToTrigger_ms40;
-  ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_A3);
+  asn1cSeqAdd(&ReportConfig_list->list, ReportConfig_A3);
   ReportConfig_A4->reportConfigId = 5;
   ReportConfig_A4->reportConfig.present = LTE_ReportConfigToAddMod__reportConfig_PR_reportConfigEUTRA;
   ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.triggerType.present =
@@ -4975,7 +4973,7 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
   ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
   ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
   ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
-  ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_A4);
+  asn1cSeqAdd(&ReportConfig_list->list, ReportConfig_A4);
   ReportConfig_A5->reportConfigId = 6;
   ReportConfig_A5->reportConfig.present = LTE_ReportConfigToAddMod__reportConfig_PR_reportConfigEUTRA;
   ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.triggerType.present =
@@ -4996,7 +4994,7 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
   ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
   ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
   ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
-  ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_A5);
+  asn1cSeqAdd(&ReportConfig_list->list, ReportConfig_A5);
   //  rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->reportConfigToAddModList = ReportConfig_list;
 
   /* A3 event update */
@@ -5162,7 +5160,7 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
       OCTET_STRING_fromBuf(dedicatedInfoNas,
                            (char *)ue_context_pP->ue_context.e_rab[i].param.nas_pdu.buffer,
                            ue_context_pP->ue_context.e_rab[i].param.nas_pdu.length);
-      ASN_SEQUENCE_ADD(&dedicatedInfoNASList->list, dedicatedInfoNas);
+      asn1cSeqAdd(&dedicatedInfoNASList->list, dedicatedInfoNas);
     }
 
     /* TODO parameters yet to process ... */
@@ -8528,7 +8526,7 @@ rrc_eNB_process_SidelinkUEInformation(
 
         for (int i=0; i< n_destinations; i++ ) {
           //sl_DestinationIdentityList[i] = *(sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.commTxResourceReq_r12->destinationInfoList_r12.list.array[i]);
-          ASN_SEQUENCE_ADD(&destinationInfoList->list, sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.commTxResourceReq_r12->destinationInfoList_r12.list.array[i]);
+          asn1cSeqAdd(&destinationInfoList->list, sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.commTxResourceReq_r12->destinationInfoList_r12.list.array[i]);
         }
 
         //generate RRC Reconfiguration
@@ -8547,7 +8545,7 @@ rrc_eNB_process_SidelinkUEInformation(
 
           for (int i=0; i< n_destinations; i++ ) {
             //sl_DestinationIdentityList[i] = *(sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceReqUC_r13->destinationInfoList_r12.list.array[i]);
-            ASN_SEQUENCE_ADD(&destinationInfoList->list,
+            asn1cSeqAdd(&destinationInfoList->list,
                              sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceReqUC_r13->destinationInfoList_r12.list.array[i]);
           }
 
@@ -8570,7 +8568,7 @@ rrc_eNB_process_SidelinkUEInformation(
 
           for (int i=0; i< n_destinations; i++ ) {
             //sl_DestinationIdentityList[i] = *(sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13->commTxResourceReqRelayUC_r13->destinationInfoList_r12.list.array[i]);
-            ASN_SEQUENCE_ADD(&destinationInfoList->list,
+            asn1cSeqAdd(&destinationInfoList->list,
                              sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13->commTxResourceReqRelayUC_r13->destinationInfoList_r12.list.array[i]);
           }
 
@@ -8593,7 +8591,7 @@ rrc_eNB_process_SidelinkUEInformation(
 
           for (int i=0; i< n_destinations; i++ ) {
             //sl_DestinationIdentityList[i] = *(sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13->commTxResourceReqRelay_r13->destinationInfoList_r12.list.array[i]);
-            ASN_SEQUENCE_ADD(&destinationInfoList->list,
+            asn1cSeqAdd(&destinationInfoList->list,
                              sidelinkUEInformation->criticalExtensions.choice.c1.choice.sidelinkUEInformation_r12.nonCriticalExtension->commTxResourceInfoReqRelay_r13->commTxResourceReqRelay_r13->destinationInfoList_r12.list.array[i]);
           }
 
diff --git a/openair2/RRC/LTE/rrc_eNB_GTPV1U.c b/openair2/RRC/LTE/rrc_eNB_GTPV1U.c
index bffb3dc0c87fef7c59b46c1c5566cb7a78058e9a..647be5025210b5cf0784d0e8fa1420739ea038e2 100644
--- a/openair2/RRC/LTE/rrc_eNB_GTPV1U.c
+++ b/openair2/RRC/LTE/rrc_eNB_GTPV1U.c
@@ -34,7 +34,7 @@
 # include "rrc_eNB_UE_context.h"
 
 
-#include "asn1_conversions.h"
+#include "oai_asn1.h"
 #include "intertask_interface.h"
 
 
diff --git a/openair2/RRC/LTE/rrc_eNB_M2AP.c b/openair2/RRC/LTE/rrc_eNB_M2AP.c
index 25142b287a9f66e6085cfe5377ce432e833c2e85..550bb7c2bc1938e422c73e56de1abdf253d3250a 100644
--- a/openair2/RRC/LTE/rrc_eNB_M2AP.c
+++ b/openair2/RRC/LTE/rrc_eNB_M2AP.c
@@ -32,7 +32,7 @@
 # include "RRC/LTE/MESSAGES/asn1_msg.h"
 # include "rrc_eNB_M2AP.h"
 //# include "rrc_eNB_UE_context.h"
-#   include "asn1_conversions.h"
+#   include "oai_asn1.h"
 #   include "intertask_interface.h"
 # include "common/ran_context.h"
 
@@ -96,7 +96,7 @@ static uint8_t rrc_M2AP_do_MBSFNCountingRequest(
   lte_counting_request_info->tmgi_r10.plmn_Id_r9.choice.plmn_Index_r9= 1;
   memset(&lte_counting_request_info->tmgi_r10.serviceId_r9,0,sizeof(OCTET_STRING_t));
   OCTET_STRING_fromBuf(&lte_counting_request_info->tmgi_r10.serviceId_r9,(const char*)&TMGI[2],3);
-  ASN_SEQUENCE_ADD(&(*mbsfnCoutingRequest)->countingRequestList_r10.list,lte_counting_request_info);
+  asn1cSeqAdd(&(*mbsfnCoutingRequest)->countingRequestList_r10.list,lte_counting_request_info);
 
   if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) {
     xer_fprint(stdout,&asn_DEF_LTE_MCCH_Message,(void *)mcch_message);
@@ -177,7 +177,7 @@ static uint8_t rrc_M2AP_do_MBSFNAreaConfig(
 			  mbsfn_SubframeConfig1->subframeAllocation.choice.oneFrame.buf[0] = (m2ap_mbms_scheduling_information->mbms_area_config_list[i].mbms_sf_config_list[j].subframe_allocation & 0x3F)<<2;
 		  }
 
-		  ASN_SEQUENCE_ADD(&(*mbsfnAreaConfiguration)->commonSF_Alloc_r9.list,mbsfn_SubframeConfig1);
+		  asn1cSeqAdd(&(*mbsfnAreaConfiguration)->commonSF_Alloc_r9.list,mbsfn_SubframeConfig1);
 	  }
 	  //  commonSF-AllocPeriod-r9
 	  (*mbsfnAreaConfiguration)->commonSF_AllocPeriod_r9= m2ap_mbms_scheduling_information->mbms_area_config_list[i].common_sf_allocation_period;//LTE_MBSFNAreaConfiguration_r9__commonSF_AllocPeriod_r9_rf16;
@@ -220,9 +220,9 @@ static uint8_t rrc_M2AP_do_MBSFNAreaConfig(
 			  mbms_Session_1->logicalChannelIdentity_r9=m2ap_mbms_scheduling_information->mbms_area_config_list[i].pmch_config_list[j].mbms_session_list[k].lcid; //1;
 			  LOG_D(RRC,"lcid %lu %d\n",mbms_Session_1->logicalChannelIdentity_r9,m2ap_mbms_scheduling_information->mbms_area_config_list[i].pmch_config_list[j].mbms_session_list[k].lcid);
 			  LOG_D(RRC,"service_id %d\n",m2ap_mbms_scheduling_information->mbms_area_config_list[i].pmch_config_list[j].mbms_session_list[k].service_id);
-			  ASN_SEQUENCE_ADD(&pmch_Info_1->mbms_SessionInfoList_r9.list,mbms_Session_1);
+			  asn1cSeqAdd(&pmch_Info_1->mbms_SessionInfoList_r9.list,mbms_Session_1);
 		  }
-		  ASN_SEQUENCE_ADD(&(*mbsfnAreaConfiguration)->pmch_InfoList_r9.list,pmch_Info_1);
+		  asn1cSeqAdd(&(*mbsfnAreaConfiguration)->pmch_InfoList_r9.list,pmch_Info_1);
 	  }
   }
 
@@ -460,7 +460,7 @@ static uint8_t rrc_M2AP_do_SIB1_MBMS_SIB13(
           MBSFN_Area1->mcch_Config_r9.sf_AllocInfo_r9.buf[0] = m2ap_setup_resp->mcch_config_per_mbsfn[j].subframe_allocation_info << 2; // FDD: SF1
           MBSFN_Area1->mcch_Config_r9.sf_AllocInfo_r9.bits_unused = 2;
           MBSFN_Area1->mcch_Config_r9.signallingMCS_r9 = m2ap_setup_resp->mcch_config_per_mbsfn[j].mcs;
-          ASN_SEQUENCE_ADD(&MBSFNArea_list->list, MBSFN_Area1);
+          asn1cSeqAdd(&MBSFNArea_list->list, MBSFN_Area1);
         }
         break;
       case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib14_v1130: 
@@ -523,7 +523,7 @@ static uint8_t rrc_M2AP_do_SIB1_MBMS_SIB13(
               sib2_mbsfn_SubframeConfig1->subframeAllocation.choice.oneFrame.buf[0] = (m2ap_mbms_scheduling_information->mbms_area_config_list[j].mbms_sf_config_list[l].subframe_allocation << 2);
             }
 
-            ASN_SEQUENCE_ADD(&MBSFNSubframeConfigList->list, sib2_mbsfn_SubframeConfig1);
+            asn1cSeqAdd(&MBSFNSubframeConfigList->list, sib2_mbsfn_SubframeConfig1);
           }
         }
 
@@ -561,10 +561,10 @@ static uint8_t rrc_M2AP_do_SIB1_MBMS_SIB13(
       MBSFN_Area1->mcch_Config_r9.sf_AllocInfo_r9.buf[0] = m2ap_setup_resp->mcch_config_per_mbsfn[i].subframe_allocation_info << 2; // FDD: SF1
       MBSFN_Area1->mcch_Config_r9.sf_AllocInfo_r9.bits_unused = 2;
       MBSFN_Area1->mcch_Config_r9.signallingMCS_r9 = m2ap_setup_resp->mcch_config_per_mbsfn[i].mcs;
-      ASN_SEQUENCE_ADD(&MBSFNArea_list->list, MBSFN_Area1);
+      asn1cSeqAdd(&MBSFNArea_list->list, MBSFN_Area1);
     }
 
-    ASN_SEQUENCE_ADD(&bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list, sib13_part);
+    asn1cSeqAdd(&bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list, sib13_part);
   }
 
   RC.rrc[Mod_id]->carrier[CC_id].sib1_MBMS = &bcch_message_fembms->message.choice.c1.choice.systemInformationBlockType1_MBMS_r14;
@@ -664,7 +664,7 @@ static uint8_t rrc_M2AP_do_SIB1_MBMS_SIB13(
 //	
 //	schedulingInfo.si_Periodicity=LTE_SchedulingInfo__si_Periodicity_rf8;
 //	sib_type=LTE_SIB_Type_sibType13_v920;
-//	ASN_SEQUENCE_ADD(&(*sib1)->schedulingInfoList.list,&schedulingInfo);
+//	asn1cSeqAdd(&(*sib1)->schedulingInfoList.list,&schedulingInfo);
 //    }
 //
 //    enc_rval = uper_encode_to_buffer(&asn_DEF_LTE_BCCH_DL_SCH_Message,
@@ -829,7 +829,7 @@ static uint8_t rrc_M2AP_do_SIB23_SIB2(
 
 			}
 
-        		ASN_SEQUENCE_ADD(&MBSFNSubframeConfigList->list,sib2_mbsfn_SubframeConfig1);
+        		asn1cSeqAdd(&MBSFNSubframeConfigList->list,sib2_mbsfn_SubframeConfig1);
 		}	
 	}
 
@@ -938,7 +938,7 @@ static uint8_t rrc_M2AP_do_SIB23_SIB13(
     	sib2_mbsfn_SubframeConfig1->subframeAllocation.choice.oneFrame.bits_unused= 2;
     	sib2_mbsfn_SubframeConfig1->subframeAllocation.choice.oneFrame.buf[0]=0x38<<2;
 
-        ASN_SEQUENCE_ADD(&MBSFNSubframeConfigList->list,sib2_mbsfn_SubframeConfig1);
+        asn1cSeqAdd(&MBSFNSubframeConfigList->list,sib2_mbsfn_SubframeConfig1);
 
 
 	break;
@@ -979,10 +979,10 @@ static uint8_t rrc_M2AP_do_SIB23_SIB13(
     MBSFN_Area1->mcch_Config_r9.sf_AllocInfo_r9.buf[0] = m2ap_setup_resp->mcch_config_per_mbsfn[i].subframe_allocation_info << 2; // FDD: SF1
     MBSFN_Area1->mcch_Config_r9.sf_AllocInfo_r9.bits_unused = 2;
     MBSFN_Area1->mcch_Config_r9.signallingMCS_r9 = m2ap_setup_resp->mcch_config_per_mbsfn[i].mcs;
-    ASN_SEQUENCE_ADD(&MBSFNArea_list->list, MBSFN_Area1);
+    asn1cSeqAdd(&MBSFNArea_list->list, MBSFN_Area1);
   }
 
- ASN_SEQUENCE_ADD(&bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list, sib13_part);
+ asn1cSeqAdd(&bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list, sib13_part);
 
  //xer_fprint(stdout, &asn_DEF_LTE_BCCH_DL_SCH_Message, (void *)bcch_message);
 
@@ -1125,7 +1125,7 @@ static uint8_t rrc_M2AP_do_SIB23_SIB2_SIB13(
  	   MBSFN_Area1->mcch_Config_r9.sf_AllocInfo_r9.buf[0]=m2ap_setup_resp->mcch_config_per_mbsfn[j].subframe_allocation_info<<2;  // FDD: SF1
  	   MBSFN_Area1->mcch_Config_r9.sf_AllocInfo_r9.bits_unused= 2;
  	   MBSFN_Area1->mcch_Config_r9.signallingMCS_r9= m2ap_setup_resp->mcch_config_per_mbsfn[j].mcs;
- 	   ASN_SEQUENCE_ADD(&MBSFNArea_list->list,MBSFN_Area1);
+ 	   asn1cSeqAdd(&MBSFNArea_list->list,MBSFN_Area1);
  	}
 	break;
       case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib14_v1130: 
@@ -1189,7 +1189,7 @@ static uint8_t rrc_M2AP_do_SIB23_SIB2_SIB13(
 
 			}
 
-        		ASN_SEQUENCE_ADD(&MBSFNSubframeConfigList->list,sib2_mbsfn_SubframeConfig1);
+        		asn1cSeqAdd(&MBSFNSubframeConfigList->list,sib2_mbsfn_SubframeConfig1);
 		}	
 	}
 
@@ -1226,10 +1226,10 @@ static uint8_t rrc_M2AP_do_SIB23_SIB2_SIB13(
    MBSFN_Area1->mcch_Config_r9.sf_AllocInfo_r9.buf[0]=m2ap_setup_resp->mcch_config_per_mbsfn[i].subframe_allocation_info<<2;  // FDD: SF1
    MBSFN_Area1->mcch_Config_r9.sf_AllocInfo_r9.bits_unused= 2;
    MBSFN_Area1->mcch_Config_r9.signallingMCS_r9= m2ap_setup_resp->mcch_config_per_mbsfn[i].mcs;
-   ASN_SEQUENCE_ADD(&MBSFNArea_list->list,MBSFN_Area1);
+   asn1cSeqAdd(&MBSFNArea_list->list,MBSFN_Area1);
    }
 
- ASN_SEQUENCE_ADD(&bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list, sib13_part);
+ asn1cSeqAdd(&bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list, sib13_part);
  }
 
   
diff --git a/openair2/RRC/LTE/rrc_eNB_S1AP.c b/openair2/RRC/LTE/rrc_eNB_S1AP.c
index ca1fb806dc2962982a864762762400c3240dd8b1..e2e8e56f4a8a590557e1cc7d560be17a1023dd04 100644
--- a/openair2/RRC/LTE/rrc_eNB_S1AP.c
+++ b/openair2/RRC/LTE/rrc_eNB_S1AP.c
@@ -41,7 +41,7 @@
 #include "s1ap_eNB_defs.h"
 #include "s1ap_eNB_management_procedures.h"
 #include "s1ap_eNB_ue_context.h"
-#include "asn1_conversions.h"
+#include "oai_asn1.h"
 #include "intertask_interface.h"
 #include "pdcp.h"
 #include "pdcp_primitives.h"
diff --git a/openair2/RRC/LTE/rrc_eNB_endc.c b/openair2/RRC/LTE/rrc_eNB_endc.c
index a91b81e9f4054bd29012c452370fca27e9a49adb..b33cf83d3a5bcda727005cf98c53ab9cae790ce9 100644
--- a/openair2/RRC/LTE/rrc_eNB_endc.c
+++ b/openair2/RRC/LTE/rrc_eNB_endc.c
@@ -23,6 +23,7 @@
 #include "rrc_extern.h"
 #include "rrc_eNB_UE_context.h"
 #include "common/ran_context.h"
+#include "oai_asn1.h"
 #include "LTE_DL-DCCH-Message.h"
 
 #include <stdio.h>
@@ -95,7 +96,7 @@ int rrc_eNB_generate_RRCConnectionReconfiguration_endc(protocol_ctxt_t *ctxt,
   drb.logicalChannelIdentity = &lcid;
   drb.logicalChannelConfig = &lc;
 
-  ASN_SEQUENCE_ADD(&drb_list.list, &drb);
+  asn1cSeqAdd(&drb_list.list, &drb);
 
   rlc.present = LTE_RLC_Config_PR_am;
   rlc.choice.am.ul_AM_RLC.t_PollRetransmit = LTE_T_PollRetransmit_ms50;
@@ -110,7 +111,7 @@ int rrc_eNB_generate_RRCConnectionReconfiguration_endc(protocol_ctxt_t *ctxt,
 
   /* release drb 1 */
   drb = 1;
-  ASN_SEQUENCE_ADD(&drb_list.list, &drb);
+  asn1cSeqAdd(&drb_list.list, &drb);
   rrcd.drb_ToReleaseList = &drb_list;
 
   ul_params.priority = 12;
diff --git a/openair2/RRC/NR/MESSAGES/asn1_msg.c b/openair2/RRC/NR/MESSAGES/asn1_msg.c
old mode 100755
new mode 100644
index d46d85897a390d486cc782290e0cdd8dc88b5a0f..e52e637dd8b8f006346b13e1ee07366ae5be4630
--- a/openair2/RRC/NR/MESSAGES/asn1_msg.c
+++ b/openair2/RRC/NR/MESSAGES/asn1_msg.c
@@ -36,8 +36,8 @@
 #include <sysexits.h> /* for EX_* exit codes */
 #include <errno.h>  /* for errno */
 #include "common/utils/LOG/log.h"
+#include "oai_asn1.h"
 #include <asn_application.h>
-#include <asn_internal.h> /* for _ASN_DEFAULT_STACK_MAX */
 #include <per_encoder.h>
 #include <nr/nr_common.h>
 #include <softmodem-common.h>
@@ -382,24 +382,24 @@ uint16_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
   NR_SIB_TypeInfo_t *sib_type3 = CALLOC(1,sizeof(e_NR_SIB_TypeInfo__type));
   sib_type3->type = NR_SIB_TypeInfo__type_sibType3;
   sib_type3->valueTag = CALLOC(1,sizeof(sib_type3->valueTag));
-  ASN_SEQUENCE_ADD(&schedulingInfo->sib_MappingInfo.list,sib_type3);
+  asn1cSeqAdd(&schedulingInfo->sib_MappingInfo.list,sib_type3);
 
   NR_SIB_TypeInfo_t *sib_type5 = CALLOC(1,sizeof(e_NR_SIB_TypeInfo__type));
   sib_type5->type = NR_SIB_TypeInfo__type_sibType5;
   sib_type5->valueTag = CALLOC(1,sizeof(sib_type5->valueTag));
-  ASN_SEQUENCE_ADD(&schedulingInfo->sib_MappingInfo.list,sib_type5);
+  asn1cSeqAdd(&schedulingInfo->sib_MappingInfo.list,sib_type5);
 
   NR_SIB_TypeInfo_t *sib_type4 = CALLOC(1,sizeof(e_NR_SIB_TypeInfo__type));
   sib_type4->type = NR_SIB_TypeInfo__type_sibType4;
   sib_type4->valueTag = CALLOC(1,sizeof(sib_type4->valueTag));
-  ASN_SEQUENCE_ADD(&schedulingInfo->sib_MappingInfo.list,sib_type4);
+  asn1cSeqAdd(&schedulingInfo->sib_MappingInfo.list,sib_type4);
 
   NR_SIB_TypeInfo_t *sib_type2 = CALLOC(1,sizeof(e_NR_SIB_TypeInfo__type));
   sib_type2->type = NR_SIB_TypeInfo__type_sibType2;
   sib_type2->valueTag = CALLOC(1,sizeof(sib_type2->valueTag));
-  ASN_SEQUENCE_ADD(&schedulingInfo->sib_MappingInfo.list,sib_type2);
+  asn1cSeqAdd(&schedulingInfo->sib_MappingInfo.list,sib_type2);
 
-  ASN_SEQUENCE_ADD(&sib1->si_SchedulingInfo->schedulingInfoList.list,schedulingInfo);*/
+  asn1cSeqAdd(&sib1->si_SchedulingInfo->schedulingInfoList.list,schedulingInfo);*/
 
   // servingCellConfigCommon
   asn1cCalloc(sib1->servingCellConfigCommon,  ServCellCom);
@@ -435,7 +435,7 @@ uint16_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
         absolute_diff,scs_scaling2,scs_scaling,(int)sib1->servingCellConfigCommon->downlinkConfigCommon.frequencyInfoDL.offsetToPointA);
 
   for(int i = 0; i< configuration->scc->downlinkConfigCommon->frequencyInfoDL->scs_SpecificCarrierList.list.count; i++) {
-    ASN_SEQUENCE_ADD(&ServCellCom->downlinkConfigCommon.frequencyInfoDL.scs_SpecificCarrierList.list,
+    asn1cSeqAdd(&ServCellCom->downlinkConfigCommon.frequencyInfoDL.scs_SpecificCarrierList.list,
 		     configuration->scc->downlinkConfigCommon->frequencyInfoDL->scs_SpecificCarrierList.list.array[i]);
   }
 
@@ -445,13 +445,13 @@ uint16_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
        CALLOC(1,sizeof(struct NR_PDCCH_ConfigCommon__commonSearchSpaceList));
 
   NR_SearchSpace_t *ss1 = rrc_searchspace_config(true, 1, 0);
-  ASN_SEQUENCE_ADD(&initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList->list, ss1);
+  asn1cSeqAdd(&initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList->list, ss1);
 
   NR_SearchSpace_t *ss2 = rrc_searchspace_config(true, 2, 0);
-  ASN_SEQUENCE_ADD(&initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList->list, ss2);
+  asn1cSeqAdd(&initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList->list, ss2);
 
   NR_SearchSpace_t *ss3 = rrc_searchspace_config(true, 3, 0);
-  ASN_SEQUENCE_ADD(&initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList->list, ss3);
+  asn1cSeqAdd(&initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList->list, ss3);
 
   asn1cCallocOne(initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->searchSpaceSIB1,  0);
   asn1cCallocOne(initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->searchSpaceOtherSystemInformation, 3);
@@ -476,10 +476,10 @@ uint16_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
 		   ZoneEight);
   asn1cCallocOne(ZoneEight, 0);
 
-  asn1cCalloc(ServCellCom->uplinkConfigCommon, UL)
+  asn1cCalloc(ServCellCom->uplinkConfigCommon, UL);
   asn_set_empty(&UL->frequencyInfoUL.scs_SpecificCarrierList.list);
   for(int i = 0; i< configuration->scc->uplinkConfigCommon->frequencyInfoUL->scs_SpecificCarrierList.list.count; i++) {
-    ASN_SEQUENCE_ADD(&UL->frequencyInfoUL.scs_SpecificCarrierList.list,
+    asn1cSeqAdd(&UL->frequencyInfoUL.scs_SpecificCarrierList.list,
 		     configuration->scc->uplinkConfigCommon->frequencyInfoUL->scs_SpecificCarrierList.list.array[i]);
   }
 
@@ -573,7 +573,7 @@ uint16_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
   nr_uac_BarringInfoSet->uac_BarringForAccessIdentity.buf = CALLOC(1, 1);
   nr_uac_BarringInfoSet->uac_BarringForAccessIdentity.size = 1;
   nr_uac_BarringInfoSet->uac_BarringForAccessIdentity.bits_unused = 1;
-  ASN_SEQUENCE_ADD(&sib1->uac_BarringInfo->uac_BarringInfoSetList, nr_uac_BarringInfoSet);*/
+  asn1cSeqAdd(&sib1->uac_BarringInfo->uac_BarringInfoSetList, nr_uac_BarringInfoSet);*/
 
   // useFullResumeID
   // TODO: add useFullResumeID
@@ -626,12 +626,12 @@ uint8_t do_SIB23_NR(rrc_gNB_carrier_data_t *carrier,
   sib2->choice.sib2->intraFreqCellReselectionInfo.s_IntraSearchP = 2; // INTEGER (0..31)
   sib2->choice.sib2->intraFreqCellReselectionInfo.t_ReselectionNR = 2; // INTEGER (0..7)
   sib2->choice.sib2->intraFreqCellReselectionInfo.deriveSSB_IndexFromCell = true;
-  ASN_SEQUENCE_ADD(&ies->sib_TypeAndInfo.list, sib2);
+  asn1cSeqAdd(&ies->sib_TypeAndInfo.list, sib2);
 
   sib3 = CALLOC(1, sizeof(SystemInformation_IEs__sib_TypeAndInfo__Member));
   sib3->present = NR_SystemInformation_IEs__sib_TypeAndInfo__Member_PR_sib3;
   sib3->choice.sib3 = CALLOC(1, sizeof(struct NR_SIB3));
-  ASN_SEQUENCE_ADD(&ies->sib_TypeAndInfo.list, sib3);
+  asn1cSeqAdd(&ies->sib_TypeAndInfo.list, sib3);
 
   //encode SIB to data
   // carrier->SIB23 = (uint8_t *) malloc16(128);
@@ -772,13 +772,13 @@ void fill_initial_SpCellConfig(int uid,
   uint64_t bitmap = get_ssb_bitmap(scc);
   rrc_coreset_config(coreset, 0, curr_bwp, bitmap);
 
-  ASN_SEQUENCE_ADD(&bwp_Dedicated->pdcch_Config->choice.setup->controlResourceSetToAddModList->list,
+  asn1cSeqAdd(&bwp_Dedicated->pdcch_Config->choice.setup->controlResourceSetToAddModList->list,
                    coreset);
 
   bwp_Dedicated->pdcch_Config->choice.setup->searchSpacesToAddModList = calloc(1,sizeof(*bwp_Dedicated->pdcch_Config->choice.setup->searchSpacesToAddModList));
 
   NR_SearchSpace_t *ss2 = rrc_searchspace_config(false, 5, coreset->controlResourceSetId);
-  ASN_SEQUENCE_ADD(&bwp_Dedicated->pdcch_Config->choice.setup->searchSpacesToAddModList->list, ss2);
+  asn1cSeqAdd(&bwp_Dedicated->pdcch_Config->choice.setup->searchSpacesToAddModList->list, ss2);
  
   bwp_Dedicated->pdsch_Config = config_pdsch(bitmap, 0, pdsch_AntennaPorts);
 
@@ -803,7 +803,7 @@ void fill_initial_SpCellConfig(int uid,
                          servingcellconfigdedicated,
                          NULL, 0,
                          false, bwp_loop, true);
-      ASN_SEQUENCE_ADD(&SpCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list,bwp);
+      asn1cSeqAdd(&SpCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list,bwp);
     }
     SpCellConfig->spCellConfigDedicated->firstActiveDownlinkBWP_Id = calloc(1,sizeof(*SpCellConfig->spCellConfigDedicated->firstActiveDownlinkBWP_Id));
     *SpCellConfig->spCellConfigDedicated->firstActiveDownlinkBWP_Id = servingcellconfigdedicated->firstActiveDownlinkBWP_Id ? *servingcellconfigdedicated->firstActiveDownlinkBWP_Id : 1;
@@ -827,7 +827,7 @@ void fill_initial_SpCellConfig(int uid,
                        servingcellconfigdedicated,
                        scc,
                        NULL);
-      ASN_SEQUENCE_ADD(&uplinkConfig->uplinkBWP_ToAddModList->list, ubwp);
+      asn1cSeqAdd(&uplinkConfig->uplinkBWP_ToAddModList->list, ubwp);
     }
     uplinkConfig->firstActiveUplinkBWP_Id = calloc(1,sizeof(*uplinkConfig->firstActiveUplinkBWP_Id));
     *uplinkConfig->firstActiveUplinkBWP_Id = servingcellconfigdedicated->uplinkConfig->firstActiveUplinkBWP_Id ? *servingcellconfigdedicated->uplinkConfig->firstActiveUplinkBWP_Id : 1;
@@ -853,10 +853,10 @@ void fill_initial_SpCellConfig(int uid,
     if ((bitmap >> (63 - i)) & 0x01) {
       NR_SSB_Index_t *ssbres = NULL;
       asn1cCallocOne(ssbres, i);
-      ASN_SEQUENCE_ADD(&ssbresset0->csi_SSB_ResourceList.list, ssbres);
+      asn1cSeqAdd(&ssbresset0->csi_SSB_ResourceList.list, ssbres);
     }
   }
-  ASN_SEQUENCE_ADD(&csi_MeasConfig->csi_SSB_ResourceSetToAddModList->list,ssbresset0);
+  asn1cSeqAdd(&csi_MeasConfig->csi_SSB_ResourceSetToAddModList->list,ssbresset0);
 
   int bwp_loop_end = n_dl_bwp>0 ? n_dl_bwp : 1;
   for (int bwp_loop = 0; bwp_loop < bwp_loop_end; bwp_loop++) {
@@ -885,10 +885,10 @@ void fill_initial_SpCellConfig(int uid,
     csires1->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->csi_SSB_ResourceSetList = calloc(1,sizeof(*csires1->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->csi_SSB_ResourceSetList));
     NR_CSI_SSB_ResourceSetId_t *ssbres00 = calloc(1,sizeof(*ssbres00));
     *ssbres00 = 0;
-    ASN_SEQUENCE_ADD(&csires1->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->csi_SSB_ResourceSetList->list,ssbres00);
+    asn1cSeqAdd(&csires1->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->csi_SSB_ResourceSetList->list,ssbres00);
     csires1->bwp_Id = bwp_id;
     csires1->resourceType = NR_CSI_ResourceConfig__resourceType_periodic;
-    ASN_SEQUENCE_ADD(&csi_MeasConfig->csi_ResourceConfigToAddModList->list,csires1);
+    asn1cSeqAdd(&csi_MeasConfig->csi_ResourceConfigToAddModList->list,csires1);
 
     NR_PUCCH_CSI_Resource_t *pucchcsires1 = calloc(1,sizeof(*pucchcsires1));
     pucchcsires1->uplinkBandwidthPartId=bwp_id;
@@ -902,10 +902,10 @@ void fill_initial_SpCellConfig(int uid,
       csires0->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->nzp_CSI_RS_ResourceSetList = calloc(1,sizeof(*csires0->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->nzp_CSI_RS_ResourceSetList));
       NR_NZP_CSI_RS_ResourceSetId_t *nzp0 = calloc(1,sizeof(*nzp0));
       *nzp0 = bwp_loop;
-      ASN_SEQUENCE_ADD(&csires0->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->nzp_CSI_RS_ResourceSetList->list,nzp0);
+      asn1cSeqAdd(&csires0->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->nzp_CSI_RS_ResourceSetList->list,nzp0);
       csires0->bwp_Id = bwp_id;
       csires0->resourceType = NR_CSI_ResourceConfig__resourceType_periodic;
-      ASN_SEQUENCE_ADD(&csi_MeasConfig->csi_ResourceConfigToAddModList->list,csires0);
+      asn1cSeqAdd(&csi_MeasConfig->csi_ResourceConfigToAddModList->list,csires0);
     }
 
     if (configuration->do_CSIRS && pdsch_AntennaPorts > 1) {
@@ -915,10 +915,10 @@ void fill_initial_SpCellConfig(int uid,
       csires2->csi_RS_ResourceSetList.choice.csi_IM_ResourceSetList = calloc(1,sizeof(*csires2->csi_RS_ResourceSetList.choice.csi_IM_ResourceSetList));
       NR_CSI_IM_ResourceSetId_t *csiim00 = calloc(1,sizeof(*csiim00));
       *csiim00 = bwp_loop;
-      ASN_SEQUENCE_ADD(&csires2->csi_RS_ResourceSetList.choice.csi_IM_ResourceSetList->list,csiim00);
+      asn1cSeqAdd(&csires2->csi_RS_ResourceSetList.choice.csi_IM_ResourceSetList->list,csiim00);
       csires2->bwp_Id = bwp_id;
       csires2->resourceType = NR_CSI_ResourceConfig__resourceType_periodic;
-      ASN_SEQUENCE_ADD(&csi_MeasConfig->csi_ResourceConfigToAddModList->list,csires2);
+      asn1cSeqAdd(&csi_MeasConfig->csi_ResourceConfigToAddModList->list,csires2);
 
       config_csi_meas_report(csi_MeasConfig, scc, pucchcsires1, pdsch_Config, &configuration->pdsch_AntennaPorts, NR_MAX_SUPPORTED_DL_LAYERS, bwp_id, uid);
     }
@@ -1025,16 +1025,16 @@ void fill_mastercellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig, NR_CellGr
   // TS38.331 9.2.1 Default SRB configurations
   if (configure_srb){
     NR_RLC_BearerConfig_t *rlc_BearerConfig = get_SRB_RLC_BearerConfig(2, 3, NR_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms5);
-    ASN_SEQUENCE_ADD(&cellGroupConfig->rlc_BearerToAddModList->list, rlc_BearerConfig);
-    ASN_SEQUENCE_ADD(&ue_context_mastercellGroup->rlc_BearerToAddModList->list, rlc_BearerConfig);
+    asn1cSeqAdd(&cellGroupConfig->rlc_BearerToAddModList->list, rlc_BearerConfig);
+    asn1cSeqAdd(&ue_context_mastercellGroup->rlc_BearerToAddModList->list, rlc_BearerConfig);
   }
 
   // DRB Configuration
   for (int i = bearer_id_start; i < bearer_id_start + nb_bearers_to_setup; i++ ){
     const NR_RLC_Config_PR rlc_conf = use_rlc_um_for_drb ? NR_RLC_Config_PR_um_Bi_Directional : NR_RLC_Config_PR_am;
     NR_RLC_BearerConfig_t *rlc_BearerConfig = get_DRB_RLC_BearerConfig(3 + i, i, rlc_conf, priority[i-1]);
-    ASN_SEQUENCE_ADD(&cellGroupConfig->rlc_BearerToAddModList->list, rlc_BearerConfig);
-    ASN_SEQUENCE_ADD(&ue_context_mastercellGroup->rlc_BearerToAddModList->list, rlc_BearerConfig);
+    asn1cSeqAdd(&cellGroupConfig->rlc_BearerToAddModList->list, rlc_BearerConfig);
+    asn1cSeqAdd(&ue_context_mastercellGroup->rlc_BearerToAddModList->list, rlc_BearerConfig);
   }
 }
 
@@ -1179,7 +1179,7 @@ void fill_initial_cellGroupConfig(int uid,
   /* TS38.331 9.2.1	Default SRB configurations */
   cellGroupConfig->rlc_BearerToAddModList                          = calloc(1, sizeof(*cellGroupConfig->rlc_BearerToAddModList));
   NR_RLC_BearerConfig_t *rlc_BearerConfig = get_SRB_RLC_BearerConfig(1, 1, NR_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms1000);
-  ASN_SEQUENCE_ADD(&cellGroupConfig->rlc_BearerToAddModList->list, rlc_BearerConfig);
+  asn1cSeqAdd(&cellGroupConfig->rlc_BearerToAddModList->list, rlc_BearerConfig);
   
   cellGroupConfig->rlc_BearerToReleaseList = NULL;
   
@@ -1195,7 +1195,7 @@ void fill_initial_cellGroupConfig(int uid,
   struct NR_TAG *tag=calloc(1,sizeof(*tag));
   tag->tag_Id             = 0;
   tag->timeAlignmentTimer = NR_TimeAlignmentTimer_infinity;
-  ASN_SEQUENCE_ADD(&mac_CellGroupConfig->tag_Config->tag_ToAddModList->list,tag);
+  asn1cSeqAdd(&mac_CellGroupConfig->tag_Config->tag_ToAddModList->list,tag);
   set_phr_config(mac_CellGroupConfig);
 
   mac_CellGroupConfig->schedulingRequestConfig = calloc(1, sizeof(*mac_CellGroupConfig->schedulingRequestConfig));
@@ -1204,7 +1204,7 @@ void fill_initial_cellGroupConfig(int uid,
   schedulingrequestlist->schedulingRequestId  = 0;
   schedulingrequestlist->sr_ProhibitTimer = NULL;
   schedulingrequestlist->sr_TransMax      = NR_SchedulingRequestToAddMod__sr_TransMax_n64;
-  ASN_SEQUENCE_ADD(&(mac_CellGroupConfig->schedulingRequestConfig->schedulingRequestToAddModList->list),schedulingrequestlist);
+  asn1cSeqAdd(&(mac_CellGroupConfig->schedulingRequestConfig->schedulingRequestToAddModList->list),schedulingrequestlist);
 
   cellGroupConfig->mac_CellGroupConfig                                      = mac_CellGroupConfig;
 
@@ -1273,7 +1273,7 @@ int do_RRCSetup(rrc_gNB_ue_context_t         *const ue_context_pP,
     // pdcp_Config->t_Reordering
     SRB1_config->pdcp_Config = pdcp_Config;
     ie->radioBearerConfig.srb_ToAddModList = *SRB_configList;
-    ASN_SEQUENCE_ADD(&(*SRB_configList)->list, SRB1_config);
+    asn1cSeqAdd(&(*SRB_configList)->list, SRB1_config);
 
     ie->radioBearerConfig.srb3_ToRelease    = NULL;
     ie->radioBearerConfig.drb_ToAddModList  = NULL;
@@ -1403,7 +1403,7 @@ uint8_t do_NR_SA_UECapabilityEnquiry( const protocol_ctxt_t *const ctxt_pP,
   sa_band_info->choice.bandInformationNR = sa_band_infoNR;
   
   sa_band_list = (NR_FreqBandList_t *)calloc(1, sizeof(NR_FreqBandList_t));
-  ASN_SEQUENCE_ADD(&sa_band_list->list, sa_band_info);
+  asn1cSeqAdd(&sa_band_list->list, sa_band_info);
 
   sa_band_filter = (NR_UE_CapabilityRequestFilterNR_t*)calloc(1,sizeof(NR_UE_CapabilityRequestFilterNR_t));
   sa_band_filter->frequencyBandListFilter = sa_band_list;
@@ -1425,7 +1425,7 @@ uint8_t do_NR_SA_UECapabilityEnquiry( const protocol_ctxt_t *const ctxt_pP,
 
   ue_capabilityrat_request->capabilityRequestFilter = &req_freq;
 
-  ASN_SEQUENCE_ADD(&dl_dcch_msg.message.choice.c1->choice.ueCapabilityEnquiry->criticalExtensions.choice.ueCapabilityEnquiry->ue_CapabilityRAT_RequestList.list,
+  asn1cSeqAdd(&dl_dcch_msg.message.choice.c1->choice.ueCapabilityEnquiry->criticalExtensions.choice.ueCapabilityEnquiry->ue_CapabilityRAT_RequestList.list,
                    ue_capabilityrat_request);
 
 
@@ -1941,7 +1941,7 @@ NR_SRB_ToAddModList_t               **SRB_configList
     if (SRB2_config == NULL) {
       LOG_W(NR_RRC,"SRB2 configuration does not exist in SRB configuration list\n");
     } else {
-      ASN_SEQUENCE_ADD(&(*SRB_configList2)->list, SRB2_config);
+      asn1cSeqAdd(&(*SRB_configList2)->list, SRB2_config);
     }
 
     if (*SRB_configList) {
@@ -1949,7 +1949,7 @@ NR_SRB_ToAddModList_t               **SRB_configList
     }
 
     *SRB_configList = CALLOC(1, sizeof(LTE_SRB_ToAddModList_t));
-    ASN_SEQUENCE_ADD(&(*SRB_configList)->list,SRB1_config);
+    asn1cSeqAdd(&(*SRB_configList)->list,SRB1_config);
 
     rrcReestablishment->rrc_TransactionIdentifier = Transaction_id;
     rrcReestablishment->criticalExtensions.present = NR_RRCReestablishment__criticalExtensions_PR_rrcReestablishment;
@@ -2076,9 +2076,8 @@ NR_MeasConfig_t *get_defaultMeasConfig(const gNB_RrcConfigurationReq *conf)
   monr1->ext1 = calloc(1, sizeof(*monr1->ext1));
   asn1cCallocOne(monr1->ext1->freqBandIndicatorNR, band);
   mo1->measObject.choice.measObjectNR = monr1;
-  int ret = ASN_SEQUENCE_ADD(&mc->measObjectToAddModList->list, mo1);
-  AssertFatal(ret == 0, "ASN_SEQUENCE_ADD() returned %d\n", ret);
-
+  asn1cSeqAdd(&mc->measObjectToAddModList->list, mo1);
+  
   // Reporting Configuration: Specifies how reporting should be done. This could be periodic or event-triggered.
   NR_ReportConfigToAddMod_t *rc = calloc(1, sizeof(*rc));
   rc->reportConfigId = 1;
@@ -2105,9 +2104,7 @@ NR_MeasConfig_t *get_defaultMeasConfig(const gNB_RrcConfigurationReq *conf)
 
 
   rc->reportConfig.choice.reportConfigNR = rcnr;
-  ret = ASN_SEQUENCE_ADD(&mc->reportConfigToAddModList->list, rc);
-  AssertFatal(ret == 0, "ASN_SEQUENCE_ADD() returned %d\n", ret);
-  //prc->reportQuantityRS_Indexes->rsrp = 1;
+  asn1cSeqAdd(&mc->reportConfigToAddModList->list, rc);
 
   // Measurement ID: Identifies how to report measurements of a specific object. This is a many-to-many mapping: a
   // measurement object could have multiple reporting configurations, a reporting configuration could apply to multiple
@@ -2118,8 +2115,7 @@ NR_MeasConfig_t *get_defaultMeasConfig(const gNB_RrcConfigurationReq *conf)
   measid->measId = 1;
   measid->measObjectId = 1;
   measid->reportConfigId = 1;
-  ret = ASN_SEQUENCE_ADD(&mc->measIdToAddModList->list, measid);
-  AssertFatal(ret == 0, "ASN_SEQUENCE_ADD() returned %d\n", ret);
+  asn1cSeqAdd(&mc->measIdToAddModList->list, measid);
 
   // Quantity Configuration: Specifies parameters for layer 3 filtering of measurements. Only after filtering, reporting
   // criteria are evaluated. The formula used is F_n = (1-a)F_(n-1) + a*M_n, where M is the latest measurement, F is the
@@ -2129,8 +2125,7 @@ NR_MeasConfig_t *get_defaultMeasConfig(const gNB_RrcConfigurationReq *conf)
   NR_QuantityConfigNR_t *qcnr3 = calloc(1, sizeof(*qcnr3));
   asn1cCallocOne(qcnr3->quantityConfigCell.ssb_FilterConfig.filterCoefficientRSRP, NR_FilterCoefficient_fc6);
   asn1cCallocOne(qcnr3->quantityConfigCell.csi_RS_FilterConfig.filterCoefficientRSRP, NR_FilterCoefficient_fc6);
-  ret = ASN_SEQUENCE_ADD(&mc->quantityConfig->quantityConfigNR_List->list, qcnr3);
-  AssertFatal(ret == 0, "ASN_SEQUENCE_ADD() returned %d\n", ret);
+  asn1cSeqAdd(&mc->quantityConfig->quantityConfigNR_List->list, qcnr3);
 
   return mc;
 }
diff --git a/openair2/RRC/NR/MESSAGES/asn1_msg.h b/openair2/RRC/NR/MESSAGES/asn1_msg.h
index 241c2deb483bd08b38ec6b545ad6411728dd9d42..87124c11720f7cefa60d1b89c193c911c0d303d8 100644
--- a/openair2/RRC/NR/MESSAGES/asn1_msg.h
+++ b/openair2/RRC/NR/MESSAGES/asn1_msg.h
@@ -40,7 +40,6 @@
 #include <errno.h>  /* for errno */
 
 #include <asn_application.h>
-#include <asn_internal.h> /* for _ASN_DEFAULT_STACK_MAX */
 
 #include "RRC/NR/nr_rrc_defs.h"
 #include "RRC/NR/nr_rrc_config.h"
diff --git a/openair2/RRC/NR/nr_rrc_config.c b/openair2/RRC/NR/nr_rrc_config.c
index 7476286d5f9ade279b5b644605e2ad3908a8ae3a..7ba87727af323d613c5e0315df343632eb880c66 100644
--- a/openair2/RRC/NR/nr_rrc_config.c
+++ b/openair2/RRC/NR/nr_rrc_config.c
@@ -31,6 +31,7 @@
 #include "nr_rrc_config.h"
 #include "common/utils/nr/nr_common.h"
 #include "executables/softmodem-common.h"
+#include "oai_asn1.h"
 
 const uint8_t slotsperframe[5] = {10, 20, 40, 80, 160};
 
@@ -109,7 +110,7 @@ void rrc_coreset_config(NR_ControlResourceSet_t *coreset,
     if ((ssb_bitmap>>(63-i))&0x01){
       tci[i]=calloc(1,sizeof(*tci[i]));
       *tci[i] = i;
-      ASN_SEQUENCE_ADD(&coreset->tci_StatesPDCCH_ToAddList->list,tci[i]);
+      asn1cSeqAdd(&coreset->tci_StatesPDCCH_ToAddList->list,tci[i]);
     }
   }
   coreset->tci_StatesPDCCH_ToReleaseList = NULL;
@@ -200,11 +201,11 @@ void config_csirs(const NR_ServingCellConfigCommon_t *servingcellconfigcommon,
     nzpcsirs0->nzp_CSI_ResourceSetId = id;
     NR_NZP_CSI_RS_ResourceId_t *nzpid0 = calloc(1,sizeof(*nzpid0));
     *nzpid0 = id;
-    ASN_SEQUENCE_ADD(&nzpcsirs0->nzp_CSI_RS_Resources,nzpid0);
+    asn1cSeqAdd(&nzpcsirs0->nzp_CSI_RS_Resources,nzpid0);
     nzpcsirs0->repetition = NULL;
     nzpcsirs0->aperiodicTriggeringOffset = NULL;
     nzpcsirs0->trs_Info = NULL;
-    ASN_SEQUENCE_ADD(&csi_MeasConfig->nzp_CSI_RS_ResourceSetToAddModList->list,nzpcsirs0);
+    asn1cSeqAdd(&csi_MeasConfig->nzp_CSI_RS_ResourceSetToAddModList->list,nzpcsirs0);
 
     const NR_TDD_UL_DL_Pattern_t *tdd = servingcellconfigcommon->tdd_UL_DL_ConfigurationCommon ?
                                         &servingcellconfigcommon->tdd_UL_DL_ConfigurationCommon->pattern1 : NULL;
@@ -266,7 +267,7 @@ void config_csirs(const NR_ServingCellConfigCommon_t *servingcellconfigcommon,
     set_csirs_periodicity(nzpcsi0, uid, nb_slots_per_period);
     nzpcsi0->qcl_InfoPeriodicCSI_RS = calloc(1,sizeof(*nzpcsi0->qcl_InfoPeriodicCSI_RS));
     *nzpcsi0->qcl_InfoPeriodicCSI_RS = 0;
-    ASN_SEQUENCE_ADD(&csi_MeasConfig->nzp_CSI_RS_ResourceToAddModList->list,nzpcsi0);
+    asn1cSeqAdd(&csi_MeasConfig->nzp_CSI_RS_ResourceToAddModList->list,nzpcsi0);
   }
   else {
     csi_MeasConfig->nzp_CSI_RS_ResourceToAddModList = NULL;
@@ -355,15 +356,15 @@ void config_csiim(int do_csirs, int dl_antenna_ports, int curr_bwp,
    // same period and offset of the associated CSI-RS
    imres->periodicityAndOffset->present = nzpcsi->periodicityAndOffset->present;
    set_csiim_offset(imres->periodicityAndOffset, nzpcsi->periodicityAndOffset);
-   ASN_SEQUENCE_ADD(&csi_MeasConfig->csi_IM_ResourceToAddModList->list,imres);
+   asn1cSeqAdd(&csi_MeasConfig->csi_IM_ResourceToAddModList->list,imres);
    if (!csi_MeasConfig->csi_IM_ResourceSetToAddModList)
      csi_MeasConfig->csi_IM_ResourceSetToAddModList = calloc(1, sizeof(*csi_MeasConfig->csi_IM_ResourceSetToAddModList));
    NR_CSI_IM_ResourceSet_t *imset = calloc(1,sizeof(*imset));
    imset->csi_IM_ResourceSetId = id;
    NR_CSI_IM_ResourceId_t *res = calloc(1,sizeof(*res));
    *res = id;
-   ASN_SEQUENCE_ADD(&imset->csi_IM_Resources,res);
-   ASN_SEQUENCE_ADD(&csi_MeasConfig->csi_IM_ResourceSetToAddModList->list,imset);
+   asn1cSeqAdd(&imset->csi_IM_Resources,res);
+   asn1cSeqAdd(&csi_MeasConfig->csi_IM_ResourceSetToAddModList->list,imset);
  }
  else {
    csi_MeasConfig->csi_IM_ResourceToAddModList = NULL;
@@ -513,7 +514,7 @@ void config_srs(const NR_ServingCellConfigCommon_t *scc,
   srs_resset0->srs_ResourceIdList = calloc(1,sizeof(*srs_resset0->srs_ResourceIdList));
   NR_SRS_ResourceId_t *srs_resset0_id = calloc(1,sizeof(*srs_resset0_id));
   *srs_resset0_id = res_id;
-  ASN_SEQUENCE_ADD(&srs_resset0->srs_ResourceIdList->list, srs_resset0_id);
+  asn1cSeqAdd(&srs_resset0->srs_ResourceIdList->list, srs_resset0_id);
   srs_Config->srs_ResourceToReleaseList=NULL;
   if (do_srs) {
     srs_resset0->resourceType.present =  NR_SRS_ResourceSet__resourceType_PR_periodic;
@@ -535,7 +536,7 @@ void config_srs(const NR_ServingCellConfigCommon_t *scc,
   *srs_resset0->p0 =-80;
   srs_resset0->pathlossReferenceRS = NULL;
   srs_resset0->srs_PowerControlAdjustmentStates = NULL;
-  ASN_SEQUENCE_ADD(&srs_Config->srs_ResourceSetToAddModList->list,srs_resset0);
+  asn1cSeqAdd(&srs_Config->srs_ResourceSetToAddModList->list,srs_resset0);
 
   srs_Config->srs_ResourceToReleaseList = NULL;
 
@@ -609,7 +610,7 @@ void config_srs(const NR_ServingCellConfigCommon_t *scc,
   // TODO include CSI as reference signal when BWPs are handled properly
   srs_res0->spatialRelationInfo->referenceSignal.present = NR_SRS_SpatialRelationInfo__referenceSignal_PR_ssb_Index;
   srs_res0->spatialRelationInfo->referenceSignal.choice.ssb_Index = 0;
-  ASN_SEQUENCE_ADD(&srs_Config->srs_ResourceToAddModList->list,srs_res0);
+  asn1cSeqAdd(&srs_Config->srs_ResourceToAddModList->list,srs_res0);
 }
 
 void prepare_sim_uecap(NR_UE_NR_Capability_t *cap,
@@ -622,7 +623,7 @@ void prepare_sim_uecap(NR_UE_NR_Capability_t *cap,
   int band = *scc->downlinkConfigCommon->frequencyInfoDL->frequencyBandList.list.array[0];
   NR_BandNR_t *nr_bandnr = CALLOC(1,sizeof(NR_BandNR_t));
   nr_bandnr->bandNR = band;
-  ASN_SEQUENCE_ADD(&cap->rf_Parameters.supportedBandListNR.list,
+  asn1cSeqAdd(&cap->rf_Parameters.supportedBandListNR.list,
                    nr_bandnr);
   if (mcs_table == 1) {
     int bw = get_supported_band_index(numerology, band, rbsize);
@@ -652,7 +653,7 @@ void prepare_sim_uecap(NR_UE_NR_Capability_t *cap,
     }
     fs_cc->supportedModulationOrderDL = CALLOC(1,sizeof(*fs_cc->supportedModulationOrderDL));
     *fs_cc->supportedModulationOrderDL = NR_ModulationOrder_qam256;
-    ASN_SEQUENCE_ADD(&fs->featureSetsDownlinkPerCC->list, fs_cc);
+    asn1cSeqAdd(&fs->featureSetsDownlinkPerCC->list, fs_cc);
   }
 
   phy_Parameters->phy_ParametersFRX_Diff = CALLOC(1,sizeof(*phy_Parameters->phy_ParametersFRX_Diff));
@@ -675,12 +676,12 @@ void nr_rrc_config_dl_tda(struct NR_PDSCH_TimeDomainResourceAllocationList *pdsc
   //*timedomainresourceallocation->k0 = 0;
   timedomainresourceallocation->mappingType = NR_PDSCH_TimeDomainResourceAllocation__mappingType_typeA;
   timedomainresourceallocation->startSymbolAndLength = get_SLIV(len_coreset,14-len_coreset); // basic slot configuration starting in symbol 1 til the end of the slot
-  ASN_SEQUENCE_ADD(&pdsch_TimeDomainAllocationList->list, timedomainresourceallocation);
+  asn1cSeqAdd(&pdsch_TimeDomainAllocationList->list, timedomainresourceallocation);
   // setting TDA for CSI-RS symbol with index 1
   struct NR_PDSCH_TimeDomainResourceAllocation *timedomainresourceallocation1 = CALLOC(1,sizeof(NR_PDSCH_TimeDomainResourceAllocation_t));
   timedomainresourceallocation1->mappingType = NR_PDSCH_TimeDomainResourceAllocation__mappingType_typeA;
   timedomainresourceallocation1->startSymbolAndLength = get_SLIV(len_coreset,14-len_coreset-1); // 1 symbol CSI-RS
-  ASN_SEQUENCE_ADD(&pdsch_TimeDomainAllocationList->list, timedomainresourceallocation1);
+  asn1cSeqAdd(&pdsch_TimeDomainAllocationList->list, timedomainresourceallocation1);
   if(frame_type==TDD) {
     // TDD
     if(tdd_UL_DL_ConfigurationCommon) {
@@ -690,7 +691,7 @@ void nr_rrc_config_dl_tda(struct NR_PDSCH_TimeDomainResourceAllocationList *pdsc
         struct NR_PDSCH_TimeDomainResourceAllocation *timedomainresourceallocation2 = CALLOC(1,sizeof(NR_PDSCH_TimeDomainResourceAllocation_t));
         timedomainresourceallocation2->mappingType = NR_PDSCH_TimeDomainResourceAllocation__mappingType_typeA;
         timedomainresourceallocation2->startSymbolAndLength = get_SLIV(len_coreset,dl_symb-len_coreset); // mixed slot configuration starting in symbol 1 til the end of the dl allocation
-        ASN_SEQUENCE_ADD(&pdsch_TimeDomainAllocationList->list, timedomainresourceallocation2);
+        asn1cSeqAdd(&pdsch_TimeDomainAllocationList->list, timedomainresourceallocation2);
       }
     }
   }
@@ -713,7 +714,7 @@ void nr_rrc_config_ul_tda(NR_ServingCellConfigCommon_t *scc, int min_fb_delay){
   *pusch_timedomainresourceallocation->k2 = k2;
   pusch_timedomainresourceallocation->mappingType = NR_PUSCH_TimeDomainResourceAllocation__mappingType_typeB;
   pusch_timedomainresourceallocation->startSymbolAndLength = get_SLIV(0,13);
-  ASN_SEQUENCE_ADD(&scc->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList->list,pusch_timedomainresourceallocation); 
+  asn1cSeqAdd(&scc->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList->list,pusch_timedomainresourceallocation); 
 
   // UL TDA index 1 in case of SRS
   struct NR_PUSCH_TimeDomainResourceAllocation *pusch_timedomainresourceallocation1 = CALLOC(1,sizeof(struct NR_PUSCH_TimeDomainResourceAllocation));
@@ -721,7 +722,7 @@ void nr_rrc_config_ul_tda(NR_ServingCellConfigCommon_t *scc, int min_fb_delay){
   *pusch_timedomainresourceallocation1->k2 = k2;
   pusch_timedomainresourceallocation1->mappingType = NR_PUSCH_TimeDomainResourceAllocation__mappingType_typeB;
   pusch_timedomainresourceallocation1->startSymbolAndLength = get_SLIV(0,12);
-  ASN_SEQUENCE_ADD(&scc->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList->list,pusch_timedomainresourceallocation1);
+  asn1cSeqAdd(&scc->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList->list,pusch_timedomainresourceallocation1);
 
   if(frame_type==TDD) {
     if(scc->tdd_UL_DL_ConfigurationCommon) {
@@ -733,7 +734,7 @@ void nr_rrc_config_ul_tda(NR_ServingCellConfigCommon_t *scc, int min_fb_delay){
         *pusch_timedomainresourceallocation->k2 = k2;
         pusch_timedomainresourceallocation->mappingType = NR_PUSCH_TimeDomainResourceAllocation__mappingType_typeB;
         pusch_timedomainresourceallocation->startSymbolAndLength = get_SLIV(14-ul_symb,ul_symb-1); // starting in fist ul symbol til the last but one
-        ASN_SEQUENCE_ADD(&scc->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList->list,pusch_timedomainresourceallocation);
+        asn1cSeqAdd(&scc->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList->list,pusch_timedomainresourceallocation);
       }
       // UL TDA index 3 for msg3 in the mixed slot (TDD)
       int nb_periods_per_frame = get_nb_periods_per_frame(scc->tdd_UL_DL_ConfigurationCommon->pattern1.dl_UL_TransmissionPeriodicity);
@@ -751,7 +752,7 @@ void nr_rrc_config_ul_tda(NR_ServingCellConfigCommon_t *scc, int min_fb_delay){
         pusch_timedomainresourceallocation_msg3->startSymbolAndLength = get_SLIV(0,13); // full allocation if there is no mixed slot
       else
         pusch_timedomainresourceallocation_msg3->startSymbolAndLength = get_SLIV(14-ul_symb,ul_symb-1); // starting in fist ul symbol til the last but one
-      ASN_SEQUENCE_ADD(&scc->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList->list,pusch_timedomainresourceallocation_msg3);
+      asn1cSeqAdd(&scc->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList->list,pusch_timedomainresourceallocation_msg3);
     }
   }
 }
@@ -766,7 +767,7 @@ void set_dl_DataToUL_ACK(NR_PUCCH_Config_t *pucch_Config, int min_feedback_time,
     if (curr_delay <= n_slots_frame) {
       delay[i] = calloc(1,sizeof(*delay[i]));
       *delay[i] = curr_delay;
-      ASN_SEQUENCE_ADD(&pucch_Config->dl_DataToUL_ACK->list,delay[i]);
+      asn1cSeqAdd(&pucch_Config->dl_DataToUL_ACK->list,delay[i]);
     }
   }
 }
@@ -778,7 +779,7 @@ void config_pucch_resset0(NR_PUCCH_Config_t *pucch_Config, int uid, int curr_bwp
   pucchresset->pucch_ResourceSetId = 0;
   NR_PUCCH_ResourceId_t *pucchid=calloc(1,sizeof(*pucchid));
   *pucchid=0;
-  ASN_SEQUENCE_ADD(&pucchresset->resourceList.list,pucchid);
+  asn1cSeqAdd(&pucchresset->resourceList.list,pucchid);
   pucchresset->maxPayloadSize=NULL;
 
   if(uecap) {
@@ -796,9 +797,9 @@ void config_pucch_resset0(NR_PUCCH_Config_t *pucch_Config, int uid, int curr_bwp
   pucchres0->format.choice.format0->initialCyclicShift=0;
   pucchres0->format.choice.format0->nrofSymbols=1;
   pucchres0->format.choice.format0->startingSymbolIndex=13;
-  ASN_SEQUENCE_ADD(&pucch_Config->resourceToAddModList->list,pucchres0);
+  asn1cSeqAdd(&pucch_Config->resourceToAddModList->list,pucchres0);
 
-  ASN_SEQUENCE_ADD(&pucch_Config->resourceSetToAddModList->list,pucchresset);
+  asn1cSeqAdd(&pucch_Config->resourceSetToAddModList->list,pucchresset);
 }
 
 
@@ -809,7 +810,7 @@ void config_pucch_resset1(NR_PUCCH_Config_t *pucch_Config, NR_UE_NR_Capability_t
   pucchresset->pucch_ResourceSetId = 1;
   NR_PUCCH_ResourceId_t *pucchressetid=calloc(1,sizeof(*pucchressetid));
   *pucchressetid=2;
-  ASN_SEQUENCE_ADD(&pucchresset->resourceList.list,pucchressetid);
+  asn1cSeqAdd(&pucchresset->resourceList.list,pucchressetid);
   pucchresset->maxPayloadSize=NULL;
 
   if(uecap) {
@@ -827,9 +828,9 @@ void config_pucch_resset1(NR_PUCCH_Config_t *pucch_Config, NR_UE_NR_Capability_t
   pucchres2->format.choice.format2->nrofPRBs=8;
   pucchres2->format.choice.format2->nrofSymbols=1;
   pucchres2->format.choice.format2->startingSymbolIndex=13;
-  ASN_SEQUENCE_ADD(&pucch_Config->resourceToAddModList->list,pucchres2);
+  asn1cSeqAdd(&pucch_Config->resourceToAddModList->list,pucchres2);
 
-  ASN_SEQUENCE_ADD(&pucch_Config->resourceSetToAddModList->list,pucchresset);
+  asn1cSeqAdd(&pucch_Config->resourceSetToAddModList->list,pucchresset);
 
   pucch_Config->format2=calloc(1,sizeof(*pucch_Config->format2));
   pucch_Config->format2->present=NR_SetupRelease_PUCCH_FormatConfig_PR_setup;
@@ -855,7 +856,7 @@ void set_pucch_power_config(NR_PUCCH_Config_t *pucch_Config, int do_csirs) {
   p00->p0_PUCCH_Id = 1;
   p00->p0_PUCCH_Value = 0;
   pucch_Config->pucch_PowerControl->p0_Set = calloc(1,sizeof(*pucch_Config->pucch_PowerControl->p0_Set));
-  ASN_SEQUENCE_ADD(&pucch_Config->pucch_PowerControl->p0_Set->list,p00);
+  asn1cSeqAdd(&pucch_Config->pucch_PowerControl->p0_Set->list,p00);
 
   pucch_Config->pucch_PowerControl->pathlossReferenceRSs = calloc(1,sizeof(*pucch_Config->pucch_PowerControl->pathlossReferenceRSs));
   struct NR_PUCCH_PathlossReferenceRS *PL_ref_RS = calloc(1,sizeof(*PL_ref_RS));
@@ -863,7 +864,7 @@ void set_pucch_power_config(NR_PUCCH_Config_t *pucch_Config, int do_csirs) {
   // TODO include CSI as reference signal when BWPs are handled properly
   PL_ref_RS->referenceSignal.present = NR_PUCCH_PathlossReferenceRS__referenceSignal_PR_ssb_Index;
   PL_ref_RS->referenceSignal.choice.ssb_Index = 0;
-  ASN_SEQUENCE_ADD(&pucch_Config->pucch_PowerControl->pathlossReferenceRSs->list,PL_ref_RS);
+  asn1cSeqAdd(&pucch_Config->pucch_PowerControl->pathlossReferenceRSs->list,PL_ref_RS);
 
   pucch_Config->pucch_PowerControl->deltaF_PUCCH_f0 = calloc(1,sizeof(*pucch_Config->pucch_PowerControl->deltaF_PUCCH_f0));
   *pucch_Config->pucch_PowerControl->deltaF_PUCCH_f0 = 0;
@@ -882,7 +883,7 @@ void set_pucch_power_config(NR_PUCCH_Config_t *pucch_Config, int do_csirs) {
   pucchspatial->pucch_PathlossReferenceRS_Id = PL_ref_RS->pucch_PathlossReferenceRS_Id;
   pucchspatial->p0_PUCCH_Id = p00->p0_PUCCH_Id;
   pucchspatial->closedLoopIndex = NR_PUCCH_SpatialRelationInfo__closedLoopIndex_i0;
-  ASN_SEQUENCE_ADD(&pucch_Config->spatialRelationInfoToAddModList->list,pucchspatial);
+  asn1cSeqAdd(&pucch_Config->spatialRelationInfoToAddModList->list,pucchspatial);
 }
 
 static void set_SR_periodandoffset(NR_SchedulingRequestResourceConfig_t *schedulingRequestResourceConfig, const NR_ServingCellConfigCommon_t *scc)
@@ -945,7 +946,7 @@ void scheduling_request_config(const NR_ServingCellConfigCommon_t *scc,
 
   schedulingRequestResourceConfig->resource = calloc(1,sizeof(*schedulingRequestResourceConfig->resource));
   *schedulingRequestResourceConfig->resource = *pucchressetid;
-  ASN_SEQUENCE_ADD(&pucch_Config->schedulingRequestResourceToAddModList->list,schedulingRequestResourceConfig);
+  asn1cSeqAdd(&pucch_Config->schedulingRequestResourceToAddModList->list,schedulingRequestResourceConfig);
 }
 
 void set_dl_mcs_table(int scs,
@@ -1029,13 +1030,13 @@ struct NR_SetupRelease_PUSCH_Config *config_pusch(NR_PUSCH_Config_t *pusch_Confi
   *aset->p0 = 0;
   aset->alpha = calloc(1, sizeof(*aset->alpha));
   *aset->alpha = NR_Alpha_alpha1;
-  ASN_SEQUENCE_ADD(&pusch_Config->pusch_PowerControl->p0_AlphaSets->list, aset);
+  asn1cSeqAdd(&pusch_Config->pusch_PowerControl->p0_AlphaSets->list, aset);
   pusch_Config->pusch_PowerControl->pathlossReferenceRSToAddModList = calloc(1, sizeof(*pusch_Config->pusch_PowerControl->pathlossReferenceRSToAddModList));
   NR_PUSCH_PathlossReferenceRS_t *plrefRS = calloc(1, sizeof(*plrefRS));
   plrefRS->pusch_PathlossReferenceRS_Id = 0;
   plrefRS->referenceSignal.present = NR_PUSCH_PathlossReferenceRS__referenceSignal_PR_ssb_Index;
   plrefRS->referenceSignal.choice.ssb_Index = 0;
-  ASN_SEQUENCE_ADD(&pusch_Config->pusch_PowerControl->pathlossReferenceRSToAddModList->list, plrefRS);
+  asn1cSeqAdd(&pusch_Config->pusch_PowerControl->pathlossReferenceRSToAddModList->list, plrefRS);
   pusch_Config->pusch_PowerControl->pathlossReferenceRSToReleaseList = NULL;
   pusch_Config->pusch_PowerControl->twoPUSCH_PC_AdjustmentStates = NULL;
   pusch_Config->pusch_PowerControl->deltaMCS = calloc(1, sizeof(*pusch_Config->pusch_PowerControl->deltaMCS));
@@ -1091,17 +1092,18 @@ struct NR_SetupRelease_PDSCH_Config *config_pdsch(uint64_t ssb_bitmap, int bwp_I
   *pdsch_Config->prb_BundlingType.choice.staticBundling->bundleSize = NR_PDSCH_Config__prb_BundlingType__staticBundling__bundleSize_wideband;
 
   int n_ssb = 0;
+  if (!pdsch_Config->tci_StatesToAddModList)
+    pdsch_Config->tci_StatesToAddModList=calloc(1,sizeof(*pdsch_Config->tci_StatesToAddModList));
   for (int i = 0; i < 64; i++) {
     if (((ssb_bitmap >> (63 - i)) & 0x01) == 0)
       continue;
-    NR_TCI_State_t *tcid = calloc(1, sizeof(*tcid));
+    asn1cSequenceAdd(pdsch_Config->tci_StatesToAddModList->list, NR_TCI_State_t, tcid);
     tcid->tci_StateId = n_ssb++;
     tcid->qcl_Type1.cell = NULL;
     asn1cCallocOne(tcid->qcl_Type1.bwp_Id, bwp_Id);
     tcid->qcl_Type1.referenceSignal.present = NR_QCL_Info__referenceSignal_PR_ssb;
     tcid->qcl_Type1.referenceSignal.choice.ssb = i;
     tcid->qcl_Type1.qcl_Type = NR_QCL_Info__qcl_Type_typeC;
-    ASN_SEQUENCE_ADD(&pdsch_Config->tci_StatesToAddModList->list, tcid);
   }
   return setup_pdsch_Config;
 }
@@ -1147,7 +1149,7 @@ void config_downlinkBWP(NR_BWP_Downlink_t *bwp,
   bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList=calloc(1,sizeof(*bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList));
 
   NR_SearchSpace_t *ss = rrc_searchspace_config(true, 5+bwp->bwp_Id, coreset->controlResourceSetId);
-  ASN_SEQUENCE_ADD(&bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList->list,ss);
+  asn1cSeqAdd(&bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList->list,ss);
 
   bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->searchSpaceSIB1=NULL;
   bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->searchSpaceOtherSystemInformation=NULL;
@@ -1177,11 +1179,11 @@ void config_downlinkBWP(NR_BWP_Downlink_t *bwp,
   bwp->bwp_Dedicated->pdcch_Config->choice.setup->searchSpacesToAddModList = calloc(1,sizeof(*bwp->bwp_Dedicated->pdcch_Config->choice.setup->searchSpacesToAddModList));
   bwp->bwp_Dedicated->pdcch_Config->choice.setup->controlResourceSetToAddModList = calloc(1,sizeof(*bwp->bwp_Dedicated->pdcch_Config->choice.setup->controlResourceSetToAddModList));
 
-  ASN_SEQUENCE_ADD(&bwp->bwp_Dedicated->pdcch_Config->choice.setup->controlResourceSetToAddModList->list, coreset);
+  asn1cSeqAdd(&bwp->bwp_Dedicated->pdcch_Config->choice.setup->controlResourceSetToAddModList->list, coreset);
 
   bwp->bwp_Dedicated->pdcch_Config->choice.setup->searchSpacesToAddModList = calloc(1,sizeof(*bwp->bwp_Dedicated->pdcch_Config->choice.setup->searchSpacesToAddModList));
   NR_SearchSpace_t *ss2 = rrc_searchspace_config(false, 10+bwp->bwp_Id, coreset->controlResourceSetId);
-  ASN_SEQUENCE_ADD(&bwp->bwp_Dedicated->pdcch_Config->choice.setup->searchSpacesToAddModList->list, ss2);
+  asn1cSeqAdd(&bwp->bwp_Dedicated->pdcch_Config->choice.setup->searchSpacesToAddModList->list, ss2);
 
   bwp->bwp_Dedicated->pdcch_Config->choice.setup->searchSpacesToReleaseList = NULL;
   bwp->bwp_Dedicated->pdsch_Config = config_pdsch(ssb_bitmap, bwp->bwp_Id, dl_antenna_ports);
@@ -1463,7 +1465,7 @@ void config_csi_meas_report(NR_CSI_MeasConfig_t *csi_MeasConfig,
   csirep->reportConfigType.present = NR_CSI_ReportConfig__reportConfigType_PR_periodic;
   csirep->reportConfigType.choice.periodic = calloc(1, sizeof(*csirep->reportConfigType.choice.periodic));
   set_csi_meas_periodicity(servingcellconfigcommon, csirep, uid, false);
-  ASN_SEQUENCE_ADD(&csirep->reportConfigType.choice.periodic->pucch_CSI_ResourceList.list, pucchcsires);
+  asn1cSeqAdd(&csirep->reportConfigType.choice.periodic->pucch_CSI_ResourceList.list, pucchcsires);
   csirep->reportQuantity.present = NR_CSI_ReportConfig__reportQuantity_PR_cri_RI_PMI_CQI;
   csirep->reportQuantity.choice.cri_RI_PMI_CQI = (NULL_t)0;
   csirep->reportFreqConfiguration = calloc(1, sizeof(*csirep->reportFreqConfiguration));
@@ -1488,7 +1490,7 @@ void config_csi_meas_report(NR_CSI_MeasConfig_t *csi_MeasConfig,
   csirep->subbandSize = NR_CSI_ReportConfig__subbandSize_value2;
   csirep->non_PMI_PortIndication = NULL;
   csirep->ext1 = NULL;
-  ASN_SEQUENCE_ADD(&csi_MeasConfig->csi_ReportConfigToAddModList->list, csirep);
+  asn1cSeqAdd(&csi_MeasConfig->csi_ReportConfigToAddModList->list, csirep);
 }
 
 void config_rsrp_meas_report(NR_CSI_MeasConfig_t *csi_MeasConfig,
@@ -1523,7 +1525,7 @@ void config_rsrp_meas_report(NR_CSI_MeasConfig_t *csi_MeasConfig,
   csirep->reportConfigType.present = NR_CSI_ReportConfig__reportConfigType_PR_periodic;
   csirep->reportConfigType.choice.periodic = calloc(1, sizeof(*csirep->reportConfigType.choice.periodic));
   set_csi_meas_periodicity(servingcellconfigcommon, csirep, uid, true);
-  ASN_SEQUENCE_ADD(&csirep->reportConfigType.choice.periodic->pucch_CSI_ResourceList.list, pucchcsires);
+  asn1cSeqAdd(&csirep->reportConfigType.choice.periodic->pucch_CSI_ResourceList.list, pucchcsires);
   if (do_csi) {
     csirep->reportQuantity.present = NR_CSI_ReportConfig__reportQuantity_PR_cri_RSRP;
     csirep->reportQuantity.choice.cri_RSRP = (NULL_t)0;
@@ -1535,5 +1537,5 @@ void config_rsrp_meas_report(NR_CSI_MeasConfig_t *csi_MeasConfig,
   csirep->groupBasedBeamReporting.choice.disabled = calloc(1, sizeof(*csirep->groupBasedBeamReporting.choice.disabled));
   csirep->groupBasedBeamReporting.choice.disabled->nrofReportedRS = calloc(1, sizeof(*csirep->groupBasedBeamReporting.choice.disabled->nrofReportedRS));
   *csirep->groupBasedBeamReporting.choice.disabled->nrofReportedRS = NR_CSI_ReportConfig__groupBasedBeamReporting__disabled__nrofReportedRS_n1;
-  ASN_SEQUENCE_ADD(&csi_MeasConfig->csi_ReportConfigToAddModList->list, csirep);
+  asn1cSeqAdd(&csi_MeasConfig->csi_ReportConfigToAddModList->list, csirep);
 }
diff --git a/openair2/RRC/NR/nr_rrc_config.h b/openair2/RRC/NR/nr_rrc_config.h
index d100750eac9cc073621073bc17f7411eefe72c61..85eccc5e5376bc1127a9d76d21300ff65bb69014 100644
--- a/openair2/RRC/NR/nr_rrc_config.h
+++ b/openair2/RRC/NR/nr_rrc_config.h
@@ -32,14 +32,7 @@
 #define __NR_RRC_CONFIG_H__
 
 #include "nr_rrc_defs.h"
-
-#define asn1cCallocOne(VaR, VaLue) \
-  VaR = calloc(1,sizeof(*VaR)); *VaR=VaLue;
-#define asn1cCalloc(VaR, lOcPtr) \
-  typeof(VaR) lOcPtr = VaR = calloc(1,sizeof(*VaR));
-#define asn1cSequenceAdd(VaR, TyPe, lOcPtr) \
-  TyPe *lOcPtr= calloc(1,sizeof(TyPe)); \
-  ASN_SEQUENCE_ADD(&VaR,lOcPtr);
+#include "openair2/RRC/NR/MESSAGES/asn1_msg.h"
 
 void set_phr_config(NR_MAC_CellGroupConfig_t *mac_CellGroupConfig);
 uint64_t get_ssb_bitmap(const NR_ServingCellConfigCommon_t *scc);
diff --git a/openair2/RRC/NR/rrc_gNB.c b/openair2/RRC/NR/rrc_gNB.c
old mode 100755
new mode 100644
index edc4a8dcfbe4d1560e7990548c732eddb15a15b4..5a0a138c6679447a855903c6423112d6b83c68c3
--- a/openair2/RRC/NR/rrc_gNB.c
+++ b/openair2/RRC/NR/rrc_gNB.c
@@ -39,7 +39,7 @@
 #include "nr_rrc_extern.h"
 #include "assertions.h"
 #include "common/ran_context.h"
-#include "asn1_conversions.h"
+#include "oai_asn1.h"
 #include "rrc_gNB_radio_bearers.h"
 
 #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h"
@@ -537,8 +537,8 @@ rrc_gNB_generate_defaultRRCReconfiguration(
   memset(*SRB_configList2, 0, sizeof(**SRB_configList2));
   SRB2_config = CALLOC(1, sizeof(*SRB2_config));
   SRB2_config->srb_Identity = 2;
-  ASN_SEQUENCE_ADD(&(*SRB_configList2)->list, SRB2_config);
-  ASN_SEQUENCE_ADD(&SRB_configList->list, SRB2_config);*/
+  asn1cSeqAdd(&(*SRB_configList2)->list, SRB2_config);
+  asn1cSeqAdd(&SRB_configList->list, SRB2_config);*/
 
   /* Configure DRB */
   /*DRB_configList = &ue_context_pP->ue_context.DRB_configList;
@@ -586,8 +586,8 @@ rrc_gNB_generate_defaultRRCReconfiguration(
   *DRB_config->pdcp_Config->t_Reordering = NR_PDCP_Config__t_Reordering_ms100;
   DRB_config->pdcp_Config->ext1 = NULL;
 
-  ASN_SEQUENCE_ADD(&(*DRB_configList)->list, DRB_config);
-  ASN_SEQUENCE_ADD(&(*DRB_configList2)->list, DRB_config);*/
+  asn1cSeqAdd(&(*DRB_configList)->list, DRB_config);
+  asn1cSeqAdd(&(*DRB_configList2)->list, DRB_config);*/
 
   dedicatedNAS_MessageList = CALLOC(1, sizeof(struct NR_RRCReconfiguration_v1530_IEs__dedicatedNAS_MessageList));
 
@@ -599,7 +599,7 @@ rrc_gNB_generate_defaultRRCReconfiguration(
       OCTET_STRING_fromBuf(dedicatedNAS_Message,
                             (char *)ue_context_pP->ue_context.pduSession[i].param.nas_pdu.buffer,
                             ue_context_pP->ue_context.pduSession[i].param.nas_pdu.length);
-      ASN_SEQUENCE_ADD(&dedicatedNAS_MessageList->list, dedicatedNAS_Message);
+      asn1cSeqAdd(&dedicatedNAS_MessageList->list, dedicatedNAS_Message);
     }
 
     ue_context_pP->ue_context.pduSession[i].status = PDU_SESSION_STATUS_DONE;
@@ -613,7 +613,7 @@ rrc_gNB_generate_defaultRRCReconfiguration(
     OCTET_STRING_fromBuf(dedicatedNAS_Message,
                           (char *)ue_context_pP->ue_context.nas_pdu.buffer,
                           ue_context_pP->ue_context.nas_pdu.length);
-    ASN_SEQUENCE_ADD(&dedicatedNAS_MessageList->list, dedicatedNAS_Message);
+    asn1cSeqAdd(&dedicatedNAS_MessageList->list, dedicatedNAS_Message);
   }
 
   /* If list is empty free the list and reset the address */
@@ -878,8 +878,8 @@ rrc_gNB_generate_dedicatedRRCReconfiguration(
                                                     rrc->security.do_drb_integrity,
                                                     rrc->security.do_drb_ciphering);
           if (drb_id_to_setup_start == 0) drb_id_to_setup_start = DRB_config->drb_Identity;
-          ASN_SEQUENCE_ADD(&(*DRB_configList)->list, DRB_config);
-          ASN_SEQUENCE_ADD(&(*DRB_configList2)->list, DRB_config);
+          asn1cSeqAdd(&(*DRB_configList)->list, DRB_config);
+          asn1cSeqAdd(&(*DRB_configList2)->list, DRB_config);
         }
       }
     }
@@ -893,7 +893,7 @@ rrc_gNB_generate_dedicatedRRCReconfiguration(
       OCTET_STRING_fromBuf(dedicatedNAS_Message,
                             (char *)ue_context_pP->ue_context.pduSession[i].param.nas_pdu.buffer,
                             ue_context_pP->ue_context.pduSession[i].param.nas_pdu.length);
-      ASN_SEQUENCE_ADD(&dedicatedNAS_MessageList->list, dedicatedNAS_Message);
+      asn1cSeqAdd(&dedicatedNAS_MessageList->list, dedicatedNAS_Message);
 
       LOG_I(NR_RRC,"add NAS info with size %d (pdusession id %d)\n",ue_context_pP->ue_context.pduSession[i].param.nas_pdu.length, i);
     } else {
@@ -1078,7 +1078,7 @@ rrc_gNB_modify_dedicatedRRCReconfiguration(
          );
     }
 
-    ASN_SEQUENCE_ADD(&DRB_configList2->list, DRB_config);
+    asn1cSeqAdd(&DRB_configList2->list, DRB_config);
 
     ue_context_pP->ue_context.modify_pdusession[i].status = PDU_SESSION_STATUS_DONE;
     ue_context_pP->ue_context.modify_pdusession[i].xid = xid;
@@ -1089,7 +1089,7 @@ rrc_gNB_modify_dedicatedRRCReconfiguration(
       OCTET_STRING_fromBuf(dedicatedNAS_Message,
                             (char *)ue_context_pP->ue_context.modify_pdusession[i].param.nas_pdu.buffer,
                             ue_context_pP->ue_context.modify_pdusession[i].param.nas_pdu.length);
-      ASN_SEQUENCE_ADD(&dedicatedNAS_MessageList->list, dedicatedNAS_Message);
+      asn1cSeqAdd(&dedicatedNAS_MessageList->list, dedicatedNAS_Message);
 
       LOG_I(NR_RRC,"add NAS info with size %d (pdusession id %d)\n",ue_context_pP->ue_context.pduSession[i].param.nas_pdu.length,
         ue_context_pP->ue_context.modify_pdusession[i].param.pdusession_id);
@@ -1190,7 +1190,7 @@ rrc_gNB_generate_dedicatedRRCReconfiguration_release(
     if((ue_context_pP->ue_context.pduSession[i].status == PDU_SESSION_STATUS_TORELEASE) && ue_context_pP->ue_context.pduSession[i].xid == xid) {
       DRB_release = CALLOC(1, sizeof(NR_DRB_Identity_t));
       *DRB_release = i+1;
-      ASN_SEQUENCE_ADD(&(*DRB_Release_configList2)->list, DRB_release);
+      asn1cSeqAdd(&(*DRB_Release_configList2)->list, DRB_release);
     }
   }
 
@@ -1202,7 +1202,7 @@ rrc_gNB_generate_dedicatedRRCReconfiguration_release(
     OCTET_STRING_fromBuf(dedicatedNAS_Message,
                          (char *)nas_buffer,
                          nas_length);
-    ASN_SEQUENCE_ADD(&dedicatedNAS_MessageList->list, dedicatedNAS_Message);
+    asn1cSeqAdd(&dedicatedNAS_MessageList->list, dedicatedNAS_Message);
     LOG_I(NR_RRC,"add NAS info with size %d\n", nas_length);
   } else {
     LOG_W(NR_RRC,"dedlicated NAS list is empty\n");
@@ -1565,8 +1565,8 @@ rrc_gNB_process_RRCConnectionReestablishmentComplete(
 
   if (SRB2_config != NULL) {
     // Add SRB2 to SRB configuration list
-    ASN_SEQUENCE_ADD(&SRB_configList->list, SRB2_config);
-    ASN_SEQUENCE_ADD(&(*SRB_configList2)->list, SRB2_config);
+    asn1cSeqAdd(&SRB_configList->list, SRB2_config);
+    asn1cSeqAdd(&(*SRB_configList2)->list, SRB2_config);
     LOG_D(NR_RRC, "Add SRB2_config (srb_Identity:%ld) to ue_context_pP->ue_context.SRB_configList\n",
           SRB2_config->srb_Identity);
     LOG_D(NR_RRC, "Add SRB2_config (srb_Identity:%ld) to ue_context_pP->ue_context.SRB_configList2[%d]\n",
@@ -1589,7 +1589,7 @@ rrc_gNB_process_RRCConnectionReestablishmentComplete(
     for (i = 0; (i < DRB_configList->list.count) && (i < 3); i++) {
       DRB_config = DRB_configList->list.array[i];
       // Add DRB to DRB configuration list, for LTE_RRCConnectionReconfigurationComplete
-      ASN_SEQUENCE_ADD(&(*DRB_configList2)->list, DRB_config);
+      asn1cSeqAdd(&(*DRB_configList2)->list, DRB_config);
     }
   }
 
@@ -3194,7 +3194,7 @@ static void rrc_DU_process_ue_context_setup_request(MessageDef *msg_p, const cha
     for (int i=0; i<req->srbs_to_be_setup_length; i++){
       SRB2_config = CALLOC(1, sizeof(*SRB2_config));
       SRB2_config->srb_Identity = req->srbs_to_be_setup[i].srb_id;
-      ASN_SEQUENCE_ADD(&SRB_configList->list, SRB2_config);
+      asn1cSeqAdd(&SRB_configList->list, SRB2_config);
     }
   }
 
@@ -3214,7 +3214,7 @@ static void rrc_DU_process_ue_context_setup_request(MessageDef *msg_p, const cha
       DRB_config = CALLOC(1, sizeof(*DRB_config));
       DRB_config->drb_Identity = req->drbs_to_be_setup[i].drb_id;
       if (drb_id_to_setup_start == 0) drb_id_to_setup_start = DRB_config->drb_Identity;
-      ASN_SEQUENCE_ADD(&DRB_configList->list, DRB_config);
+      asn1cSeqAdd(&DRB_configList->list, DRB_config);
       f1ap_drb_to_be_setup_t drb_p = req->drbs_to_be_setup[i];
       transport_layer_addr_t addr;
       memcpy(addr.buffer, &drb_p.up_ul_tnl[0].tl_address, sizeof(drb_p.up_ul_tnl[0].tl_address));
@@ -3335,7 +3335,7 @@ static void rrc_DU_process_ue_context_modification_request(MessageDef *msg_p, co
     for (int i=0; i<req->srbs_to_be_setup_length; i++){
       SRB2_config = CALLOC(1, sizeof(*SRB2_config));
       SRB2_config->srb_Identity = req->srbs_to_be_setup[i].srb_id;
-      ASN_SEQUENCE_ADD(&SRB_configList->list, SRB2_config);
+      asn1cSeqAdd(&SRB_configList->list, SRB2_config);
     }
   }
 
@@ -3353,7 +3353,7 @@ static void rrc_DU_process_ue_context_modification_request(MessageDef *msg_p, co
       DRB_config = CALLOC(1, sizeof(*DRB_config));
       DRB_config->drb_Identity = req->drbs_to_be_setup[i].drb_id;
       if (drb_id_to_setup_start == 0) drb_id_to_setup_start = DRB_config->drb_Identity;
-      ASN_SEQUENCE_ADD(&DRB_configList->list, DRB_config);
+      asn1cSeqAdd(&DRB_configList->list, DRB_config);
       f1ap_drb_to_be_setup_t drb_p = req->drbs_to_be_setup[i];
       transport_layer_addr_t addr;
       memcpy(addr.buffer, &drb_p.up_ul_tnl[0].tl_address, sizeof(drb_p.up_ul_tnl[0].tl_address));
@@ -3486,7 +3486,7 @@ static void rrc_CU_process_ue_context_setup_response(MessageDef *msg_p, const ch
     if(ue_context_p->ue_context.masterCellGroup->rlc_BearerToAddModList != NULL){
       int ue_ctxt_rlc_Bearers = ue_context_p->ue_context.masterCellGroup->rlc_BearerToAddModList->list.count;
       for(int i=ue_ctxt_rlc_Bearers; i<ue_ctxt_rlc_Bearers + cellGroupConfig->rlc_BearerToAddModList->list.count; i++){
-        ASN_SEQUENCE_ADD(&ue_context_p->ue_context.masterCellGroup->rlc_BearerToAddModList->list,
+        asn1cSeqAdd(&ue_context_p->ue_context.masterCellGroup->rlc_BearerToAddModList->list,
           cellGroupConfig->rlc_BearerToAddModList->list.array[i-ue_ctxt_rlc_Bearers]);
       }
     }
@@ -3543,7 +3543,7 @@ static void rrc_CU_process_ue_context_modification_response(MessageDef *msg_p, c
       if(ue_context_p->ue_context.masterCellGroup->rlc_BearerToAddModList != NULL){
         int ue_ctxt_rlc_Bearers = ue_context_p->ue_context.masterCellGroup->rlc_BearerToAddModList->list.count;
         for(int i=ue_ctxt_rlc_Bearers; i<ue_ctxt_rlc_Bearers + cellGroupConfig->rlc_BearerToAddModList->list.count; i++){
-          ASN_SEQUENCE_ADD(&ue_context_p->ue_context.masterCellGroup->rlc_BearerToAddModList->list,
+          asn1cSeqAdd(&ue_context_p->ue_context.masterCellGroup->rlc_BearerToAddModList->list,
               cellGroupConfig->rlc_BearerToAddModList->list.array[i-ue_ctxt_rlc_Bearers]);
         }
       }
diff --git a/openair2/RRC/NR/rrc_gNB_GTPV1U.c b/openair2/RRC/NR/rrc_gNB_GTPV1U.c
index 3556074b97ee883a5833f770fc2bc2bbc9aa4538..ec220172d0c6cdc577a7aba3d7eb2a4ebb22b4bd 100644
--- a/openair2/RRC/NR/rrc_gNB_GTPV1U.c
+++ b/openair2/RRC/NR/rrc_gNB_GTPV1U.c
@@ -35,7 +35,7 @@
 # include "openair2/RRC/NR/rrc_gNB_UE_context.h"
 
 //# if defined(ENABLE_ITTI)
-#   include "asn1_conversions.h"
+#   include "oai_asn1.h"
 #   include "intertask_interface.h"
 //#endif
 
diff --git a/openair2/RRC/NR/rrc_gNB_NGAP.c b/openair2/RRC/NR/rrc_gNB_NGAP.c
index 8e9d3f7939e2344be019f4beb13d625b4b66f9bb..3eccf0ef37e460027492eb1513c48aaa063bb652 100644
--- a/openair2/RRC/NR/rrc_gNB_NGAP.c
+++ b/openair2/RRC/NR/rrc_gNB_NGAP.c
@@ -34,7 +34,7 @@
 #include "gnb_config.h"
 #include "common/ran_context.h"
 
-#include "asn1_conversions.h"
+#include "oai_asn1.h"
 #include "intertask_interface.h"
 #include "pdcp.h"
 #include "pdcp_primitives.h"
diff --git a/openair2/RRC/NR/rrc_gNB_radio_bearers.c b/openair2/RRC/NR/rrc_gNB_radio_bearers.c
index 6c8f2ecddaa4ca59d767d2819fdbf6f33441ea6c..9c3b6aada0dc5ba5693d0c008ac80408969390fb 100644
--- a/openair2/RRC/NR/rrc_gNB_radio_bearers.c
+++ b/openair2/RRC/NR/rrc_gNB_radio_bearers.c
@@ -20,6 +20,7 @@
  */
 
 #include "rrc_gNB_radio_bearers.h"
+#include "oai_asn1.h"
 
 NR_SRB_ToAddMod_t *generateSRB2() {
   NR_SRB_ToAddMod_t *SRB2_config = NULL;
@@ -40,8 +41,8 @@ NR_SRB_ToAddModList_t **generateSRB2_confList(gNB_RRC_UE_t *ue,
     *SRB_configList2 = CALLOC(1, sizeof(**SRB_configList2));
     memset(*SRB_configList2, 0, sizeof(**SRB_configList2));
     NR_SRB_ToAddMod_t *SRB2_config = generateSRB2();
-    ASN_SEQUENCE_ADD(&(*SRB_configList2)->list, SRB2_config);
-    ASN_SEQUENCE_ADD(&SRB_configList->list, SRB2_config);
+    asn1cSeqAdd(&(*SRB_configList2)->list, SRB2_config);
+    asn1cSeqAdd(&SRB_configList->list, SRB2_config);
   }
 
   return SRB_configList2;
@@ -83,7 +84,7 @@ NR_DRB_ToAddMod_t *generateDRB(gNB_RRC_UE_t *ue,
   {
     NR_QFI_t *qfi = calloc(1, sizeof(NR_QFI_t));
     *qfi = pduSession->param.qos[qos_flow_index].qfi;
-    ASN_SEQUENCE_ADD(&SDAP_config->mappedQoS_FlowsToAdd->list, qfi);
+    asn1cSeqAdd(&SDAP_config->mappedQoS_FlowsToAdd->list, qfi);
 
     if(pduSession->param.qos[qos_flow_index].fiveQI > 5)
       ue->pduSession[pduSession->param.pdusession_id].param.used_drbs[drb_id-1] = DRB_ACTIVE_NONGBR;
@@ -156,4 +157,4 @@ bool drb_is_active(gNB_RRC_UE_t *ue, uint8_t drb_id) {
   if(ue->DRB_active[drb_id-1] == DRB_ACTIVE)
     return true;
   return false;
-}
\ No newline at end of file
+}
diff --git a/openair2/RRC/NR/rrc_gNB_radio_bearers.h b/openair2/RRC/NR/rrc_gNB_radio_bearers.h
index 729b5b781930260a1c38fa799fd00d37fe81a71d..a686fed76711e23600214a1f2c22b28496ff4ccc 100644
--- a/openair2/RRC/NR/rrc_gNB_radio_bearers.h
+++ b/openair2/RRC/NR/rrc_gNB_radio_bearers.h
@@ -49,4 +49,4 @@ NR_DRB_ToAddMod_t *generateDRB(gNB_RRC_UE_t *rrc_ue,
 uint8_t next_available_drb(gNB_RRC_UE_t *ue, uint8_t pdusession_id, bool is_gbr);
 bool drb_is_active(gNB_RRC_UE_t *ue, uint8_t drb_id);
 
-#endif
\ No newline at end of file
+#endif
diff --git a/openair2/RRC/NR/rrc_gNB_reconfig.c b/openair2/RRC/NR/rrc_gNB_reconfig.c
index 159144b406e34c38b93b25b35fd66fe957fbb2ec..09330ff54e04203eb1f63c9c29ce1f103c6d6214 100644
--- a/openair2/RRC/NR/rrc_gNB_reconfig.c
+++ b/openair2/RRC/NR/rrc_gNB_reconfig.c
@@ -41,6 +41,7 @@
 #include "NR_RLC-BearerConfig.h"
 #include "BOOLEAN.h"
 #include "assertions.h"
+#include "oai_asn1.h"
 #include "common/utils/nr/nr_common.h"
 #include "SIMULATION/TOOLS/sim.h"
 #include "executables/softmodem-common.h"
@@ -116,7 +117,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
   nr_rlc_bearer_init_ul_spec(RLC_BearerConfig->mac_LogicalChannelConfig);
 
   secondaryCellGroup->rlc_BearerToAddModList = calloc(1,sizeof(*secondaryCellGroup->rlc_BearerToAddModList));
-  ASN_SEQUENCE_ADD(&secondaryCellGroup->rlc_BearerToAddModList->list, RLC_BearerConfig);
+  asn1cSeqAdd(&secondaryCellGroup->rlc_BearerToAddModList->list, RLC_BearerConfig);
 
   NR_MAC_CellGroupConfig_t *mac_CellGroupConfig = secondaryCellGroup->mac_CellGroupConfig;
 
@@ -132,7 +133,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
   struct NR_TAG *tag=calloc(1,sizeof(*tag));
   tag->tag_Id             = 0;
   tag->timeAlignmentTimer = NR_TimeAlignmentTimer_infinity;
-  ASN_SEQUENCE_ADD(&mac_CellGroupConfig->tag_Config->tag_ToAddModList->list,tag);
+  asn1cSeqAdd(&mac_CellGroupConfig->tag_Config->tag_ToAddModList->list,tag);
   set_phr_config(mac_CellGroupConfig);
   mac_CellGroupConfig->skipUplinkTxDynamic=false;
   mac_CellGroupConfig->ext1 = NULL;
@@ -180,7 +181,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
         ssbElem[n_ssb] = calloc(1,sizeof(struct NR_CFRA_SSB_Resource));
         ssbElem[n_ssb]->ssb = i;
         ssbElem[n_ssb]->ra_PreambleIndex = 63 - (uid % 64);
-        ASN_SEQUENCE_ADD(&secondaryCellGroup->spCellConfig->reconfigurationWithSync->rach_ConfigDedicated->choice.uplink->cfra->resources.choice.ssb->ssb_ResourceList.list,ssbElem[n_ssb]);
+        asn1cSeqAdd(&secondaryCellGroup->spCellConfig->reconfigurationWithSync->rach_ConfigDedicated->choice.uplink->cfra->resources.choice.ssb->ssb_ResourceList.list,ssbElem[n_ssb]);
         n_ssb++;
       }
     }
@@ -263,7 +264,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
                          dl_antenna_ports,
                          configuration->force_256qam_off,
                          bwp_loop, false);
-      ASN_SEQUENCE_ADD(&secondaryCellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list,bwp);
+      asn1cSeqAdd(&secondaryCellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list,bwp);
     }
     secondaryCellGroup->spCellConfig->spCellConfigDedicated->firstActiveDownlinkBWP_Id = calloc(1,sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->firstActiveDownlinkBWP_Id));
     *secondaryCellGroup->spCellConfig->spCellConfigDedicated->firstActiveDownlinkBWP_Id = servingcellconfigdedicated->firstActiveDownlinkBWP_Id ? *servingcellconfigdedicated->firstActiveDownlinkBWP_Id : 1;
@@ -285,7 +286,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
                        servingcellconfigdedicated,
                        servingcellconfigcommon,
                        uecap);
-      ASN_SEQUENCE_ADD(&secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->uplinkBWP_ToAddModList->list,ubwp);
+      asn1cSeqAdd(&secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->uplinkBWP_ToAddModList->list,ubwp);
     }
     secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->firstActiveUplinkBWP_Id = calloc(1,sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->firstActiveUplinkBWP_Id));
     *secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->firstActiveUplinkBWP_Id = servingcellconfigdedicated->uplinkConfig->firstActiveUplinkBWP_Id ? *servingcellconfigdedicated->uplinkConfig->firstActiveUplinkBWP_Id : 1;
@@ -301,7 +302,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
   schedulingrequestlist->schedulingRequestId  = 0;
   schedulingrequestlist->sr_ProhibitTimer = NULL;
   schedulingrequestlist->sr_TransMax      = NR_SchedulingRequestToAddMod__sr_TransMax_n64;
-  ASN_SEQUENCE_ADD(&(mac_CellGroupConfig->schedulingRequestConfig->schedulingRequestToAddModList->list),schedulingrequestlist);
+  asn1cSeqAdd(&(mac_CellGroupConfig->schedulingRequestConfig->schedulingRequestToAddModList->list),schedulingrequestlist);
 
  secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->pusch_ServingCellConfig = calloc(1,sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->pusch_ServingCellConfig));
  NR_PUSCH_ServingCellConfig_t *pusch_scc = calloc(1,sizeof(*pusch_scc));
@@ -356,10 +357,10 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
     if ((bitmap >> (63 - i)) & 0x01) {
       NR_SSB_Index_t *ssbres = NULL;
       asn1cCallocOne(ssbres, i);
-      ASN_SEQUENCE_ADD(&ssbresset0->csi_SSB_ResourceList.list, ssbres);
+      asn1cSeqAdd(&ssbresset0->csi_SSB_ResourceList.list, ssbres);
     }
   }
- ASN_SEQUENCE_ADD(&csi_MeasConfig->csi_SSB_ResourceSetToAddModList->list,ssbresset0);
+ asn1cSeqAdd(&csi_MeasConfig->csi_SSB_ResourceSetToAddModList->list,ssbresset0);
 
  for (int bwp_loop = 0; bwp_loop < n_dl_bwp; bwp_loop++) {
 
@@ -377,10 +378,10 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
      csires->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->nzp_CSI_RS_ResourceSetList = calloc(1,sizeof(*csires->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->nzp_CSI_RS_ResourceSetList));
      NR_NZP_CSI_RS_ResourceSetId_t *nzp0 = calloc(1,sizeof(*nzp0));
      *nzp0 = bwp_loop;
-     ASN_SEQUENCE_ADD(&csires->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->nzp_CSI_RS_ResourceSetList->list,nzp0);
+     asn1cSeqAdd(&csires->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->nzp_CSI_RS_ResourceSetList->list,nzp0);
      csires->bwp_Id = bwp->bwp_Id;
      csires->resourceType = NR_CSI_ResourceConfig__resourceType_periodic;
-     ASN_SEQUENCE_ADD(&csi_MeasConfig->csi_ResourceConfigToAddModList->list,csires);
+     asn1cSeqAdd(&csi_MeasConfig->csi_ResourceConfigToAddModList->list,csires);
    }
    if (do_csirs && dl_antenna_ports > 1) {
      NR_CSI_ResourceConfig_t *csiresim = calloc(1,sizeof(*csiresim));
@@ -389,10 +390,10 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
      csiresim->csi_RS_ResourceSetList.choice.csi_IM_ResourceSetList = calloc(1,sizeof(*csiresim->csi_RS_ResourceSetList.choice.csi_IM_ResourceSetList));
      NR_CSI_IM_ResourceSetId_t *csiim00 = calloc(1,sizeof(*csiim00));
      *csiim00 = bwp_loop;
-     ASN_SEQUENCE_ADD(&csiresim->csi_RS_ResourceSetList.choice.csi_IM_ResourceSetList->list,csiim00);
+     asn1cSeqAdd(&csiresim->csi_RS_ResourceSetList.choice.csi_IM_ResourceSetList->list,csiim00);
      csiresim->bwp_Id = bwp->bwp_Id;
      csiresim->resourceType = NR_CSI_ResourceConfig__resourceType_periodic;
-     ASN_SEQUENCE_ADD(&csi_MeasConfig->csi_ResourceConfigToAddModList->list,csiresim);
+     asn1cSeqAdd(&csi_MeasConfig->csi_ResourceConfigToAddModList->list,csiresim);
    }
    NR_CSI_ResourceConfig_t *ssbres = calloc(1,sizeof(*ssbres));
    ssbres->csi_ResourceConfigId = bwp->bwp_Id+20;
@@ -401,10 +402,10 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
    ssbres->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->csi_SSB_ResourceSetList = calloc(1,sizeof(*ssbres->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->csi_SSB_ResourceSetList));
    NR_CSI_SSB_ResourceSetId_t *ssbres00 = calloc(1,sizeof(*ssbres00));
    *ssbres00 = 0;
-   ASN_SEQUENCE_ADD(&ssbres->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->csi_SSB_ResourceSetList->list,ssbres00);
+   asn1cSeqAdd(&ssbres->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->csi_SSB_ResourceSetList->list,ssbres00);
    ssbres->bwp_Id = bwp->bwp_Id;
    ssbres->resourceType = NR_CSI_ResourceConfig__resourceType_periodic;
-   ASN_SEQUENCE_ADD(&csi_MeasConfig->csi_ResourceConfigToAddModList->list,ssbres);
+   asn1cSeqAdd(&csi_MeasConfig->csi_ResourceConfigToAddModList->list,ssbres);
 
    NR_PUCCH_CSI_Resource_t *pucchcsires1 = calloc(1,sizeof(*pucchcsires1));
    pucchcsires1->uplinkBandwidthPartId = bwp->bwp_Id;
@@ -501,7 +502,7 @@ void fill_default_rbconfig(NR_RadioBearerConfig_t *rbconfig,
   *drb_ToAddMod->pdcp_Config->t_Reordering = NR_PDCP_Config__t_Reordering_ms0;
   drb_ToAddMod->pdcp_Config->ext1 = NULL;
 
-  ASN_SEQUENCE_ADD(&rbconfig->drb_ToAddModList->list,drb_ToAddMod);
+  asn1cSeqAdd(&rbconfig->drb_ToAddModList->list,drb_ToAddMod);
 
   rbconfig->drb_ToReleaseList = NULL;
 
@@ -529,10 +530,10 @@ void rrc_config_dl_ptrs_params(NR_BWP_Downlink_t *bwp, int *ptrsNrb, int *ptrsMc
     bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->phaseTrackingRS->choice.setup->resourceElementOffset = calloc(1,sizeof(long));
     /* Fill the given values */
     for(i = 0; i < 2; i++) {
-      ASN_SEQUENCE_ADD(&bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->phaseTrackingRS->choice.setup->frequencyDensity->list,&ptrsNrb[i]);
+      asn1cSeqAdd(&bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->phaseTrackingRS->choice.setup->frequencyDensity->list,&ptrsNrb[i]);
     }
     for(i = 0; i < 3; i++) {
-      ASN_SEQUENCE_ADD(&bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->phaseTrackingRS->choice.setup->timeDensity->list,&ptrsMcs[i]);
+      asn1cSeqAdd(&bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->phaseTrackingRS->choice.setup->timeDensity->list,&ptrsMcs[i]);
     }
   }// if memory exist then over write the old values
   else {
diff --git a/openair2/RRC/NR_UE/rrc_UE.c b/openair2/RRC/NR_UE/rrc_UE.c
index 0441478ce6ccd39a184e9feb8352019ac8d9898a..a9c03885f7ac02e652d8536856cb49f46ce4e589 100644
--- a/openair2/RRC/NR_UE/rrc_UE.c
+++ b/openair2/RRC/NR_UE/rrc_UE.c
@@ -33,7 +33,7 @@
 #define RRC_UE
 #define RRC_UE_C
 
-#include "asn1_conversions.h"
+#include "oai_asn1.h"
 
 #include "NR_DL-DCCH-Message.h"        //asn_DEF_NR_DL_DCCH_Message
 #include "NR_DL-CCCH-Message.h"        //asn_DEF_NR_DL_CCCH_Message
@@ -2515,7 +2515,7 @@ nr_rrc_ue_process_ueCapabilityEnquiry(
     NR_BandNR_t *nr_bandnr;
     nr_bandnr  = CALLOC(1,sizeof(NR_BandNR_t));
     nr_bandnr->bandNR = 1;
-    ASN_SEQUENCE_ADD(&UE_Capability_nr->rf_Parameters.supportedBandListNR.list,
+    asn1cSeqAdd(&UE_Capability_nr->rf_Parameters.supportedBandListNR.list,
                      nr_bandnr);
   }
   OAI_NR_UECapability_t *UECap;
@@ -2559,7 +2559,7 @@ nr_rrc_ue_process_ueCapabilityEnquiry(
   for (i=0; i<UECapabilityEnquiry->criticalExtensions.choice.ueCapabilityEnquiry->ue_CapabilityRAT_RequestList.list.count; i++) {
     if (UECapabilityEnquiry->criticalExtensions.choice.ueCapabilityEnquiry->ue_CapabilityRAT_RequestList.list.array[i]->rat_Type
         == NR_RAT_Type_nr) {
-      ASN_SEQUENCE_ADD(
+      asn1cSeqAdd(
         &ul_dcch_msg.message.choice.c1->choice.ueCapabilityInformation->criticalExtensions.choice.ueCapabilityInformation->ue_CapabilityRAT_ContainerList->list,
         &ue_CapabilityRAT_Container);
       enc_rval = uper_encode_to_buffer(&asn_DEF_NR_UL_DCCH_Message, NULL, (void *) &ul_dcch_msg, buffer, 500);
@@ -2651,7 +2651,7 @@ static void nsa_rrc_ue_process_ueCapabilityEnquiry(void)
   NR_UE_NR_Capability_t *UE_Capability_nr = CALLOC(1, sizeof(NR_UE_NR_Capability_t));
   NR_BandNR_t *nr_bandnr = CALLOC(1, sizeof(NR_BandNR_t));
   nr_bandnr->bandNR = 78;
-  ASN_SEQUENCE_ADD(&UE_Capability_nr->rf_Parameters.supportedBandListNR.list, nr_bandnr);
+  asn1cSeqAdd(&UE_Capability_nr->rf_Parameters.supportedBandListNR.list, nr_bandnr);
   OAI_NR_UECapability_t *UECap = CALLOC(1, sizeof(OAI_NR_UECapability_t));
   UECap->UE_NR_Capability = UE_Capability_nr;
 
diff --git a/openair2/X2AP/x2ap_common.h b/openair2/X2AP/x2ap_common.h
index e7b86c77b9331bcb8221b9b59b6ee283b56ef1d2..e35fd30adfc547d42fbc77a9abcdc7b9f75fff8a 100644
--- a/openair2/X2AP/x2ap_common.h
+++ b/openair2/X2AP/x2ap_common.h
@@ -20,7 +20,7 @@
  */
 #ifndef X2AP_COMMON_H_
 #define X2AP_COMMON_H_
-
+#include "oai_asn1.h"
 #include "X2AP_ProtocolIE-Field.h"
 #include "X2AP_X2AP-PDU.h"
 #include "X2AP_InitiatingMessage.h"
diff --git a/openair2/X2AP/x2ap_eNB_generate_messages.c b/openair2/X2AP/x2ap_eNB_generate_messages.c
index be5ab82740566e3a73249df6fdafcb6607219318..09cf85c527d983a6ad30364fc1fac1918df6de5a 100644
--- a/openair2/X2AP/x2ap_eNB_generate_messages.c
+++ b/openair2/X2AP/x2ap_eNB_generate_messages.c
@@ -84,7 +84,7 @@ int x2ap_eNB_generate_x2_setup_request(
             ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf[0],
             ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf[1],
             ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf[2]);
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (X2AP_X2SetupRequest_IEs_t *)calloc(1, sizeof(X2AP_X2SetupRequest_IEs_t));
@@ -106,7 +106,7 @@ int x2ap_eNB_generate_x2_setup_request(
         plmn = (X2AP_PLMN_Identity_t *)calloc(1,sizeof(X2AP_PLMN_Identity_t));
         {
           MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length, plmn);
-          ASN_SEQUENCE_ADD(&servedCellMember->servedCellInfo.broadcastPLMNs.list, plmn);
+          asn1cSeqAdd(&servedCellMember->servedCellInfo.broadcastPLMNs.list, plmn);
         }
 
 	if (instance_p->frame_type[i] == FDD) {
@@ -232,10 +232,10 @@ int x2ap_eNB_generate_x2_setup_request(
           }
         }
       }
-      ASN_SEQUENCE_ADD(&ie->value.choice.ServedCells.list, servedCellMember);
+      asn1cSeqAdd(&ie->value.choice.ServedCells.list, servedCellMember);
     }
   }
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (X2AP_X2SetupRequest_IEs_t *)calloc(1, sizeof(X2AP_X2SetupRequest_IEs_t));
@@ -250,9 +250,9 @@ int x2ap_eNB_generate_x2_setup_request(
       //@TODO: consider to update this value
       INT16_TO_OCTET_STRING(0, &gu->mME_Group_ID);
     }
-    ASN_SEQUENCE_ADD(&ie->value.choice.GUGroupIDList.list, gu);
+    asn1cSeqAdd(&ie->value.choice.GUGroupIDList.list, gu);
   }
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   if (x2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
     X2AP_ERROR("Failed to encode X2 setup request\n");
@@ -302,7 +302,7 @@ int x2ap_eNB_generate_x2_setup_response(x2ap_eNB_instance_t *instance_p, x2ap_eN
             ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf[0],
             ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf[1],
             ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf[2]);
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (X2AP_X2SetupResponse_IEs_t *)calloc(1, sizeof(X2AP_X2SetupResponse_IEs_t));
@@ -328,7 +328,7 @@ int x2ap_eNB_generate_x2_setup_response(x2ap_eNB_instance_t *instance_p, x2ap_eN
         plmn = (X2AP_PLMN_Identity_t *)calloc(1,sizeof(X2AP_PLMN_Identity_t));
         {
           MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length, plmn);
-          ASN_SEQUENCE_ADD(&servedCellMember->servedCellInfo.broadcastPLMNs.list, plmn);
+          asn1cSeqAdd(&servedCellMember->servedCellInfo.broadcastPLMNs.list, plmn);
         }
 
 	if (instance_p->frame_type[i] == FDD) {
@@ -454,10 +454,10 @@ int x2ap_eNB_generate_x2_setup_response(x2ap_eNB_instance_t *instance_p, x2ap_eN
           }
         }
       }
-      ASN_SEQUENCE_ADD(&ie->value.choice.ServedCells.list, servedCellMember);
+      asn1cSeqAdd(&ie->value.choice.ServedCells.list, servedCellMember);
     }
   }
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (X2AP_X2SetupResponse_IEs_t *)calloc(1, sizeof(X2AP_X2SetupResponse_IEs_t));
@@ -472,9 +472,9 @@ int x2ap_eNB_generate_x2_setup_response(x2ap_eNB_instance_t *instance_p, x2ap_eN
       //@TODO: consider to update this value
       INT16_TO_OCTET_STRING(0, &gu->mME_Group_ID);
     }
-    ASN_SEQUENCE_ADD(&ie->value.choice.GUGroupIDList.list, gu);
+    asn1cSeqAdd(&ie->value.choice.GUGroupIDList.list, gu);
   }
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   if (x2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
     X2AP_ERROR("Failed to encode X2 setup response\n");
@@ -518,7 +518,7 @@ int x2ap_eNB_generate_x2_setup_failure(instance_t instance,
 
   x2ap_eNB_set_cause (&ie->value.choice.Cause, cause_type, cause_value);
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* optional: consider to handle this later */
   ie = (X2AP_X2SetupFailure_IEs_t *)calloc(1, sizeof(X2AP_X2SetupFailure_IEs_t));
@@ -530,7 +530,7 @@ int x2ap_eNB_generate_x2_setup_failure(instance_t instance,
     ie->value.choice.TimeToWait = time_to_wait;
   }
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   if (x2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
     X2AP_ERROR("Failed to encode X2 setup failure\n");
@@ -606,7 +606,7 @@ int x2ap_eNB_generate_x2_handover_request (x2ap_eNB_instance_t *instance_p, x2ap
   ie->criticality = X2AP_Criticality_reject;
   ie->value.present = X2AP_HandoverRequest_IEs__value_PR_UE_X2AP_ID;
   ie->value.choice.UE_X2AP_ID = x2ap_id_get_id_source(&instance_p->id_manager, ue_id);
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (X2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(X2AP_HandoverRequest_IEs_t));
@@ -615,7 +615,7 @@ int x2ap_eNB_generate_x2_handover_request (x2ap_eNB_instance_t *instance_p, x2ap
   ie->value.present = X2AP_HandoverRequest_IEs__value_PR_Cause;
   ie->value.choice.Cause.present = X2AP_Cause_PR_radioNetwork;
   ie->value.choice.Cause.choice.radioNetwork = X2AP_CauseRadioNetwork_handover_desirable_for_radio_reasons;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (X2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(X2AP_HandoverRequest_IEs_t));
@@ -625,7 +625,7 @@ int x2ap_eNB_generate_x2_handover_request (x2ap_eNB_instance_t *instance_p, x2ap
   MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length,
                        &ie->value.choice.ECGI.pLMN_Identity);
   MACRO_ENB_ID_TO_CELL_IDENTITY(x2ap_eNB_data_p->eNB_id, 0, &ie->value.choice.ECGI.eUTRANcellIdentifier);
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (X2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(X2AP_HandoverRequest_IEs_t));
@@ -637,7 +637,7 @@ int x2ap_eNB_generate_x2_handover_request (x2ap_eNB_instance_t *instance_p, x2ap
   //@TODO: consider to update these values
   INT16_TO_OCTET_STRING(x2ap_handover_req->ue_gummei.mme_group_id, &ie->value.choice.GUMMEI.gU_Group_ID.mME_Group_ID);
   MME_CODE_TO_OCTET_STRING(x2ap_handover_req->ue_gummei.mme_code, &ie->value.choice.GUMMEI.mME_Code);
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (X2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(X2AP_HandoverRequest_IEs_t));
@@ -689,13 +689,13 @@ int x2ap_eNB_generate_x2_handover_request (x2ap_eNB_instance_t *instance_p, x2ap
 
         INT32_TO_OCTET_STRING(x2ap_handover_req->e_rabs_tobesetup[i].gtp_teid,&e_RABs_ToBeSetup_Item->uL_GTPtunnelEndpoint.gTP_TEID);
       }
-      ASN_SEQUENCE_ADD(&ie->value.choice.UE_ContextInformation.e_RABs_ToBeSetup_List.list, e_RABS_ToBeSetup_ItemIEs);
+      asn1cSeqAdd(&ie->value.choice.UE_ContextInformation.e_RABs_ToBeSetup_List.list, e_RABS_ToBeSetup_ItemIEs);
     }
   }
 
   OCTET_STRING_fromBuf(&ie->value.choice.UE_ContextInformation.rRC_Context, (char*) x2ap_handover_req->rrc_buffer, x2ap_handover_req->rrc_buffer_size);
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (X2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(X2AP_HandoverRequest_IEs_t));
@@ -711,10 +711,10 @@ int x2ap_eNB_generate_x2_handover_request (x2ap_eNB_instance_t *instance_p, x2ap
    MACRO_ENB_ID_TO_CELL_IDENTITY(0, 0, &lastVisitedCell_Item->choice.e_UTRAN_Cell.global_Cell_ID.eUTRANcellIdentifier);
    lastVisitedCell_Item->choice.e_UTRAN_Cell.cellType.cell_Size = X2AP_Cell_Size_small;
    lastVisitedCell_Item->choice.e_UTRAN_Cell.time_UE_StayedInCell = 2;
-   ASN_SEQUENCE_ADD(&ie->value.choice.UE_HistoryInformation.list, lastVisitedCell_Item);
+   asn1cSeqAdd(&ie->value.choice.UE_HistoryInformation.list, lastVisitedCell_Item);
   }
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   if (x2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
     X2AP_ERROR("Failed to encode X2 handover request\n");
@@ -765,7 +765,7 @@ int x2ap_eNB_generate_x2_handover_request_ack (x2ap_eNB_instance_t *instance_p,
   ie->criticality = X2AP_Criticality_ignore;
   ie->value.present = X2AP_HandoverRequestAcknowledge_IEs__value_PR_UE_X2AP_ID;
   ie->value.choice.UE_X2AP_ID = id_source;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (X2AP_HandoverRequestAcknowledge_IEs_t *)calloc(1, sizeof(X2AP_HandoverRequestAcknowledge_IEs_t));
@@ -773,7 +773,7 @@ int x2ap_eNB_generate_x2_handover_request_ack (x2ap_eNB_instance_t *instance_p,
   ie->criticality = X2AP_Criticality_ignore;
   ie->value.present = X2AP_HandoverRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_1;
   ie->value.choice.UE_X2AP_ID_1 = id_target;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (X2AP_HandoverRequestAcknowledge_IEs_t *)calloc(1, sizeof(X2AP_HandoverRequestAcknowledge_IEs_t));
@@ -812,11 +812,11 @@ int x2ap_eNB_generate_x2_handover_request_ack (x2ap_eNB_instance_t *instance_p,
 		  
           INT32_TO_OCTET_STRING(x2ap_handover_req_ack->e_rabs_tobesetup[i].gtp_teid, &e_RABs_Admitted_Item->dL_GTP_TunnelEndpoint->gTP_TEID);
         }
-        ASN_SEQUENCE_ADD(&ie->value.choice.E_RABs_Admitted_List.list, e_RABS_Admitted_ItemIEs);
+        asn1cSeqAdd(&ie->value.choice.E_RABs_Admitted_List.list, e_RABS_Admitted_ItemIEs);
       }
   }
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (X2AP_HandoverRequestAcknowledge_IEs_t *)calloc(1, sizeof(X2AP_HandoverRequestAcknowledge_IEs_t));
@@ -826,7 +826,7 @@ int x2ap_eNB_generate_x2_handover_request_ack (x2ap_eNB_instance_t *instance_p,
 
   OCTET_STRING_fromBuf(&ie->value.choice.TargeteNBtoSource_eNBTransparentContainer, (char*) x2ap_handover_req_ack->rrc_buffer, x2ap_handover_req_ack->rrc_buffer_size);
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   if (x2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
     X2AP_ERROR("Failed to encode X2 handover response\n");
@@ -878,7 +878,7 @@ int x2ap_eNB_generate_x2_ue_context_release (x2ap_eNB_instance_t *instance_p, x2
   ie->criticality = X2AP_Criticality_reject;
   ie->value.present = X2AP_UEContextRelease_IEs__value_PR_UE_X2AP_ID;
   ie->value.choice.UE_X2AP_ID = id_source;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (X2AP_UEContextRelease_IEs_t *)calloc(1, sizeof(X2AP_UEContextRelease_IEs_t));
@@ -886,7 +886,7 @@ int x2ap_eNB_generate_x2_ue_context_release (x2ap_eNB_instance_t *instance_p, x2
   ie->criticality = X2AP_Criticality_reject;
   ie->value.present = X2AP_UEContextRelease_IEs__value_PR_UE_X2AP_ID_1;
   ie->value.choice.UE_X2AP_ID_1 = id_target;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   if (x2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
     X2AP_ERROR("Failed to encode X2 UE Context Release\n");
@@ -935,7 +935,7 @@ int x2ap_eNB_generate_x2_handover_cancel (x2ap_eNB_instance_t *instance_p, x2ap_
   ie->criticality = X2AP_Criticality_reject;
   ie->value.present = X2AP_HandoverCancel_IEs__value_PR_UE_X2AP_ID;
   ie->value.choice.UE_X2AP_ID = id_source;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* optional */
   if (id_target != -1) {
@@ -944,7 +944,7 @@ int x2ap_eNB_generate_x2_handover_cancel (x2ap_eNB_instance_t *instance_p, x2ap_
     ie->criticality = X2AP_Criticality_ignore;
     ie->value.present = X2AP_HandoverCancel_IEs__value_PR_UE_X2AP_ID_1;
     ie->value.choice.UE_X2AP_ID_1 = id_target;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
 
   /* mandatory */
@@ -968,7 +968,7 @@ int x2ap_eNB_generate_x2_handover_cancel (x2ap_eNB_instance_t *instance_p, x2ap_
     X2AP_ERROR("unhandled cancel cause\n");
     exit(1);
   }
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   if (x2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
     X2AP_ERROR("Failed to encode X2 Handover Cancel\n");
@@ -1009,7 +1009,7 @@ int x2ap_eNB_generate_senb_addition_request (x2ap_eNB_instance_t *instance_p, x2
   ie->criticality = X2AP_Criticality_reject;
   ie->value.present = X2AP_ProtocolIE_ID_id_MeNB_UE_X2AP_ID;
   ie->value.choice.UE_X2AP_ID = 0;                                   /* TODO */
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* id-UE-SecurityCapabilities - conditional - criticality reject */
   /* TODO */
@@ -1030,7 +1030,7 @@ int x2ap_eNB_generate_senb_addition_request (x2ap_eNB_instance_t *instance_p, x2
     LOG_E(X2AP, "%s:%d:%s: fatal asn1 error\n", __FILE__, __LINE__, __FUNCTION__);
     exit(1);
   }
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* id-ServingPLMN - optional - criticality ignore */
   /* TODO */
@@ -1041,7 +1041,7 @@ int x2ap_eNB_generate_senb_addition_request (x2ap_eNB_instance_t *instance_p, x2
   ie->criticality = X2AP_Criticality_reject;
   ie->value.present = X2AP_ProtocolIE_ID_id_E_RABs_ToBeAdded_List;
   /* TODO: set value of ie->value.choice.E_RABs_ToBeAdded_List.list */
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* id-MeNBtoSeNBContainer - mandatory - criticality reject */
   ie = (X2AP_SeNBAdditionRequest_IEs_t *)calloc(1, sizeof(X2AP_SeNBAdditionRequest_IEs_t));
@@ -1049,7 +1049,7 @@ int x2ap_eNB_generate_senb_addition_request (x2ap_eNB_instance_t *instance_p, x2
   ie->criticality = X2AP_Criticality_reject;
   ie->value.present = X2AP_ProtocolIE_ID_id_MeNBtoSeNBContainer;
   /* TODO: set value of ie->value.choice.MeNBtoSeNBContainer */
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* id-CSGMembershipStatus - optional - criticality reject */
   /* TODO */
@@ -1115,7 +1115,7 @@ int x2ap_eNB_generate_senb_addition_request_ack (x2ap_eNB_instance_t *instance_p
   ie->criticality = X2AP_Criticality_reject;
   ie->value.present = X2AP_SeNBAdditionRequestAcknowledge_IEs__value_PR_UE_X2AP_ID;
   ie->value.choice.UE_X2AP_ID = 0;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (X2AP_SeNBAdditionRequestAcknowledge_IEs_t *)calloc(1, sizeof(X2AP_SeNBAdditionRequestAcknowledge_IEs_t));
@@ -1123,7 +1123,7 @@ int x2ap_eNB_generate_senb_addition_request_ack (x2ap_eNB_instance_t *instance_p
   ie->criticality = X2AP_Criticality_reject;
   ie->value.present = X2AP_SeNBAdditionRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_1;
   ie->value.choice.UE_X2AP_ID_1 = 0;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (X2AP_SeNBAdditionRequestAcknowledge_IEs_t *)calloc(1, sizeof(X2AP_SeNBAdditionRequestAcknowledge_IEs_t));
@@ -1153,7 +1153,7 @@ int x2ap_eNB_generate_senb_addition_request_ack (x2ap_eNB_instance_t *instance_p
     		        		e_RABs_Admitted_ToBeAdded_Item->choice.sCG_Bearer.s1_DL_GTPtunnelEndpoint.transportLayerAddress.size);
 
         }
-        ASN_SEQUENCE_ADD(&ie->value.choice.E_RABs_Admitted_ToBeAdded_List.list, e_RABS_Admitted_ToBeAdded_ItemIEs);
+        asn1cSeqAdd(&ie->value.choice.E_RABs_Admitted_ToBeAdded_List.list, e_RABS_Admitted_ToBeAdded_ItemIEs);
       }
 
       // Split bearers to be added
@@ -1177,12 +1177,12 @@ int x2ap_eNB_generate_senb_addition_request_ack (x2ap_eNB_instance_t *instance_p
     				  e_RABs_Admitted_ToBeAdded_Item->choice.split_Bearer.seNB_GTPtunnelEndpoint.transportLayerAddress.size);
 
     		  }
-    	  ASN_SEQUENCE_ADD(&ie->value.choice.E_RABs_Admitted_ToBeAdded_List.list, e_RABS_Admitted_ToBeAdded_ItemIEs);
+    	  asn1cSeqAdd(&ie->value.choice.E_RABs_Admitted_ToBeAdded_List.list, e_RABS_Admitted_ToBeAdded_ItemIEs);
       }
 
   }
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (X2AP_SeNBAdditionRequestAcknowledge_IEs_t *)calloc(1, sizeof(X2AP_SeNBAdditionRequestAcknowledge_IEs_t));
@@ -1192,7 +1192,7 @@ int x2ap_eNB_generate_senb_addition_request_ack (x2ap_eNB_instance_t *instance_p
 
   OCTET_STRING_fromBuf(&ie->value.choice.SeNBtoMeNBContainer, (char*) x2ap_addition_req_ack->rrc_buffer, x2ap_addition_req_ack->rrc_buffer_size);
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   if (x2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
     X2AP_ERROR("Failed to encode SeNB addition response\n");
@@ -1254,7 +1254,7 @@ X2AP_INFO("%d -> %02x%02x%02x\n", instance_p->eNB_id,
 MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length,
                       &ie_GNB_ENDC->value.choice.GlobalGNB_ID.pLMN_Identity);
 
-  ASN_SEQUENCE_ADD(&ie->value.choice.InitiatingNodeType_EndcX2Setup.choice.init_en_gNB.list, ie_GNB_ENDC);
+  asn1cSeqAdd(&ie->value.choice.InitiatingNodeType_EndcX2Setup.choice.init_en_gNB.list, ie_GNB_ENDC);
 
   ie_GNB_ENDC = (X2AP_En_gNB_ENDCX2SetupReqIEs_t *)calloc(1, sizeof(X2AP_En_gNB_ENDCX2SetupReqIEs_t));
   ie_GNB_ENDC->id = X2AP_ProtocolIE_ID_id_ServedNRcellsENDCX2ManagementList;
@@ -1284,7 +1284,7 @@ MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length
           plmn = (X2AP_PLMN_Identity_t *)calloc(1,sizeof(X2AP_PLMN_Identity_t));
           {
             MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length, plmn);
-            ASN_SEQUENCE_ADD(&servedCellMember->servedNRCellInfo.broadcastPLMNs.list, plmn);
+            asn1cSeqAdd(&servedCellMember->servedNRCellInfo.broadcastPLMNs.list, plmn);
           }
           if (instance_p->frame_type[i] == TDD) {
             X2AP_FreqBandNrItem_t *freq_band;
@@ -1296,7 +1296,7 @@ MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length
                exit(1);
             freq_band->freqBandIndicatorNr = instance_p->nr_band[i];
 
-            ASN_SEQUENCE_ADD(&servedCellMember->servedNRCellInfo.nrModeInfo.choice.tdd.nRFreqInfo.freqBandListNr, freq_band);
+            asn1cSeqAdd(&servedCellMember->servedNRCellInfo.nrModeInfo.choice.tdd.nRFreqInfo.freqBandListNr, freq_band);
             switch (instance_p->N_RB_DL[i]) {
             case 24:
               servedCellMember->servedNRCellInfo.nrModeInfo.choice.tdd.nR_TxBW.nRNRB = X2AP_NRNRB_nrb24;
@@ -1334,13 +1334,13 @@ MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length
           /*Don't know where to extract the value of measurementTimingConfiguration from. Set it to 0 for now */
           INT8_TO_OCTET_STRING(0, &servedCellMember->servedNRCellInfo.measurementTimingConfiguration);
         }
-        ASN_SEQUENCE_ADD(&ie_GNB_ENDC->value.choice.ServedNRcellsENDCX2ManagementList.list, servedCellMember);
+        asn1cSeqAdd(&ie_GNB_ENDC->value.choice.ServedNRcellsENDCX2ManagementList.list, servedCellMember);
     }
   }
-  ASN_SEQUENCE_ADD(&ie->value.choice.InitiatingNodeType_EndcX2Setup.choice.init_en_gNB.list, ie_GNB_ENDC);
+  asn1cSeqAdd(&ie->value.choice.InitiatingNodeType_EndcX2Setup.choice.init_en_gNB.list, ie_GNB_ENDC);
 
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   if (x2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
     X2AP_ERROR("Failed to encode ENDC X2 setup request\n");
@@ -1394,7 +1394,7 @@ int x2ap_eNB_generate_ENDC_x2_setup_response(
   MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length,
                       &ie_ENB_ENDC->value.choice.GlobalENB_ID.pLMN_Identity);
 
-  ASN_SEQUENCE_ADD(&ie->value.choice.RespondingNodeType_EndcX2Setup.choice.respond_eNB.list, ie_ENB_ENDC);
+  asn1cSeqAdd(&ie->value.choice.RespondingNodeType_EndcX2Setup.choice.respond_eNB.list, ie_ENB_ENDC);
 
   ie_ENB_ENDC = (X2AP_ENB_ENDCX2SetupReqAckIEs_t *)calloc(1, sizeof(X2AP_ENB_ENDCX2SetupReqAckIEs_t));
   ie_ENB_ENDC->id = X2AP_ProtocolIE_ID_id_ServedEUTRAcellsENDCX2ManagementList;
@@ -1416,7 +1416,7 @@ int x2ap_eNB_generate_ENDC_x2_setup_response(
           plmn = (X2AP_PLMN_Identity_t *)calloc(1,sizeof(X2AP_PLMN_Identity_t));
           {
             MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length, plmn);
-            ASN_SEQUENCE_ADD(&servedCellMember->servedEUTRACellInfo.broadcastPLMNs.list, plmn);
+            asn1cSeqAdd(&servedCellMember->servedEUTRACellInfo.broadcastPLMNs.list, plmn);
           }
 
           if (instance_p->frame_type[i] == FDD) {
@@ -1543,13 +1543,13 @@ int x2ap_eNB_generate_ENDC_x2_setup_response(
             }
           }
         }
-      ASN_SEQUENCE_ADD(&ie_ENB_ENDC->value.choice.ServedEUTRAcellsENDCX2ManagementList.list, servedCellMember);
+      asn1cSeqAdd(&ie_ENB_ENDC->value.choice.ServedEUTRAcellsENDCX2ManagementList.list, servedCellMember);
       }
   }
-  ASN_SEQUENCE_ADD(&ie->value.choice.RespondingNodeType_EndcX2Setup.choice.respond_eNB.list, ie_ENB_ENDC);
+  asn1cSeqAdd(&ie->value.choice.RespondingNodeType_EndcX2Setup.choice.respond_eNB.list, ie_ENB_ENDC);
 
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   if (x2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
     X2AP_ERROR("Failed to encode ENDC X2 setup response\n");
@@ -1614,7 +1614,7 @@ int x2ap_eNB_generate_ENDC_x2_SgNB_addition_request(
 	ie->criticality= X2AP_Criticality_reject;
 	ie->value.present = X2AP_SgNBAdditionRequest_IEs__value_PR_UE_X2AP_ID;
 	ie->value.choice.UE_X2AP_ID = x2ap_id_get_id_source(&instance_p->id_manager, ue_id);
-	ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+	asn1cSeqAdd(&out->protocolIEs.list, ie);
 
 	ie = (X2AP_SgNBAdditionRequest_IEs_t *)calloc(1, sizeof(X2AP_SgNBAdditionRequest_IEs_t));
 	ie->id = X2AP_ProtocolIE_ID_id_NRUESecurityCapabilities;
@@ -1622,14 +1622,14 @@ int x2ap_eNB_generate_ENDC_x2_SgNB_addition_request(
 	ie->value.present = X2AP_SgNBAdditionRequest_IEs__value_PR_NRUESecurityCapabilities;
 	INT16_TO_BIT_STRING(nRencryptionAlgorithms, &ie->value.choice.NRUESecurityCapabilities.nRencryptionAlgorithms);
 	INT16_TO_BIT_STRING(nRintegrityProtectionAlgorithms, &ie->value.choice.NRUESecurityCapabilities.nRintegrityProtectionAlgorithms);
-	ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+	asn1cSeqAdd(&out->protocolIEs.list, ie);
 
 	ie = (X2AP_SgNBAdditionRequest_IEs_t *)calloc(1, sizeof(X2AP_SgNBAdditionRequest_IEs_t));
 	ie->id = X2AP_ProtocolIE_ID_id_SgNBSecurityKey;
 	ie->criticality = X2AP_Criticality_reject;
 	ie->value.present = X2AP_SgNBAdditionRequest_IEs__value_PR_SgNBSecurityKey;
 	KENB_STAR_TO_BIT_STRING(SgNBSecurityKey, &ie->value.choice.SgNBSecurityKey);
-	ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+	asn1cSeqAdd(&out->protocolIEs.list, ie);
 
 	ie = (X2AP_SgNBAdditionRequest_IEs_t *)calloc(1, sizeof(X2AP_SgNBAdditionRequest_IEs_t));
 	ie->id = X2AP_ProtocolIE_ID_id_SgNBUEAggregateMaximumBitRate;
@@ -1643,7 +1643,7 @@ int x2ap_eNB_generate_ENDC_x2_SgNB_addition_request(
 	INT32_TO_BUFFER(uEaggregateMaximumBitRateUplink, ie->value.choice.UEAggregateMaximumBitRate.uEaggregateMaximumBitRateUplink.buf);
 	ie->value.choice.UEAggregateMaximumBitRate.uEaggregateMaximumBitRateUplink.size = 4;
 
-	ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+	asn1cSeqAdd(&out->protocolIEs.list, ie);
 
 	ie = (X2AP_SgNBAdditionRequest_IEs_t *)calloc(1, sizeof(X2AP_SgNBAdditionRequest_IEs_t));
 	//Not sure if id should be X2AP_ProtocolIE_ID_id_E_RABs_ToBeAdded_List or X2AP_ProtocolIE_ID_id_E_RABs_ToBeAdded_SgNBAddReqList
@@ -1688,9 +1688,9 @@ int x2ap_eNB_generate_ENDC_x2_SgNB_addition_request(
     	}
 
       }
-      ASN_SEQUENCE_ADD(&ie->value.choice.E_RABs_ToBeAdded_SgNBAddReqList.list, e_RABS_ToBeAdded_SgNBAddReq_ItemIEs);
+      asn1cSeqAdd(&ie->value.choice.E_RABs_ToBeAdded_SgNBAddReqList.list, e_RABS_ToBeAdded_SgNBAddReq_ItemIEs);
     }
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
 
     ie = (X2AP_SgNBAdditionRequest_IEs_t *)calloc(1, sizeof(X2AP_SgNBAdditionRequest_IEs_t));
     ie->id = X2AP_ProtocolIE_ID_id_MeNBtoSgNBContainer;
@@ -1704,7 +1704,7 @@ int x2ap_eNB_generate_ENDC_x2_SgNB_addition_request(
     memcpy(ie->value.choice.MeNBtoSgNBContainer.buf, x2ap_ENDC_sgnb_addition_req->rrc_buffer,
 		x2ap_ENDC_sgnb_addition_req->rrc_buffer_size);
     ie->value.choice.MeNBtoSgNBContainer.size = x2ap_ENDC_sgnb_addition_req->rrc_buffer_size;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
 
     if (x2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
         X2AP_ERROR("Failed to encode ENDC X2 SgNB_addition request message\n");
@@ -1759,7 +1759,7 @@ int x2ap_gNB_generate_ENDC_x2_SgNB_addition_request_ACK( x2ap_eNB_instance_t *in
 		ie->criticality= X2AP_Criticality_reject;
 		ie->value.present = X2AP_SgNBAdditionRequestAcknowledge_IEs__value_PR_UE_X2AP_ID;
 		ie->value.choice.UE_X2AP_ID = x2ap_id_get_id_source(&instance_p->id_manager, ue_id);
-		ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+		asn1cSeqAdd(&out->protocolIEs.list, ie);
 
 		// SgNB_UE_X2AP_id
 		ie = (X2AP_SgNBAdditionRequestAcknowledge_IEs_t *)calloc(1, sizeof(X2AP_SgNBAdditionRequestAcknowledge_IEs_t));
@@ -1767,7 +1767,7 @@ int x2ap_gNB_generate_ENDC_x2_SgNB_addition_request_ACK( x2ap_eNB_instance_t *in
 		ie->criticality= X2AP_Criticality_reject;
 		ie->value.present = X2AP_SgNBAdditionRequestAcknowledge_IEs__value_PR_SgNB_UE_X2AP_ID;
 		ie->value.choice.UE_X2AP_ID = x2ap_id_get_id_target(&instance_p->id_manager, ue_id);
-		ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+		asn1cSeqAdd(&out->protocolIEs.list, ie);
 
 		ie = (X2AP_SgNBAdditionRequestAcknowledge_IEs_t *)calloc(1, sizeof(X2AP_SgNBAdditionRequestAcknowledge_IEs_t));
 		ie->id = X2AP_ProtocolIE_ID_id_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList;
@@ -1800,9 +1800,9 @@ int x2ap_gNB_generate_ENDC_x2_SgNB_addition_request_ACK( x2ap_eNB_instance_t *in
 	    	}
 
 	      }
-	      ASN_SEQUENCE_ADD(&ie->value.choice.E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList.list, e_RABS_AdmittedToBeAdded_SgNBAddReq_ItemIEs);
+	      asn1cSeqAdd(&ie->value.choice.E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList.list, e_RABS_AdmittedToBeAdded_SgNBAddReq_ItemIEs);
 	    }
-	    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+	    asn1cSeqAdd(&out->protocolIEs.list, ie);
 
 	    ie = (X2AP_SgNBAdditionRequestAcknowledge_IEs_t *)calloc(1, sizeof(X2AP_SgNBAdditionRequestAcknowledge_IEs_t));
 	    ie->id = X2AP_ProtocolIE_ID_id_SgNBtoMeNBContainer;
@@ -1811,7 +1811,7 @@ int x2ap_gNB_generate_ENDC_x2_SgNB_addition_request_ACK( x2ap_eNB_instance_t *in
 	    ie->value.choice.SgNBtoMeNBContainer.buf = (uint8_t *)calloc(x2ap_sgnb_addition_req_ACK->rrc_buffer_size, sizeof(uint8_t));
 	    memcpy(ie->value.choice.SgNBtoMeNBContainer.buf, x2ap_sgnb_addition_req_ACK->rrc_buffer, x2ap_sgnb_addition_req_ACK->rrc_buffer_size);
 	    ie->value.choice.SgNBtoMeNBContainer.size = x2ap_sgnb_addition_req_ACK->rrc_buffer_size; //4096;
-	    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+	    asn1cSeqAdd(&out->protocolIEs.list, ie);
 
 	    if (x2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
 	        X2AP_ERROR("Failed to encode ENDC X2 SgNB_addition request message\n");
@@ -1855,14 +1855,14 @@ int x2ap_eNB_generate_ENDC_x2_SgNB_reconfiguration_complete(
 	ie->criticality= X2AP_Criticality_reject;
 	ie->value.present = X2AP_SgNBReconfigurationComplete_IEs__value_PR_UE_X2AP_ID;
 	ie->value.choice.UE_X2AP_ID = x2ap_id_get_id_source(&instance_p->id_manager, ue_id);
-	ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+	asn1cSeqAdd(&out->protocolIEs.list, ie);
 
 	ie = (X2AP_SgNBReconfigurationComplete_IEs_t *)calloc(1, sizeof(X2AP_SgNBReconfigurationComplete_IEs_t));
 	ie->id = X2AP_ProtocolIE_ID_id_SgNB_UE_X2AP_ID;
 	ie->criticality = X2AP_Criticality_reject;
 	ie->value.present = X2AP_SgNBReconfigurationComplete_IEs__value_PR_SgNB_UE_X2AP_ID;
 	ie->value.choice.SgNB_UE_X2AP_ID = SgNB_ue_id;
-	ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+	asn1cSeqAdd(&out->protocolIEs.list, ie);
 
 	ie = (X2AP_SgNBReconfigurationComplete_IEs_t *)calloc(1, sizeof(X2AP_SgNBReconfigurationComplete_IEs_t));
 	ie->id = X2AP_ProtocolIE_ID_id_ResponseInformationSgNBReconfComp;
@@ -1871,7 +1871,7 @@ int x2ap_eNB_generate_ENDC_x2_SgNB_reconfiguration_complete(
 	ie->value.choice.ResponseInformationSgNBReconfComp.present = X2AP_ResponseInformationSgNBReconfComp_PR_success_SgNBReconfComp;
 	// meNBtoSgNBContainer should contain the RRCReconfigurationComplete message from the UE but in the specs 36.423(9.1.4.4) its presence is not mandatory
 	ie->value.choice.ResponseInformationSgNBReconfComp.choice.success_SgNBReconfComp.meNBtoSgNBContainer = NULL;
-	ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+	asn1cSeqAdd(&out->protocolIEs.list, ie);
 
     if (x2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
         X2AP_ERROR("Failed to encode ENDC X2 SgNB_addition request message\n");
@@ -1911,7 +1911,7 @@ int x2ap_eNB_generate_ENDC_x2_SgNB_release_request(
   ie->criticality= X2AP_Criticality_reject;
   ie->value.present = X2AP_SgNBReleaseRequest_IEs__value_PR_UE_X2AP_ID;
   ie->value.choice.UE_X2AP_ID = x2_id_source;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   if (x2_id_target != -1) {
     ie = (X2AP_SgNBReleaseRequest_IEs_t *)calloc(1, sizeof(X2AP_SgNBReleaseRequest_IEs_t));
@@ -1919,7 +1919,7 @@ int x2ap_eNB_generate_ENDC_x2_SgNB_release_request(
     ie->criticality= X2AP_Criticality_reject;
     ie->value.present = X2AP_SgNBReleaseRequest_IEs__value_PR_SgNB_UE_X2AP_ID;
     ie->value.choice.SgNB_UE_X2AP_ID = x2_id_target;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
 
   ie = (X2AP_SgNBReleaseRequest_IEs_t *)calloc(1, sizeof(X2AP_SgNBReleaseRequest_IEs_t));
@@ -1939,7 +1939,7 @@ int x2ap_eNB_generate_ENDC_x2_SgNB_release_request(
     X2AP_ERROR("%s: unhandled cause %d\n", __FUNCTION__, cause);
     exit(1);
   }
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   if (x2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
     X2AP_ERROR("Failed to encode ENDC X2 SgNB_release_request message\n");
@@ -1980,14 +1980,14 @@ int x2ap_gNB_generate_ENDC_x2_SgNB_release_request_acknowledge(
   ie->criticality= X2AP_Criticality_ignore;
   ie->value.present = X2AP_SgNBReleaseRequestAcknowledge_IEs__value_PR_UE_X2AP_ID;
   ie->value.choice.UE_X2AP_ID = menb_ue_x2ap_id;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   ie = (X2AP_SgNBReleaseRequestAcknowledge_IEs_t *)calloc(1, sizeof(X2AP_SgNBReleaseRequestAcknowledge_IEs_t));
   ie->id = X2AP_ProtocolIE_ID_id_SgNB_UE_X2AP_ID;
   ie->criticality= X2AP_Criticality_ignore;
   ie->value.present = X2AP_SgNBReleaseRequestAcknowledge_IEs__value_PR_SgNB_UE_X2AP_ID;
   ie->value.choice.SgNB_UE_X2AP_ID = sgnb_ue_x2ap_id;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   if (x2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
     X2AP_ERROR("Failed to encode ENDC X2 SgNB Release Request Acknowledge\n");
@@ -2027,14 +2027,14 @@ int x2ap_eNB_generate_ENDC_x2_SgNB_release_required(
   ie->criticality= X2AP_Criticality_reject;
   ie->value.present = X2AP_SgNBReleaseRequired_IEs__value_PR_UE_X2AP_ID;
   ie->value.choice.UE_X2AP_ID = x2_id_source;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   ie = (X2AP_SgNBReleaseRequired_IEs_t *)calloc(1, sizeof(X2AP_SgNBReleaseRequired_IEs_t));
   ie->id = X2AP_ProtocolIE_ID_id_SgNB_UE_X2AP_ID;
   ie->criticality= X2AP_Criticality_reject;
   ie->value.present = X2AP_SgNBReleaseRequired_IEs__value_PR_SgNB_UE_X2AP_ID;
   ie->value.choice.SgNB_UE_X2AP_ID = x2_id_target;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   ie = (X2AP_SgNBReleaseRequired_IEs_t *)calloc(1, sizeof(X2AP_SgNBReleaseRequired_IEs_t));
   ie->id = X2AP_ProtocolIE_ID_id_Cause;
@@ -2049,7 +2049,7 @@ int x2ap_eNB_generate_ENDC_x2_SgNB_release_required(
     X2AP_ERROR("%s: unhandled cause %d\n", __FUNCTION__, cause);
     exit(1);
   }
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   if (x2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
     X2AP_ERROR("Failed to encode ENDC X2 SgNB_release_request message\n");
@@ -2088,14 +2088,14 @@ int x2ap_gNB_generate_ENDC_x2_SgNB_release_confirm(
   ie->criticality= X2AP_Criticality_ignore;
   ie->value.present = X2AP_SgNBReleaseConfirm_IEs__value_PR_UE_X2AP_ID;
   ie->value.choice.UE_X2AP_ID = menb_ue_x2ap_id;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   ie = (X2AP_SgNBReleaseConfirm_IEs_t *)calloc(1, sizeof(X2AP_SgNBReleaseConfirm_IEs_t));
   ie->id = X2AP_ProtocolIE_ID_id_SgNB_UE_X2AP_ID;
   ie->criticality= X2AP_Criticality_ignore;
   ie->value.present = X2AP_SgNBReleaseConfirm_IEs__value_PR_SgNB_UE_X2AP_ID;
   ie->value.choice.SgNB_UE_X2AP_ID = sgnb_ue_x2ap_id;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   if (x2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
     X2AP_ERROR("Failed to encode ENDC X2 SgNB Release Request Acknowledge\n");
diff --git a/openair2/X2AP/x2ap_eNB_handler.c b/openair2/X2AP/x2ap_eNB_handler.c
index f70cd632aa6532d97d755098c4f675d1e749fc04..9d3fc9c0a448bcdb1a9e420b743a1435f034be10 100644
--- a/openair2/X2AP/x2ap_eNB_handler.c
+++ b/openair2/X2AP/x2ap_eNB_handler.c
@@ -30,8 +30,6 @@
 
 #include "intertask_interface.h"
 
-#include "asn1_conversions.h"
-
 #include "x2ap_common.h"
 #include "x2ap_eNB_defs.h"
 #include "x2ap_eNB_handler.h"
diff --git a/openair3/M3AP/m3ap_MCE_generate_messsages.c b/openair3/M3AP/m3ap_MCE_generate_messsages.c
index 4822a09db92891f7d6d5143803b85ab75a1e14a3..218fb965d3e5e51155871e48b7ab9a2ce097f593 100644
--- a/openair3/M3AP/m3ap_MCE_generate_messsages.c
+++ b/openair3/M3AP/m3ap_MCE_generate_messsages.c
@@ -84,7 +84,7 @@ int m2ap_eNB_generate_m2_setup_request(
           ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf[1],
           ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf[2]);
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   ///* mandatory */
   ///* c2. GNB_eNB_ID (integrer value) */
@@ -93,7 +93,7 @@ int m2ap_eNB_generate_m2_setup_request(
   //ie->criticality               = M2AP_Criticality_reject;
   //ie->value.present             = M2AP_M2SetupRequestIEs__value_PR_GNB_eNB_ID;
   //asn_int642INTEGER(&ie->value.choice.GNB_eNB_ID, f1ap_du_data->gNB_eNB_id);
-  //ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  //asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* optional */
   /* c3. ENBname */
@@ -104,7 +104,7 @@ int m2ap_eNB_generate_m2_setup_request(
     ie->value.present             = M2AP_M2SetupRequest_Ies__value_PR_ENBname;
     //OCTET_STRING_fromBuf(&ie->value.choice.ENB_Name, m2ap_eNB_data_p->eNB_name,
                          //strlen(m2ap_eNB_data_p->eNB_name));
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
 
   /* mandatory */
@@ -138,7 +138,7 @@ int m2ap_eNB_generate_m2_setup_request(
                                    &mbms_configuration_data_item->eCGI.eUTRANcellIdentifier);
 		M2AP_MBMS_Service_Area_t * mbms_service_area;
 		mbms_service_area = (M2AP_MBMS_Service_Area_t*)calloc(1,sizeof(M2AP_MBMS_Service_Area_t));
-		ASN_SEQUENCE_ADD(&mbms_configuration_data_item->mbmsServiceAreaList.list,mbms_service_area);
+		asn1cSeqAdd(&mbms_configuration_data_item->mbmsServiceAreaList.list,mbms_service_area);
 
 
 	}
@@ -154,10 +154,10 @@ int m2ap_eNB_generate_m2_setup_request(
 	//M2AP_MBMS_Service_Area_ID_List_t         mbmsServiceAreaList;
 
 
-	ASN_SEQUENCE_ADD(&ie->value.choice.ENB_MBMS_Configuration_data_List.list,mbms_configuration_data_list_item_ies);
+	asn1cSeqAdd(&ie->value.choice.ENB_MBMS_Configuration_data_List.list,mbms_configuration_data_list_item_ies);
 
  }
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   LOG_W(M2AP,"m2ap_eNB_data_p->assoc_id %d\n",m2ap_eNB_data_p->assoc_id);
   /* encode */
@@ -214,7 +214,7 @@ int m2ap_eNB_generate_m2_setup_request(
 //  //          ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf[0],
 //  //          ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf[1],
 //  //          ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf[2]);
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_M2SetupResponse_Ies_t *)calloc(1, sizeof(M2AP_M2SetupResponse_Ies_t));
@@ -236,7 +236,7 @@ int m2ap_eNB_generate_m2_setup_request(
 //  //      plmn = (M2AP_PLMN_Identity_t *)calloc(1,sizeof(M2AP_PLMN_Identity_t));
 //  //      {
 //  //        MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length, plmn);
-//  //        ASN_SEQUENCE_ADD(&servedCellMember->servedCellInfo.broadcastPLMNs.list, plmn);
+//  //        asn1cSeqAdd(&servedCellMember->servedCellInfo.broadcastPLMNs.list, plmn);
 //  //      }
 //
 //  //      if (instance_p->frame_type[i] == FDD) {
@@ -277,10 +277,10 @@ int m2ap_eNB_generate_m2_setup_request(
 //  //        AssertFatal(0,"M2Setupresponse not supported for TDD!");
 //  //      }
 //  //    }
-//  //    ASN_SEQUENCE_ADD(&ie->value.choice.ServedCells.list, servedCellMember);
+//  //    asn1cSeqAdd(&ie->value.choice.ServedCells.list, servedCellMember);
 //  //  }
 //  //}
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_M2SetupResponse_Ies_t *)calloc(1, sizeof(M2AP_M2SetupResponse_Ies_t));
@@ -295,9 +295,9 @@ int m2ap_eNB_generate_m2_setup_request(
 //  //    //@TODO: consider to update this value
 //  //    INT16_TO_OCTET_STRING(0, &gu->mME_Group_ID);
 //  //  }
-//  //  ASN_SEQUENCE_ADD(&ie->value.choice.GUGroupIDList.list, gu);
+//  //  asn1cSeqAdd(&ie->value.choice.GUGroupIDList.list, gu);
 //  //}
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  if (m2ap_encode_pdu(&pdu, &buffer, &len) < 0) {
 //    M2AP_ERROR("Failed to encode M2 setup response\n");
@@ -341,7 +341,7 @@ int m2ap_eNB_generate_m2_setup_request(
 //
 //  //m2ap_eNB_set_cause (&ie->value.choice.Cause, cause_type, cause_value);
 //
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* optional: consider to handle this later */
 //  ie = (M2AP_M2SetupFailure_Ies_t *)calloc(1, sizeof(M2AP_M2SetupFailure_Ies_t));
@@ -353,7 +353,7 @@ int m2ap_eNB_generate_m2_setup_request(
 //  //  ie->value.choice.TimeToWait = time_to_wait;
 //  //}
 //
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  if (m2ap_encode_pdu(&pdu, &buffer, &len) < 0) {
 //    M2AP_ERROR("Failed to encode M2 setup failure\n");
@@ -429,7 +429,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
 //  ie->criticality = M2AP_Criticality_reject;
 //  ie->value.present = M2AP_HandoverRequest_IEs__value_PR_UE_M2AP_ID;
 //  ie->value.choice.UE_M2AP_ID = m2ap_id_get_id_source(&instance_p->id_manager, ue_id);
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequest_IEs_t));
@@ -438,7 +438,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
 //  ie->value.present = M2AP_HandoverRequest_IEs__value_PR_Cause;
 //  ie->value.choice.Cause.present = M2AP_Cause_PR_radioNetwork;
 //  ie->value.choice.Cause.choice.radioNetwork = M2AP_CauseRadioNetwork_handover_desirable_for_radio_reasons;
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequest_IEs_t));
@@ -448,7 +448,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
 //  MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length,
 //                       &ie->value.choice.ECGI.pLMN_Identity);
 //  MACRO_ENB_ID_TO_CELL_IDENTITY(m2ap_eNB_data_p->eNB_id, 0, &ie->value.choice.ECGI.eUTRANcellIdentifier);
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequest_IEs_t));
@@ -460,7 +460,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
 //  //@TODO: consider to update these values
 //  INT16_TO_OCTET_STRING(m2ap_handover_req->ue_gummei.mme_group_id, &ie->value.choice.GUMMEI.gU_Group_ID.mME_Group_ID);
 //  MME_CODE_TO_OCTET_STRING(m2ap_handover_req->ue_gummei.mme_code, &ie->value.choice.GUMMEI.mME_Code);
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequest_IEs_t));
@@ -512,13 +512,13 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
 //
 //        INT32_TO_OCTET_STRING(m2ap_handover_req->e_rabs_tobesetup[i].gtp_teid,&e_RABs_ToBeSetup_Item->uL_GTPtunnelEndpoint.gTP_TEID);
 //      }
-//      ASN_SEQUENCE_ADD(&ie->value.choice.UE_ContextInformation.e_RABs_ToBeSetup_List.list, e_RABS_ToBeSetup_ItemIEs);
+//      asn1cSeqAdd(&ie->value.choice.UE_ContextInformation.e_RABs_ToBeSetup_List.list, e_RABS_ToBeSetup_ItemIEs);
 //    }
 //  }
 //
 //  OCTET_STRING_fromBuf(&ie->value.choice.UE_ContextInformation.rRC_Context, (char*) m2ap_handover_req->rrc_buffer, m2ap_handover_req->rrc_buffer_size);
 //
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequest_IEs_t));
@@ -534,10 +534,10 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
 //   MACRO_ENB_ID_TO_CELL_IDENTITY(0, 0, &lastVisitedCell_Item->choice.e_UTRAN_Cell.global_Cell_ID.eUTRANcellIdentifier);
 //   lastVisitedCell_Item->choice.e_UTRAN_Cell.cellType.cell_Size = M2AP_Cell_Size_small;
 //   lastVisitedCell_Item->choice.e_UTRAN_Cell.time_UE_StayedInCell = 2;
-//   ASN_SEQUENCE_ADD(&ie->value.choice.UE_HistoryInformation.list, lastVisitedCell_Item);
+//   asn1cSeqAdd(&ie->value.choice.UE_HistoryInformation.list, lastVisitedCell_Item);
 //  }
 //
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  if (m2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
 //    M2AP_ERROR("Failed to encode X2 handover request\n");
@@ -588,7 +588,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
 //  ie->criticality = M2AP_Criticality_ignore;
 //  ie->value.present = M2AP_HandoverRequestAcknowledge_IEs__value_PR_UE_M2AP_ID;
 //  ie->value.choice.UE_M2AP_ID = id_source;
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequestAcknowledge_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequestAcknowledge_IEs_t));
@@ -596,7 +596,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
 //  ie->criticality = M2AP_Criticality_ignore;
 //  ie->value.present = M2AP_HandoverRequestAcknowledge_IEs__value_PR_UE_M2AP_ID_1;
 //  ie->value.choice.UE_M2AP_ID_1 = id_target;
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequestAcknowledge_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequestAcknowledge_IEs_t));
@@ -614,11 +614,11 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
 //        {
 //          e_RABs_Admitted_Item->e_RAB_ID = m2ap_handover_req_ack->e_rabs_tobesetup[i].e_rab_id;
 //        }
-//        ASN_SEQUENCE_ADD(&ie->value.choice.E_RABs_Admitted_List.list, e_RABS_Admitted_ItemIEs);
+//        asn1cSeqAdd(&ie->value.choice.E_RABs_Admitted_List.list, e_RABS_Admitted_ItemIEs);
 //      }
 //  }
 //
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequestAcknowledge_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequestAcknowledge_IEs_t));
@@ -628,7 +628,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
 //
 //  OCTET_STRING_fromBuf(&ie->value.choice.TargeteNBtoSource_eNBTransparentContainer, (char*) m2ap_handover_req_ack->rrc_buffer, m2ap_handover_req_ack->rrc_buffer_size);
 //
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  if (m2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
 //    M2AP_ERROR("Failed to encode X2 handover response\n");
@@ -680,7 +680,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
 //  ie->criticality = M2AP_Criticality_reject;
 //  ie->value.present = M2AP_UEContextRelease_IEs__value_PR_UE_M2AP_ID;
 //  ie->value.choice.UE_M2AP_ID = id_source;
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_UEContextRelease_IEs_t *)calloc(1, sizeof(M2AP_UEContextRelease_IEs_t));
@@ -688,7 +688,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
 //  ie->criticality = M2AP_Criticality_reject;
 //  ie->value.present = M2AP_UEContextRelease_IEs__value_PR_UE_M2AP_ID_1;
 //  ie->value.choice.UE_M2AP_ID_1 = id_target;
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  if (m2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
 //    M2AP_ERROR("Failed to encode X2 UE Context Release\n");
@@ -737,7 +737,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
 //  ie->criticality = M2AP_Criticality_reject;
 //  ie->value.present = M2AP_HandoverCancel_IEs__value_PR_UE_M2AP_ID;
 //  ie->value.choice.UE_M2AP_ID = id_source;
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* optional */
 //  if (id_target != -1) {
@@ -746,7 +746,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
 //    ie->criticality = M2AP_Criticality_ignore;
 //    ie->value.present = M2AP_HandoverCancel_IEs__value_PR_UE_M2AP_ID_1;
 //    ie->value.choice.UE_M2AP_ID_1 = id_target;
-//    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//    asn1cSeqAdd(&out->protocolIEs.list, ie);
 //  }
 //
 //  /* mandatory */
@@ -770,7 +770,7 @@ int m2ap_eNB_set_cause (M2AP_Cause_t * cause_p,
 //    M2AP_ERROR("unhandled cancel cause\n");
 //    exit(1);
 //  }
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  if (m2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
 //    M2AP_ERROR("Failed to encode X2 Handover Cancel\n");
diff --git a/openair3/M3AP/m3ap_MCE_handler.c b/openair3/M3AP/m3ap_MCE_handler.c
index 3da0c00145e65c5cf5eec49a0b70dabdbabf9584..3bc47dc2953ce32084ce5ad479fb05f9807d698d 100644
--- a/openair3/M3AP/m3ap_MCE_handler.c
+++ b/openair3/M3AP/m3ap_MCE_handler.c
@@ -30,7 +30,7 @@
 
 #include "intertask_interface.h"
 
-#include "asn1_conversions.h"
+#include "oai_asn1.h"
 
 #include "m3ap_common.h"
 #include "m3ap_MCE_defs.h"
diff --git a/openair3/M3AP/m3ap_MCE_interface_management.c b/openair3/M3AP/m3ap_MCE_interface_management.c
index ef26312245b048f1c6ff63ae4949c79b81048230..f17513e7f8b38c823ccb26788d6e391d9f80e6aa 100644
--- a/openair3/M3AP/m3ap_MCE_interface_management.c
+++ b/openair3/M3AP/m3ap_MCE_interface_management.c
@@ -129,7 +129,7 @@ int MCE_send_MBMS_SESSION_START_RESPONSE(instance_t instance, m3ap_session_start
   ie->criticality               = M3AP_Criticality_reject;
   ie->value.present             = M3AP_MBMSSessionStartResponse_IEs__value_PR_MCE_MBMS_M3AP_ID;
   //ie->value.choice.MCE_MBMS_M3AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
  /* mandatory */
   /* c1. MME_MBMS_M3AP_ID (integer value) */ //long
@@ -138,7 +138,7 @@ int MCE_send_MBMS_SESSION_START_RESPONSE(instance_t instance, m3ap_session_start
   ie->criticality               = M3AP_Criticality_reject;
   ie->value.present             = M3AP_MBMSSessionStartResponse_IEs__value_PR_MME_MBMS_M3AP_ID;
   //ie->value.choice.MCE_MBMS_M3AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
 
   if (m3ap_encode_pdu(&pdu, &buffer, &len) < 0) {
@@ -186,7 +186,7 @@ int MCE_send_MBMS_SESSION_START_FAILURE(instance_t instance, m3ap_session_start_
 // // ie->criticality               = M3AP_Criticality_reject;
 // // ie->value.present             = M3AP_M3SetupFailure_Ies__value_PR_GlobalMCE_ID;
 // // ie->value.choice.GlobalMCE_ID = M3AP_get_next_transaction_identifier(enb_mod_idP, mce_mod_idP);
-// // ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+// // asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  /* c2. Cause */
@@ -196,7 +196,7 @@ int MCE_send_MBMS_SESSION_START_FAILURE(instance_t instance, m3ap_session_start_
 //  ie->value.present             = M3AP_SessionStartFailure_Ies__value_PR_Cause;
 //  ie->value.choice.Cause.present = M3AP_Cause_PR_radioNetwork;
 //  ie->value.choice.Cause.choice.radioNetwork = M3AP_CauseRadioNetwork_unspecified;
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //
 //     /* encode */
@@ -290,7 +290,7 @@ int MCE_send_MBMS_SESSION_STOP_RESPONSE(instance_t instance, m3ap_session_start_
   ie->criticality               = M3AP_Criticality_reject;
   ie->value.present             = M3AP_MBMSSessionStopResponse_IEs__value_PR_MCE_MBMS_M3AP_ID;
   //ie->value.choice.MCE_MBMS_M3AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
  /* mandatory */
   /* c1. MCE_MBMS_M3AP_ID (integer value) */ //long
@@ -299,7 +299,7 @@ int MCE_send_MBMS_SESSION_STOP_RESPONSE(instance_t instance, m3ap_session_start_
   ie->criticality               = M3AP_Criticality_reject;
   ie->value.present             = M3AP_MBMSSessionStopResponse_IEs__value_PR_MCE_MBMS_M3AP_ID;
   //ie->value.choice.MCE_MBMS_M3AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
 
   if (m3ap_encode_pdu(&pdu, &buffer, &len) < 0) {
@@ -389,7 +389,7 @@ int MCE_send_MBMS_SESSION_UPDATE_RESPONSE(instance_t instance, m3ap_mbms_session
   ie->criticality               = M3AP_Criticality_reject;
   ie->value.present             = M3AP_MBMSSessionUpdateResponse_IEs__value_PR_MCE_MBMS_M3AP_ID;
   //ie->value.choice.MCE_MBMS_M3AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
  /* mandatory */
   /* c1. MCE_MBMS_M3AP_ID (integer value) */ //long
@@ -398,7 +398,7 @@ int MCE_send_MBMS_SESSION_UPDATE_RESPONSE(instance_t instance, m3ap_mbms_session
   ie->criticality               = M3AP_Criticality_reject;
   ie->value.present             = M3AP_MBMSSessionUpdateResponse_IEs__value_PR_MCE_MBMS_M3AP_ID;
   //ie->value.choice.MCE_MBMS_M3AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
 
   if (m3ap_encode_pdu(&pdu, &buffer, &len) < 0) {
@@ -486,7 +486,7 @@ int MCE_send_M3_SETUP_REQUEST(m3ap_MCE_instance_t *instance_p, m3ap_MCE_data_t *
     //      ie->value.choice.Global_MCE_ID.mCE_ID.buf[1],
      //     ie->value.choice.Global_MCE_ID.mCE_ID.buf[2]);
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  ///* mandatory */
 //  ///* c2. GNB_MCE_ID (integrer value) */
@@ -495,7 +495,7 @@ int MCE_send_M3_SETUP_REQUEST(m3ap_MCE_instance_t *instance_p, m3ap_MCE_data_t *
 //  //ie->criticality               = M3AP_Criticality_reject;
 //  //ie->value.present             = M3AP_M3SetupRequestIEs__value_PR_GNB_MCE_ID;
 //  //asn_int642INTEGER(&ie->value.choice.GNB_MCE_ID, f1ap_du_data->gNB_MCE_id);
-//  //ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  //asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //     /* optional */
   /* c3. MCEname */
@@ -507,7 +507,7 @@ int MCE_send_M3_SETUP_REQUEST(m3ap_MCE_instance_t *instance_p, m3ap_MCE_data_t *
     ie->value.present             = M3AP_M3SetupRequestIEs__value_PR_MCEname;
     OCTET_STRING_fromBuf(&ie->value.choice.MCEname, m3ap_MCE_data_p->MCE_name,
                          strlen(m3ap_MCE_data_p->MCE_name));
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
 
   /* mandatory */ //but removed from asn definition (optional) since it crashes when decoding ???????????
@@ -531,13 +531,13 @@ int MCE_send_M3_SETUP_REQUEST(m3ap_MCE_instance_t *instance_p, m3ap_MCE_data_t *
   
   OCTET_STRING_fromBuf(m3ap_mbmsservicearea1,"02",2);
 
-  //ASN_SEQUENCE_ADD(&m3ap_mbmsservicearealistitem->list,m3ap_mbmsservicearea1);
+  //asn1cSeqAdd(&m3ap_mbmsservicearealistitem->list,m3ap_mbmsservicearea1);
 
-  //ASN_SEQUENCE_ADD(&ie->value.choice.MBMSServiceAreaListItem,m3ap_mbmsservicearealistitem);
-  //ASN_SEQUENCE_ADD(&ie->value.choice.MBMSServiceAreaListItem.list,m3ap_mbmsservicearealistitem);
-  ASN_SEQUENCE_ADD(&ie->value.choice.MBMSServiceAreaListItem.list,m3ap_mbmsservicearea1);
+  //asn1cSeqAdd(&ie->value.choice.MBMSServiceAreaListItem,m3ap_mbmsservicearealistitem);
+  //asn1cSeqAdd(&ie->value.choice.MBMSServiceAreaListItem.list,m3ap_mbmsservicearealistitem);
+  asn1cSeqAdd(&ie->value.choice.MBMSServiceAreaListItem.list,m3ap_mbmsservicearea1);
   
-  //ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  //asn1cSeqAdd(&out->protocolIEs.list, ie);
 
 //
 //  /* mandatory */
@@ -578,9 +578,9 @@ int MCE_send_M3_SETUP_REQUEST(m3ap_MCE_instance_t *instance_p, m3ap_MCE_data_t *
 //                mbms_service_area2 = (M3AP_MBMS_Service_Area_t*)calloc(1,sizeof(M3AP_MBMS_Service_Area_t));
 //		//memset(mbms_service_area,0,sizeof(OCTET_STRING_t));
 //		OCTET_STRING_fromBuf(mbms_service_area,"01",2);
-//                ASN_SEQUENCE_ADD(&mbms_configuration_data_item->mbmsServiceAreaList.list,mbms_service_area);
+//                asn1cSeqAdd(&mbms_configuration_data_item->mbmsServiceAreaList.list,mbms_service_area);
 //		OCTET_STRING_fromBuf(mbms_service_area2,"02",2);
-//                ASN_SEQUENCE_ADD(&mbms_configuration_data_item->mbmsServiceAreaList.list,mbms_service_area2);
+//                asn1cSeqAdd(&mbms_configuration_data_item->mbmsServiceAreaList.list,mbms_service_area2);
 //
 //
 //        }
@@ -596,10 +596,10 @@ int MCE_send_M3_SETUP_REQUEST(m3ap_MCE_instance_t *instance_p, m3ap_MCE_data_t *
 //        //M3AP_MBMS_Service_Area_ID_List_t         mbmsServiceAreaList;
 //
 //
-//        ASN_SEQUENCE_ADD(&ie->value.choice.MCE_MBMS_Configuration_data_List.list,mbms_configuration_data_list_item_ies);
+//        asn1cSeqAdd(&ie->value.choice.MCE_MBMS_Configuration_data_List.list,mbms_configuration_data_list_item_ies);
 //
 // }
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //  
 // LOG_W(M3AP,"m3ap_MCE_data_p->assoc_id %d\n",m3ap_MCE_data_p->assoc_id);
 //  /* encode */
diff --git a/openair3/M3AP/m3ap_MME_generate_messages.c b/openair3/M3AP/m3ap_MME_generate_messages.c
index 969863b4459b29a3308aa5fb8b7fe6ecc5241e44..3a4c1bb4734c7519332721d2ec5b8a421d7ce70c 100644
--- a/openair3/M3AP/m3ap_MME_generate_messages.c
+++ b/openair3/M3AP/m3ap_MME_generate_messages.c
@@ -83,7 +83,7 @@ int m2ap_MCE_generate_m2_setup_request(
   //          ie->value.choice.GlobalMCE_ID.MCE_ID.choice.macro_MCE_ID.buf[0],
   //          ie->value.choice.GlobalMCE_ID.MCE_ID.choice.macro_MCE_ID.buf[1],
   //          ie->value.choice.GlobalMCE_ID.MCE_ID.choice.macro_MCE_ID.buf[2]);
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (M2AP_M2SetupRequest_Ies_t *)calloc(1, sizeof(M2AP_M2SetupRequest_Ies_t));
@@ -105,7 +105,7 @@ int m2ap_MCE_generate_m2_setup_request(
   //      plmn = (M2AP_PLMN_Identity_t *)calloc(1,sizeof(M2AP_PLMN_Identity_t));
   //      {
   //        MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length, plmn);
-  //        ASN_SEQUENCE_ADD(&servedCellMember->servedCellInfo.broadcastPLMNs.list, plmn);
+  //        asn1cSeqAdd(&servedCellMember->servedCellInfo.broadcastPLMNs.list, plmn);
   //      }
 
   //      if (instance_p->frame_type[i] == FDD) {
@@ -146,10 +146,10 @@ int m2ap_MCE_generate_m2_setup_request(
   //        AssertFatal(0,"M2Setuprequest not supported for TDD!");
   //      }
   //    }
-  //    ASN_SEQUENCE_ADD(&ie->value.choice.ServedCells.list, servedCellMember);
+  //    asn1cSeqAdd(&ie->value.choice.ServedCells.list, servedCellMember);
   //  }
   //}
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (M2AP_M2SetupRequest_Ies_t *)calloc(1, sizeof(M2AP_M2SetupRequest_Ies_t));
@@ -164,9 +164,9 @@ int m2ap_MCE_generate_m2_setup_request(
   //    //@TODO: consider to update this value
   //    INT16_TO_OCTET_STRING(0, &gu->mME_Group_ID);
   //  }
-  //  ASN_SEQUENCE_ADD(&ie->value.choice.GUGroupIDList.list, gu);
+  //  asn1cSeqAdd(&ie->value.choice.GUGroupIDList.list, gu);
   //}
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   if (m2ap_encode_pdu(&pdu, &buffer, &len) < 0) {
     M2AP_ERROR("Failed to encode M2 setup request\n");
@@ -216,7 +216,7 @@ int m2ap_MCE_generate_m2_setup_response(m2ap_MCE_instance_t *instance_p, m2ap_MC
   //          ie->value.choice.GlobalMCE_ID.MCE_ID.choice.macro_MCE_ID.buf[0],
   //          ie->value.choice.GlobalMCE_ID.MCE_ID.choice.macro_MCE_ID.buf[1],
   //          ie->value.choice.GlobalMCE_ID.MCE_ID.choice.macro_MCE_ID.buf[2]);
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (M2AP_M2SetupResponse_Ies_t *)calloc(1, sizeof(M2AP_M2SetupResponse_Ies_t));
@@ -238,7 +238,7 @@ int m2ap_MCE_generate_m2_setup_response(m2ap_MCE_instance_t *instance_p, m2ap_MC
   //      plmn = (M2AP_PLMN_Identity_t *)calloc(1,sizeof(M2AP_PLMN_Identity_t));
   //      {
   //        MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length, plmn);
-  //        ASN_SEQUENCE_ADD(&servedCellMember->servedCellInfo.broadcastPLMNs.list, plmn);
+  //        asn1cSeqAdd(&servedCellMember->servedCellInfo.broadcastPLMNs.list, plmn);
   //      }
 
   //      if (instance_p->frame_type[i] == FDD) {
@@ -279,10 +279,10 @@ int m2ap_MCE_generate_m2_setup_response(m2ap_MCE_instance_t *instance_p, m2ap_MC
   //        AssertFatal(0,"M2Setupresponse not supported for TDD!");
   //      }
   //    }
-  //    ASN_SEQUENCE_ADD(&ie->value.choice.ServedCells.list, servedCellMember);
+  //    asn1cSeqAdd(&ie->value.choice.ServedCells.list, servedCellMember);
   //  }
   //}
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (M2AP_M2SetupResponse_Ies_t *)calloc(1, sizeof(M2AP_M2SetupResponse_Ies_t));
@@ -297,9 +297,9 @@ int m2ap_MCE_generate_m2_setup_response(m2ap_MCE_instance_t *instance_p, m2ap_MC
   //    //@TODO: consider to update this value
   //    INT16_TO_OCTET_STRING(0, &gu->mME_Group_ID);
   //  }
-  //  ASN_SEQUENCE_ADD(&ie->value.choice.GUGroupIDList.list, gu);
+  //  asn1cSeqAdd(&ie->value.choice.GUGroupIDList.list, gu);
   //}
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   if (m2ap_encode_pdu(&pdu, &buffer, &len) < 0) {
     M2AP_ERROR("Failed to encode M2 setup response\n");
@@ -343,7 +343,7 @@ int m2ap_MCE_generate_m2_setup_failure(instance_t instance,
 
   //m2ap_MCE_set_cause (&ie->value.choice.Cause, cause_type, cause_value);
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* optional: consider to handle this later */
   ie = (M2AP_M2SetupFailure_Ies_t *)calloc(1, sizeof(M2AP_M2SetupFailure_Ies_t));
@@ -355,7 +355,7 @@ int m2ap_MCE_generate_m2_setup_failure(instance_t instance,
   //  ie->value.choice.TimeToWait = time_to_wait;
   //}
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   if (m2ap_encode_pdu(&pdu, &buffer, &len) < 0) {
     M2AP_ERROR("Failed to encode M2 setup failure\n");
@@ -431,7 +431,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
 //  ie->criticality = M2AP_Criticality_reject;
 //  ie->value.present = M2AP_HandoverRequest_IEs__value_PR_UE_M2AP_ID;
 //  ie->value.choice.UE_M2AP_ID = m2ap_id_get_id_source(&instance_p->id_manager, ue_id);
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequest_IEs_t));
@@ -440,7 +440,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
 //  ie->value.present = M2AP_HandoverRequest_IEs__value_PR_Cause;
 //  ie->value.choice.Cause.present = M2AP_Cause_PR_radioNetwork;
 //  ie->value.choice.Cause.choice.radioNetwork = M2AP_CauseRadioNetwork_handover_desirable_for_radio_reasons;
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequest_IEs_t));
@@ -450,7 +450,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
 //  MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length,
 //                       &ie->value.choice.ECGI.pLMN_Identity);
 //  MACRO_MCE_ID_TO_CELL_IDENTITY(m2ap_MCE_data_p->MCE_id, 0, &ie->value.choice.ECGI.eUTRANcellIdentifier);
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequest_IEs_t));
@@ -462,7 +462,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
 //  //@TODO: consider to update these values
 //  INT16_TO_OCTET_STRING(m2ap_handover_req->ue_gummei.mme_group_id, &ie->value.choice.GUMMEI.gU_Group_ID.mME_Group_ID);
 //  MME_CODE_TO_OCTET_STRING(m2ap_handover_req->ue_gummei.mme_code, &ie->value.choice.GUMMEI.mME_Code);
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequest_IEs_t));
@@ -514,13 +514,13 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
 //
 //        INT32_TO_OCTET_STRING(m2ap_handover_req->e_rabs_tobesetup[i].gtp_teid,&e_RABs_ToBeSetup_Item->uL_GTPtunnelEndpoint.gTP_TEID);
 //      }
-//      ASN_SEQUENCE_ADD(&ie->value.choice.UE_ContextInformation.e_RABs_ToBeSetup_List.list, e_RABS_ToBeSetup_ItemIEs);
+//      asn1cSeqAdd(&ie->value.choice.UE_ContextInformation.e_RABs_ToBeSetup_List.list, e_RABS_ToBeSetup_ItemIEs);
 //    }
 //  }
 //
 //  OCTET_STRING_fromBuf(&ie->value.choice.UE_ContextInformation.rRC_Context, (char*) m2ap_handover_req->rrc_buffer, m2ap_handover_req->rrc_buffer_size);
 //
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequest_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequest_IEs_t));
@@ -536,10 +536,10 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
 //   MACRO_MCE_ID_TO_CELL_IDENTITY(0, 0, &lastVisitedCell_Item->choice.e_UTRAN_Cell.global_Cell_ID.eUTRANcellIdentifier);
 //   lastVisitedCell_Item->choice.e_UTRAN_Cell.cellType.cell_Size = M2AP_Cell_Size_small;
 //   lastVisitedCell_Item->choice.e_UTRAN_Cell.time_UE_StayedInCell = 2;
-//   ASN_SEQUENCE_ADD(&ie->value.choice.UE_HistoryInformation.list, lastVisitedCell_Item);
+//   asn1cSeqAdd(&ie->value.choice.UE_HistoryInformation.list, lastVisitedCell_Item);
 //  }
 //
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  if (m2ap_MCE_encode_pdu(&pdu, &buffer, &len) < 0) {
 //    M2AP_ERROR("Failed to encode X2 handover request\n");
@@ -590,7 +590,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
 //  ie->criticality = M2AP_Criticality_ignore;
 //  ie->value.present = M2AP_HandoverRequestAcknowledge_IEs__value_PR_UE_M2AP_ID;
 //  ie->value.choice.UE_M2AP_ID = id_source;
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequestAcknowledge_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequestAcknowledge_IEs_t));
@@ -598,7 +598,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
 //  ie->criticality = M2AP_Criticality_ignore;
 //  ie->value.present = M2AP_HandoverRequestAcknowledge_IEs__value_PR_UE_M2AP_ID_1;
 //  ie->value.choice.UE_M2AP_ID_1 = id_target;
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequestAcknowledge_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequestAcknowledge_IEs_t));
@@ -616,11 +616,11 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
 //        {
 //          e_RABs_Admitted_Item->e_RAB_ID = m2ap_handover_req_ack->e_rabs_tobesetup[i].e_rab_id;
 //        }
-//        ASN_SEQUENCE_ADD(&ie->value.choice.E_RABs_Admitted_List.list, e_RABS_Admitted_ItemIEs);
+//        asn1cSeqAdd(&ie->value.choice.E_RABs_Admitted_List.list, e_RABS_Admitted_ItemIEs);
 //      }
 //  }
 //
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_HandoverRequestAcknowledge_IEs_t *)calloc(1, sizeof(M2AP_HandoverRequestAcknowledge_IEs_t));
@@ -630,7 +630,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
 //
 //  OCTET_STRING_fromBuf(&ie->value.choice.TargetMCEtoSource_MCETransparentContainer, (char*) m2ap_handover_req_ack->rrc_buffer, m2ap_handover_req_ack->rrc_buffer_size);
 //
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  if (m2ap_MCE_encode_pdu(&pdu, &buffer, &len) < 0) {
 //    M2AP_ERROR("Failed to encode X2 handover response\n");
@@ -682,7 +682,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
 //  ie->criticality = M2AP_Criticality_reject;
 //  ie->value.present = M2AP_UEContextRelease_IEs__value_PR_UE_M2AP_ID;
 //  ie->value.choice.UE_M2AP_ID = id_source;
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  ie = (M2AP_UEContextRelease_IEs_t *)calloc(1, sizeof(M2AP_UEContextRelease_IEs_t));
@@ -690,7 +690,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
 //  ie->criticality = M2AP_Criticality_reject;
 //  ie->value.present = M2AP_UEContextRelease_IEs__value_PR_UE_M2AP_ID_1;
 //  ie->value.choice.UE_M2AP_ID_1 = id_target;
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  if (m2ap_MCE_encode_pdu(&pdu, &buffer, &len) < 0) {
 //    M2AP_ERROR("Failed to encode X2 UE Context Release\n");
@@ -739,7 +739,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
 //  ie->criticality = M2AP_Criticality_reject;
 //  ie->value.present = M2AP_HandoverCancel_IEs__value_PR_UE_M2AP_ID;
 //  ie->value.choice.UE_M2AP_ID = id_source;
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* optional */
 //  if (id_target != -1) {
@@ -748,7 +748,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
 //    ie->criticality = M2AP_Criticality_ignore;
 //    ie->value.present = M2AP_HandoverCancel_IEs__value_PR_UE_M2AP_ID_1;
 //    ie->value.choice.UE_M2AP_ID_1 = id_target;
-//    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//    asn1cSeqAdd(&out->protocolIEs.list, ie);
 //  }
 //
 //  /* mandatory */
@@ -772,7 +772,7 @@ int m2ap_MCE_set_cause (M2AP_Cause_t * cause_p,
 //    M2AP_ERROR("unhandled cancel cause\n");
 //    exit(1);
 //  }
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  if (m2ap_MCE_encode_pdu(&pdu, &buffer, &len) < 0) {
 //    M2AP_ERROR("Failed to encode X2 Handover Cancel\n");
diff --git a/openair3/M3AP/m3ap_MME_handler.c b/openair3/M3AP/m3ap_MME_handler.c
index eaba0e8ef15c69fccf0695220bb15197325cd3f9..b4a753784a6a77636155d9a2a8b74be1e7308942 100644
--- a/openair3/M3AP/m3ap_MME_handler.c
+++ b/openair3/M3AP/m3ap_MME_handler.c
@@ -30,7 +30,7 @@
 
 #include "intertask_interface.h"
 
-#include "asn1_conversions.h"
+#include "oai_asn1.h"
 
 #include "m3ap_common.h"
 #include "m3ap_MME_defs.h"
diff --git a/openair3/M3AP/m3ap_MME_interface_management.c b/openair3/M3AP/m3ap_MME_interface_management.c
index 038a0721d1c5216f2f36d7b29d6dd73740e8f496..4b866fad2fb35e10bfcf1de11d3b4a1bfc7a8f01 100644
--- a/openair3/M3AP/m3ap_MME_interface_management.c
+++ b/openair3/M3AP/m3ap_MME_interface_management.c
@@ -94,7 +94,7 @@ int MME_send_MBMS_SESSION_START_REQUEST(instance_t instance/*, uint32_t assoc_id
   ie->criticality               = M3AP_Criticality_reject;
   ie->value.present             = M3AP_MBMSSessionStartRequest_IEs__value_PR_MME_MBMS_M3AP_ID;
   //ie->value.choice.MME_MBMS_M3AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   /* c2. TMGI */ 
@@ -108,7 +108,7 @@ int MME_send_MBMS_SESSION_START_REQUEST(instance_t instance/*, uint32_t assoc_id
 	  uint8_t TMGI[5] = {4,3,2,1,0};
 	  OCTET_STRING_fromBuf(&tmgi->serviceID,(const char*)&TMGI[2],3);
   }
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   /* optional */
   /* c2. MBMS_Session_ID */
   if(0){
@@ -118,7 +118,7 @@ int MME_send_MBMS_SESSION_START_REQUEST(instance_t instance/*, uint32_t assoc_id
 	  ie->value.present             = M3AP_MBMSSessionStartRequest_IEs__value_PR_MBMS_Session_ID;
 	  //M3AP_MBMS_Session_ID_t * mbms_session_id = &ie->value.choice.MBMS_Session_ID;
 
-	  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+	  asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
   /* mandatory */
   /* c2. MBMS_E_RAB_QoS_Parameters */ 
@@ -133,7 +133,7 @@ int MME_send_MBMS_SESSION_START_REQUEST(instance_t instance/*, uint32_t assoc_id
 	//struct M3AP_GBR_QosInformation  *gbrQosInformation;     /* OPTIONAL */
   }
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   /* mandatory */
   /* c2. MBMS_Session_Duration */ 
   ie = (M3AP_MBMSSessionStartRequest_IEs_t *)calloc(1, sizeof(M3AP_MBMSSessionStartRequest_IEs_t));
@@ -145,7 +145,7 @@ int MME_send_MBMS_SESSION_START_REQUEST(instance_t instance/*, uint32_t assoc_id
 	uint8_t duration[5] = {4,3,2,1,0};
 	OCTET_STRING_fromBuf(mbms_session_duration,(const char*)&duration[2],3);
   }
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   /* mandatory */
   /* c2 MBMS_Service_Area */
   ie = (M3AP_MBMSSessionStartRequest_IEs_t *)calloc(1, sizeof(M3AP_MBMSSessionStartRequest_IEs_t));
@@ -157,7 +157,7 @@ int MME_send_MBMS_SESSION_START_REQUEST(instance_t instance/*, uint32_t assoc_id
 	uint8_t duration[5] = {4,3,2,1,0};
 	OCTET_STRING_fromBuf(mbms_service_area,(const char*)&duration[2],1);
   }
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   /* mandatory */
   /* c2 MinimumTimeToMBMSDataTransfer */
   ie = (M3AP_MBMSSessionStartRequest_IEs_t *)calloc(1, sizeof(M3AP_MBMSSessionStartRequest_IEs_t));
@@ -170,7 +170,7 @@ int MME_send_MBMS_SESSION_START_REQUEST(instance_t instance/*, uint32_t assoc_id
 	OCTET_STRING_fromBuf(minimumtimetombmsdatatransfer,(const char*)&duration[2],1);
   }
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   /* mandatory */
   /* c2 TNL_Information */
   ie = (M3AP_MBMSSessionStartRequest_IEs_t *)calloc(1, sizeof(M3AP_MBMSSessionStartRequest_IEs_t));
@@ -195,7 +195,7 @@ int MME_send_MBMS_SESSION_START_REQUEST(instance_t instance/*, uint32_t assoc_id
   ip = (224U << 24) | (0) << 16 | (0) << 8 | (2);
   INT32_TO_OCTET_STRING(ip, &tnl_information->iPSourceAddress);
   }
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   /* optional */
   /* c2 Time_ofMBMS_DataTransfer */
   if(0){
@@ -208,7 +208,7 @@ int MME_send_MBMS_SESSION_START_REQUEST(instance_t instance/*, uint32_t assoc_id
 		//char duration[5] = {4,3,2,1,0};
 		//OCTET_STRING_fromBuf(absolute_time_ofmbms_data,(const char*)&duration[2],3);
 	  //}
-	  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+	  asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
   /* optional */
   /* c2 MBMS_Cell_List */
@@ -222,9 +222,9 @@ int MME_send_MBMS_SESSION_START_REQUEST(instance_t instance/*, uint32_t assoc_id
 	  {
 		//MCC_MNC_TO_PLMNID(0,0,3,ecgi->pLMN_Identity);
 		//MACRO_ENB_ID_TO_CELL_IDENTITY(1,0,ecgi->eUTRANcellIdentifier);
-		ASN_SEQUENCE_ADD(&mbms_cell_list->list,ecgi);
+		asn1cSeqAdd(&mbms_cell_list->list,ecgi);
 	  }
-	  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+	  asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
 
   /* encode */
@@ -344,7 +344,7 @@ int MME_send_MBMS_SESSION_STOP_REQUEST(instance_t instance, m3ap_session_stop_re
   ie->criticality               = M3AP_Criticality_reject;
   ie->value.present             = M3AP_MBMSSessionStopRequest_IEs__value_PR_MME_MBMS_M3AP_ID;
   //ie->value.choice.MME_MBMS_M3AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   /* c2. MCE_MBMS_M3AP_ID (integer value) */ //long
@@ -354,7 +354,7 @@ int MME_send_MBMS_SESSION_STOP_REQUEST(instance_t instance, m3ap_session_stop_re
   ie->value.present             = M3AP_MBMSSessionStopRequest_IEs__value_PR_MCE_MBMS_M3AP_ID;
   //ie->value.choice.MCE_MBMS_M3AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
 
   /* encode */
@@ -667,7 +667,7 @@ int MME_send_M3_SETUP_RESPONSE(instance_t instance, /*uint32_t assoc_id,*/
     *ie->value.choice.CriticalityDiagnostics.procedureCriticality = M3AP_Criticality_reject;
     //ie->value.choice.CriticalityDiagnostics.transactionID = (M2AP_TransactionID_t *)calloc(1, sizeof(M3AP_TransactionID_t));
     //*ie->value.choice.CriticalityDiagnostics.transactionID = 0;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
 
   /* encode */
@@ -717,7 +717,7 @@ int MME_send_M3_SETUP_FAILURE(instance_t instance,m3ap_setup_failure_t* m3ap_set
 // // ie->criticality               = M3AP_Criticality_reject;
 // // ie->value.present             = M3AP_M3SetupFailure_Ies__value_PR_GlobalMCE_ID;
 // // ie->value.choice.GlobalMCE_ID = M3AP_get_next_transaction_identifier(enb_mod_idP, mce_mod_idP);
-// // ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+// // asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* mandatory */
 //  /* c2. Cause */
@@ -727,7 +727,7 @@ int MME_send_M3_SETUP_FAILURE(instance_t instance,m3ap_setup_failure_t* m3ap_set
 //  ie->value.present             = M3AP_M3SetupFailure_Ies__value_PR_Cause;
 //  ie->value.choice.Cause.present = M3AP_Cause_PR_radioNetwork;
 //  ie->value.choice.Cause.choice.radioNetwork = M3AP_CauseRadioNetwork_unspecified;
-//  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//  asn1cSeqAdd(&out->protocolIEs.list, ie);
 //
 //  /* optional */
 //  /* c3. TimeToWait */
@@ -737,7 +737,7 @@ int MME_send_M3_SETUP_FAILURE(instance_t instance,m3ap_setup_failure_t* m3ap_set
 //    ie->criticality               = M3AP_Criticality_ignore;
 //    ie->value.present             = M3AP_M3SetupFailure_Ies__value_PR_TimeToWait;
 //    ie->value.choice.TimeToWait = M3AP_TimeToWait_v10s;
-//    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//    asn1cSeqAdd(&out->protocolIEs.list, ie);
 //  }
 //
 //  /* optional */
@@ -755,7 +755,7 @@ int MME_send_M3_SETUP_FAILURE(instance_t instance,m3ap_setup_failure_t* m3ap_set
 //    *ie->value.choice.CriticalityDiagnostics.procedureCriticality = M3AP_Criticality_reject;
 //    //ie->value.choice.CriticalityDiagnostics.transactionID = (M3AP_TransactionID_t *)calloc(1, sizeof(M3AP_TransactionID_t));
 //    //*ie->value.choice.CriticalityDiagnostics.transactionID = 0;
-//    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+//    asn1cSeqAdd(&out->protocolIEs.list, ie);
 //  }
 //
 //  /* encode */
@@ -858,7 +858,7 @@ int MME_send_MBMS_SESSION_UPDATE_REQUEST(instance_t instance, m3ap_mbms_session_
   ie->criticality               = M3AP_Criticality_reject;
   ie->value.present             = M3AP_MBMSSessionUpdateRequest_IEs__value_PR_MME_MBMS_M3AP_ID;
   //ie->value.choice.MME_MBMS_M3AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   /* c2. MCE_MBMS_M3AP_ID (integer value) */ //long
@@ -868,7 +868,7 @@ int MME_send_MBMS_SESSION_UPDATE_REQUEST(instance_t instance, m3ap_mbms_session_
   ie->value.present             = M3AP_MBMSSessionUpdateRequest_IEs__value_PR_MCE_MBMS_M3AP_ID;
   //ie->value.choice.MCE_MBMS_M3AP_ID = /*F1AP_get_next_transaction_identifier(enb_mod_idP, du_mod_idP);*/ //?
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
    /* mandatory */
   /* c2. TMGI */ 
@@ -882,7 +882,7 @@ int MME_send_MBMS_SESSION_UPDATE_REQUEST(instance_t instance, m3ap_mbms_session_
 	  uint8_t TMGI[5] = {4,3,2,1,0};
 	  OCTET_STRING_fromBuf(&tmgi->serviceID,(const char*)&TMGI[2],3);
   }
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   /* optional */
   /* c2. MBMS_Session_ID */
   if(0){
@@ -892,7 +892,7 @@ int MME_send_MBMS_SESSION_UPDATE_REQUEST(instance_t instance, m3ap_mbms_session_
 	  ie->value.present             = M3AP_MBMSSessionUpdateRequest_IEs__value_PR_MBMS_Session_ID;
 	  //M3AP_MBMS_Session_ID_t * mbms_session_id = &ie->value.choice.MBMS_Session_ID;
 
-	  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+	  asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
   /* mandatory */
   /* c2. MBMS_E_RAB_QoS_Parameters */ 
@@ -907,7 +907,7 @@ int MME_send_MBMS_SESSION_UPDATE_REQUEST(instance_t instance, m3ap_mbms_session_
 	//struct M3AP_GBR_QosInformation  *gbrQosInformation;     /* OPTIONAL */
   }
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   /* mandatory */
   /* c2. MBMS_Session_Duration */ 
   ie = (M3AP_MBMSSessionUpdateRequest_IEs_t *)calloc(1, sizeof(M3AP_MBMSSessionUpdateRequest_IEs_t));
@@ -919,7 +919,7 @@ int MME_send_MBMS_SESSION_UPDATE_REQUEST(instance_t instance, m3ap_mbms_session_
 	uint8_t duration[5] = {4,3,2,1,0};
 	OCTET_STRING_fromBuf(mbms_session_duration,(const char*)&duration[2],3);
   }
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   /* optional */
   /* c2 MBMS_Service_Area */
   if(0){
@@ -929,7 +929,7 @@ int MME_send_MBMS_SESSION_UPDATE_REQUEST(instance_t instance, m3ap_mbms_session_
 	  ie->value.present             = M3AP_MBMSSessionUpdateRequest_IEs__value_PR_MBMS_Service_Area;
 	  //M3AP_MBMS_Service_Area_t * mbms_service_area = &ie->value.choice.MBMS_Service_Area;
 
-	  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+	  asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
   /* mandatory */
   /* c2 MinimumTimeToMBMSDataTransfer */
@@ -943,7 +943,7 @@ int MME_send_MBMS_SESSION_UPDATE_REQUEST(instance_t instance, m3ap_mbms_session_
 	OCTET_STRING_fromBuf(minimumtimetombmsdatatransfer,(const char*)&duration[2],1);
   }
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   /* optional */
   /* c2 TNL_Information */
   if(0){
@@ -957,7 +957,7 @@ int MME_send_MBMS_SESSION_UPDATE_REQUEST(instance_t instance, m3ap_mbms_session_
 		OCTET_STRING_fromBuf(&tnl_information->iPSourceAddress,"1204",strlen("1234"));
 		OCTET_STRING_fromBuf(&tnl_information->gTP_DLTEID,"1204",strlen("1234"));
 	  }
-	  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+	  asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
   /* optional */
   /* c2 Time_ofMBMS_DataTransfer */
@@ -971,7 +971,7 @@ int MME_send_MBMS_SESSION_UPDATE_REQUEST(instance_t instance, m3ap_mbms_session_
 		//char duration[5] = {4,3,2,1,0};
 		//OCTET_STRING_fromBuf(absolute_time_ofmbms_data,(const char*)&duration[2],3);
 	  //}
-	  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+	  asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
   /* optional */
   /* c2 MBMS_Cell_List */
@@ -985,9 +985,9 @@ int MME_send_MBMS_SESSION_UPDATE_REQUEST(instance_t instance, m3ap_mbms_session_
 	  {
 		//MCC_MNC_TO_PLMNID(0,0,3,ecgi->pLMN_Identity);
 		//MACRO_ENB_ID_TO_CELL_IDENTITY(1,0,ecgi->eUTRANcellIdentifier);
-		ASN_SEQUENCE_ADD(&mbms_cell_list->list,ecgi);
+		asn1cSeqAdd(&mbms_cell_list->list,ecgi);
 	  }
-	  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+	  asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
 
   /* encode */
diff --git a/openair3/M3AP/m3ap_common.h b/openair3/M3AP/m3ap_common.h
index 75c60db71a1b165bcfab8aa72ca503bacafda5ba..cf2189a243552900fe0b48576939cf1102e402e6 100644
--- a/openair3/M3AP/m3ap_common.h
+++ b/openair3/M3AP/m3ap_common.h
@@ -20,7 +20,7 @@
  */
 #ifndef M3AP_COMMON_H_
 #define M3AP_COMMON_H_
-
+#include "oai_asn1.h"
 #include "M3AP_ProtocolIE-Field.h"
 #include "M3AP_M3AP-PDU.h"
 #include "M3AP_InitiatingMessage.h"
diff --git a/openair3/M3AP/m3ap_handler.c b/openair3/M3AP/m3ap_handler.c
index 583552528bdc2eae85d1d80e3d74b0f73d777ceb..9aa4d5233ff4881f5950b8f773da3213a3b6a48d 100644
--- a/openair3/M3AP/m3ap_handler.c
+++ b/openair3/M3AP/m3ap_handler.c
@@ -30,7 +30,7 @@
 
 #include "intertask_interface.h"
 
-#include "asn1_conversions.h"
+#include "oai_asn1.h"
 
 #include "m3ap_common.h"
 #include "m3ap_MCE_defs.h"
diff --git a/openair3/NAS/COMMON/ESM/MSG/PduSessionEstablishmentAccept.c b/openair3/NAS/COMMON/ESM/MSG/PduSessionEstablishmentAccept.c
index 62d22698d71f1f6a092c55a9acb4f8b1693478e3..a87dc6348a2a28fd23b6a47211aabf43319b6b51 100644
--- a/openair3/NAS/COMMON/ESM/MSG/PduSessionEstablishmentAccept.c
+++ b/openair3/NAS/COMMON/ESM/MSG/PduSessionEstablishmentAccept.c
@@ -189,4 +189,4 @@ void capture_pdu_session_establishment_accept_msg(uint8_t *buffer, uint32_t msg_
 
   set_qfi_pduid(qos_rule.qfi, psea_msg.pdu_id);
   return;
-}
\ No newline at end of file
+}
diff --git a/openair3/NAS/COMMON/ESM/MSG/PduSessionEstablishmentAccept.h b/openair3/NAS/COMMON/ESM/MSG/PduSessionEstablishmentAccept.h
index 0e094250332989bea8e4381ba0850e63aaa68e6d..95ca94233971d10996d3e15932940c5b7c4d3efb 100644
--- a/openair3/NAS/COMMON/ESM/MSG/PduSessionEstablishmentAccept.h
+++ b/openair3/NAS/COMMON/ESM/MSG/PduSessionEstablishmentAccept.h
@@ -168,4 +168,4 @@ typedef struct security_protected_nas_5gs_msg_s {
 
 void capture_pdu_session_establishment_accept_msg(uint8_t *buffer, uint32_t msg_length);
 
-#endif
\ No newline at end of file
+#endif
diff --git a/openair3/NGAP/ngap_common.h b/openair3/NGAP/ngap_common.h
index cfb9d63e59785b31283d852b350434c5e38693f8..9879ce73135da3860713457cde9db6058d90c466 100644
--- a/openair3/NGAP/ngap_common.h
+++ b/openair3/NGAP/ngap_common.h
@@ -38,6 +38,7 @@
 
 
 #include "common/utils/LOG/log.h"
+#include "oai_asn1.h"
 
 #include "NGAP_ProtocolIE-Field.h"
 #include "NGAP_NGAP-PDU.h"
diff --git a/openair3/NGAP/ngap_gNB.c b/openair3/NGAP/ngap_gNB.c
index bce973354b300b4b60e7204f0949450133f8fb1c..b4a3aa2f14ebca2bb9adb2d55bc656410382e9b0 100644
--- a/openair3/NGAP/ngap_gNB.c
+++ b/openair3/NGAP/ngap_gNB.c
@@ -459,7 +459,7 @@ static int ngap_gNB_generate_ng_setup_request(
             ie->value.choice.GlobalRANNodeID.choice.globalGNB_ID->gNB_ID.choice.gNB_ID.buf[1],
             ie->value.choice.GlobalRANNodeID.choice.globalGNB_ID->gNB_ID.choice.gNB_ID.buf[2],
             ie->value.choice.GlobalRANNodeID.choice.globalGNB_ID->gNB_ID.choice.gNB_ID.buf[3]);
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* optional */
   if (instance_p->gNB_name) {
@@ -469,7 +469,7 @@ static int ngap_gNB_generate_ng_setup_request(
     ie->value.present = NGAP_NGSetupRequestIEs__value_PR_RANNodeName;
     OCTET_STRING_fromBuf(&ie->value.choice.RANNodeName, instance_p->gNB_name,
                          strlen(instance_p->gNB_name));
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
 
   /* mandatory */
@@ -502,15 +502,15 @@ static int ngap_gNB_generate_ng_setup_request(
           }
           
 
-          ASN_SEQUENCE_ADD(&plmn->tAISliceSupportList.list, ssi);
+          asn1cSeqAdd(&plmn->tAISliceSupportList.list, ssi);
         }
         
-        ASN_SEQUENCE_ADD(&ta->broadcastPLMNList.list, plmn);
+        asn1cSeqAdd(&ta->broadcastPLMNList.list, plmn);
       }
     }
-    ASN_SEQUENCE_ADD(&ie->value.choice.SupportedTAList.list, ta);
+    asn1cSeqAdd(&ie->value.choice.SupportedTAList.list, ta);
   }
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   
   /* mandatory */
   ie = (NGAP_NGSetupRequestIEs_t *)calloc(1, sizeof(NGAP_NGSetupRequestIEs_t));
@@ -518,7 +518,7 @@ static int ngap_gNB_generate_ng_setup_request(
   ie->criticality = NGAP_Criticality_ignore;
   ie->value.present = NGAP_NGSetupRequestIEs__value_PR_PagingDRX;
   ie->value.choice.PagingDRX = instance_p->default_drx;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
 
   if (ngap_gNB_encode_pdu(&pdu, &buffer, &len) < 0) {
diff --git a/openair3/NGAP/ngap_gNB_context_management_procedures.c b/openair3/NGAP/ngap_gNB_context_management_procedures.c
index ea22c91bc2a06e67dbc10e87a12d72776a5b65e1..6c1a8584a679618f99fec9bf24698d48cd72ca0b 100644
--- a/openair3/NGAP/ngap_gNB_context_management_procedures.c
+++ b/openair3/NGAP/ngap_gNB_context_management_procedures.c
@@ -98,7 +98,7 @@ int ngap_ue_context_release_complete(instance_t instance,
   ie->criticality = NGAP_Criticality_ignore;
   ie->value.present = NGAP_UEContextReleaseComplete_IEs__value_PR_AMF_UE_NGAP_ID;
   asn_uint642INTEGER(&ie->value.choice.AMF_UE_NGAP_ID, ue_context_p->amf_ue_ngap_id);
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (NGAP_UEContextReleaseComplete_IEs_t *)calloc(1, sizeof(NGAP_UEContextReleaseComplete_IEs_t));
@@ -106,7 +106,7 @@ int ngap_ue_context_release_complete(instance_t instance,
   ie->criticality = NGAP_Criticality_ignore;
   ie->value.present = NGAP_UEContextReleaseComplete_IEs__value_PR_RAN_UE_NGAP_ID;
   ie->value.choice.RAN_UE_NGAP_ID = ue_release_complete_p->gNB_ue_ngap_id;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
 
   if (ngap_gNB_encode_pdu(&pdu, &buffer, &length) < 0) {
@@ -183,7 +183,7 @@ int ngap_ue_context_release_req(instance_t instance,
   ie->criticality = NGAP_Criticality_reject;
   ie->value.present = NGAP_UEContextReleaseRequest_IEs__value_PR_AMF_UE_NGAP_ID;
   asn_uint642INTEGER(&ie->value.choice.AMF_UE_NGAP_ID, ue_context_p->amf_ue_ngap_id);
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (NGAP_UEContextReleaseRequest_IEs_t *)calloc(1, sizeof(NGAP_UEContextReleaseRequest_IEs_t));
@@ -191,7 +191,7 @@ int ngap_ue_context_release_req(instance_t instance,
   ie->criticality = NGAP_Criticality_reject;
   ie->value.present = NGAP_UEContextReleaseRequest_IEs__value_PR_RAN_UE_NGAP_ID;
   ie->value.choice.RAN_UE_NGAP_ID = ue_release_req_p->gNB_ue_ngap_id;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* optional */
   if (ue_release_req_p->nb_of_pdusessions > 0) {
@@ -203,9 +203,9 @@ int ngap_ue_context_release_req(instance_t instance,
       NGAP_PDUSessionResourceItemCxtRelReq_t     *item;
       item = (NGAP_PDUSessionResourceItemCxtRelReq_t *)calloc(1,sizeof(NGAP_PDUSessionResourceItemCxtRelReq_t));
       item->pDUSessionID = ue_release_req_p->pdusessions[i].pdusession_id;
-      ASN_SEQUENCE_ADD(&ie->value.choice.PDUSessionResourceListCxtRelReq.list, item);
+      asn1cSeqAdd(&ie->value.choice.PDUSessionResourceListCxtRelReq.list, item);
     }
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
 
   /* mandatory */
@@ -246,7 +246,7 @@ int ngap_ue_context_release_req(instance_t instance,
       break;
   }
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
 
 
diff --git a/openair3/NGAP/ngap_gNB_handlers.c b/openair3/NGAP/ngap_gNB_handlers.c
index 35b152f1298ee2e7ab35fe57a2640e68673740ec..ab2503f1d56432ed3a759d4c98e226c479557951 100644
--- a/openair3/NGAP/ngap_gNB_handlers.c
+++ b/openair3/NGAP/ngap_gNB_handlers.c
@@ -31,8 +31,6 @@
 
 #include "intertask_interface.h"
 
-#include "asn1_conversions.h"
-
 #include "ngap_common.h"
 // #include "ngap_gNB.h"
 #include "ngap_gNB_defs.h"
diff --git a/openair3/NGAP/ngap_gNB_nas_procedures.c b/openair3/NGAP/ngap_gNB_nas_procedures.c
index 976a4220ddb2dbd08cf9cf1a677ecc702530def6..f163b5b8386fc4da1cc0675f489bf7c74518c3de 100644
--- a/openair3/NGAP/ngap_gNB_nas_procedures.c
+++ b/openair3/NGAP/ngap_gNB_nas_procedures.c
@@ -199,7 +199,7 @@ int ngap_gNB_handle_nas_first_req(
   ie->criticality = NGAP_Criticality_reject;
   ie->value.present = NGAP_InitialUEMessage_IEs__value_PR_RAN_UE_NGAP_ID;
   ie->value.choice.RAN_UE_NGAP_ID = ue_desc_p->gNB_ue_ngap_id;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   /* mandatory */
   ie = (NGAP_InitialUEMessage_IEs_t *)calloc(1, sizeof(NGAP_InitialUEMessage_IEs_t));
   ie->id = NGAP_ProtocolIE_ID_id_NAS_PDU;
@@ -214,7 +214,7 @@ int ngap_gNB_handle_nas_first_req(
          ngap_nas_first_req_p->nas_pdu.length);
 #endif
   ie->value.choice.NAS_PDU.size = ngap_nas_first_req_p->nas_pdu.length;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   
   /* mandatory */
   ie = (NGAP_InitialUEMessage_IEs_t *)calloc(1, sizeof(NGAP_InitialUEMessage_IEs_t));
@@ -244,7 +244,7 @@ int ngap_gNB_handle_nas_first_req(
                     instance_p->mnc_digit_length[ue_desc_p->selected_plmn_identity],
                     &userinfo_nr_p->tAI.pLMNIdentity);
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
 
   /* Set the establishment cause according to those provided by RRC */
@@ -257,7 +257,7 @@ int ngap_gNB_handle_nas_first_req(
   ie->criticality = NGAP_Criticality_ignore;
   ie->value.present = NGAP_InitialUEMessage_IEs__value_PR_RRCEstablishmentCause;
   ie->value.choice.RRCEstablishmentCause = ngap_nas_first_req_p->establishment_cause;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* optional */
   if (ngap_nas_first_req_p->ue_identity.presenceMask & NGAP_UE_IDENTITIES_FiveG_s_tmsi) {
@@ -272,7 +272,7 @@ int ngap_gNB_handle_nas_first_req(
                              &ie->value.choice.FiveG_S_TMSI.aMFPointer);
     M_TMSI_TO_OCTET_STRING(ngap_nas_first_req_p->ue_identity.s_tmsi.m_tmsi,
                              &ie->value.choice.FiveG_S_TMSI.fiveG_TMSI);
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
 
 
@@ -282,7 +282,7 @@ int ngap_gNB_handle_nas_first_req(
   ie->criticality = NGAP_Criticality_ignore;
   ie->value.present = NGAP_InitialUEMessage_IEs__value_PR_UEContextRequest;
   ie->value.choice.UEContextRequest = NGAP_UEContextRequest_requested;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
 
   if (ngap_gNB_encode_pdu(&pdu, &buffer, &length) < 0) {
@@ -455,14 +455,14 @@ int ngap_gNB_nas_uplink(instance_t instance, ngap_uplink_nas_t *ngap_uplink_nas_
   ie->value.present = NGAP_UplinkNASTransport_IEs__value_PR_AMF_UE_NGAP_ID;
   //ie->value.choice.AMF_UE_NGAP_ID = ue_context_p->amf_ue_ngap_id;
   asn_uint642INTEGER(&ie->value.choice.AMF_UE_NGAP_ID, ue_context_p->amf_ue_ngap_id);
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   /* mandatory */
   ie = (NGAP_UplinkNASTransport_IEs_t *)calloc(1, sizeof(NGAP_UplinkNASTransport_IEs_t));
   ie->id = NGAP_ProtocolIE_ID_id_RAN_UE_NGAP_ID;
   ie->criticality = NGAP_Criticality_reject;
   ie->value.present = NGAP_UplinkNASTransport_IEs__value_PR_RAN_UE_NGAP_ID;
   ie->value.choice.RAN_UE_NGAP_ID = ue_context_p->gNB_ue_ngap_id;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   /* mandatory */
   ie = (NGAP_UplinkNASTransport_IEs_t *)calloc(1, sizeof(NGAP_UplinkNASTransport_IEs_t));
   ie->id = NGAP_ProtocolIE_ID_id_NAS_PDU;
@@ -470,7 +470,7 @@ int ngap_gNB_nas_uplink(instance_t instance, ngap_uplink_nas_t *ngap_uplink_nas_
   ie->value.present = NGAP_UplinkNASTransport_IEs__value_PR_NAS_PDU;
   ie->value.choice.NAS_PDU.buf = ngap_uplink_nas_p->nas_pdu.buffer;
   ie->value.choice.NAS_PDU.size = ngap_uplink_nas_p->nas_pdu.length;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   /* mandatory */
   ie = (NGAP_UplinkNASTransport_IEs_t *)calloc(1, sizeof(NGAP_UplinkNASTransport_IEs_t));
   ie->id = NGAP_ProtocolIE_ID_id_UserLocationInformation;
@@ -498,7 +498,7 @@ int ngap_gNB_nas_uplink(instance_t instance, ngap_uplink_nas_t *ngap_uplink_nas_
                     &userinfo_nr_p->tAI.pLMNIdentity);
 
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   if (ngap_gNB_encode_pdu(&pdu, &buffer, &length) < 0) {
     NGAP_ERROR("Failed to encode uplink NAS transport\n");
@@ -553,14 +553,14 @@ int ngap_gNB_nas_non_delivery_ind(instance_t instance,
   ie->criticality = NGAP_Criticality_reject;
   ie->value.present = NGAP_NASNonDeliveryIndication_IEs__value_PR_AMF_UE_NGAP_ID;
   asn_uint642INTEGER(&ie->value.choice.AMF_UE_NGAP_ID, ue_context_p->amf_ue_ngap_id);
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   /* mandatory */
   ie = (NGAP_NASNonDeliveryIndication_IEs_t *)calloc(1, sizeof(NGAP_NASNonDeliveryIndication_IEs_t));
   ie->id = NGAP_ProtocolIE_ID_id_RAN_UE_NGAP_ID;
   ie->criticality = NGAP_Criticality_reject;
   ie->value.present = NGAP_NASNonDeliveryIndication_IEs__value_PR_RAN_UE_NGAP_ID;
   ie->value.choice.RAN_UE_NGAP_ID = ue_context_p->gNB_ue_ngap_id;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   /* mandatory */
   ie = (NGAP_NASNonDeliveryIndication_IEs_t *)calloc(1, sizeof(NGAP_NASNonDeliveryIndication_IEs_t));
   ie->id = NGAP_ProtocolIE_ID_id_NAS_PDU;
@@ -568,7 +568,7 @@ int ngap_gNB_nas_non_delivery_ind(instance_t instance,
   ie->value.present = NGAP_NASNonDeliveryIndication_IEs__value_PR_NAS_PDU;
   ie->value.choice.NAS_PDU.buf = ngap_nas_non_delivery_ind->nas_pdu.buffer;
   ie->value.choice.NAS_PDU.size = ngap_nas_non_delivery_ind->nas_pdu.length;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   /* mandatory */
   ie = (NGAP_NASNonDeliveryIndication_IEs_t *)calloc(1, sizeof(NGAP_NASNonDeliveryIndication_IEs_t));
   ie->id = NGAP_ProtocolIE_ID_id_Cause;
@@ -577,7 +577,7 @@ int ngap_gNB_nas_non_delivery_ind(instance_t instance,
   ie->value.present = NGAP_NASNonDeliveryIndication_IEs__value_PR_Cause;
   ie->value.choice.Cause.present = NGAP_Cause_PR_radioNetwork;
   ie->value.choice.Cause.choice.radioNetwork = NGAP_CauseRadioNetwork_radio_connection_with_ue_lost;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   if (ngap_gNB_encode_pdu(&pdu, &buffer, &length) < 0) {
     NGAP_ERROR("Failed to encode NAS NON delivery indication\n");
@@ -650,14 +650,14 @@ int ngap_gNB_initial_ctxt_resp(
   ie->value.present = NGAP_InitialContextSetupResponseIEs__value_PR_AMF_UE_NGAP_ID;
   //ie->value.choice.AMF_UE_NGAP_ID = ue_context_p->amf_ue_ngap_id;
   asn_uint642INTEGER(&ie->value.choice.AMF_UE_NGAP_ID, ue_context_p->amf_ue_ngap_id);
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   /* mandatory */
   ie = (NGAP_InitialContextSetupResponseIEs_t *)calloc(1, sizeof(NGAP_InitialContextSetupResponseIEs_t));
   ie->id = NGAP_ProtocolIE_ID_id_RAN_UE_NGAP_ID;
   ie->criticality = NGAP_Criticality_ignore;
   ie->value.present = NGAP_InitialContextSetupResponseIEs__value_PR_RAN_UE_NGAP_ID;
   ie->value.choice.RAN_UE_NGAP_ID = initial_ctxt_resp_p->gNB_ue_ngap_id;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* optional */
   if (initial_ctxt_resp_p->nb_of_pdusessions){
@@ -708,7 +708,7 @@ int ngap_gNB_initial_ctxt_resp(
         //  ass_qos_item_p->qosFlowMappingIndication = malloc(sizeof(*ass_qos_item_p->qosFlowMappingIndication));
         //  *ass_qos_item_p->qosFlowMappingIndication = initial_ctxt_resp_p->pdusessions[i].associated_qos_flows[j].qos_flow_mapping_ind;
         // }
-        ASN_SEQUENCE_ADD(&pdusessionTransfer_p->dLQosFlowPerTNLInformation.associatedQosFlowList.list, ass_qos_item_p);
+        asn1cSeqAdd(&pdusessionTransfer_p->dLQosFlowPerTNLInformation.associatedQosFlowList.list, ass_qos_item_p);
       }
                
       //res = asn_encode_to_new_buffer(NULL, ATS_ALIGNED_CANONICAL_PER, &asn_DEF_NGAP_PDUSessionResourceSetupResponseTransfer, pdusessionTransfer_p);
@@ -730,10 +730,10 @@ int ngap_gNB_initial_ctxt_resp(
 
       ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_NGAP_PDUSessionResourceSetupResponseTransfer, pdusessionTransfer_p);
     
-      ASN_SEQUENCE_ADD(&ie->value.choice.PDUSessionResourceSetupListCxtRes.list, item);
+      asn1cSeqAdd(&ie->value.choice.PDUSessionResourceSetupListCxtRes.list, item);
     }
 
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
   /* optional */
   if (initial_ctxt_resp_p->nb_of_pdusessions_failed) {
@@ -787,10 +787,10 @@ int ngap_gNB_initial_ctxt_resp(
 
         ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer, pdusessionUnTransfer_p);
     
-        ASN_SEQUENCE_ADD(&ie->value.choice.PDUSessionResourceFailedToSetupListCxtRes.list, item);
+        asn1cSeqAdd(&ie->value.choice.PDUSessionResourceFailedToSetupListCxtRes.list, item);
     }
 
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
 
   /* optional */
@@ -800,7 +800,7 @@ int ngap_gNB_initial_ctxt_resp(
     ie->criticality = NGAP_Criticality_ignore;
     ie->value.present = NGAP_InitialContextSetupResponseIEs__value_PR_CriticalityDiagnostics;
     // ie->value.choice.CriticalityDiagnostics =;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
 
   if (asn1_xer_print) {
@@ -873,14 +873,14 @@ int ngap_gNB_ue_capabilities(instance_t instance,
   ie->value.present = NGAP_UERadioCapabilityInfoIndicationIEs__value_PR_AMF_UE_NGAP_ID;
   //ie->value.choice.AMF_UE_NGAP_ID = ue_context_p->amf_ue_ngap_id;
   asn_uint642INTEGER(&ie->value.choice.AMF_UE_NGAP_ID, ue_context_p->amf_ue_ngap_id);
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   /* mandatory */
   ie = (NGAP_UERadioCapabilityInfoIndicationIEs_t *)calloc(1, sizeof(NGAP_UERadioCapabilityInfoIndicationIEs_t));
   ie->id = NGAP_ProtocolIE_ID_id_RAN_UE_NGAP_ID;
   ie->criticality = NGAP_Criticality_reject;
   ie->value.present = NGAP_UERadioCapabilityInfoIndicationIEs__value_PR_RAN_UE_NGAP_ID;
   ie->value.choice.RAN_UE_NGAP_ID = ue_cap_info_ind_p->gNB_ue_ngap_id;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   /* mandatory */
   ie = (NGAP_UERadioCapabilityInfoIndicationIEs_t *)calloc(1, sizeof(NGAP_UERadioCapabilityInfoIndicationIEs_t));
   ie->id = NGAP_ProtocolIE_ID_id_UERadioCapability;
@@ -888,7 +888,7 @@ int ngap_gNB_ue_capabilities(instance_t instance,
   ie->value.present = NGAP_UERadioCapabilityInfoIndicationIEs__value_PR_UERadioCapability;
   ie->value.choice.UERadioCapability.buf = ue_cap_info_ind_p->ue_radio_cap.buffer;
   ie->value.choice.UERadioCapability.size = ue_cap_info_ind_p->ue_radio_cap.length;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   /* optional */
   //NGAP_UERadioCapabilityForPaging TBD
   if (ngap_gNB_encode_pdu(&pdu, &buffer, &length) < 0) {
@@ -955,14 +955,14 @@ int ngap_gNB_pdusession_setup_resp(instance_t instance,
   ie->criticality = NGAP_Criticality_ignore;
   ie->value.present = NGAP_PDUSessionResourceSetupResponseIEs__value_PR_AMF_UE_NGAP_ID;
   asn_uint642INTEGER(&ie->value.choice.AMF_UE_NGAP_ID, ue_context_p->amf_ue_ngap_id);
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   /* mandatory */
   ie = calloc(1, sizeof *ie );
   ie->id = NGAP_ProtocolIE_ID_id_RAN_UE_NGAP_ID;
   ie->criticality = NGAP_Criticality_ignore;
   ie->value.present = NGAP_PDUSessionResourceSetupResponseIEs__value_PR_RAN_UE_NGAP_ID;
   ie->value.choice.RAN_UE_NGAP_ID = pdusession_setup_resp_p->gNB_ue_ngap_id;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* optional */
   if (pdusession_setup_resp_p->nb_of_pdusessions > 0) {
@@ -1015,7 +1015,7 @@ int ngap_gNB_pdusession_setup_resp(instance_t instance,
         //  ass_qos_item_p->qosFlowMappingIndication = malloc(sizeof(*ass_qos_item_p->qosFlowMappingIndication));
         //  *ass_qos_item_p->qosFlowMappingIndication = pdusession_setup_resp_p->pdusessions[i].associated_qos_flows[j].qos_flow_mapping_ind;
         //}
-        ASN_SEQUENCE_ADD(&pdusessionTransfer_p->dLQosFlowPerTNLInformation.associatedQosFlowList.list, ass_qos_item_p);
+        asn1cSeqAdd(&pdusessionTransfer_p->dLQosFlowPerTNLInformation.associatedQosFlowList.list, ass_qos_item_p);
       }
 
       asn_encode_to_new_buffer_result_t res = asn_encode_to_new_buffer(NULL, ATS_ALIGNED_CANONICAL_PER,
@@ -1026,9 +1026,9 @@ int ngap_gNB_pdusession_setup_resp(instance_t instance,
 
       ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_NGAP_PDUSessionResourceSetupResponseTransfer, pdusessionTransfer_p);
 
-      ASN_SEQUENCE_ADD(&ie->value.choice.PDUSessionResourceSetupListSURes.list, item);
+      asn1cSeqAdd(&ie->value.choice.PDUSessionResourceSetupListSURes.list, item);
     }
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
 
   /* optional */
@@ -1084,10 +1084,10 @@ int ngap_gNB_pdusession_setup_resp(instance_t instance,
 
       ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer, pdusessionUnTransfer_p);
 
-      ASN_SEQUENCE_ADD(&ie->value.choice.PDUSessionResourceFailedToSetupListSURes.list, item);
+      asn1cSeqAdd(&ie->value.choice.PDUSessionResourceFailedToSetupListSURes.list, item);
     }
 
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
 
   /* optional */
@@ -1097,7 +1097,7 @@ int ngap_gNB_pdusession_setup_resp(instance_t instance,
       ie->criticality = NGAP_Criticality_ignore;
       ie->value.present = NGAP_PDUSessionResourceSetupResponseIEs__value_PR_CriticalityDiagnostics;
       // ie->value.choice.CriticalityDiagnostics = ;
-      ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+      asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
 
 
@@ -1167,14 +1167,14 @@ int ngap_gNB_pdusession_modify_resp(instance_t instance,
   ie->criticality = NGAP_Criticality_ignore;
   ie->value.present = NGAP_PDUSessionResourceModifyResponseIEs__value_PR_AMF_UE_NGAP_ID;
   asn_uint642INTEGER(&ie->value.choice.AMF_UE_NGAP_ID, ue_context_p->amf_ue_ngap_id);
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   /* mandatory */
   ie = (NGAP_PDUSessionResourceModifyResponseIEs_t *)calloc(1, sizeof(NGAP_PDUSessionResourceModifyResponseIEs_t));
   ie->id = NGAP_ProtocolIE_ID_id_RAN_UE_NGAP_ID;
   ie->criticality = NGAP_Criticality_ignore;
   ie->value.present = NGAP_PDUSessionResourceModifyResponseIEs__value_PR_RAN_UE_NGAP_ID;
   ie->value.choice.RAN_UE_NGAP_ID = pdusession_modify_resp_p->gNB_ue_ngap_id;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* PDUSessionResourceModifyListModRes optional */
   if (pdusession_modify_resp_p->nb_of_pdusessions > 0) {
@@ -1198,7 +1198,7 @@ int ngap_gNB_pdusession_modify_resp(instance_t instance,
         NGAP_QosFlowAddOrModifyResponseItem_t *qosFlowAddOrModifyResponseItem_p = calloc(1, sizeof(NGAP_QosFlowAddOrModifyResponseItem_t));
         qosFlowAddOrModifyResponseItem_p->qosFlowIdentifier = 
           pdusession_modify_resp_p->pdusessions[i].qos[qos_flow_index].qfi;
-        ASN_SEQUENCE_ADD(&transfer_p->qosFlowAddOrModifyResponseList->list, qosFlowAddOrModifyResponseItem_p);
+        asn1cSeqAdd(&transfer_p->qosFlowAddOrModifyResponseList->list, qosFlowAddOrModifyResponseItem_p);
       }
 
       memset(&res, 0, sizeof(res));
@@ -1209,10 +1209,10 @@ int ngap_gNB_pdusession_modify_resp(instance_t instance,
       ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_NGAP_PDUSessionResourceModifyResponseTransfer, transfer_p);
 
       NGAP_DEBUG("pdusession_modify_resp: modified pdusession ID %ld\n", item->pDUSessionID);
-      ASN_SEQUENCE_ADD(&ie->value.choice.PDUSessionResourceModifyListModRes.list, item);
+      asn1cSeqAdd(&ie->value.choice.PDUSessionResourceModifyListModRes.list, item);
     }
 
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
 
   /* optional */
@@ -1267,10 +1267,10 @@ int ngap_gNB_pdusession_modify_resp(instance_t instance,
 
       
       NGAP_DEBUG("pdusession_modify_resp: failed pdusession ID %ld\n", item->pDUSessionID);
-      ASN_SEQUENCE_ADD(&ie->value.choice.PDUSessionResourceFailedToModifyListModRes.list, item);
+      asn1cSeqAdd(&ie->value.choice.PDUSessionResourceFailedToModifyListModRes.list, item);
     }
 
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
 
   /* optional */
@@ -1280,7 +1280,7 @@ int ngap_gNB_pdusession_modify_resp(instance_t instance,
     ie->criticality = NGAP_Criticality_ignore;
     ie->value.present = NGAP_PDUSessionResourceModifyResponseIEs__value_PR_CriticalityDiagnostics;
     // ie->value.choice.CriticalityDiagnostics = ;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
 
   fprintf(stderr, "start encode\n");
@@ -1338,14 +1338,14 @@ int ngap_gNB_pdusession_release_resp(instance_t instance,
   ie->criticality = NGAP_Criticality_ignore;
   ie->value.present = NGAP_PDUSessionResourceReleaseResponseIEs__value_PR_AMF_UE_NGAP_ID;
   asn_uint642INTEGER(&ie->value.choice.AMF_UE_NGAP_ID, ue_context_p->amf_ue_ngap_id);
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   /* mandatory */
   ie = (NGAP_PDUSessionResourceReleaseResponseIEs_t *)calloc(1, sizeof(NGAP_PDUSessionResourceReleaseResponseIEs_t));
   ie->id = NGAP_ProtocolIE_ID_id_RAN_UE_NGAP_ID;
   ie->criticality = NGAP_Criticality_ignore;
   ie->value.present = NGAP_PDUSessionResourceReleaseResponseIEs__value_PR_RAN_UE_NGAP_ID;
   ie->value.choice.RAN_UE_NGAP_ID = pdusession_release_resp_p->gNB_ue_ngap_id;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
     /* optional */
     if (pdusession_release_resp_p->nb_of_pdusessions_released > 0) {
@@ -1371,10 +1371,10 @@ int ngap_gNB_pdusession_release_resp(instance_t instance,
                 NGAP_DEBUG("pdusession_release_resp: transfer_buffer is NULL!\n");
             }
             NGAP_DEBUG("pdusession_release_resp: pdusession ID %ld\n", item->pDUSessionID);
-            ASN_SEQUENCE_ADD(&ie->value.choice.PDUSessionResourceReleasedListRelRes.list, item);
+            asn1cSeqAdd(&ie->value.choice.PDUSessionResourceReleasedListRelRes.list, item);
         }
 
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
 
 
diff --git a/openair3/S1AP/s1ap_common.h b/openair3/S1AP/s1ap_common.h
index 9eee0d8dff118662f58bbf85a45654b8d529fd2f..bdfc9b9f6f4df8e033d4f2b99d89e8b8feabbd26 100644
--- a/openair3/S1AP/s1ap_common.h
+++ b/openair3/S1AP/s1ap_common.h
@@ -27,6 +27,7 @@
 #define S1AP_COMMON_H_
 
 #include "common/utils/LOG/log.h"
+#include "oai_asn1.h"
 
 #include "S1AP_ProtocolIE-Field.h"
 #include "S1AP_S1AP-PDU.h"
diff --git a/openair3/S1AP/s1ap_eNB.c b/openair3/S1AP/s1ap_eNB.c
index 5f30386bb335253532d2a143f982cd6f59c645d4..f9dcd73f6ba790aa8ee1af980559f65ae0a6d494 100644
--- a/openair3/S1AP/s1ap_eNB.c
+++ b/openair3/S1AP/s1ap_eNB.c
@@ -698,7 +698,7 @@ static int s1ap_eNB_generate_s1_setup_request(
             ie->value.choice.Global_ENB_ID.eNB_ID.choice.macroENB_ID.buf[0],
             ie->value.choice.Global_ENB_ID.eNB_ID.choice.macroENB_ID.buf[1],
             ie->value.choice.Global_ENB_ID.eNB_ID.choice.macroENB_ID.buf[2]);
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* optional */
   if (instance_p->eNB_name) {
@@ -708,7 +708,7 @@ static int s1ap_eNB_generate_s1_setup_request(
     ie->value.present = S1AP_S1SetupRequestIEs__value_PR_ENBname;
     OCTET_STRING_fromBuf(&ie->value.choice.ENBname, instance_p->eNB_name,
                          strlen(instance_p->eNB_name));
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
 
   /* mandatory */
@@ -726,19 +726,19 @@ static int s1ap_eNB_generate_s1_setup_request(
                         instance_p->mnc[s1ap_mme_data_p->broadcast_plmn_index[i]],
                         instance_p->mnc_digit_length[s1ap_mme_data_p->broadcast_plmn_index[i]],
                         plmn);
-        ASN_SEQUENCE_ADD(&ta->broadcastPLMNs.list, plmn);
+        asn1cSeqAdd(&ta->broadcastPLMNs.list, plmn);
       }
     }
-    ASN_SEQUENCE_ADD(&ie->value.choice.SupportedTAs.list, ta);
+    asn1cSeqAdd(&ie->value.choice.SupportedTAs.list, ta);
   }
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   /* mandatory */
   ie = (S1AP_S1SetupRequestIEs_t *)calloc(1, sizeof(S1AP_S1SetupRequestIEs_t));
   ie->id = S1AP_ProtocolIE_ID_id_DefaultPagingDRX;
   ie->criticality = S1AP_Criticality_ignore;
   ie->value.present = S1AP_S1SetupRequestIEs__value_PR_PagingDRX;
   ie->value.choice.PagingDRX = instance_p->default_drx;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
 
   if (s1ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
diff --git a/openair3/S1AP/s1ap_eNB_context_management_procedures.c b/openair3/S1AP/s1ap_eNB_context_management_procedures.c
index 6255abb14d6d3b0525ae9a13c07a7197d36f9071..826debc2bd337d2228adb6fb5349c60c19f0573e 100644
--- a/openair3/S1AP/s1ap_eNB_context_management_procedures.c
+++ b/openair3/S1AP/s1ap_eNB_context_management_procedures.c
@@ -93,7 +93,7 @@ int s1ap_ue_context_release_complete(instance_t instance,
   ie->criticality = S1AP_Criticality_ignore;
   ie->value.present = S1AP_UEContextReleaseComplete_IEs__value_PR_MME_UE_S1AP_ID;
   ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (S1AP_UEContextReleaseComplete_IEs_t *)calloc(1, sizeof(S1AP_UEContextReleaseComplete_IEs_t));
@@ -101,7 +101,7 @@ int s1ap_ue_context_release_complete(instance_t instance,
   ie->criticality = S1AP_Criticality_ignore;
   ie->value.present = S1AP_UEContextReleaseComplete_IEs__value_PR_ENB_UE_S1AP_ID;
   ie->value.choice.ENB_UE_S1AP_ID = ue_release_complete_p->eNB_ue_s1ap_id;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
 
   if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) {
@@ -177,7 +177,7 @@ int s1ap_ue_context_release_req(instance_t instance,
   ie->criticality = S1AP_Criticality_reject;
   ie->value.present = S1AP_UEContextReleaseRequest_IEs__value_PR_MME_UE_S1AP_ID;
   ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (S1AP_UEContextReleaseRequest_IEs_t *)calloc(1, sizeof(S1AP_UEContextReleaseRequest_IEs_t));
@@ -185,7 +185,7 @@ int s1ap_ue_context_release_req(instance_t instance,
   ie->criticality = S1AP_Criticality_reject;
   ie->value.present = S1AP_UEContextReleaseRequest_IEs__value_PR_ENB_UE_S1AP_ID;
   ie->value.choice.ENB_UE_S1AP_ID = ue_release_req_p->eNB_ue_s1ap_id;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (S1AP_UEContextReleaseRequest_IEs_t *)calloc(1, sizeof(S1AP_UEContextReleaseRequest_IEs_t));
@@ -225,7 +225,7 @@ int s1ap_ue_context_release_req(instance_t instance,
       break;
   }
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
 
 
diff --git a/openair3/S1AP/s1ap_eNB_handlers.c b/openair3/S1AP/s1ap_eNB_handlers.c
index b3b38e7017a55c99d7af8a66e5bec8d51dfdac08..8291294bd2e5b0a54ef262a440c0b41c242a4a98 100644
--- a/openair3/S1AP/s1ap_eNB_handlers.c
+++ b/openair3/S1AP/s1ap_eNB_handlers.c
@@ -31,8 +31,6 @@
 
 #include "intertask_interface.h"
 
-#include "asn1_conversions.h"
-
 #include "s1ap_common.h"
 // #include "s1ap_eNB.h"
 #include "s1ap_eNB_defs.h"
@@ -1898,7 +1896,7 @@ static int s1ap_eNB_snd_s1_setup_request(
             ie->value.choice.Global_ENB_ID.eNB_ID.choice.macroENB_ID.buf[0],
             ie->value.choice.Global_ENB_ID.eNB_ID.choice.macroENB_ID.buf[1],
             ie->value.choice.Global_ENB_ID.eNB_ID.choice.macroENB_ID.buf[2]);
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* optional */
   if (instance_p->eNB_name) {
@@ -1908,7 +1906,7 @@ static int s1ap_eNB_snd_s1_setup_request(
     ie->value.present = S1AP_S1SetupRequestIEs__value_PR_ENBname;
     OCTET_STRING_fromBuf(&ie->value.choice.ENBname, instance_p->eNB_name,
                          strlen(instance_p->eNB_name));
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
 
   /* mandatory */
@@ -1926,19 +1924,19 @@ static int s1ap_eNB_snd_s1_setup_request(
                         instance_p->mnc[s1ap_mme_data_p->broadcast_plmn_index[i]],
                         instance_p->mnc_digit_length[s1ap_mme_data_p->broadcast_plmn_index[i]],
                         plmn);
-        ASN_SEQUENCE_ADD(&ta->broadcastPLMNs.list, plmn);
+        asn1cSeqAdd(&ta->broadcastPLMNs.list, plmn);
       }
     }
-    ASN_SEQUENCE_ADD(&ie->value.choice.SupportedTAs.list, ta);
+    asn1cSeqAdd(&ie->value.choice.SupportedTAs.list, ta);
   }
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
   /* mandatory */
   ie = (S1AP_S1SetupRequestIEs_t *)calloc(1, sizeof(S1AP_S1SetupRequestIEs_t));
   ie->id = S1AP_ProtocolIE_ID_id_DefaultPagingDRX;
   ie->criticality = S1AP_Criticality_ignore;
   ie->value.present = S1AP_S1SetupRequestIEs__value_PR_PagingDRX;
   ie->value.choice.PagingDRX = instance_p->default_drx;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* optional */
   if (0) {
@@ -1947,7 +1945,7 @@ static int s1ap_eNB_snd_s1_setup_request(
     ie->criticality = S1AP_Criticality_reject;
     ie->value.present = S1AP_S1SetupRequestIEs__value_PR_CSG_IdList;
     // ie->value.choice.CSG_IdList = ;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
 
   /* optional */
@@ -1959,7 +1957,7 @@ static int s1ap_eNB_snd_s1_setup_request(
     ie->criticality = S1AP_Criticality_ignore;
     ie->value.present = S1AP_S1SetupRequestIEs__value_PR_UE_RetentionInformation;
     // ie->value.choice.UE_RetentionInformation = ;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
 
   /* optional */
@@ -1969,7 +1967,7 @@ static int s1ap_eNB_snd_s1_setup_request(
     ie->criticality = S1AP_Criticality_ignore;
     ie->value.present = S1AP_S1SetupRequestIEs__value_PR_NB_IoT_DefaultPagingDRX;
     // ie->value.choice.NB_IoT_DefaultPagingDRX = ;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
 
 #endif /* #if (S1AP_VERSION >= MAKE_VERSION(14, 0, 0)) */
diff --git a/openair3/S1AP/s1ap_eNB_nas_procedures.c b/openair3/S1AP/s1ap_eNB_nas_procedures.c
index 0b56d312114a4ab8ea7d42ae43d2f1cbb8e4dbdb..e4936295357edff81f428d3fc2a56f2a2117a772 100644
--- a/openair3/S1AP/s1ap_eNB_nas_procedures.c
+++ b/openair3/S1AP/s1ap_eNB_nas_procedures.c
@@ -190,7 +190,7 @@ int s1ap_eNB_handle_nas_first_req(
     ie->criticality = S1AP_Criticality_reject;
     ie->value.present = S1AP_InitialUEMessage_IEs__value_PR_ENB_UE_S1AP_ID;
     ie->value.choice.ENB_UE_S1AP_ID = ue_desc_p->eNB_ue_s1ap_id;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
     /* mandatory */
     ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t));
     ie->id = S1AP_ProtocolIE_ID_id_NAS_PDU;
@@ -205,7 +205,7 @@ int s1ap_eNB_handle_nas_first_req(
            s1ap_nas_first_req_p->nas_pdu.length);
 #endif
     ie->value.choice.NAS_PDU.size = s1ap_nas_first_req_p->nas_pdu.length;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
     /* mandatory */
     ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t));
     ie->id = S1AP_ProtocolIE_ID_id_TAI;
@@ -217,7 +217,7 @@ int s1ap_eNB_handle_nas_first_req(
                       instance_p->mnc[ue_desc_p->selected_plmn_identity],
                       instance_p->mnc_digit_length[ue_desc_p->selected_plmn_identity],
                       &ie->value.choice.TAI.pLMNidentity);
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
     /* mandatory */
     ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t));
     ie->id = S1AP_ProtocolIE_ID_id_EUTRAN_CGI;
@@ -235,7 +235,7 @@ int s1ap_eNB_handle_nas_first_req(
                     instance_p->mnc[ue_desc_p->selected_plmn_identity],
                     instance_p->mnc_digit_length[ue_desc_p->selected_plmn_identity],
                     &ie->value.choice.EUTRAN_CGI.pLMNidentity);
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
     /* Set the establishment cause according to those provided by RRC */
     DevCheck(s1ap_nas_first_req_p->establishment_cause < RRC_CAUSE_LAST,
              s1ap_nas_first_req_p->establishment_cause, RRC_CAUSE_LAST, 0);
@@ -245,7 +245,7 @@ int s1ap_eNB_handle_nas_first_req(
     ie->criticality = S1AP_Criticality_ignore;
     ie->value.present = S1AP_InitialUEMessage_IEs__value_PR_RRC_Establishment_Cause;
     ie->value.choice.RRC_Establishment_Cause = s1ap_nas_first_req_p->establishment_cause;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
 
     /* optional */
     if (s1ap_nas_first_req_p->ue_identity.presenceMask & UE_IDENTITIES_s_tmsi) {
@@ -258,7 +258,7 @@ int s1ap_eNB_handle_nas_first_req(
                                  &ie->value.choice.S_TMSI.mMEC);
         M_TMSI_TO_OCTET_STRING(s1ap_nas_first_req_p->ue_identity.s_tmsi.m_tmsi,
                                &ie->value.choice.S_TMSI.m_TMSI);
-        ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+        asn1cSeqAdd(&out->protocolIEs.list, ie);
     }
 
 
@@ -278,7 +278,7 @@ int s1ap_eNB_handle_nas_first_req(
                                 &ie->value.choice.GUMMEI.mME_Group_ID);
         MME_CODE_TO_OCTET_STRING(s1ap_nas_first_req_p->ue_identity.gummei.mme_code,
                                  &ie->value.choice.GUMMEI.mME_Code);
-        ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+        asn1cSeqAdd(&out->protocolIEs.list, ie);
     }
 
 
@@ -458,14 +458,14 @@ int s1ap_eNB_nas_uplink(instance_t instance, s1ap_uplink_nas_t *s1ap_uplink_nas_
     ie->criticality = S1AP_Criticality_reject;
     ie->value.present = S1AP_UplinkNASTransport_IEs__value_PR_MME_UE_S1AP_ID;
     ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
     /* mandatory */
     ie = (S1AP_UplinkNASTransport_IEs_t *)calloc(1, sizeof(S1AP_UplinkNASTransport_IEs_t));
     ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
     ie->criticality = S1AP_Criticality_reject;
     ie->value.present = S1AP_UplinkNASTransport_IEs__value_PR_ENB_UE_S1AP_ID;
     ie->value.choice.ENB_UE_S1AP_ID = ue_context_p->eNB_ue_s1ap_id;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
     /* mandatory */
     ie = (S1AP_UplinkNASTransport_IEs_t *)calloc(1, sizeof(S1AP_UplinkNASTransport_IEs_t));
     ie->id = S1AP_ProtocolIE_ID_id_NAS_PDU;
@@ -473,7 +473,7 @@ int s1ap_eNB_nas_uplink(instance_t instance, s1ap_uplink_nas_t *s1ap_uplink_nas_
     ie->value.present = S1AP_UplinkNASTransport_IEs__value_PR_NAS_PDU;
     ie->value.choice.NAS_PDU.buf = s1ap_uplink_nas_p->nas_pdu.buffer;
     ie->value.choice.NAS_PDU.size = s1ap_uplink_nas_p->nas_pdu.length;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
     /* mandatory */
     ie = (S1AP_UplinkNASTransport_IEs_t *)calloc(1, sizeof(S1AP_UplinkNASTransport_IEs_t));
     ie->id = S1AP_ProtocolIE_ID_id_EUTRAN_CGI;
@@ -488,7 +488,7 @@ int s1ap_eNB_nas_uplink(instance_t instance, s1ap_uplink_nas_t *s1ap_uplink_nas_
     MACRO_ENB_ID_TO_CELL_IDENTITY(s1ap_eNB_instance_p->eNB_id,
                                   0,
                                   &ie->value.choice.EUTRAN_CGI.cell_ID);
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
     /* mandatory */
     ie = (S1AP_UplinkNASTransport_IEs_t *)calloc(1, sizeof(S1AP_UplinkNASTransport_IEs_t));
     ie->id = S1AP_ProtocolIE_ID_id_TAI;
@@ -500,7 +500,7 @@ int s1ap_eNB_nas_uplink(instance_t instance, s1ap_uplink_nas_t *s1ap_uplink_nas_
         s1ap_eNB_instance_p->mnc_digit_length[ue_context_p->selected_plmn_identity],
         &ie->value.choice.TAI.pLMNidentity);
     TAC_TO_ASN1(s1ap_eNB_instance_p->tac, &ie->value.choice.TAI.tAC);
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
     /* optional */
 
 
@@ -555,14 +555,14 @@ int s1ap_eNB_nas_non_delivery_ind(instance_t instance,
     ie->criticality = S1AP_Criticality_reject;
     ie->value.present = S1AP_NASNonDeliveryIndication_IEs__value_PR_MME_UE_S1AP_ID;
     ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
     /* mandatory */
     ie = (S1AP_NASNonDeliveryIndication_IEs_t *)calloc(1, sizeof(S1AP_NASNonDeliveryIndication_IEs_t));
     ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
     ie->criticality = S1AP_Criticality_reject;
     ie->value.present = S1AP_NASNonDeliveryIndication_IEs__value_PR_ENB_UE_S1AP_ID;
     ie->value.choice.ENB_UE_S1AP_ID = ue_context_p->eNB_ue_s1ap_id;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
     /* mandatory */
     ie = (S1AP_NASNonDeliveryIndication_IEs_t *)calloc(1, sizeof(S1AP_NASNonDeliveryIndication_IEs_t));
     ie->id = S1AP_ProtocolIE_ID_id_NAS_PDU;
@@ -570,7 +570,7 @@ int s1ap_eNB_nas_non_delivery_ind(instance_t instance,
     ie->value.present = S1AP_NASNonDeliveryIndication_IEs__value_PR_NAS_PDU;
     ie->value.choice.NAS_PDU.buf = s1ap_nas_non_delivery_ind->nas_pdu.buffer;
     ie->value.choice.NAS_PDU.size = s1ap_nas_non_delivery_ind->nas_pdu.length;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
     /* mandatory */
     ie = (S1AP_NASNonDeliveryIndication_IEs_t *)calloc(1, sizeof(S1AP_NASNonDeliveryIndication_IEs_t));
     ie->id = S1AP_ProtocolIE_ID_id_Cause;
@@ -579,7 +579,7 @@ int s1ap_eNB_nas_non_delivery_ind(instance_t instance,
     ie->value.present = S1AP_NASNonDeliveryIndication_IEs__value_PR_Cause;
     ie->value.choice.Cause.present = S1AP_Cause_PR_radioNetwork;
     ie->value.choice.Cause.choice.radioNetwork = S1AP_CauseRadioNetwork_radio_connection_with_ue_lost;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
 
     if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) {
         S1AP_ERROR("Failed to encode NAS NON delivery indication\n");
@@ -644,14 +644,14 @@ int s1ap_eNB_initial_ctxt_resp(
     ie->criticality = S1AP_Criticality_ignore;
     ie->value.present = S1AP_InitialContextSetupResponseIEs__value_PR_MME_UE_S1AP_ID;
     ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
     /* mandatory */
     ie = (S1AP_InitialContextSetupResponseIEs_t *)calloc(1, sizeof(S1AP_InitialContextSetupResponseIEs_t));
     ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
     ie->criticality = S1AP_Criticality_ignore;
     ie->value.present = S1AP_InitialContextSetupResponseIEs__value_PR_ENB_UE_S1AP_ID;
     ie->value.choice.ENB_UE_S1AP_ID = initial_ctxt_resp_p->eNB_ue_s1ap_id;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
     /* mandatory */
     ie = (S1AP_InitialContextSetupResponseIEs_t *)calloc(1, sizeof(S1AP_InitialContextSetupResponseIEs_t));
     ie->id = S1AP_ProtocolIE_ID_id_E_RABSetupListCtxtSURes;
@@ -680,10 +680,10 @@ int s1ap_eNB_initial_ctxt_resp(
                    item->value.choice.E_RABSetupItemCtxtSURes.transportLayerAddress.buf[2],
                    item->value.choice.E_RABSetupItemCtxtSURes.transportLayerAddress.buf[3],
                    item->value.choice.E_RABSetupItemCtxtSURes.transportLayerAddress.size);
-        ASN_SEQUENCE_ADD(&ie->value.choice.E_RABSetupListCtxtSURes.list, item);
+        asn1cSeqAdd(&ie->value.choice.E_RABSetupListCtxtSURes.list, item);
     }
 
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
 
     /* optional */
     if (initial_ctxt_resp_p->nb_of_e_rabs_failed) {
@@ -729,10 +729,10 @@ int s1ap_eNB_initial_ctxt_resp(
             }
 
             S1AP_DEBUG("initial context setup response: failed e_rab ID %ld\n", item->value.choice.E_RABItem.e_RAB_ID);
-            ASN_SEQUENCE_ADD(&ie->value.choice.E_RABList.list, item);
+            asn1cSeqAdd(&ie->value.choice.E_RABList.list, item);
         }
 
-        ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+        asn1cSeqAdd(&out->protocolIEs.list, ie);
     }
 
     /* optional */
@@ -742,7 +742,7 @@ int s1ap_eNB_initial_ctxt_resp(
         ie->criticality = S1AP_Criticality_ignore;
         ie->value.present = S1AP_InitialContextSetupResponseIEs__value_PR_CriticalityDiagnostics;
         // ie->value.choice.CriticalityDiagnostics =;
-        ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+        asn1cSeqAdd(&out->protocolIEs.list, ie);
     }
 
     if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) {
@@ -807,14 +807,14 @@ int s1ap_eNB_ue_capabilities(instance_t instance,
     ie->criticality = S1AP_Criticality_reject;
     ie->value.present = S1AP_UECapabilityInfoIndicationIEs__value_PR_MME_UE_S1AP_ID;
     ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
     /* mandatory */
     ie = (S1AP_UECapabilityInfoIndicationIEs_t *)calloc(1, sizeof(S1AP_UECapabilityInfoIndicationIEs_t));
     ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
     ie->criticality = S1AP_Criticality_reject;
     ie->value.present = S1AP_UECapabilityInfoIndicationIEs__value_PR_ENB_UE_S1AP_ID;
     ie->value.choice.ENB_UE_S1AP_ID = ue_cap_info_ind_p->eNB_ue_s1ap_id;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
     /* mandatory */
     ie = (S1AP_UECapabilityInfoIndicationIEs_t *)calloc(1, sizeof(S1AP_UECapabilityInfoIndicationIEs_t));
     ie->id = S1AP_ProtocolIE_ID_id_UERadioCapability;
@@ -822,7 +822,7 @@ int s1ap_eNB_ue_capabilities(instance_t instance,
     ie->value.present = S1AP_UECapabilityInfoIndicationIEs__value_PR_UERadioCapability;
     ie->value.choice.UERadioCapability.buf = ue_cap_info_ind_p->ue_radio_cap.buffer;
     ie->value.choice.UERadioCapability.size = ue_cap_info_ind_p->ue_radio_cap.length;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
     /* optional */
 
     if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) {
@@ -888,14 +888,14 @@ int s1ap_eNB_e_rab_setup_resp(instance_t instance,
     ie->criticality = S1AP_Criticality_ignore;
     ie->value.present = S1AP_E_RABSetupResponseIEs__value_PR_MME_UE_S1AP_ID;
     ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
     /* mandatory */
     ie = (S1AP_E_RABSetupResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABSetupResponseIEs_t));
     ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
     ie->criticality = S1AP_Criticality_ignore;
     ie->value.present = S1AP_E_RABSetupResponseIEs__value_PR_ENB_UE_S1AP_ID;
     ie->value.choice.ENB_UE_S1AP_ID = e_rab_setup_resp_p->eNB_ue_s1ap_id;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
 
     /* optional */
     if (e_rab_setup_resp_p->nb_of_e_rabs > 0) {
@@ -927,10 +927,10 @@ int s1ap_eNB_e_rab_setup_resp(instance_t instance,
                        item->value.choice.E_RABSetupItemBearerSURes.transportLayerAddress.buf[2],
                        item->value.choice.E_RABSetupItemBearerSURes.transportLayerAddress.buf[3],
                        item->value.choice.E_RABSetupItemBearerSURes.transportLayerAddress.size);
-            ASN_SEQUENCE_ADD(&ie->value.choice.E_RABSetupListBearerSURes.list, item);
+            asn1cSeqAdd(&ie->value.choice.E_RABSetupListBearerSURes.list, item);
         }
 
-        ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+        asn1cSeqAdd(&out->protocolIEs.list, ie);
     }
 
     /* optional */
@@ -976,10 +976,10 @@ int s1ap_eNB_e_rab_setup_resp(instance_t instance,
             }
 
             S1AP_DEBUG("e_rab_setup_resp: failed e_rab ID %ld\n", item->value.choice.E_RABItem.e_RAB_ID);
-            ASN_SEQUENCE_ADD(&ie->value.choice.E_RABList.list, item);
+            asn1cSeqAdd(&ie->value.choice.E_RABList.list, item);
         }
 
-        ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+        asn1cSeqAdd(&out->protocolIEs.list, ie);
     }
 
     /* optional */
@@ -989,7 +989,7 @@ int s1ap_eNB_e_rab_setup_resp(instance_t instance,
         ie->criticality = S1AP_Criticality_ignore;
         ie->value.present = S1AP_E_RABSetupResponseIEs__value_PR_CriticalityDiagnostics;
         // ie->value.choice.CriticalityDiagnostics = ;
-        ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+        asn1cSeqAdd(&out->protocolIEs.list, ie);
     }
 
     /* S1AP_E_RABSetupListBearerSURes_t  e_RABSetupListBearerSURes;
@@ -1063,14 +1063,14 @@ int s1ap_eNB_e_rab_modify_resp(instance_t instance,
     ie->criticality = S1AP_Criticality_ignore;
     ie->value.present = S1AP_E_RABModifyResponseIEs__value_PR_MME_UE_S1AP_ID;
     ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
     /* mandatory */
     ie = (S1AP_E_RABModifyResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABModifyResponseIEs_t));
     ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
     ie->criticality = S1AP_Criticality_ignore;
     ie->value.present = S1AP_E_RABModifyResponseIEs__value_PR_ENB_UE_S1AP_ID;
     ie->value.choice.ENB_UE_S1AP_ID = e_rab_modify_resp_p->eNB_ue_s1ap_id;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
 
     /* optional */
     if (e_rab_modify_resp_p->nb_of_e_rabs > 0) {
@@ -1087,10 +1087,10 @@ int s1ap_eNB_e_rab_modify_resp(instance_t instance,
             item->value.present = S1AP_E_RABModifyItemBearerModResIEs__value_PR_E_RABModifyItemBearerModRes;
             item->value.choice.E_RABModifyItemBearerModRes.e_RAB_ID = e_rab_modify_resp_p->e_rabs[i].e_rab_id;
             S1AP_DEBUG("e_rab_modify_resp: modified e_rab ID %ld\n", item->value.choice.E_RABModifyItemBearerModRes.e_RAB_ID);
-            ASN_SEQUENCE_ADD(&ie->value.choice.E_RABModifyListBearerModRes.list, item);
+            asn1cSeqAdd(&ie->value.choice.E_RABModifyListBearerModRes.list, item);
         }
 
-        ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+        asn1cSeqAdd(&out->protocolIEs.list, ie);
     }
 
     /* optional */
@@ -1136,10 +1136,10 @@ int s1ap_eNB_e_rab_modify_resp(instance_t instance,
             }
 
             S1AP_DEBUG("e_rab_modify_resp: failed e_rab ID %ld\n", item->value.choice.E_RABItem.e_RAB_ID);
-            ASN_SEQUENCE_ADD(&ie->value.choice.E_RABList.list, item);
+            asn1cSeqAdd(&ie->value.choice.E_RABList.list, item);
         }
 
-        ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+        asn1cSeqAdd(&out->protocolIEs.list, ie);
     }
 
     /* optional */
@@ -1149,7 +1149,7 @@ int s1ap_eNB_e_rab_modify_resp(instance_t instance,
         ie->criticality = S1AP_Criticality_ignore;
         ie->value.present = S1AP_E_RABModifyResponseIEs__value_PR_CriticalityDiagnostics;
         // ie->value.choice.CriticalityDiagnostics = ;
-        ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+        asn1cSeqAdd(&out->protocolIEs.list, ie);
     }
 
     fprintf(stderr, "start encode\n");
@@ -1205,14 +1205,14 @@ int s1ap_eNB_e_rab_release_resp(instance_t instance,
     ie->criticality = S1AP_Criticality_ignore;
     ie->value.present = S1AP_E_RABReleaseResponseIEs__value_PR_MME_UE_S1AP_ID;
     ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
     /* mandatory */
     ie = (S1AP_E_RABReleaseResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABReleaseResponseIEs_t));
     ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
     ie->criticality = S1AP_Criticality_ignore;
     ie->value.present = S1AP_E_RABReleaseResponseIEs__value_PR_ENB_UE_S1AP_ID;
     ie->value.choice.ENB_UE_S1AP_ID = e_rab_release_resp_p->eNB_ue_s1ap_id;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
 
     /* optional */
     if (e_rab_release_resp_p->nb_of_e_rabs_released > 0) {
@@ -1229,10 +1229,10 @@ int s1ap_eNB_e_rab_release_resp(instance_t instance,
             item->value.present = S1AP_E_RABReleaseItemBearerRelCompIEs__value_PR_E_RABReleaseItemBearerRelComp;
             item->value.choice.E_RABReleaseItemBearerRelComp.e_RAB_ID = e_rab_release_resp_p->e_rab_release[i].e_rab_id;
             S1AP_DEBUG("e_rab_release_resp: e_rab ID %ld\n", item->value.choice.E_RABReleaseItemBearerRelComp.e_RAB_ID);
-            ASN_SEQUENCE_ADD(&ie->value.choice.E_RABReleaseListBearerRelComp.list, item);
+            asn1cSeqAdd(&ie->value.choice.E_RABReleaseListBearerRelComp.list, item);
         }
 
-        ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+        asn1cSeqAdd(&out->protocolIEs.list, ie);
     }
 
     /* optional */
@@ -1277,10 +1277,10 @@ int s1ap_eNB_e_rab_release_resp(instance_t instance,
                 break;
             }
 
-            ASN_SEQUENCE_ADD(&ie->value.choice.E_RABList.list, item);
+            asn1cSeqAdd(&ie->value.choice.E_RABList.list, item);
         }
 
-        ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+        asn1cSeqAdd(&out->protocolIEs.list, ie);
     }
 
 
@@ -1401,7 +1401,7 @@ int s1ap_eNB_path_switch_req(instance_t instance,
   ie->criticality = S1AP_Criticality_reject;
   ie->value.present = S1AP_PathSwitchRequestIEs__value_PR_ENB_UE_S1AP_ID;
   ie->value.choice.ENB_UE_S1AP_ID = ue_context_p->eNB_ue_s1ap_id;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   if (path_switch_req_p->nb_of_e_rabs > 0) {
@@ -1438,10 +1438,10 @@ int s1ap_eNB_path_switch_req(instance_t instance,
                e_RABToBeSwitchedDLItem->transportLayerAddress.buf[3],
                e_RABToBeSwitchedDLItem->transportLayerAddress.size);
 
-      ASN_SEQUENCE_ADD(&ie->value.choice.E_RABToBeSwitchedDLList.list, e_RABToBeSwitchedDLItemIEs);
+      asn1cSeqAdd(&ie->value.choice.E_RABToBeSwitchedDLList.list, e_RABToBeSwitchedDLItemIEs);
     }
 
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
   }
 
   /* mandatory */
@@ -1450,7 +1450,7 @@ int s1ap_eNB_path_switch_req(instance_t instance,
   ie->criticality = S1AP_Criticality_reject;
   ie->value.present = S1AP_PathSwitchRequestIEs__value_PR_MME_UE_S1AP_ID;
   ie->value.choice.MME_UE_S1AP_ID = path_switch_req_p->mme_ue_s1ap_id;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (S1AP_PathSwitchRequestIEs_t *)calloc(1, sizeof(S1AP_PathSwitchRequestIEs_t));
@@ -1464,7 +1464,7 @@ int s1ap_eNB_path_switch_req(instance_t instance,
                   s1ap_eNB_instance_p->mnc[0],
                   s1ap_eNB_instance_p->mnc_digit_length[0],
                   &ie->value.choice.EUTRAN_CGI.pLMNidentity);
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (S1AP_PathSwitchRequestIEs_t *)calloc(1, sizeof(S1AP_PathSwitchRequestIEs_t));
@@ -1477,7 +1477,7 @@ int s1ap_eNB_path_switch_req(instance_t instance,
                     s1ap_eNB_instance_p->mnc[0],
                     s1ap_eNB_instance_p->mnc_digit_length[0],
                     &ie->value.choice.TAI.pLMNidentity);
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   /* mandatory */
   ie = (S1AP_PathSwitchRequestIEs_t *)calloc(1, sizeof(S1AP_PathSwitchRequestIEs_t));
@@ -1488,7 +1488,7 @@ int s1ap_eNB_path_switch_req(instance_t instance,
               &ie->value.choice.UESecurityCapabilities.encryptionAlgorithms);
   INTPROTALG_TO_BIT_STRING(path_switch_req_p->security_capabilities.integrity_algorithms,
               &ie->value.choice.UESecurityCapabilities.integrityProtectionAlgorithms);
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) {
     S1AP_ERROR("Failed to encode Path Switch Req \n");
@@ -1582,14 +1582,14 @@ int s1ap_eNB_path_switch_req(instance_t instance,
   ie->criticality = S1AP_Criticality_reject;
   ie->value.present = S1AP_E_RABModificationIndicationIEs__value_PR_MME_UE_S1AP_ID;
   ie->value.choice.MME_UE_S1AP_ID = e_rab_modification_ind->mme_ue_s1ap_id;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   ie = (S1AP_E_RABModificationIndicationIEs_t *)calloc(1, sizeof(S1AP_E_RABModificationIndicationIEs_t));
   ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
   ie->criticality = S1AP_Criticality_reject;
   ie->value.present = S1AP_E_RABModificationIndicationIEs__value_PR_ENB_UE_S1AP_ID;
   ie->value.choice.ENB_UE_S1AP_ID = e_rab_modification_ind->eNB_ue_s1ap_id;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   //E-RABs to be modified list
   ie = (S1AP_E_RABModificationIndicationIEs_t *)calloc(1, sizeof(S1AP_E_RABModificationIndicationIEs_t));
@@ -1617,10 +1617,10 @@ int s1ap_eNB_path_switch_req(instance_t instance,
 	  INT32_TO_OCTET_STRING(e_rab_modification_ind->e_rabs_tobemodified[i].gtp_teid, &E_RAB_ToBeModifiedItem_BearerModInd->dL_GTP_TEID);
 
 	  }
-	  ASN_SEQUENCE_ADD(&ie->value.choice.E_RABToBeModifiedListBearerModInd.list, E_RAB_ToBeModifiedItem_BearerModInd_IEs);
+	  asn1cSeqAdd(&ie->value.choice.E_RABToBeModifiedListBearerModInd.list, E_RAB_ToBeModifiedItem_BearerModInd_IEs);
   }
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   //E-RABs NOT to be modified list
   ie = (S1AP_E_RABModificationIndicationIEs_t *)calloc(1, sizeof(S1AP_E_RABModificationIndicationIEs_t));
@@ -1649,7 +1649,7 @@ int s1ap_eNB_path_switch_req(instance_t instance,
 			  INT32_TO_OCTET_STRING(e_rab_modification_ind->e_rabs_nottobemodified[i].gtp_teid, &E_RAB_NotToBeModifiedItem_BearerModInd->dL_GTP_TEID);
 
 		  }
-		  ASN_SEQUENCE_ADD(&ie->value.choice.E_RABNotToBeModifiedListBearerModInd.list, E_RAB_NotToBeModifiedItem_BearerModInd_IEs);
+		  asn1cSeqAdd(&ie->value.choice.E_RABNotToBeModifiedListBearerModInd.list, E_RAB_NotToBeModifiedItem_BearerModInd_IEs);
 	  }
   }
   else{
@@ -1659,7 +1659,7 @@ int s1ap_eNB_path_switch_req(instance_t instance,
   
 	   
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   ie = (S1AP_E_RABModificationIndicationIEs_t *)calloc(1, sizeof(S1AP_E_RABModificationIndicationIEs_t));
   ie->id = S1AP_ProtocolIE_ID_id_CSGMembershipInfo;
@@ -1667,7 +1667,7 @@ int s1ap_eNB_path_switch_req(instance_t instance,
   ie->value.present = S1AP_E_RABModificationIndicationIEs__value_PR_CSGMembershipInfo;
   ie->value.choice.CSGMembershipInfo.cSGMembershipStatus = S1AP_CSGMembershipStatus_member;
   INT32_TO_BIT_STRING(CSG_id, &ie->value.choice.CSGMembershipInfo.cSG_Id);
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
 
   if (s1ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
@@ -1736,14 +1736,14 @@ int s1ap_eNB_generate_E_RAB_Modification_Indication(
   ie->criticality = S1AP_Criticality_reject;
   ie->value.present = S1AP_E_RABModificationIndicationIEs__value_PR_MME_UE_S1AP_ID;
   ie->value.choice.MME_UE_S1AP_ID = e_rab_modification_ind->mme_ue_s1ap_id;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   ie = (S1AP_E_RABModificationIndicationIEs_t *)calloc(1, sizeof(S1AP_E_RABModificationIndicationIEs_t));
   ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
   ie->criticality = S1AP_Criticality_reject;
   ie->value.present = S1AP_E_RABModificationIndicationIEs__value_PR_ENB_UE_S1AP_ID;
   ie->value.choice.ENB_UE_S1AP_ID = e_rab_modification_ind->eNB_ue_s1ap_id;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   //E-RABs to be modified list
   ie = (S1AP_E_RABModificationIndicationIEs_t *)calloc(1, sizeof(S1AP_E_RABModificationIndicationIEs_t));
@@ -1771,10 +1771,10 @@ int s1ap_eNB_generate_E_RAB_Modification_Indication(
 	  INT32_TO_OCTET_STRING(e_rab_modification_ind->e_rabs_tobemodified[i].gtp_teid, &E_RAB_ToBeModifiedItem_BearerModInd->dL_GTP_TEID);
 
 	  }
-	  ASN_SEQUENCE_ADD(&ie->value.choice.E_RABToBeModifiedListBearerModInd.list, E_RAB_ToBeModifiedItem_BearerModInd_IEs);
+	  asn1cSeqAdd(&ie->value.choice.E_RABToBeModifiedListBearerModInd.list, E_RAB_ToBeModifiedItem_BearerModInd_IEs);
   }
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+  asn1cSeqAdd(&out->protocolIEs.list, ie);
 
   //E-RABs NOT to be modified list
   /*ie = (S1AP_E_RABModificationIndicationIEs_t *)calloc(1, sizeof(S1AP_E_RABModificationIndicationIEs_t));
@@ -1804,7 +1804,7 @@ int s1ap_eNB_generate_E_RAB_Modification_Indication(
 			    INT32_TO_OCTET_STRING(pseudo_gtp_teid, &E_RAB_NotToBeModifiedItem_BearerModInd->dL_GTP_TEID);
 
 		  }
-		  ASN_SEQUENCE_ADD(&ie->value.choice.E_RABNotToBeModifiedListBearerModInd.list, E_RAB_NotToBeModifiedItem_BearerModInd_IEs);
+		  asn1cSeqAdd(&ie->value.choice.E_RABNotToBeModifiedListBearerModInd.list, E_RAB_NotToBeModifiedItem_BearerModInd_IEs);
 	  }
  // }
   //else{
@@ -1814,7 +1814,7 @@ int s1ap_eNB_generate_E_RAB_Modification_Indication(
   
 	   
 
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);*/
+  asn1cSeqAdd(&out->protocolIEs.list, ie);*/
 
   /*ie = (S1AP_E_RABModificationIndicationIEs_t *)calloc(1, sizeof(S1AP_E_RABModificationIndicationIEs_t));
   ie->id = S1AP_ProtocolIE_ID_id_CSGMembershipInfo;
@@ -1824,7 +1824,7 @@ int s1ap_eNB_generate_E_RAB_Modification_Indication(
   INT32_TO_BIT_STRING(CSG_id, &ie->value.choice.CSGMembershipInfo.cSG_Id);
   ie->value.choice.CSGMembershipInfo.cSG_Id.bits_unused=5; 
   ie->value.choice.CSGMembershipInfo.cellAccessMode = S1AP_CellAccessMode_hybrid;
-  ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);*/
+  asn1cSeqAdd(&out->protocolIEs.list, ie);*/
   
   if (s1ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
     S1AP_ERROR("Failed to encode S1 E-RAB modification indication \n");
diff --git a/openair3/S1AP/s1ap_eNB_trace.c b/openair3/S1AP/s1ap_eNB_trace.c
index de84682ec1aaf882446ee36720dc295b5d3e7acb..38787a6999ddfb3adeee385862d89c3d9ed800c7 100644
--- a/openair3/S1AP/s1ap_eNB_trace.c
+++ b/openair3/S1AP/s1ap_eNB_trace.c
@@ -66,7 +66,7 @@ void s1ap_eNB_generate_trace_failure(struct s1ap_eNB_ue_context_s *ue_desc_p,
     ie->criticality = S1AP_Criticality_reject;
     ie->value.present = S1AP_TraceFailureIndicationIEs__value_PR_MME_UE_S1AP_ID;
     ie->value.choice.MME_UE_S1AP_ID = ue_desc_p->mme_ue_s1ap_id;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
 
     /* mandatory */
     ie = (S1AP_TraceFailureIndicationIEs_t *)calloc(1, sizeof(S1AP_TraceFailureIndicationIEs_t));
@@ -74,7 +74,7 @@ void s1ap_eNB_generate_trace_failure(struct s1ap_eNB_ue_context_s *ue_desc_p,
     ie->criticality = S1AP_Criticality_reject;
     ie->value.present = S1AP_TraceFailureIndicationIEs__value_PR_ENB_UE_S1AP_ID;
     ie->value.choice.ENB_UE_S1AP_ID = ue_desc_p->eNB_ue_s1ap_id;
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
 
     /* mandatory */
     ie = (S1AP_TraceFailureIndicationIEs_t *)calloc(1, sizeof(S1AP_TraceFailureIndicationIEs_t));
@@ -82,7 +82,7 @@ void s1ap_eNB_generate_trace_failure(struct s1ap_eNB_ue_context_s *ue_desc_p,
     ie->criticality = S1AP_Criticality_ignore;
     ie->value.present = S1AP_TraceFailureIndicationIEs__value_PR_E_UTRAN_Trace_ID;
     memcpy(&ie->value.choice.E_UTRAN_Trace_ID, trace_id, sizeof(S1AP_E_UTRAN_Trace_ID_t));
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
 
     /* mandatory */
     ie = (S1AP_TraceFailureIndicationIEs_t *)calloc(1, sizeof(S1AP_TraceFailureIndicationIEs_t));
@@ -90,7 +90,7 @@ void s1ap_eNB_generate_trace_failure(struct s1ap_eNB_ue_context_s *ue_desc_p,
     ie->criticality = S1AP_Criticality_ignore;
     ie->value.present = S1AP_TraceFailureIndicationIEs__value_PR_Cause;
     memcpy(&ie->value.choice.Cause, cause_p, sizeof(S1AP_Cause_t));
-    ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
+    asn1cSeqAdd(&out->protocolIEs.list, ie);
 
     if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) {
         return;