update F1AP to R16.3.1. testing with OTA eNB
This commit is contained in:
@@ -804,12 +804,12 @@ add_dependencies(X2AP_ENB X2AP_LIB rrc_flag x2_flag)
|
||||
|
||||
# F1AP
|
||||
##############
|
||||
add_list1_option(F1AP_RELEASE R15 "F1AP ASN.1 grammar version" R15)
|
||||
add_list1_option(F1AP_RELEASE R16 "F1AP ASN.1 grammar version" R16)
|
||||
set(F1AP_DIR ${OPENAIR2_DIR}/F1AP)
|
||||
if (${F1AP_RELEASE} STREQUAL "R15")
|
||||
make_version(F1AP_VERSION 15 2 1)
|
||||
set (ASN1RELDIR R15.2.1)
|
||||
endif(${F1AP_RELEASE} STREQUAL "R15")
|
||||
if (${F1AP_RELEASE} STREQUAL "R16")
|
||||
make_version(F1AP_VERSION 16 3 1)
|
||||
set (ASN1RELDIR R16.3.1)
|
||||
endif(${F1AP_RELEASE} STREQUAL "R16")
|
||||
add_definitions(-DF1AP_VERSION=${F1AP_VERSION})
|
||||
set(F1AP_ASN_DIR ${F1AP_DIR}/MESSAGES/ASN1/${ASN1RELDIR})
|
||||
set(F1AP_ASN_FILES
|
||||
|
||||
@@ -48,6 +48,14 @@ int N_RB_DL_array[6] = { 6, 15, 25, 50, 75, 100 };
|
||||
|
||||
extern RAN_CONTEXT_t RC;
|
||||
|
||||
void pdsch_procedures(PHY_VARS_eNB *eNB,
|
||||
L1_rxtx_proc_t *proc,
|
||||
int harq_pid,
|
||||
LTE_eNB_DLSCH_t *dlsch,
|
||||
LTE_eNB_DLSCH_t *dlsch1);
|
||||
|
||||
void init_sss(void);
|
||||
|
||||
int
|
||||
l1_north_init_eNB () {
|
||||
int i,j;
|
||||
@@ -364,7 +372,7 @@ void fill_subframe_mask(PHY_VARS_eNB *eNB) {
|
||||
eNB->dlsch[0][0]->harq_ids[0][sf]=0;
|
||||
eNB->dlsch[0][0]->rnti=0x1234;
|
||||
dlsch_harq->nb_rb=48;
|
||||
dlsch_harq->rb_alloc[0]=0xffffffffffff;
|
||||
dlsch_harq->rb_alloc[0]=(uint32_t)0xffffffff;
|
||||
dlsch_harq->Qm=2;
|
||||
dlsch_harq->Nl=1;
|
||||
dlsch_harq->pdsch_start=1;
|
||||
|
||||
@@ -520,6 +520,9 @@ int generate_eNB_ulsch_params_from_dci(PHY_VARS_eNB *PHY_vars_eNB,
|
||||
|
||||
void dump_ulsch(PHY_VARS_eNB *phy_vars_eNB,int frame, int subframe, uint8_t UE_id,int round);
|
||||
|
||||
void dump_ulsch_stats(PHY_VARS_eNB *eNB,int frame);
|
||||
void dump_uci_stats(PHY_VARS_eNB *eNB,int frame);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ int16_t find_uci(uint16_t rnti, int frame, int subframe, PHY_VARS_eNB *eNB,find_
|
||||
int16_t first_free_index=-1;
|
||||
AssertFatal(eNB!=NULL,"eNB is null\n");
|
||||
|
||||
for (i=0; i<NUMBER_OF_UCI_VARS_MAX; i++) {
|
||||
for (i=0; i<NUMBER_OF_UCI_MAX; i++) {
|
||||
if ((eNB->uci_vars[i].active >0) &&
|
||||
(eNB->uci_vars[i].rnti==rnti) &&
|
||||
(eNB->uci_vars[i].frame==frame) &&
|
||||
|
||||
@@ -507,7 +507,7 @@ typedef struct PHY_VARS_eNB_s {
|
||||
LTE_eNB_MPDCCH mpdcch_vars[2];
|
||||
LTE_eNB_PRACH prach_vars_br;
|
||||
LTE_eNB_COMMON common_vars;
|
||||
LTE_eNB_UCI uci_vars[NUMBER_OF_UCI_VARS_MAX];
|
||||
LTE_eNB_UCI uci_vars[NUMBER_OF_UCI_MAX];
|
||||
LTE_eNB_SRS srs_vars[NUMBER_OF_UE_MAX];
|
||||
LTE_eNB_PBCH pbch;
|
||||
LTE_eNB_PUSCH *pusch_vars[NUMBER_OF_UE_MAX];
|
||||
|
||||
+12
-12
@@ -213,13 +213,13 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,L1_rxtx_pro
|
||||
|
||||
UE_id = find_dlsch(rel8->rnti,eNB,SEARCH_EXIST_OR_FREE);
|
||||
|
||||
if( (UE_id<0) || (UE_id>=NUMBER_OF_UE_MAX) ) {
|
||||
if( (UE_id<0) || (UE_id>=NUMBER_OF_DLSCH_MAX) ) {
|
||||
LOG_E(PHY,"illegal UE_id found!!! rnti %04x UE_id %d\n",rel8->rnti,UE_id);
|
||||
return;
|
||||
}
|
||||
|
||||
//AssertFatal(UE_id!=-1,"no free or exiting dlsch_context\n");
|
||||
//AssertFatal(UE_id<NUMBER_OF_UE_MAX,"returned UE_id %d >= %d(NUMBER_OF_UE_MAX)\n",UE_id,NUMBER_OF_UE_MAX);
|
||||
//AssertFatal(UE_id<NUMBER_OF_DLSCH_MAX,"returned UE_id %d >= %d(NUMBER_OF_DLSCHMAX)\n",UE_id,NUMBER_OF_DLSCH_MAX);
|
||||
dlsch0 = eNB->dlsch[UE_id][0];
|
||||
dlsch1 = eNB->dlsch[UE_id][1];
|
||||
|
||||
@@ -295,7 +295,7 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,L1_rxtx_pro
|
||||
if ((rel13->pdsch_payload_type <2) && (rel13->ue_type>0)) { // this is a BR/CE UE and SIB1-BR/SI-BR
|
||||
UE_id = find_dlsch(rel8->rnti,eNB,SEARCH_EXIST_OR_FREE);
|
||||
AssertFatal(UE_id!=-1,"no free or exiting dlsch_context\n");
|
||||
AssertFatal(UE_id<NUMBER_OF_UE_MAX,"returned UE_id %d >= %d(NUMBER_OF_UE_MAX)\n",UE_id,NUMBER_OF_UE_MAX);
|
||||
AssertFatal(UE_id<NUMBER_OF_DLSCH_MAX,"returned UE_id %d >= %d(NUMBER_OF_DLSCH_MAX)\n",UE_id,NUMBER_OF_DLSCH_MAX);
|
||||
dlsch0 = eNB->dlsch[UE_id][0];
|
||||
dlsch0->harq_mask = 1;
|
||||
dlsch0_harq = dlsch0->harq_processes[0];
|
||||
@@ -370,7 +370,7 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,L1_rxtx_pro
|
||||
} else {
|
||||
UE_id = find_dlsch(rel8->rnti,eNB,SEARCH_EXIST_OR_FREE);
|
||||
AssertFatal(UE_id!=-1,"no free or exiting dlsch_context\n");
|
||||
AssertFatal(UE_id<NUMBER_OF_UE_MAX,"returned UE_id %d >= %d(NUMBER_OF_UE_MAX)\n",UE_id,NUMBER_OF_UE_MAX);
|
||||
AssertFatal(UE_id<NUMBER_OF_DLSCH_MAX,"returned UE_id %d >= %d(NUMBER_OF_DLSCH_MAX)\n",UE_id,NUMBER_OF_DLSCH_MAX);
|
||||
dlsch0 = eNB->dlsch[UE_id][0];
|
||||
dlsch1 = eNB->dlsch[UE_id][1];
|
||||
dlsch0->sib1_br_flag=0;
|
||||
@@ -664,7 +664,7 @@ void handle_srs_pdu(PHY_VARS_eNB *eNB,nfapi_ul_config_request_pdu_t *ul_config_p
|
||||
|
||||
if (NFAPI_MODE==NFAPI_MODE_VNF) return;
|
||||
|
||||
for (i=0; i<NUMBER_OF_UE_MAX; i++) {
|
||||
for (i=0; i<NUMBER_OF_SRS_MAX; i++) {
|
||||
if (eNB->soundingrs_ul_config_dedicated[i].active==1) continue;
|
||||
|
||||
eNB->soundingrs_ul_config_dedicated[i].active = 1;
|
||||
@@ -680,7 +680,7 @@ void handle_srs_pdu(PHY_VARS_eNB *eNB,nfapi_ul_config_request_pdu_t *ul_config_p
|
||||
break;
|
||||
}
|
||||
|
||||
AssertFatal(i<NUMBER_OF_UE_MAX,"No room for SRS processing\n");
|
||||
AssertFatal(i<NUMBER_OF_SRS_MAX,"No room for SRS processing\n");
|
||||
}
|
||||
|
||||
void handle_nfapi_ul_pdu(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc,
|
||||
@@ -784,7 +784,7 @@ void schedule_response(Sched_Rsp_t *Sched_INFO, L1_rxtx_proc_t *proc) {
|
||||
nfapi_dl_config_request_pdu_t *dl_config_pdu;
|
||||
nfapi_hi_dci0_request_pdu_t *hi_dci0_req_pdu;
|
||||
nfapi_ul_config_request_pdu_t *ul_config_pdu;
|
||||
int i;
|
||||
|
||||
eNB->pdcch_vars[subframe&1].num_pdcch_symbols = number_pdcch_ofdm_symbols;
|
||||
eNB->pdcch_vars[subframe&1].num_dci = 0;
|
||||
eNB->phich_vars[subframe&1].num_hi = 0;
|
||||
@@ -815,8 +815,8 @@ void schedule_response(Sched_Rsp_t *Sched_INFO, L1_rxtx_proc_t *proc) {
|
||||
|
||||
// clear DCI allocation maps for new subframe
|
||||
if (NFAPI_MODE!=NFAPI_MODE_VNF)
|
||||
for (i=0; i<NUMBER_OF_UE_MAX; i++) {
|
||||
if (eNB->ulsch[i]) {
|
||||
for (volatile int i=0; i<NUMBER_OF_ULSCH_MAX; i++) {
|
||||
if (eNB->ulsch[i]!=NULL) {
|
||||
ulsch_harq = eNB->ulsch[i]->harq_processes[harq_pid];
|
||||
ulsch_harq->dci_alloc=0;
|
||||
ulsch_harq->rar_alloc=0;
|
||||
@@ -824,7 +824,7 @@ void schedule_response(Sched_Rsp_t *Sched_INFO, L1_rxtx_proc_t *proc) {
|
||||
}
|
||||
}
|
||||
|
||||
for (i=0; i<number_dl_pdu; i++) {
|
||||
for (int i=0; i<number_dl_pdu; i++) {
|
||||
dl_config_pdu = &DL_req->dl_config_request_body.dl_config_pdu_list[i];
|
||||
|
||||
//LOG_D(PHY,"NFAPI: dl_pdu %d : type %d\n",i,dl_config_pdu->pdu_type);
|
||||
@@ -973,7 +973,7 @@ void schedule_response(Sched_Rsp_t *Sched_INFO, L1_rxtx_proc_t *proc) {
|
||||
}
|
||||
|
||||
if (NFAPI_MODE!=NFAPI_MODE_VNF)
|
||||
for (i=0; i<number_hi_dci0_pdu; i++) {
|
||||
for (int i=0; i<number_hi_dci0_pdu; i++) {
|
||||
hi_dci0_req_pdu = &HI_DCI0_req->hi_dci0_request_body.hi_dci0_pdu_list[i];
|
||||
LOG_D(PHY,"NFAPI: hi_dci0_pdu %d : type %d\n",i,hi_dci0_req_pdu->pdu_type);
|
||||
|
||||
@@ -1003,7 +1003,7 @@ void schedule_response(Sched_Rsp_t *Sched_INFO, L1_rxtx_proc_t *proc) {
|
||||
number_ul_pdu=0;
|
||||
}
|
||||
} else {
|
||||
for (i=0; i<number_ul_pdu; i++) {
|
||||
for (int i=0; i<number_ul_pdu; i++) {
|
||||
ul_config_pdu = &UL_req->ul_config_request_body.ul_config_pdu_list[i];
|
||||
LOG_D(PHY,"NFAPI: ul_pdu %d : type %d\n",i,ul_config_pdu->pdu_type);
|
||||
AssertFatal(ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_ULSCH_PDU_TYPE ||
|
||||
|
||||
@@ -56,20 +56,20 @@ extern RAN_CONTEXT_t RC;
|
||||
|
||||
nfapi_ue_release_request_body_t release_rntis;
|
||||
|
||||
int16_t get_hundred_times_delta_IF_eNB(PHY_VARS_eNB *eNB,uint16_t UE_id,uint8_t harq_pid, uint8_t bw_factor) {
|
||||
int16_t get_hundred_times_delta_IF_eNB(PHY_VARS_eNB *eNB,uint16_t ULSCH_id,uint8_t harq_pid, uint8_t bw_factor) {
|
||||
uint32_t Nre,sumKr,MPR_x100,Kr,r;
|
||||
uint16_t beta_offset_pusch;
|
||||
DevAssert( UE_id < NUMBER_OF_UE_MAX+1 );
|
||||
DevAssert( ULSCH_id < NUMBER_OF_ULSCH_MAX+1 );
|
||||
DevAssert( harq_pid < 8 );
|
||||
Nre = eNB->ulsch[UE_id]->harq_processes[harq_pid]->Nsymb_initial *
|
||||
eNB->ulsch[UE_id]->harq_processes[harq_pid]->nb_rb*12;
|
||||
Nre = eNB->ulsch[ULSCH_id]->harq_processes[harq_pid]->Nsymb_initial *
|
||||
eNB->ulsch[ULSCH_id]->harq_processes[harq_pid]->nb_rb*12;
|
||||
sumKr = 0;
|
||||
|
||||
for (r=0; r<eNB->ulsch[UE_id]->harq_processes[harq_pid]->C; r++) {
|
||||
if (r<eNB->ulsch[UE_id]->harq_processes[harq_pid]->Cminus)
|
||||
Kr = eNB->ulsch[UE_id]->harq_processes[harq_pid]->Kminus;
|
||||
for (r=0; r<eNB->ulsch[ULSCH_id]->harq_processes[harq_pid]->C; r++) {
|
||||
if (r<eNB->ulsch[ULSCH_id]->harq_processes[harq_pid]->Cminus)
|
||||
Kr = eNB->ulsch[ULSCH_id]->harq_processes[harq_pid]->Kminus;
|
||||
else
|
||||
Kr = eNB->ulsch[UE_id]->harq_processes[harq_pid]->Kplus;
|
||||
Kr = eNB->ulsch[ULSCH_id]->harq_processes[harq_pid]->Kplus;
|
||||
|
||||
sumKr += Kr;
|
||||
}
|
||||
@@ -82,14 +82,14 @@ int16_t get_hundred_times_delta_IF_eNB(PHY_VARS_eNB *eNB,uint16_t UE_id,uint8_t
|
||||
// FK 20140908 sumKr is only set after the ulsch_encoding
|
||||
beta_offset_pusch = 8;
|
||||
//(eNB->ulsch[UE_id]->harq_processes[harq_pid]->control_only == 1) ? eNB->ulsch[UE_id]->beta_offset_cqi_times8:8;
|
||||
DevAssert( UE_id < NUMBER_OF_UE_MAX );
|
||||
DevAssert( ULSCH_id < NUMBER_OF_ULSCH_MAX );
|
||||
//#warning "This condition happens sometimes. Need more investigation" // navid
|
||||
//DevAssert( MPR_x100/6 < 100 );
|
||||
|
||||
if (1==1) { //eNB->ul_power_control_dedicated[UE_id].deltaMCS_Enabled == 1) {
|
||||
// This is the formula from Section 5.1.1.1 in 36.213 10*log10(deltaIF_PUSCH = (2^(MPR*Ks)-1)*beta_offset_pusch)
|
||||
if (bw_factor == 1) {
|
||||
uint8_t nb_rb = eNB->ulsch[UE_id]->harq_processes[harq_pid]->nb_rb;
|
||||
uint8_t nb_rb = eNB->ulsch[ULSCH_id]->harq_processes[harq_pid]->nb_rb;
|
||||
return(hundred_times_delta_TF[MPR_x100/6]+10*dB_fixed_times10((beta_offset_pusch)>>3)) + hundred_times_log10_NPRB[nb_rb-1];
|
||||
} else
|
||||
return(hundred_times_delta_TF[MPR_x100/6]+10*dB_fixed_times10((beta_offset_pusch)>>3));
|
||||
@@ -100,21 +100,21 @@ int16_t get_hundred_times_delta_IF_eNB(PHY_VARS_eNB *eNB,uint16_t UE_id,uint8_t
|
||||
|
||||
|
||||
int16_t get_hundred_times_delta_IF_mac(module_id_t module_idP, uint8_t CC_id, rnti_t rnti, uint8_t harq_pid) {
|
||||
int8_t UE_id;
|
||||
int8_t ULSCH_id;
|
||||
|
||||
if ((RC.eNB == NULL) || (module_idP > RC.nb_inst) || (CC_id > RC.nb_CC[module_idP])) {
|
||||
LOG_E(PHY,"get_UE_stats: No eNB found (or not allocated) for Mod_id %d,CC_id %d\n",module_idP,CC_id);
|
||||
return -1;
|
||||
}
|
||||
|
||||
UE_id = find_ulsch( rnti, RC.eNB[module_idP][CC_id],SEARCH_EXIST);
|
||||
ULSCH_id = find_ulsch( rnti, RC.eNB[module_idP][CC_id],SEARCH_EXIST);
|
||||
|
||||
if (UE_id == -1) {
|
||||
if (ULSCH_id == -1) {
|
||||
// not found
|
||||
return 0;
|
||||
}
|
||||
|
||||
return get_hundred_times_delta_IF_eNB( RC.eNB[module_idP][CC_id], UE_id, harq_pid, 0 );
|
||||
return get_hundred_times_delta_IF_eNB( RC.eNB[module_idP][CC_id], ULSCH_id, harq_pid, 0 );
|
||||
}
|
||||
|
||||
int oai_nfapi_rach_ind(nfapi_rach_indication_t *rach_ind);
|
||||
@@ -502,9 +502,7 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB,
|
||||
int do_meas) {
|
||||
int frame=proc->frame_tx;
|
||||
int subframe=proc->subframe_tx;
|
||||
uint32_t i,aa;
|
||||
uint8_t harq_pid;
|
||||
int16_t UE_id=0;
|
||||
uint8_t num_pdcch_symbols=0;
|
||||
uint8_t num_dci=0;
|
||||
uint8_t num_mdci = 0;
|
||||
@@ -519,11 +517,10 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB,
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_TX+(eNB->CC_id),1);
|
||||
|
||||
if (do_meas==1) start_meas(&eNB->phy_proc_tx);
|
||||
|
||||
if (do_meas==1) start_meas(&eNB->dlsch_common_and_dci);
|
||||
|
||||
// clear the transmit data array for the current subframe
|
||||
for (aa = 0; aa < fp->nb_antenna_ports_eNB; aa++) {
|
||||
for (int aa = 0; aa < fp->nb_antenna_ports_eNB; aa++) {
|
||||
if (eNB->use_DTX==0)
|
||||
memcpy(&eNB->common_vars.txdataF[aa][subframe * fp->ofdm_symbol_size * (fp->symbols_per_tti)],
|
||||
&eNB->subframe_mask[aa][subframe*fp->ofdm_symbol_size*fp->symbols_per_tti],
|
||||
@@ -563,7 +560,7 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB,
|
||||
ul_frame = pdcch_alloc2ul_frame (fp, frame, subframe);
|
||||
|
||||
// clear previous allocation information for all UEs
|
||||
for (i = 0; i < NUMBER_OF_UE_MAX; i++) {
|
||||
for (volatile int i = 0; i < NUMBER_OF_DLSCH_MAX; i++) {
|
||||
if (eNB->dlsch[i][0])
|
||||
eNB->dlsch[i][0]->subframe_tx[subframe] = 0;
|
||||
}
|
||||
@@ -572,7 +569,7 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB,
|
||||
//if ((ul_subframe < 10)&&
|
||||
// (subframe_select(fp,ul_subframe)==SF_UL)) { // This means that there is a potential UL subframe that will be scheduled here
|
||||
if (ul_subframe < 10) { // This means that there is a potential UL subframe that will be scheduled here
|
||||
for (i=0; i<NUMBER_OF_UE_MAX; i++) {
|
||||
for (volatile int i=0; i<NUMBER_OF_DLSCH_MAX; i++) {
|
||||
if (eNB->ulsch[i] && eNB->ulsch[i]->ue_type >0) harq_pid = 0;
|
||||
|
||||
else
|
||||
@@ -658,9 +655,9 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB,
|
||||
// Now scan UE specific DLSCH
|
||||
LTE_eNB_DLSCH_t *dlsch0,*dlsch1;
|
||||
|
||||
for (UE_id=0; UE_id<NUMBER_OF_UE_MAX; UE_id++) {
|
||||
dlsch0 = eNB->dlsch[(uint8_t)UE_id][0];
|
||||
dlsch1 = eNB->dlsch[(uint8_t)UE_id][1];
|
||||
for (int DLSCH_id=0; DLSCH_id<NUMBER_OF_DLSCH_MAX; DLSCH_id++) {
|
||||
dlsch0 = eNB->dlsch[(uint8_t)DLSCH_id][0];
|
||||
dlsch1 = eNB->dlsch[(uint8_t)DLSCH_id][1];
|
||||
|
||||
if ((dlsch0)&&(dlsch0->rnti>0)&&
|
||||
#ifdef PHY_TX_THREAD
|
||||
@@ -670,12 +667,13 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB,
|
||||
#endif
|
||||
) {
|
||||
// get harq_pid
|
||||
harq_pid = dlsch0->harq_ids[frame%2][subframe];
|
||||
harq_pid = dlsch0->harq_ids[frame%2][subframe];
|
||||
//AssertFatal(harq_pid>=0,"harq_pid is negative\n");
|
||||
|
||||
if((harq_pid < 0) || (harq_pid >= dlsch0->Mdlharq)) {
|
||||
|
||||
if (dlsch0->ue_type==0)
|
||||
LOG_E(PHY,"harq_pid:%d corrupt must be 0-7 UE_id:%d frame:%d subframe:%d rnti:%x [ %1d.%1d.%1d.%1d.%1d.%1d.%1d.%1d\n", harq_pid,UE_id,frame,subframe,dlsch0->rnti,
|
||||
LOG_E(PHY,"harq_pid:%d corrupt must be 0-7 DLSCH_id:%d frame:%d subframe:%d rnti:%x [ %1d.%1d.%1d.%1d.%1d.%1d.%1d.%1d\n", harq_pid,DLSCH_id,frame,subframe,dlsch0->rnti,
|
||||
dlsch0->harq_ids[frame%2][0],
|
||||
dlsch0->harq_ids[frame%2][1],
|
||||
dlsch0->harq_ids[frame%2][2],
|
||||
@@ -689,7 +687,7 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB,
|
||||
proc,
|
||||
harq_pid,
|
||||
dlsch0,
|
||||
&eNB->UE_stats[(uint32_t)UE_id])) {
|
||||
&eNB->UE_stats[(uint32_t)DLSCH_id])) {
|
||||
// if we generate dlsch, we must generate pdsch
|
||||
pdsch_procedures(eNB,
|
||||
proc,
|
||||
@@ -724,6 +722,7 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB,
|
||||
if (do_meas==1) stop_meas(&eNB->phy_proc_tx);
|
||||
}
|
||||
|
||||
/* This has to be updated with FAPI structures*/
|
||||
|
||||
void srs_procedures(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc) {
|
||||
LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms;
|
||||
@@ -735,7 +734,7 @@ void srs_procedures(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc) {
|
||||
// Do SRS processing
|
||||
// check if there is SRS and we have to use shortened format
|
||||
// TODO: check for exceptions in transmission of SRS together with ACK/NACK
|
||||
for (i = 0; i < NUMBER_OF_UE_MAX; i++) {
|
||||
for (i = 0; i < NUMBER_OF_SRS_MAX; i++) {
|
||||
if (eNB->soundingrs_ul_config_dedicated[i].active == 1) {
|
||||
if (lte_srs_channel_estimation (fp, &eNB->common_vars, &eNB->srs_vars[i], &eNB->soundingrs_ul_config_dedicated[i], subframe, 0 /*eNB_id */ )) {
|
||||
LOG_E (PHY, "problem processing SRS\n");
|
||||
@@ -798,7 +797,7 @@ uci_procedures(PHY_VARS_eNB *eNB,
|
||||
LTE_eNB_UCI *uci = NULL;
|
||||
LTE_DL_FRAME_PARMS *fp = &(eNB->frame_parms);
|
||||
|
||||
for (int i = 0; i < NUMBER_OF_UCI_VARS_MAX; i++) {
|
||||
for (int i = 0; i < NUMBER_OF_UCI_MAX; i++) {
|
||||
uci = &(eNB->uci_vars[i]);
|
||||
|
||||
if ((uci->active == 1) && (uci->frame == frame) && (uci->subframe == subframe)) {
|
||||
@@ -1280,7 +1279,7 @@ uci_procedures(PHY_VARS_eNB *eNB,
|
||||
|
||||
#ifdef DEBUG_PHY_PROC
|
||||
LOG_D (PHY, "[eNB %d][PDSCH %x] Frame %d subframe %d ACK/NAK metric 0 %d, metric 1 %d, (%d,%d)\n", eNB->Mod_id,
|
||||
eNB->dlsch[UE_id][0]->rnti, frame, subframe, metric0, metric1, pucch_b0b1[0], pucch_b0b1[1]);
|
||||
eNB->dlsch[DLSCH_id][0]->rnti, frame, subframe, metric0, metric1, pucch_b0b1[0], pucch_b0b1[1]);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1303,7 +1302,7 @@ uci_procedures(PHY_VARS_eNB *eNB,
|
||||
}
|
||||
}
|
||||
} // end if ((uci->active == 1) && (uci->frame == frame) && (uci->subframe == subframe)) {
|
||||
} // end loop for (int i = 0; i < NUMBER_OF_UE_MAX; i++) {
|
||||
} // end loop for (int i = 0; i < NUMBER_OF_UCI_MAX; i++) {
|
||||
}
|
||||
|
||||
void postDecode(L1_rxtx_proc_t *proc, notifiedFIFO_elt_t *req) {
|
||||
@@ -1415,7 +1414,7 @@ void pusch_procedures(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc) {
|
||||
const int frame = proc->frame_rx;
|
||||
uint32_t harq_pid0 = subframe2harq_pid(&eNB->frame_parms,frame,subframe);
|
||||
|
||||
for (i = 0; i < NUMBER_OF_UE_MAX; i++) {
|
||||
for (i = 0; i < NUMBER_OF_ULSCH_MAX; i++) {
|
||||
ulsch = eNB->ulsch[i];
|
||||
|
||||
if (ulsch->ue_type > 0) harq_pid = 0;
|
||||
@@ -1496,7 +1495,7 @@ void pusch_procedures(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc) {
|
||||
ulsch->harq_mask &= ~(1 << harq_pid);
|
||||
LOG_W (PHY, "Removing stale ULSCH config for UE %x harq_pid %d (harq_mask is now 0x%2.2x)\n", ulsch->rnti, harq_pid, ulsch->harq_mask);
|
||||
}
|
||||
} // for (i=0; i<NUMBER_OF_UE_MAX; i++)
|
||||
} // for (i=0; i<NUMBER_OF_ULSCH_MAX; i++)
|
||||
|
||||
while (proc->nbDecode > 0) {
|
||||
notifiedFIFO_elt_t *req=pullTpool(proc->respDecode, proc->threadPool);
|
||||
@@ -1664,7 +1663,7 @@ void fill_rx_indication(PHY_VARS_eNB *eNB,
|
||||
* Release the harq process if its round is >= 'after_rounds'
|
||||
*/
|
||||
static void do_release_harq(PHY_VARS_eNB *eNB,
|
||||
int UE_id,
|
||||
int DLSCH_id,
|
||||
int tb,
|
||||
uint16_t frame,
|
||||
uint8_t subframe,
|
||||
@@ -1679,10 +1678,10 @@ static void do_release_harq(PHY_VARS_eNB *eNB,
|
||||
int harq_pid;
|
||||
int subframe_tx;
|
||||
int frame_tx;
|
||||
AssertFatal(UE_id != -1, "No existing dlsch context\n");
|
||||
AssertFatal(UE_id < NUMBER_OF_UE_MAX, "Returned UE_id %d >= %d (NUMBER_OF_UE_MAX)\n", UE_id, NUMBER_OF_UE_MAX);
|
||||
dlsch0 = eNB->dlsch[UE_id][0];
|
||||
dlsch1 = eNB->dlsch[UE_id][1];
|
||||
AssertFatal(DLSCH_id != -1, "No existing dlsch context\n");
|
||||
AssertFatal(DLSCH_id < NUMBER_OF_DLSCH_MAX, "Returned DLSCH_id %d >= %d (NUMBER_OF_DLSCH_MAX)\n", DLSCH_id, NUMBER_OF_DLSCH_MAX);
|
||||
dlsch0 = eNB->dlsch[DLSCH_id][0];
|
||||
dlsch1 = eNB->dlsch[DLSCH_id][1];
|
||||
|
||||
if (eNB->frame_parms.frame_type == FDD) {
|
||||
subframe_tx = (subframe + 6) % 10;
|
||||
@@ -1781,13 +1780,13 @@ static void do_release_harq(PHY_VARS_eNB *eNB,
|
||||
} // end if TDD
|
||||
}
|
||||
|
||||
static void release_harq(PHY_VARS_eNB *eNB,int UE_id,int tb,uint16_t frame,uint8_t subframe,uint16_t mask, int is_ack) {
|
||||
static void release_harq(PHY_VARS_eNB *eNB,int DLSCH_id,int tb,uint16_t frame,uint8_t subframe,uint16_t mask, int is_ack) {
|
||||
/*
|
||||
* Maximum number of DL transmissions = 4.
|
||||
* TODO: get the value from configuration.
|
||||
* If is_ack is true then we release immediately. The value -1 can be used for that.
|
||||
*/
|
||||
do_release_harq(eNB, UE_id, tb, frame, subframe, mask, is_ack ? -1 : 4);
|
||||
do_release_harq(eNB, DLSCH_id, tb, frame, subframe, mask, is_ack ? -1 : 4);
|
||||
}
|
||||
|
||||
int getM(PHY_VARS_eNB *eNB,int frame,int subframe) {
|
||||
@@ -1867,14 +1866,14 @@ void fill_ulsch_cqi_indication (PHY_VARS_eNB *eNB, uint16_t frame, uint8_t subfr
|
||||
}
|
||||
|
||||
void fill_ulsch_harq_indication (PHY_VARS_eNB *eNB, LTE_UL_eNB_HARQ_t *ulsch_harq, uint16_t rnti, int frame, int subframe, int bundling) {
|
||||
int UE_id = find_dlsch(rnti,eNB,SEARCH_EXIST);
|
||||
int DLSCH_id = find_dlsch(rnti,eNB,SEARCH_EXIST);
|
||||
|
||||
if( (UE_id<0) || (UE_id>=NUMBER_OF_UE_MAX) ) {
|
||||
LOG_E(PHY,"illegal UE_id found!!! rnti %04x UE_id %d\n",rnti,UE_id);
|
||||
if( (DLSCH_id<0) || (DLSCH_id>=NUMBER_OF_DLSCH_MAX) ) {
|
||||
LOG_E(PHY,"illegal DLSCH_id found!!! rnti %04x DLSCH_id %d\n",rnti,DLSCH_id);
|
||||
return;
|
||||
}
|
||||
|
||||
//AssertFatal(UE_id>=0,"UE_id doesn't exist\n");
|
||||
//AssertFatal(DLSCH_id>=0,"DLSCH_id doesn't exist\n");
|
||||
pthread_mutex_lock(&eNB->UL_INFO_mutex);
|
||||
nfapi_harq_indication_pdu_t *pdu = &eNB->UL_INFO.harq_ind.harq_indication_body.harq_pdu_list[eNB->UL_INFO.harq_ind.harq_indication_body.number_of_harqs];
|
||||
int M;
|
||||
@@ -1896,7 +1895,7 @@ void fill_ulsch_harq_indication (PHY_VARS_eNB *eNB, LTE_UL_eNB_HARQ_t *ulsch_har
|
||||
AssertFatal (ulsch_harq->o_ACK[i] == 0 || ulsch_harq->o_ACK[i] == 1, "harq_ack[%d] is %d, should be 1,2 or 4\n", i, ulsch_harq->o_ACK[i]);
|
||||
pdu->harq_indication_fdd_rel13.harq_tb_n[i] = 2 - ulsch_harq->o_ACK[i];
|
||||
// release DLSCH if needed
|
||||
release_harq(eNB,UE_id,i,frame,subframe,0xffff, ulsch_harq->o_ACK[i] == 1);
|
||||
release_harq(eNB,DLSCH_id,i,frame,subframe,0xffff, ulsch_harq->o_ACK[i] == 1);
|
||||
}
|
||||
} else { // TDD
|
||||
M = ul_ACK_subframe2_M (&eNB->frame_parms, subframe);
|
||||
@@ -1912,14 +1911,14 @@ void fill_ulsch_harq_indication (PHY_VARS_eNB *eNB, LTE_UL_eNB_HARQ_t *ulsch_har
|
||||
* We have to release the proper HARQ in case of ACK or NACK if max retransmission reached.
|
||||
* Basically, call release_harq with 1 as last argument when ACK and 0 when NACK.
|
||||
*/
|
||||
release_harq(eNB,UE_id,i,frame,subframe,0xffff, ulsch_harq->o_ACK[i] == 1);
|
||||
release_harq(eNB,DLSCH_id,i,frame,subframe,0xffff, ulsch_harq->o_ACK[i] == 1);
|
||||
|
||||
if (M==1 && ulsch_harq->O_ACK==1 && ulsch_harq->o_ACK[i] == 1) release_harq(eNB,UE_id,0,frame,subframe,0xffff, ulsch_harq->o_ACK[i] == 1);
|
||||
else if (M==1 && ulsch_harq->O_ACK==2 && ulsch_harq->o_ACK[i] == 1) release_harq(eNB,UE_id,i,frame,subframe,0xffff, ulsch_harq->o_ACK[i] == 1);
|
||||
if (M==1 && ulsch_harq->O_ACK==1 && ulsch_harq->o_ACK[i] == 1) release_harq(eNB,DLSCH_id,0,frame,subframe,0xffff, ulsch_harq->o_ACK[i] == 1);
|
||||
else if (M==1 && ulsch_harq->O_ACK==2 && ulsch_harq->o_ACK[i] == 1) release_harq(eNB,DLSCH_id,i,frame,subframe,0xffff, ulsch_harq->o_ACK[i] == 1);
|
||||
else if (M>1 && ulsch_harq->o_ACK[i] == 1) {
|
||||
// spatial bundling
|
||||
release_harq(eNB,UE_id,0,frame,subframe,1<<i, ulsch_harq->o_ACK[i] == 1);
|
||||
release_harq(eNB,UE_id,1,frame,subframe,1<<i, ulsch_harq->o_ACK[i] == 1);
|
||||
release_harq(eNB,DLSCH_id,0,frame,subframe,1<<i, ulsch_harq->o_ACK[i] == 1);
|
||||
release_harq(eNB,DLSCH_id,1,frame,subframe,1<<i, ulsch_harq->o_ACK[i] == 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1935,10 +1934,10 @@ void fill_uci_harq_indication (int UEid, PHY_VARS_eNB *eNB, LTE_eNB_UCI *uci, in
|
||||
return;
|
||||
}
|
||||
|
||||
int UE_id=find_dlsch(uci->rnti,eNB,SEARCH_EXIST);
|
||||
int DLSCH_id=find_dlsch(uci->rnti,eNB,SEARCH_EXIST);
|
||||
|
||||
//AssertFatal(UE_id>=0,"UE_id doesn't exist rnti:%x\n", uci->rnti);
|
||||
if (UE_id < 0) {
|
||||
//AssertFatal(DLSCH_id>=0,"DLSCH_id doesn't exist rnti:%x\n", uci->rnti);
|
||||
if (DLSCH_id < 0) {
|
||||
LOG_E(PHY,"SFN/SF:%04d%d Unable to find rnti:%x do not send HARQ\n", frame, subframe, uci->rnti);
|
||||
return;
|
||||
}
|
||||
@@ -1978,7 +1977,7 @@ void fill_uci_harq_indication (int UEid, PHY_VARS_eNB *eNB, LTE_eNB_UCI *uci, in
|
||||
AssertFatal (harq_ack[0] == 1 || harq_ack[0] == 2 || harq_ack[0] == 4, "harq_ack[0] is %d, should be 1,2 or 4\n", harq_ack[0]);
|
||||
pdu->harq_indication_fdd_rel13.harq_tb_n[0] = harq_ack[0];
|
||||
// release DLSCH if needed
|
||||
release_harq(eNB,UE_id,0,frame,subframe,0xffff, harq_ack[0] == 1);
|
||||
release_harq(eNB,DLSCH_id,0,frame,subframe,0xffff, harq_ack[0] == 1);
|
||||
} else if (uci->pucch_fmt == pucch_format1b) {
|
||||
pdu->harq_indication_fdd_rel13.tl.tag = NFAPI_HARQ_INDICATION_FDD_REL13_TAG;
|
||||
pdu->harq_indication_fdd_rel13.mode = 0;
|
||||
@@ -1988,8 +1987,8 @@ void fill_uci_harq_indication (int UEid, PHY_VARS_eNB *eNB, LTE_eNB_UCI *uci, in
|
||||
pdu->harq_indication_fdd_rel13.harq_tb_n[0] = harq_ack[0];
|
||||
pdu->harq_indication_fdd_rel13.harq_tb_n[1] = harq_ack[1];
|
||||
// release DLSCH if needed
|
||||
release_harq(eNB,UE_id,0,frame,subframe,0xffff, harq_ack[0] == 1);
|
||||
release_harq(eNB,UE_id,1,frame,subframe,0xffff, harq_ack[1] == 1);
|
||||
release_harq(eNB,DLSCH_id,0,frame,subframe,0xffff, harq_ack[0] == 1);
|
||||
release_harq(eNB,DLSCH_id,1,frame,subframe,0xffff, harq_ack[1] == 1);
|
||||
} else AssertFatal(1==0,"only format 1a/b for now, received %d\n",uci->pucch_fmt);
|
||||
} else { // TDD
|
||||
AssertFatal (tdd_mapping_mode == 0 || tdd_mapping_mode == 1 || tdd_mapping_mode == 2, "Illegal tdd_mapping_mode %d\n", tdd_mapping_mode);
|
||||
@@ -2007,7 +2006,7 @@ void fill_uci_harq_indication (int UEid, PHY_VARS_eNB *eNB, LTE_eNB_UCI *uci, in
|
||||
AssertFatal(harq_ack[0] == 1 || harq_ack[0] == 2 || harq_ack[0] == 4, "harq_ack[0] is %d, should be 1,2 or 4\n",harq_ack[0]);
|
||||
pdu->harq_indication_tdd_rel13.harq_data[0].bundling.value_0 = harq_ack[0];
|
||||
// release all bundled DLSCH if needed
|
||||
release_harq(eNB,UE_id,0,frame,subframe,0xffff, harq_ack[0] == 1);
|
||||
release_harq(eNB,DLSCH_id,0,frame,subframe,0xffff, harq_ack[0] == 1);
|
||||
} else if (uci->pucch_fmt == pucch_format1b) {
|
||||
pdu->harq_indication_tdd_rel13.number_of_ack_nack = 2;
|
||||
AssertFatal(harq_ack[0] == 1 || harq_ack[0] == 2 || harq_ack[1] == 4, "harq_ack[0] is %d, should be 0,1 or 4\n",harq_ack[0]);
|
||||
@@ -2016,8 +2015,8 @@ void fill_uci_harq_indication (int UEid, PHY_VARS_eNB *eNB, LTE_eNB_UCI *uci, in
|
||||
pdu->harq_indication_tdd_rel13.harq_data[0].bundling.value_0 = harq_ack[0];
|
||||
pdu->harq_indication_tdd_rel13.harq_data[1].bundling.value_0 = harq_ack[1];
|
||||
// release all DLSCH if needed
|
||||
release_harq(eNB,UE_id,0,frame,subframe,0xffff, harq_ack[0] == 1);
|
||||
release_harq(eNB,UE_id,1,frame,subframe,0xffff, harq_ack[1] == 1);
|
||||
release_harq(eNB,DLSCH_id,0,frame,subframe,0xffff, harq_ack[0] == 1);
|
||||
release_harq(eNB,DLSCH_id,1,frame,subframe,0xffff, harq_ack[1] == 1);
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -2031,7 +2030,7 @@ void fill_uci_harq_indication (int UEid, PHY_VARS_eNB *eNB, LTE_eNB_UCI *uci, in
|
||||
AssertFatal(harq_ack[0] == 1 || harq_ack[0] == 2 || harq_ack[0] == 4, "harq_ack[0] is %d, should be 1,2 or 4\n",harq_ack[0]);
|
||||
pdu->harq_indication_tdd_rel13.harq_data[0].multiplex.value_0 = harq_ack[0];
|
||||
// release all DLSCH if needed
|
||||
release_harq(eNB,UE_id,0,frame,subframe,0xffff, harq_ack[0] == 1);
|
||||
release_harq(eNB,DLSCH_id,0,frame,subframe,0xffff, harq_ack[0] == 1);
|
||||
} else if (uci->num_pucch_resources == 1 && uci->pucch_fmt == pucch_format1b) {
|
||||
pdu->harq_indication_tdd_rel13.tl.tag = NFAPI_HARQ_INDICATION_TDD_REL13_TAG;
|
||||
pdu->harq_indication_tdd_rel13.number_of_ack_nack = 2;
|
||||
@@ -2040,8 +2039,8 @@ void fill_uci_harq_indication (int UEid, PHY_VARS_eNB *eNB, LTE_eNB_UCI *uci, in
|
||||
pdu->harq_indication_tdd_rel13.harq_data[0].multiplex.value_0 = harq_ack[0];
|
||||
pdu->harq_indication_tdd_rel13.harq_data[1].multiplex.value_0 = harq_ack[1];
|
||||
// release all DLSCH if needed
|
||||
release_harq(eNB,UE_id,0,frame,subframe,0xffff, harq_ack[0] == 1);
|
||||
release_harq(eNB,UE_id,1,frame,subframe,0xffff, harq_ack[1] == 1);
|
||||
release_harq(eNB,DLSCH_id,0,frame,subframe,0xffff, harq_ack[0] == 1);
|
||||
release_harq(eNB,DLSCH_id,1,frame,subframe,0xffff, harq_ack[1] == 1);
|
||||
} else { // num_pucch_resources (M) > 1
|
||||
pdu->harq_indication_tdd_rel13.tl.tag = NFAPI_HARQ_INDICATION_TDD_REL13_TAG;
|
||||
pdu->harq_indication_tdd_rel13.number_of_ack_nack = uci->num_pucch_resources;
|
||||
@@ -2053,8 +2052,8 @@ void fill_uci_harq_indication (int UEid, PHY_VARS_eNB *eNB, LTE_eNB_UCI *uci, in
|
||||
if (uci->num_pucch_resources == 4) pdu->harq_indication_tdd_rel13.harq_data[3].multiplex.value_0 = harq_ack[3];
|
||||
|
||||
// spatial-bundling in this case so release both HARQ if necessary
|
||||
release_harq(eNB,UE_id,0,frame,subframe,tdd_multiplexing_mask, 1 /* force release? previous code was unconditional */);
|
||||
release_harq(eNB,UE_id,1,frame,subframe,tdd_multiplexing_mask, 1 /* force release? previous code was unconditional */);
|
||||
release_harq(eNB,DLSCH_id,0,frame,subframe,tdd_multiplexing_mask, 1 /* force release? previous code was unconditional */);
|
||||
release_harq(eNB,DLSCH_id,1,frame,subframe,tdd_multiplexing_mask, 1 /* force release? previous code was unconditional */);
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -2078,8 +2077,8 @@ void fill_uci_harq_indication (int UEid, PHY_VARS_eNB *eNB, LTE_eNB_UCI *uci, in
|
||||
if (uci->num_pucch_resources == 1 || uci->num_pucch_resources == 4 ||
|
||||
tdd_config5_sf2scheds == 1 || tdd_config5_sf2scheds == 4 || tdd_config5_sf2scheds == 7) {
|
||||
pdu->harq_indication_tdd_rel13.harq_data[0].bundling.value_0 = 1;
|
||||
release_harq(eNB,UE_id,0,frame,subframe,0xffff, 1);
|
||||
release_harq(eNB,UE_id,1,frame,subframe,0xffff, 1);
|
||||
release_harq(eNB,DLSCH_id,0,frame,subframe,0xffff, 1);
|
||||
release_harq(eNB,DLSCH_id,1,frame,subframe,0xffff, 1);
|
||||
} else {
|
||||
pdu->harq_indication_tdd_rel13.harq_data[0].bundling.value_0 = 0;
|
||||
}
|
||||
@@ -2090,8 +2089,8 @@ void fill_uci_harq_indication (int UEid, PHY_VARS_eNB *eNB, LTE_eNB_UCI *uci, in
|
||||
if (uci->num_pucch_resources == 2 || tdd_config5_sf2scheds == 2 ||
|
||||
tdd_config5_sf2scheds == 5 || tdd_config5_sf2scheds == 8) {
|
||||
pdu->harq_indication_tdd_rel13.harq_data[0].bundling.value_0 = 1;
|
||||
release_harq(eNB,UE_id,0,frame,subframe,0xffff, 1);
|
||||
release_harq(eNB,UE_id,1,frame,subframe,0xffff, 1);
|
||||
release_harq(eNB,DLSCH_id,0,frame,subframe,0xffff, 1);
|
||||
release_harq(eNB,DLSCH_id,1,frame,subframe,0xffff, 1);
|
||||
} else {
|
||||
pdu->harq_indication_tdd_rel13.harq_data[0].bundling.value_0 = 0;
|
||||
}
|
||||
@@ -2102,8 +2101,8 @@ void fill_uci_harq_indication (int UEid, PHY_VARS_eNB *eNB, LTE_eNB_UCI *uci, in
|
||||
if (uci->num_pucch_resources == 3 || tdd_config5_sf2scheds == 3 ||
|
||||
tdd_config5_sf2scheds == 6 || tdd_config5_sf2scheds == 9) {
|
||||
pdu->harq_indication_tdd_rel13.harq_data[0].bundling.value_0 = 1;
|
||||
release_harq(eNB,UE_id,0,frame,subframe,0xffff, 1);
|
||||
release_harq(eNB,UE_id,1,frame,subframe,0xffff, 1);
|
||||
release_harq(eNB,DLSCH_id,0,frame,subframe,0xffff, 1);
|
||||
release_harq(eNB,DLSCH_id,1,frame,subframe,0xffff, 1);
|
||||
} else {
|
||||
pdu->harq_indication_tdd_rel13.harq_data[0].bundling.value_0 = 0;
|
||||
}
|
||||
@@ -2120,7 +2119,7 @@ void fill_uci_harq_indication (int UEid, PHY_VARS_eNB *eNB, LTE_eNB_UCI *uci, in
|
||||
pthread_mutex_unlock(&eNB->UL_INFO_mutex);
|
||||
}
|
||||
|
||||
void fill_crc_indication (PHY_VARS_eNB *eNB, int UE_id, int frame, int subframe, uint8_t crc_flag) {
|
||||
void fill_crc_indication (PHY_VARS_eNB *eNB, int ULSCH_id, int frame, int subframe, uint8_t crc_flag) {
|
||||
pthread_mutex_lock(&eNB->UL_INFO_mutex);
|
||||
nfapi_crc_indication_pdu_t *pdu = &eNB->UL_INFO.crc_ind.crc_indication_body.crc_pdu_list[eNB->UL_INFO.crc_ind.crc_indication_body.number_of_crcs];
|
||||
eNB->UL_INFO.crc_ind.sfn_sf = frame<<4 | subframe;
|
||||
@@ -2129,7 +2128,7 @@ void fill_crc_indication (PHY_VARS_eNB *eNB, int UE_id, int frame, int subframe,
|
||||
pdu->instance_length = 0; // don't know what to do with this
|
||||
// pdu->rx_ue_information.handle = handle;
|
||||
pdu->rx_ue_information.tl.tag = NFAPI_RX_UE_INFORMATION_TAG;
|
||||
pdu->rx_ue_information.rnti = eNB->ulsch[UE_id]->rnti;
|
||||
pdu->rx_ue_information.rnti = eNB->ulsch[ULSCH_id]->rnti;
|
||||
pdu->crc_indication_rel8.tl.tag = NFAPI_CRC_INDICATION_REL8_TAG;
|
||||
pdu->crc_indication_rel8.crc_flag = crc_flag;
|
||||
eNB->UL_INFO.crc_ind.crc_indication_body.number_of_crcs++;
|
||||
@@ -2184,8 +2183,8 @@ void phy_procedures_eNB_uespec_RX(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc) {
|
||||
|
||||
// figure out a better way to choose slot_rx, 19 is ok for a particular TDD configuration with 30kHz SCS
|
||||
if ((frame&127) == 0 && subframe==3) {
|
||||
dump_ulsch_stats(eNB);
|
||||
dump_uci_stats(eNB);
|
||||
dump_ulsch_stats(eNB,frame);
|
||||
dump_uci_stats(eNB,frame);
|
||||
}
|
||||
|
||||
// clear unused statistics after 2 seconds
|
||||
@@ -2221,7 +2220,7 @@ void release_rnti_of_phy(module_id_t mod_id) {
|
||||
eNB_PHY = RC.eNB[mod_id][CC_id];
|
||||
rnti = release_rntis.ue_release_request_TLVs_list[i].rnti;
|
||||
|
||||
for (j=0; j<NUMBER_OF_UE_MAX; j++) {
|
||||
for (j=0; j<NUMBER_OF_ULSCH_MAX; j++) {
|
||||
ulsch = eNB_PHY->ulsch[j];
|
||||
|
||||
if((ulsch != NULL) && (ulsch->rnti == rnti)) {
|
||||
@@ -2246,7 +2245,7 @@ void release_rnti_of_phy(module_id_t mod_id) {
|
||||
if (eNB_PHY->ulsch_stats[j].rnti == rnti) {eNB_PHY->ulsch_stats[j].rnti=0; break;}
|
||||
}
|
||||
|
||||
for(j=0; j<NUMBER_OF_UCI_VARS_MAX; j++) {
|
||||
for(j=0; j<NUMBER_OF_UCI_MAX; j++) {
|
||||
if(eNB_PHY->uci_vars[j].rnti == rnti) {
|
||||
LOG_I(PHY, "clean eNb uci_vars[%d] UE %x \n",j, rnti);
|
||||
memset(&eNB_PHY->uci_vars[i],0,sizeof(LTE_eNB_UCI));
|
||||
|
||||
@@ -86,18 +86,6 @@
|
||||
#define MAX_gNB 2
|
||||
#endif
|
||||
|
||||
#define NUMBER_OF_DLSCH_MAX 16
|
||||
#define NUMBER_OF_ULSCH_MAX 16
|
||||
#define NUMBER_OF_SCH_STATS_MAX 16
|
||||
|
||||
#define NUMBER_OF_NR_DLSCH_MAX 2//16
|
||||
#define NUMBER_OF_NR_ULSCH_MAX 2//16
|
||||
#define NUMBER_OF_NR_SCH_STATS_MAX 16
|
||||
|
||||
#define NUMBER_OF_NR_PUCCH_MAX 16
|
||||
#define NUMBER_OF_NR_SR_MAX 16
|
||||
#define NUMBER_OF_NR_PDCCH_MAX 16
|
||||
|
||||
#define MAX_MANAGED_ENB_PER_MOBILE 2
|
||||
#define MAX_MANAGED_GNB_PER_MOBILE 2
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,32 @@
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Common definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
F1AP-CommonDataTypes {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
ngran-access (22) modules (3) f1ap (3) version1 (1) f1ap-CommonDataTypes (3) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
Criticality ::= ENUMERATED { reject, ignore, notify }
|
||||
|
||||
Presence ::= ENUMERATED { optional, conditional, mandatory }
|
||||
|
||||
PrivateIE-ID ::= CHOICE {
|
||||
local INTEGER (0..65535),
|
||||
global OBJECT IDENTIFIER
|
||||
}
|
||||
|
||||
ProcedureCode ::= INTEGER (0..255)
|
||||
|
||||
ProtocolExtensionID ::= INTEGER (0..65535)
|
||||
|
||||
ProtocolIE-ID ::= INTEGER (0..65535)
|
||||
|
||||
TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome }
|
||||
|
||||
END
|
||||
@@ -0,0 +1,622 @@
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Constant definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
F1AP-Constants {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
ngran-access (22) modules (3) f1ap (3) version1 (1) f1ap-Constants (4) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- IE parameter types from other modules.
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
IMPORTS
|
||||
ProcedureCode,
|
||||
ProtocolIE-ID
|
||||
|
||||
FROM F1AP-CommonDataTypes;
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Elementary Procedures
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
id-Reset ProcedureCode ::= 0
|
||||
id-F1Setup ProcedureCode ::= 1
|
||||
id-ErrorIndication ProcedureCode ::= 2
|
||||
id-gNBDUConfigurationUpdate ProcedureCode ::= 3
|
||||
id-gNBCUConfigurationUpdate ProcedureCode ::= 4
|
||||
id-UEContextSetup ProcedureCode ::= 5
|
||||
id-UEContextRelease ProcedureCode ::= 6
|
||||
id-UEContextModification ProcedureCode ::= 7
|
||||
id-UEContextModificationRequired ProcedureCode ::= 8
|
||||
id-UEMobilityCommand ProcedureCode ::= 9
|
||||
id-UEContextReleaseRequest ProcedureCode ::= 10
|
||||
id-InitialULRRCMessageTransfer ProcedureCode ::= 11
|
||||
id-DLRRCMessageTransfer ProcedureCode ::= 12
|
||||
id-ULRRCMessageTransfer ProcedureCode ::= 13
|
||||
id-privateMessage ProcedureCode ::= 14
|
||||
id-UEInactivityNotification ProcedureCode ::= 15
|
||||
id-GNBDUResourceCoordination ProcedureCode ::= 16
|
||||
id-SystemInformationDeliveryCommand ProcedureCode ::= 17
|
||||
id-Paging ProcedureCode ::= 18
|
||||
id-Notify ProcedureCode ::= 19
|
||||
id-WriteReplaceWarning ProcedureCode ::= 20
|
||||
id-PWSCancel ProcedureCode ::= 21
|
||||
id-PWSRestartIndication ProcedureCode ::= 22
|
||||
id-PWSFailureIndication ProcedureCode ::= 23
|
||||
id-GNBDUStatusIndication ProcedureCode ::= 24
|
||||
id-RRCDeliveryReport ProcedureCode ::= 25
|
||||
id-F1Removal ProcedureCode ::= 26
|
||||
id-NetworkAccessRateReduction ProcedureCode ::= 27
|
||||
id-TraceStart ProcedureCode ::= 28
|
||||
id-DeactivateTrace ProcedureCode ::= 29
|
||||
id-DUCURadioInformationTransfer ProcedureCode ::= 30
|
||||
id-CUDURadioInformationTransfer ProcedureCode ::= 31
|
||||
id-BAPMappingConfiguration ProcedureCode ::= 32
|
||||
id-GNBDUResourceConfiguration ProcedureCode ::= 33
|
||||
id-IABTNLAddressAllocation ProcedureCode ::= 34
|
||||
id-IABUPConfigurationUpdate ProcedureCode ::= 35
|
||||
id-resourceStatusReportingInitiation ProcedureCode ::= 36
|
||||
id-resourceStatusReporting ProcedureCode ::= 37
|
||||
id-accessAndMobilityIndication ProcedureCode ::= 38
|
||||
id-accessSuccess ProcedureCode ::= 39
|
||||
id-cellTrafficTrace ProcedureCode ::= 40
|
||||
id-PositioningMeasurementExchange ProcedureCode ::= 41
|
||||
id-PositioningAssistanceInformationControl ProcedureCode ::= 42
|
||||
id-PositioningAssistanceInformationFeedback ProcedureCode ::= 43
|
||||
id-PositioningMeasurementReport ProcedureCode ::= 44
|
||||
id-PositioningMeasurementAbort ProcedureCode ::= 45
|
||||
id-PositioningMeasurementFailureIndication ProcedureCode ::= 46
|
||||
id-PositioningMeasurementUpdate ProcedureCode ::= 47
|
||||
id-TRPInformationExchange ProcedureCode ::= 48
|
||||
id-PositioningInformationExchange ProcedureCode ::= 49
|
||||
id-PositioningActivation ProcedureCode ::= 50
|
||||
id-PositioningDeactivation ProcedureCode ::= 51
|
||||
id-E-CIDMeasurementInitiation ProcedureCode ::= 52
|
||||
id-E-CIDMeasurementFailureIndication ProcedureCode ::= 53
|
||||
id-E-CIDMeasurementReport ProcedureCode ::= 54
|
||||
id-E-CIDMeasurementTermination ProcedureCode ::= 55
|
||||
id-PositioningInformationUpdate ProcedureCode ::= 56
|
||||
id-ReferenceTimeInformationReport ProcedureCode ::= 57
|
||||
id-ReferenceTimeInformationReportingControl ProcedureCode ::= 58
|
||||
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Extension constants
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
maxPrivateIEs INTEGER ::= 65535
|
||||
maxProtocolExtensions INTEGER ::= 65535
|
||||
maxProtocolIEs INTEGER ::= 65535
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Lists
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
maxNRARFCN INTEGER ::= 3279165
|
||||
maxnoofErrors INTEGER ::= 256
|
||||
maxnoofIndividualF1ConnectionsToReset INTEGER ::= 65536
|
||||
maxCellingNBDU INTEGER ::= 512
|
||||
maxnoofSCells INTEGER ::= 32
|
||||
maxnoofSRBs INTEGER ::= 8
|
||||
maxnoofDRBs INTEGER ::= 64
|
||||
maxnoofULUPTNLInformation INTEGER ::= 2
|
||||
maxnoofDLUPTNLInformation INTEGER ::= 2
|
||||
maxnoofBPLMNs INTEGER ::= 6
|
||||
maxnoofCandidateSpCells INTEGER ::= 64
|
||||
maxnoofPotentialSpCells INTEGER ::= 64
|
||||
maxnoofNrCellBands INTEGER ::= 32
|
||||
maxnoofSIBTypes INTEGER ::= 32
|
||||
maxnoofSITypes INTEGER ::= 32
|
||||
maxnoofPagingCells INTEGER ::= 512
|
||||
maxnoofTNLAssociations INTEGER ::= 32
|
||||
maxnoofQoSFlows INTEGER ::= 64
|
||||
maxnoofSliceItems INTEGER ::= 1024
|
||||
maxCellineNB INTEGER ::= 256
|
||||
maxnoofExtendedBPLMNs INTEGER ::= 6
|
||||
maxnoofUEIDs INTEGER ::= 65536
|
||||
maxnoofBPLMNsNR INTEGER ::= 12
|
||||
maxnoofUACPLMNs INTEGER ::= 12
|
||||
maxnoofUACperPLMN INTEGER ::= 64
|
||||
maxnoofAdditionalSIBs INTEGER ::= 63
|
||||
maxnoofslots INTEGER ::= 5120
|
||||
maxnoofTLAs INTEGER ::= 16
|
||||
maxnoofGTPTLAs INTEGER ::= 16
|
||||
maxnoofBHRLCChannels INTEGER ::= 65536
|
||||
maxnoofRoutingEntries INTEGER ::= 1024
|
||||
maxnoofIABSTCInfo INTEGER ::= 45
|
||||
maxnoofSymbols INTEGER ::= 14
|
||||
maxnoofServingCells INTEGER ::= 32
|
||||
maxnoofDUFSlots INTEGER ::= 320
|
||||
maxnoofHSNASlots INTEGER ::= 5120
|
||||
maxnoofServedCellsIAB INTEGER ::= 512
|
||||
maxnoofChildIABNodes INTEGER ::= 1024
|
||||
maxnoofNonUPTrafficMappings INTEGER ::= 32
|
||||
maxnoofTLAsIAB INTEGER ::= 1024
|
||||
maxnoofMappingEntries INTEGER ::= 67108864
|
||||
maxnoofDSInfo INTEGER ::= 64
|
||||
maxnoofEgressLinks INTEGER ::= 2
|
||||
maxnoofULUPTNLInformationforIAB INTEGER ::= 32678
|
||||
maxnoofUPTNLAddresses INTEGER ::= 8
|
||||
maxnoofSLDRBs INTEGER ::= 512
|
||||
maxnoofQoSParaSets INTEGER ::= 8
|
||||
maxnoofPC5QoSFlows INTEGER ::= 2048
|
||||
maxnoofSSBAreas INTEGER ::= 64
|
||||
maxnoofPhysicalResourceBlocks INTEGER ::= 275
|
||||
maxnoofPhysicalResourceBlocks-1 INTEGER ::= 274
|
||||
maxnoofPRACHconfigs INTEGER ::= 16
|
||||
maxnoofRACHReports INTEGER ::= 64
|
||||
maxnoofRLFReports INTEGER ::= 64
|
||||
maxnoofAdditionalPDCPDuplicationTNL INTEGER ::= 2
|
||||
maxnoofRLCDuplicationState INTEGER ::= 3
|
||||
maxnoofCHOcells INTEGER ::= 8
|
||||
maxnoofMDTPLMNs INTEGER ::= 16
|
||||
maxnoofCAGsupported INTEGER ::= 12
|
||||
maxnoofNIDsupported INTEGER ::= 12
|
||||
maxnoofNRSCSs INTEGER ::= 5
|
||||
maxnoofExtSliceItems INTEGER ::= 65535
|
||||
maxnoofPosMeas INTEGER ::= 16384
|
||||
maxnoofTRPInfoTypes INTEGER ::= 64
|
||||
maxnoofTRPs INTEGER ::= 65535
|
||||
maxnoofSRSTriggerStates INTEGER ::= 3
|
||||
maxnoofSpatialRelations INTEGER ::= 64
|
||||
maxnoBcastCell INTEGER ::= 16384
|
||||
maxnoofAngleInfo INTEGER ::= 65535
|
||||
maxnooflcs-gcs-translation INTEGER ::= 3
|
||||
maxnoofPath INTEGER ::= 2
|
||||
maxnoofMeasE-CID INTEGER ::= 64
|
||||
maxnoofSSBs INTEGER ::= 255
|
||||
maxnoSRS-ResourceSets INTEGER ::= 16
|
||||
maxnoSRS-ResourcePerSet INTEGER ::= 16
|
||||
maxnoSRS-Carriers INTEGER ::= 32
|
||||
maxnoSCSs INTEGER ::= 5
|
||||
maxnoSRS-Resources INTEGER ::= 64
|
||||
maxnoSRS-PosResources INTEGER ::= 64
|
||||
maxnoSRS-PosResourceSets INTEGER ::= 16
|
||||
maxnoSRS-PosResourcePerSet INTEGER ::= 16
|
||||
maxnoofPRS-ResourceSets INTEGER ::= 2
|
||||
maxnoofPRS-ResourcesPerSet INTEGER ::= 64
|
||||
maxNoOfMeasTRPs INTEGER ::= 64
|
||||
maxnoofPRSresourceSets INTEGER ::= 8
|
||||
maxnoofPRSresources INTEGER ::= 64
|
||||
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
id-Cause ProtocolIE-ID ::= 0
|
||||
id-Cells-Failed-to-be-Activated-List ProtocolIE-ID ::= 1
|
||||
id-Cells-Failed-to-be-Activated-List-Item ProtocolIE-ID ::= 2
|
||||
id-Cells-to-be-Activated-List ProtocolIE-ID ::= 3
|
||||
id-Cells-to-be-Activated-List-Item ProtocolIE-ID ::= 4
|
||||
id-Cells-to-be-Deactivated-List ProtocolIE-ID ::= 5
|
||||
id-Cells-to-be-Deactivated-List-Item ProtocolIE-ID ::= 6
|
||||
id-CriticalityDiagnostics ProtocolIE-ID ::= 7
|
||||
id-CUtoDURRCInformation ProtocolIE-ID ::= 9
|
||||
id-DRBs-FailedToBeModified-Item ProtocolIE-ID ::= 12
|
||||
id-DRBs-FailedToBeModified-List ProtocolIE-ID ::= 13
|
||||
id-DRBs-FailedToBeSetup-Item ProtocolIE-ID ::= 14
|
||||
id-DRBs-FailedToBeSetup-List ProtocolIE-ID ::= 15
|
||||
id-DRBs-FailedToBeSetupMod-Item ProtocolIE-ID ::= 16
|
||||
id-DRBs-FailedToBeSetupMod-List ProtocolIE-ID ::= 17
|
||||
id-DRBs-ModifiedConf-Item ProtocolIE-ID ::= 18
|
||||
id-DRBs-ModifiedConf-List ProtocolIE-ID ::= 19
|
||||
id-DRBs-Modified-Item ProtocolIE-ID ::= 20
|
||||
id-DRBs-Modified-List ProtocolIE-ID ::= 21
|
||||
id-DRBs-Required-ToBeModified-Item ProtocolIE-ID ::= 22
|
||||
id-DRBs-Required-ToBeModified-List ProtocolIE-ID ::= 23
|
||||
id-DRBs-Required-ToBeReleased-Item ProtocolIE-ID ::= 24
|
||||
id-DRBs-Required-ToBeReleased-List ProtocolIE-ID ::= 25
|
||||
id-DRBs-Setup-Item ProtocolIE-ID ::= 26
|
||||
id-DRBs-Setup-List ProtocolIE-ID ::= 27
|
||||
id-DRBs-SetupMod-Item ProtocolIE-ID ::= 28
|
||||
id-DRBs-SetupMod-List ProtocolIE-ID ::= 29
|
||||
id-DRBs-ToBeModified-Item ProtocolIE-ID ::= 30
|
||||
id-DRBs-ToBeModified-List ProtocolIE-ID ::= 31
|
||||
id-DRBs-ToBeReleased-Item ProtocolIE-ID ::= 32
|
||||
id-DRBs-ToBeReleased-List ProtocolIE-ID ::= 33
|
||||
id-DRBs-ToBeSetup-Item ProtocolIE-ID ::= 34
|
||||
id-DRBs-ToBeSetup-List ProtocolIE-ID ::= 35
|
||||
id-DRBs-ToBeSetupMod-Item ProtocolIE-ID ::= 36
|
||||
id-DRBs-ToBeSetupMod-List ProtocolIE-ID ::= 37
|
||||
id-DRXCycle ProtocolIE-ID ::= 38
|
||||
id-DUtoCURRCInformation ProtocolIE-ID ::= 39
|
||||
id-gNB-CU-UE-F1AP-ID ProtocolIE-ID ::= 40
|
||||
id-gNB-DU-UE-F1AP-ID ProtocolIE-ID ::= 41
|
||||
id-gNB-DU-ID ProtocolIE-ID ::= 42
|
||||
id-GNB-DU-Served-Cells-Item ProtocolIE-ID ::= 43
|
||||
id-gNB-DU-Served-Cells-List ProtocolIE-ID ::= 44
|
||||
id-gNB-DU-Name ProtocolIE-ID ::= 45
|
||||
id-NRCellID ProtocolIE-ID ::= 46
|
||||
id-oldgNB-DU-UE-F1AP-ID ProtocolIE-ID ::= 47
|
||||
id-ResetType ProtocolIE-ID ::= 48
|
||||
id-ResourceCoordinationTransferContainer ProtocolIE-ID ::= 49
|
||||
id-RRCContainer ProtocolIE-ID ::= 50
|
||||
id-SCell-ToBeRemoved-Item ProtocolIE-ID ::= 51
|
||||
id-SCell-ToBeRemoved-List ProtocolIE-ID ::= 52
|
||||
id-SCell-ToBeSetup-Item ProtocolIE-ID ::= 53
|
||||
id-SCell-ToBeSetup-List ProtocolIE-ID ::= 54
|
||||
id-SCell-ToBeSetupMod-Item ProtocolIE-ID ::= 55
|
||||
id-SCell-ToBeSetupMod-List ProtocolIE-ID ::= 56
|
||||
id-Served-Cells-To-Add-Item ProtocolIE-ID ::= 57
|
||||
id-Served-Cells-To-Add-List ProtocolIE-ID ::= 58
|
||||
id-Served-Cells-To-Delete-Item ProtocolIE-ID ::= 59
|
||||
id-Served-Cells-To-Delete-List ProtocolIE-ID ::= 60
|
||||
id-Served-Cells-To-Modify-Item ProtocolIE-ID ::= 61
|
||||
id-Served-Cells-To-Modify-List ProtocolIE-ID ::= 62
|
||||
id-SpCell-ID ProtocolIE-ID ::= 63
|
||||
id-SRBID ProtocolIE-ID ::= 64
|
||||
id-SRBs-FailedToBeSetup-Item ProtocolIE-ID ::= 65
|
||||
id-SRBs-FailedToBeSetup-List ProtocolIE-ID ::= 66
|
||||
id-SRBs-FailedToBeSetupMod-Item ProtocolIE-ID ::= 67
|
||||
id-SRBs-FailedToBeSetupMod-List ProtocolIE-ID ::= 68
|
||||
id-SRBs-Required-ToBeReleased-Item ProtocolIE-ID ::= 69
|
||||
id-SRBs-Required-ToBeReleased-List ProtocolIE-ID ::= 70
|
||||
id-SRBs-ToBeReleased-Item ProtocolIE-ID ::= 71
|
||||
id-SRBs-ToBeReleased-List ProtocolIE-ID ::= 72
|
||||
id-SRBs-ToBeSetup-Item ProtocolIE-ID ::= 73
|
||||
id-SRBs-ToBeSetup-List ProtocolIE-ID ::= 74
|
||||
id-SRBs-ToBeSetupMod-Item ProtocolIE-ID ::= 75
|
||||
id-SRBs-ToBeSetupMod-List ProtocolIE-ID ::= 76
|
||||
id-TimeToWait ProtocolIE-ID ::= 77
|
||||
id-TransactionID ProtocolIE-ID ::= 78
|
||||
id-TransmissionActionIndicator ProtocolIE-ID ::= 79
|
||||
id-UE-associatedLogicalF1-ConnectionItem ProtocolIE-ID ::= 80
|
||||
id-UE-associatedLogicalF1-ConnectionListResAck ProtocolIE-ID ::= 81
|
||||
id-gNB-CU-Name ProtocolIE-ID ::= 82
|
||||
id-SCell-FailedtoSetup-List ProtocolIE-ID ::= 83
|
||||
id-SCell-FailedtoSetup-Item ProtocolIE-ID ::= 84
|
||||
id-SCell-FailedtoSetupMod-List ProtocolIE-ID ::= 85
|
||||
id-SCell-FailedtoSetupMod-Item ProtocolIE-ID ::= 86
|
||||
id-RRCReconfigurationCompleteIndicator ProtocolIE-ID ::= 87
|
||||
id-Cells-Status-Item ProtocolIE-ID ::= 88
|
||||
id-Cells-Status-List ProtocolIE-ID ::= 89
|
||||
id-Candidate-SpCell-List ProtocolIE-ID ::= 90
|
||||
id-Candidate-SpCell-Item ProtocolIE-ID ::= 91
|
||||
id-Potential-SpCell-List ProtocolIE-ID ::= 92
|
||||
id-Potential-SpCell-Item ProtocolIE-ID ::= 93
|
||||
id-FullConfiguration ProtocolIE-ID ::= 94
|
||||
id-C-RNTI ProtocolIE-ID ::= 95
|
||||
id-SpCellULConfigured ProtocolIE-ID ::= 96
|
||||
id-InactivityMonitoringRequest ProtocolIE-ID ::= 97
|
||||
id-InactivityMonitoringResponse ProtocolIE-ID ::= 98
|
||||
id-DRB-Activity-Item ProtocolIE-ID ::= 99
|
||||
id-DRB-Activity-List ProtocolIE-ID ::= 100
|
||||
id-EUTRA-NR-CellResourceCoordinationReq-Container ProtocolIE-ID ::= 101
|
||||
id-EUTRA-NR-CellResourceCoordinationReqAck-Container ProtocolIE-ID ::= 102
|
||||
id-Protected-EUTRA-Resources-List ProtocolIE-ID ::= 105
|
||||
id-RequestType ProtocolIE-ID ::= 106
|
||||
id-ServCellIndex ProtocolIE-ID ::= 107
|
||||
id-RAT-FrequencyPriorityInformation ProtocolIE-ID ::= 108
|
||||
id-ExecuteDuplication ProtocolIE-ID ::= 109
|
||||
id-NRCGI ProtocolIE-ID ::= 111
|
||||
id-PagingCell-Item ProtocolIE-ID ::= 112
|
||||
id-PagingCell-List ProtocolIE-ID ::= 113
|
||||
id-PagingDRX ProtocolIE-ID ::= 114
|
||||
id-PagingPriority ProtocolIE-ID ::= 115
|
||||
id-SItype-List ProtocolIE-ID ::= 116
|
||||
id-UEIdentityIndexValue ProtocolIE-ID ::= 117
|
||||
id-gNB-CUSystemInformation ProtocolIE-ID ::= 118
|
||||
id-HandoverPreparationInformation ProtocolIE-ID ::= 119
|
||||
id-GNB-CU-TNL-Association-To-Add-Item ProtocolIE-ID ::= 120
|
||||
id-GNB-CU-TNL-Association-To-Add-List ProtocolIE-ID ::= 121
|
||||
id-GNB-CU-TNL-Association-To-Remove-Item ProtocolIE-ID ::= 122
|
||||
id-GNB-CU-TNL-Association-To-Remove-List ProtocolIE-ID ::= 123
|
||||
id-GNB-CU-TNL-Association-To-Update-Item ProtocolIE-ID ::= 124
|
||||
id-GNB-CU-TNL-Association-To-Update-List ProtocolIE-ID ::= 125
|
||||
id-MaskedIMEISV ProtocolIE-ID ::= 126
|
||||
id-PagingIdentity ProtocolIE-ID ::= 127
|
||||
id-DUtoCURRCContainer ProtocolIE-ID ::= 128
|
||||
id-Cells-to-be-Barred-List ProtocolIE-ID ::= 129
|
||||
id-Cells-to-be-Barred-Item ProtocolIE-ID ::= 130
|
||||
id-TAISliceSupportList ProtocolIE-ID ::= 131
|
||||
id-GNB-CU-TNL-Association-Setup-List ProtocolIE-ID ::= 132
|
||||
id-GNB-CU-TNL-Association-Setup-Item ProtocolIE-ID ::= 133
|
||||
id-GNB-CU-TNL-Association-Failed-To-Setup-List ProtocolIE-ID ::= 134
|
||||
id-GNB-CU-TNL-Association-Failed-To-Setup-Item ProtocolIE-ID ::= 135
|
||||
id-DRB-Notify-Item ProtocolIE-ID ::= 136
|
||||
id-DRB-Notify-List ProtocolIE-ID ::= 137
|
||||
id-NotficationControl ProtocolIE-ID ::= 138
|
||||
id-RANAC ProtocolIE-ID ::= 139
|
||||
id-PWSSystemInformation ProtocolIE-ID ::= 140
|
||||
id-RepetitionPeriod ProtocolIE-ID ::= 141
|
||||
id-NumberofBroadcastRequest ProtocolIE-ID ::= 142
|
||||
id-Cells-To-Be-Broadcast-List ProtocolIE-ID ::= 144
|
||||
id-Cells-To-Be-Broadcast-Item ProtocolIE-ID ::= 145
|
||||
id-Cells-Broadcast-Completed-List ProtocolIE-ID ::= 146
|
||||
id-Cells-Broadcast-Completed-Item ProtocolIE-ID ::= 147
|
||||
id-Broadcast-To-Be-Cancelled-List ProtocolIE-ID ::= 148
|
||||
id-Broadcast-To-Be-Cancelled-Item ProtocolIE-ID ::= 149
|
||||
id-Cells-Broadcast-Cancelled-List ProtocolIE-ID ::= 150
|
||||
id-Cells-Broadcast-Cancelled-Item ProtocolIE-ID ::= 151
|
||||
id-NR-CGI-List-For-Restart-List ProtocolIE-ID ::= 152
|
||||
id-NR-CGI-List-For-Restart-Item ProtocolIE-ID ::= 153
|
||||
id-PWS-Failed-NR-CGI-List ProtocolIE-ID ::= 154
|
||||
id-PWS-Failed-NR-CGI-Item ProtocolIE-ID ::= 155
|
||||
id-ConfirmedUEID ProtocolIE-ID ::= 156
|
||||
id-Cancel-all-Warning-Messages-Indicator ProtocolIE-ID ::= 157
|
||||
id-GNB-DU-UE-AMBR-UL ProtocolIE-ID ::= 158
|
||||
id-DRXConfigurationIndicator ProtocolIE-ID ::= 159
|
||||
id-RLC-Status ProtocolIE-ID ::= 160
|
||||
id-DLPDCPSNLength ProtocolIE-ID ::= 161
|
||||
id-GNB-DUConfigurationQuery ProtocolIE-ID ::= 162
|
||||
id-MeasurementTimingConfiguration ProtocolIE-ID ::= 163
|
||||
id-DRB-Information ProtocolIE-ID ::= 164
|
||||
id-ServingPLMN ProtocolIE-ID ::= 165
|
||||
id-Protected-EUTRA-Resources-Item ProtocolIE-ID ::= 168
|
||||
id-GNB-CU-RRC-Version ProtocolIE-ID ::= 170
|
||||
id-GNB-DU-RRC-Version ProtocolIE-ID ::= 171
|
||||
id-GNBDUOverloadInformation ProtocolIE-ID ::= 172
|
||||
id-CellGroupConfig ProtocolIE-ID ::= 173
|
||||
id-RLCFailureIndication ProtocolIE-ID ::= 174
|
||||
id-UplinkTxDirectCurrentListInformation ProtocolIE-ID ::= 175
|
||||
id-DC-Based-Duplication-Configured ProtocolIE-ID ::= 176
|
||||
id-DC-Based-Duplication-Activation ProtocolIE-ID ::= 177
|
||||
id-SULAccessIndication ProtocolIE-ID ::= 178
|
||||
id-AvailablePLMNList ProtocolIE-ID ::= 179
|
||||
id-PDUSessionID ProtocolIE-ID ::= 180
|
||||
id-ULPDUSessionAggregateMaximumBitRate ProtocolIE-ID ::= 181
|
||||
id-ServingCellMO ProtocolIE-ID ::= 182
|
||||
id-QoSFlowMappingIndication ProtocolIE-ID ::= 183
|
||||
id-RRCDeliveryStatusRequest ProtocolIE-ID ::= 184
|
||||
id-RRCDeliveryStatus ProtocolIE-ID ::= 185
|
||||
id-BearerTypeChange ProtocolIE-ID ::= 186
|
||||
id-RLCMode ProtocolIE-ID ::= 187
|
||||
id-Duplication-Activation ProtocolIE-ID ::= 188
|
||||
id-Dedicated-SIDelivery-NeededUE-List ProtocolIE-ID ::= 189
|
||||
id-Dedicated-SIDelivery-NeededUE-Item ProtocolIE-ID ::= 190
|
||||
id-DRX-LongCycleStartOffset ProtocolIE-ID ::= 191
|
||||
id-ULPDCPSNLength ProtocolIE-ID ::= 192
|
||||
id-SelectedBandCombinationIndex ProtocolIE-ID ::= 193
|
||||
id-SelectedFeatureSetEntryIndex ProtocolIE-ID ::= 194
|
||||
id-ResourceCoordinationTransferInformation ProtocolIE-ID ::= 195
|
||||
id-ExtendedServedPLMNs-List ProtocolIE-ID ::= 196
|
||||
id-ExtendedAvailablePLMN-List ProtocolIE-ID ::= 197
|
||||
id-Associated-SCell-List ProtocolIE-ID ::= 198
|
||||
id-latest-RRC-Version-Enhanced ProtocolIE-ID ::= 199
|
||||
id-Associated-SCell-Item ProtocolIE-ID ::= 200
|
||||
id-Cell-Direction ProtocolIE-ID ::= 201
|
||||
id-SRBs-Setup-List ProtocolIE-ID ::= 202
|
||||
id-SRBs-Setup-Item ProtocolIE-ID ::= 203
|
||||
id-SRBs-SetupMod-List ProtocolIE-ID ::= 204
|
||||
id-SRBs-SetupMod-Item ProtocolIE-ID ::= 205
|
||||
id-SRBs-Modified-List ProtocolIE-ID ::= 206
|
||||
id-SRBs-Modified-Item ProtocolIE-ID ::= 207
|
||||
id-Ph-InfoSCG ProtocolIE-ID ::= 208
|
||||
id-RequestedBandCombinationIndex ProtocolIE-ID ::= 209
|
||||
id-RequestedFeatureSetEntryIndex ProtocolIE-ID ::= 210
|
||||
id-RequestedP-MaxFR2 ProtocolIE-ID ::= 211
|
||||
id-DRX-Config ProtocolIE-ID ::= 212
|
||||
id-IgnoreResourceCoordinationContainer ProtocolIE-ID ::= 213
|
||||
id-UEAssistanceInformation ProtocolIE-ID ::= 214
|
||||
id-NeedforGap ProtocolIE-ID ::= 215
|
||||
id-PagingOrigin ProtocolIE-ID ::= 216
|
||||
id-new-gNB-CU-UE-F1AP-ID ProtocolIE-ID ::= 217
|
||||
id-RedirectedRRCmessage ProtocolIE-ID ::= 218
|
||||
id-new-gNB-DU-UE-F1AP-ID ProtocolIE-ID ::= 219
|
||||
id-NotificationInformation ProtocolIE-ID ::= 220
|
||||
id-PLMNAssistanceInfoForNetShar ProtocolIE-ID ::= 221
|
||||
id-UEContextNotRetrievable ProtocolIE-ID ::= 222
|
||||
id-BPLMN-ID-Info-List ProtocolIE-ID ::= 223
|
||||
id-SelectedPLMNID ProtocolIE-ID ::= 224
|
||||
id-UAC-Assistance-Info ProtocolIE-ID ::= 225
|
||||
id-RANUEID ProtocolIE-ID ::= 226
|
||||
id-GNB-DU-TNL-Association-To-Remove-Item ProtocolIE-ID ::= 227
|
||||
id-GNB-DU-TNL-Association-To-Remove-List ProtocolIE-ID ::= 228
|
||||
id-TNLAssociationTransportLayerAddressgNBDU ProtocolIE-ID ::= 229
|
||||
id-portNumber ProtocolIE-ID ::= 230
|
||||
id-AdditionalSIBMessageList ProtocolIE-ID ::= 231
|
||||
id-Cell-Type ProtocolIE-ID ::= 232
|
||||
id-IgnorePRACHConfiguration ProtocolIE-ID ::= 233
|
||||
id-CG-Config ProtocolIE-ID ::= 234
|
||||
id-PDCCH-BlindDetectionSCG ProtocolIE-ID ::= 235
|
||||
id-Requested-PDCCH-BlindDetectionSCG ProtocolIE-ID ::= 236
|
||||
id-Ph-InfoMCG ProtocolIE-ID ::= 237
|
||||
id-MeasGapSharingConfig ProtocolIE-ID ::= 238
|
||||
id-systemInformationAreaID ProtocolIE-ID ::= 239
|
||||
id-areaScope ProtocolIE-ID ::= 240
|
||||
id-RRCContainer-RRCSetupComplete ProtocolIE-ID ::= 241
|
||||
id-TraceActivation ProtocolIE-ID ::= 242
|
||||
id-TraceID ProtocolIE-ID ::= 243
|
||||
id-Neighbour-Cell-Information-List ProtocolIE-ID ::= 244
|
||||
id-SymbolAllocInSlot ProtocolIE-ID ::= 246
|
||||
id-NumDLULSymbols ProtocolIE-ID ::= 247
|
||||
id-AdditionalRRMPriorityIndex ProtocolIE-ID ::= 248
|
||||
id-DUCURadioInformationType ProtocolIE-ID ::= 249
|
||||
id-CUDURadioInformationType ProtocolIE-ID ::= 250
|
||||
id-AggressorgNBSetID ProtocolIE-ID ::= 251
|
||||
id-VictimgNBSetID ProtocolIE-ID ::= 252
|
||||
id-LowerLayerPresenceStatusChange ProtocolIE-ID ::= 253
|
||||
id-Transport-Layer-Address-Info ProtocolIE-ID ::= 254
|
||||
id-Neighbour-Cell-Information-Item ProtocolIE-ID ::= 255
|
||||
id-IntendedTDD-DL-ULConfig ProtocolIE-ID ::= 256
|
||||
id-QosMonitoringRequest ProtocolIE-ID ::= 257
|
||||
id-BHChannels-ToBeSetup-List ProtocolIE-ID ::= 258
|
||||
id-BHChannels-ToBeSetup-Item ProtocolIE-ID ::= 259
|
||||
id-BHChannels-Setup-List ProtocolIE-ID ::= 260
|
||||
id-BHChannels-Setup-Item ProtocolIE-ID ::= 261
|
||||
id-BHChannels-ToBeModified-Item ProtocolIE-ID ::= 262
|
||||
id-BHChannels-ToBeModified-List ProtocolIE-ID ::= 263
|
||||
id-BHChannels-ToBeReleased-Item ProtocolIE-ID ::= 264
|
||||
id-BHChannels-ToBeReleased-List ProtocolIE-ID ::= 265
|
||||
id-BHChannels-ToBeSetupMod-Item ProtocolIE-ID ::= 266
|
||||
id-BHChannels-ToBeSetupMod-List ProtocolIE-ID ::= 267
|
||||
id-BHChannels-FailedToBeModified-Item ProtocolIE-ID ::= 268
|
||||
id-BHChannels-FailedToBeModified-List ProtocolIE-ID ::= 269
|
||||
id-BHChannels-FailedToBeSetupMod-Item ProtocolIE-ID ::= 270
|
||||
id-BHChannels-FailedToBeSetupMod-List ProtocolIE-ID ::= 271
|
||||
id-BHChannels-Modified-Item ProtocolIE-ID ::= 272
|
||||
id-BHChannels-Modified-List ProtocolIE-ID ::= 273
|
||||
id-BHChannels-SetupMod-Item ProtocolIE-ID ::= 274
|
||||
id-BHChannels-SetupMod-List ProtocolIE-ID ::= 275
|
||||
id-BHChannels-Required-ToBeReleased-Item ProtocolIE-ID ::= 276
|
||||
id-BHChannels-Required-ToBeReleased-List ProtocolIE-ID ::= 277
|
||||
id-BHChannels-FailedToBeSetup-Item ProtocolIE-ID ::= 278
|
||||
id-BHChannels-FailedToBeSetup-List ProtocolIE-ID ::= 279
|
||||
id-BHInfo ProtocolIE-ID ::= 280
|
||||
id-BAPAddress ProtocolIE-ID ::= 281
|
||||
id-ConfiguredBAPAddress ProtocolIE-ID ::= 282
|
||||
id-BH-Routing-Information-Added-List ProtocolIE-ID ::= 283
|
||||
id-BH-Routing-Information-Added-List-Item ProtocolIE-ID ::= 284
|
||||
id-BH-Routing-Information-Removed-List ProtocolIE-ID ::= 285
|
||||
id-BH-Routing-Information-Removed-List-Item ProtocolIE-ID ::= 286
|
||||
id-UL-BH-Non-UP-Traffic-Mapping ProtocolIE-ID ::= 287
|
||||
id-Activated-Cells-to-be-Updated-List ProtocolIE-ID ::= 288
|
||||
id-Child-Nodes-List ProtocolIE-ID ::= 289
|
||||
id-IAB-Info-IAB-DU ProtocolIE-ID ::= 290
|
||||
id-IAB-Info-IAB-donor-CU ProtocolIE-ID ::= 291
|
||||
id-IAB-TNL-Addresses-To-Remove-List ProtocolIE-ID ::= 292
|
||||
id-IAB-TNL-Addresses-To-Remove-Item ProtocolIE-ID ::= 293
|
||||
id-IAB-Allocated-TNL-Address-List ProtocolIE-ID ::= 294
|
||||
id-IAB-Allocated-TNL-Address-Item ProtocolIE-ID ::= 295
|
||||
id-IABIPv6RequestType ProtocolIE-ID ::= 296
|
||||
id-IABv4AddressesRequested ProtocolIE-ID ::= 297
|
||||
id-IAB-Barred ProtocolIE-ID ::= 298
|
||||
id-TrafficMappingInformation ProtocolIE-ID ::= 299
|
||||
id-UL-UP-TNL-Information-to-Update-List ProtocolIE-ID ::= 300
|
||||
id-UL-UP-TNL-Information-to-Update-List-Item ProtocolIE-ID ::= 301
|
||||
id-UL-UP-TNL-Address-to-Update-List ProtocolIE-ID ::= 302
|
||||
id-UL-UP-TNL-Address-to-Update-List-Item ProtocolIE-ID ::= 303
|
||||
id-DL-UP-TNL-Address-to-Update-List ProtocolIE-ID ::= 304
|
||||
id-DL-UP-TNL-Address-to-Update-List-Item ProtocolIE-ID ::= 305
|
||||
id-NRV2XServicesAuthorized ProtocolIE-ID ::= 306
|
||||
id-LTEV2XServicesAuthorized ProtocolIE-ID ::= 307
|
||||
id-NRUESidelinkAggregateMaximumBitrate ProtocolIE-ID ::= 308
|
||||
id-LTEUESidelinkAggregateMaximumBitrate ProtocolIE-ID ::= 309
|
||||
id-SIB12-message ProtocolIE-ID ::= 310
|
||||
id-SIB13-message ProtocolIE-ID ::= 311
|
||||
id-SIB14-message ProtocolIE-ID ::= 312
|
||||
id-SLDRBs-FailedToBeModified-Item ProtocolIE-ID ::= 313
|
||||
id-SLDRBs-FailedToBeModified-List ProtocolIE-ID ::= 314
|
||||
id-SLDRBs-FailedToBeSetup-Item ProtocolIE-ID ::= 315
|
||||
id-SLDRBs-FailedToBeSetup-List ProtocolIE-ID ::= 316
|
||||
id-SLDRBs-Modified-Item ProtocolIE-ID ::= 317
|
||||
id-SLDRBs-Modified-List ProtocolIE-ID ::= 318
|
||||
id-SLDRBs-Required-ToBeModified-Item ProtocolIE-ID ::= 319
|
||||
id-SLDRBs-Required-ToBeModified-List ProtocolIE-ID ::= 320
|
||||
id-SLDRBs-Required-ToBeReleased-Item ProtocolIE-ID ::= 321
|
||||
id-SLDRBs-Required-ToBeReleased-List ProtocolIE-ID ::= 322
|
||||
id-SLDRBs-Setup-Item ProtocolIE-ID ::= 323
|
||||
id-SLDRBs-Setup-List ProtocolIE-ID ::= 324
|
||||
id-SLDRBs-ToBeModified-Item ProtocolIE-ID ::= 325
|
||||
id-SLDRBs-ToBeModified-List ProtocolIE-ID ::= 326
|
||||
id-SLDRBs-ToBeReleased-Item ProtocolIE-ID ::= 327
|
||||
id-SLDRBs-ToBeReleased-List ProtocolIE-ID ::= 328
|
||||
id-SLDRBs-ToBeSetup-Item ProtocolIE-ID ::= 329
|
||||
id-SLDRBs-ToBeSetup-List ProtocolIE-ID ::= 330
|
||||
id-SLDRBs-ToBeSetupMod-Item ProtocolIE-ID ::= 331
|
||||
id-SLDRBs-ToBeSetupMod-List ProtocolIE-ID ::= 332
|
||||
id-SLDRBs-SetupMod-List ProtocolIE-ID ::= 333
|
||||
id-SLDRBs-FailedToBeSetupMod-List ProtocolIE-ID ::= 334
|
||||
id-SLDRBs-SetupMod-Item ProtocolIE-ID ::= 335
|
||||
id-SLDRBs-FailedToBeSetupMod-Item ProtocolIE-ID ::= 336
|
||||
id-SLDRBs-ModifiedConf-List ProtocolIE-ID ::= 337
|
||||
id-SLDRBs-ModifiedConf-Item ProtocolIE-ID ::= 338
|
||||
id-UEAssistanceInformationEUTRA ProtocolIE-ID ::= 339
|
||||
id-PC5LinkAMBR ProtocolIE-ID ::= 340
|
||||
id-SL-PHY-MAC-RLC-Config ProtocolIE-ID ::= 341
|
||||
id-SL-ConfigDedicatedEUTRA ProtocolIE-ID ::= 342
|
||||
id-AlternativeQoSParaSetList ProtocolIE-ID ::= 343
|
||||
id-CurrentQoSParaSetIndex ProtocolIE-ID ::= 344
|
||||
id-gNBCUMeasurementID ProtocolIE-ID ::= 345
|
||||
id-gNBDUMeasurementID ProtocolIE-ID ::= 346
|
||||
id-RegistrationRequest ProtocolIE-ID ::= 347
|
||||
id-ReportCharacteristics ProtocolIE-ID ::= 348
|
||||
id-CellToReportList ProtocolIE-ID ::= 349
|
||||
id-CellMeasurementResultList ProtocolIE-ID ::= 350
|
||||
id-HardwareLoadIndicator ProtocolIE-ID ::= 351
|
||||
id-ReportingPeriodicity ProtocolIE-ID ::= 352
|
||||
id-TNLCapacityIndicator ProtocolIE-ID ::= 353
|
||||
id-CarrierList ProtocolIE-ID ::= 354
|
||||
id-ULCarrierList ProtocolIE-ID ::= 355
|
||||
id-FrequencyShift7p5khz ProtocolIE-ID ::= 356
|
||||
id-SSB-PositionsInBurst ProtocolIE-ID ::= 357
|
||||
id-NRPRACHConfig ProtocolIE-ID ::= 358
|
||||
id-RACHReportInformationList ProtocolIE-ID ::= 359
|
||||
id-RLFReportInformationList ProtocolIE-ID ::= 360
|
||||
id-TDD-UL-DLConfigCommonNR ProtocolIE-ID ::= 361
|
||||
id-CNPacketDelayBudgetDownlink ProtocolIE-ID ::= 362
|
||||
id-ExtendedPacketDelayBudget ProtocolIE-ID ::= 363
|
||||
id-TSCTrafficCharacteristics ProtocolIE-ID ::= 364
|
||||
id-ReportingRequestType ProtocolIE-ID ::= 365
|
||||
id-TimeReferenceInformation ProtocolIE-ID ::= 366
|
||||
id-CNPacketDelayBudgetUplink ProtocolIE-ID ::= 369
|
||||
id-AdditionalPDCPDuplicationTNL-List ProtocolIE-ID ::= 370
|
||||
id-RLCDuplicationInformation ProtocolIE-ID ::= 371
|
||||
id-AdditionalDuplicationIndication ProtocolIE-ID ::= 372
|
||||
id-ConditionalInterDUMobilityInformation ProtocolIE-ID ::= 373
|
||||
id-ConditionalIntraDUMobilityInformation ProtocolIE-ID ::= 374
|
||||
id-targetCellsToCancel ProtocolIE-ID ::= 375
|
||||
id-requestedTargetCellGlobalID ProtocolIE-ID ::= 376
|
||||
id-ManagementBasedMDTPLMNList ProtocolIE-ID ::= 377
|
||||
id-TraceCollectionEntityIPAddress ProtocolIE-ID ::= 378
|
||||
id-PrivacyIndicator ProtocolIE-ID ::= 379
|
||||
id-TraceCollectionEntityURI ProtocolIE-ID ::= 380
|
||||
id-mdtConfiguration ProtocolIE-ID ::= 381
|
||||
id-ServingNID ProtocolIE-ID ::= 382
|
||||
id-NPNBroadcastInformation ProtocolIE-ID ::= 383
|
||||
id-NPNSupportInfo ProtocolIE-ID ::= 384
|
||||
id-NID ProtocolIE-ID ::= 385
|
||||
id-AvailableSNPN-ID-List ProtocolIE-ID ::= 386
|
||||
id-SIB10-message ProtocolIE-ID ::= 387
|
||||
id-DLCarrierList ProtocolIE-ID ::= 389
|
||||
id-ExtendedTAISliceSupportList ProtocolIE-ID ::= 390
|
||||
id-RequestedSRSTransmissionCharacteristics ProtocolIE-ID ::= 391
|
||||
id-PosAssistance-Information ProtocolIE-ID ::= 392
|
||||
id-PosBroadcast ProtocolIE-ID ::= 393
|
||||
id-RoutingID ProtocolIE-ID ::= 394
|
||||
id-PosAssistanceInformationFailureList ProtocolIE-ID ::= 395
|
||||
id-PosMeasurementQuantities ProtocolIE-ID ::= 396
|
||||
id-PosMeasurementResultList ProtocolIE-ID ::= 397
|
||||
id-TRPInformationTypeListTRPReq ProtocolIE-ID ::= 398
|
||||
id-TRPInformationTypeItem ProtocolIE-ID ::= 399
|
||||
id-TRPInformationListTRPResp ProtocolIE-ID ::= 400
|
||||
id-TRPInformationItem ProtocolIE-ID ::= 401
|
||||
id-LMF-MeasurementID ProtocolIE-ID ::= 402
|
||||
id-SRSType ProtocolIE-ID ::= 403
|
||||
id-ActivationTime ProtocolIE-ID ::= 404
|
||||
id-AbortTransmission ProtocolIE-ID ::= 405
|
||||
id-PositioningBroadcastCells ProtocolIE-ID ::= 406
|
||||
id-SRSConfiguration ProtocolIE-ID ::= 407
|
||||
id-PosReportCharacteristics ProtocolIE-ID ::= 408
|
||||
id-PosMeasurementPeriodicity ProtocolIE-ID ::= 409
|
||||
id-TRPList ProtocolIE-ID ::= 410
|
||||
id-RAN-MeasurementID ProtocolIE-ID ::= 411
|
||||
id-LMF-UE-MeasurementID ProtocolIE-ID ::= 412
|
||||
id-RAN-UE-MeasurementID ProtocolIE-ID ::= 413
|
||||
id-E-CID-MeasurementQuantities ProtocolIE-ID ::= 414
|
||||
id-E-CID-MeasurementQuantities-Item ProtocolIE-ID ::= 415
|
||||
id-E-CID-MeasurementPeriodicity ProtocolIE-ID ::= 416
|
||||
id-E-CID-MeasurementResult ProtocolIE-ID ::= 417
|
||||
id-Cell-Portion-ID ProtocolIE-ID ::= 418
|
||||
id-SFNInitialisationTime ProtocolIE-ID ::= 419
|
||||
id-SystemFrameNumber ProtocolIE-ID ::= 420
|
||||
id-SlotNumber ProtocolIE-ID ::= 421
|
||||
id-TRP-MeasurementRequestList ProtocolIE-ID ::= 422
|
||||
id-MeasurementBeamInfoRequest ProtocolIE-ID ::= 423
|
||||
id-E-CID-ReportCharacteristics ProtocolIE-ID ::= 424
|
||||
id-ConfiguredTACIndication ProtocolIE-ID ::= 425
|
||||
id-Extended-GNB-DU-Name ProtocolIE-ID ::= 426
|
||||
id-Extended-GNB-CU-Name ProtocolIE-ID ::= 427
|
||||
|
||||
|
||||
END
|
||||
@@ -0,0 +1,178 @@
|
||||
F1AP-Containers {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
ngran-access (22) modules (3) f1ap (3) version1 (1) f1ap-Containers (5) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- IE parameter types from other modules.
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
IMPORTS
|
||||
Criticality,
|
||||
Presence,
|
||||
PrivateIE-ID,
|
||||
ProtocolExtensionID,
|
||||
ProtocolIE-ID
|
||||
|
||||
FROM F1AP-CommonDataTypes
|
||||
maxPrivateIEs,
|
||||
maxProtocolExtensions,
|
||||
maxProtocolIEs
|
||||
|
||||
FROM F1AP-Constants;
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Class Definition for Protocol IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
F1AP-PROTOCOL-IES ::= CLASS {
|
||||
&id ProtocolIE-ID UNIQUE,
|
||||
&criticality Criticality,
|
||||
&Value,
|
||||
&presence Presence
|
||||
}
|
||||
WITH SYNTAX {
|
||||
ID &id
|
||||
CRITICALITY &criticality
|
||||
TYPE &Value
|
||||
PRESENCE &presence
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Class Definition for Protocol IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
F1AP-PROTOCOL-IES-PAIR ::= CLASS {
|
||||
&id ProtocolIE-ID UNIQUE,
|
||||
&firstCriticality Criticality,
|
||||
&FirstValue,
|
||||
&secondCriticality Criticality,
|
||||
&SecondValue,
|
||||
&presence Presence
|
||||
}
|
||||
WITH SYNTAX {
|
||||
ID &id
|
||||
FIRST CRITICALITY &firstCriticality
|
||||
FIRST TYPE &FirstValue
|
||||
SECOND CRITICALITY &secondCriticality
|
||||
SECOND TYPE &SecondValue
|
||||
PRESENCE &presence
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Class Definition for Protocol Extensions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
F1AP-PROTOCOL-EXTENSION ::= CLASS {
|
||||
&id ProtocolExtensionID UNIQUE,
|
||||
&criticality Criticality,
|
||||
&Extension,
|
||||
&presence Presence
|
||||
}
|
||||
WITH SYNTAX {
|
||||
ID &id
|
||||
CRITICALITY &criticality
|
||||
EXTENSION &Extension
|
||||
PRESENCE &presence
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Class Definition for Private IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
F1AP-PRIVATE-IES ::= CLASS {
|
||||
&id PrivateIE-ID,
|
||||
&criticality Criticality,
|
||||
&Value,
|
||||
&presence Presence
|
||||
}
|
||||
WITH SYNTAX {
|
||||
ID &id
|
||||
CRITICALITY &criticality
|
||||
TYPE &Value
|
||||
PRESENCE &presence
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container for Protocol IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ProtocolIE-Container {F1AP-PROTOCOL-IES : IEsSetParam} ::=
|
||||
SEQUENCE (SIZE (0..maxProtocolIEs)) OF
|
||||
ProtocolIE-Field {{IEsSetParam}}
|
||||
|
||||
ProtocolIE-SingleContainer {F1AP-PROTOCOL-IES : IEsSetParam} ::=
|
||||
ProtocolIE-Field {{IEsSetParam}}
|
||||
|
||||
ProtocolIE-Field {F1AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
|
||||
id F1AP-PROTOCOL-IES.&id ({IEsSetParam}),
|
||||
criticality F1AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
|
||||
value F1AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container for Protocol IE Pairs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ProtocolIE-ContainerPair {F1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
|
||||
SEQUENCE (SIZE (0..maxProtocolIEs)) OF
|
||||
ProtocolIE-FieldPair {{IEsSetParam}}
|
||||
|
||||
ProtocolIE-FieldPair {F1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE {
|
||||
id F1AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}),
|
||||
firstCriticality F1AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}),
|
||||
firstValue F1AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}),
|
||||
secondCriticality F1AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}),
|
||||
secondValue F1AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id})
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container for Protocol Extensions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ProtocolExtensionContainer {F1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
|
||||
SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
|
||||
ProtocolExtensionField {{ExtensionSetParam}}
|
||||
|
||||
ProtocolExtensionField {F1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
|
||||
id F1AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
|
||||
criticality F1AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
|
||||
extensionValue F1AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container for Private IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
PrivateIE-Container {F1AP-PRIVATE-IES : IEsSetParam } ::=
|
||||
SEQUENCE (SIZE (1.. maxPrivateIEs)) OF
|
||||
PrivateIE-Field {{IEsSetParam}}
|
||||
|
||||
PrivateIE-Field {F1AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
|
||||
id F1AP-PRIVATE-IES.&id ({IEsSetParam}),
|
||||
criticality F1AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}),
|
||||
value F1AP-PRIVATE-IES.&Value ({IEsSetParam}{@id})
|
||||
}
|
||||
|
||||
END
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,723 @@
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Elementary Procedure definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
F1AP-PDU-Descriptions {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
ngran-access (22) modules (3) f1ap (3) version1 (1) f1ap-PDU-Descriptions (0)}
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- IE parameter types from other modules.
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
IMPORTS
|
||||
Criticality,
|
||||
ProcedureCode
|
||||
|
||||
FROM F1AP-CommonDataTypes
|
||||
Reset,
|
||||
ResetAcknowledge,
|
||||
F1SetupRequest,
|
||||
F1SetupResponse,
|
||||
F1SetupFailure,
|
||||
GNBDUConfigurationUpdate,
|
||||
GNBDUConfigurationUpdateAcknowledge,
|
||||
GNBDUConfigurationUpdateFailure,
|
||||
GNBCUConfigurationUpdate,
|
||||
GNBCUConfigurationUpdateAcknowledge,
|
||||
GNBCUConfigurationUpdateFailure,
|
||||
UEContextSetupRequest,
|
||||
UEContextSetupResponse,
|
||||
UEContextSetupFailure,
|
||||
UEContextReleaseCommand,
|
||||
UEContextReleaseComplete,
|
||||
UEContextModificationRequest,
|
||||
UEContextModificationResponse,
|
||||
UEContextModificationFailure,
|
||||
UEContextModificationRequired,
|
||||
UEContextModificationConfirm,
|
||||
ErrorIndication,
|
||||
UEContextReleaseRequest,
|
||||
DLRRCMessageTransfer,
|
||||
ULRRCMessageTransfer,
|
||||
GNBDUResourceCoordinationRequest,
|
||||
GNBDUResourceCoordinationResponse,
|
||||
PrivateMessage,
|
||||
UEInactivityNotification,
|
||||
InitialULRRCMessageTransfer,
|
||||
SystemInformationDeliveryCommand,
|
||||
Paging,
|
||||
Notify,
|
||||
WriteReplaceWarningRequest,
|
||||
WriteReplaceWarningResponse,
|
||||
PWSCancelRequest,
|
||||
PWSCancelResponse,
|
||||
PWSRestartIndication,
|
||||
PWSFailureIndication,
|
||||
GNBDUStatusIndication,
|
||||
RRCDeliveryReport,
|
||||
UEContextModificationRefuse,
|
||||
F1RemovalRequest,
|
||||
F1RemovalResponse,
|
||||
F1RemovalFailure,
|
||||
NetworkAccessRateReduction,
|
||||
TraceStart,
|
||||
DeactivateTrace,
|
||||
DUCURadioInformationTransfer,
|
||||
CUDURadioInformationTransfer,
|
||||
BAPMappingConfiguration,
|
||||
BAPMappingConfigurationAcknowledge,
|
||||
GNBDUResourceConfiguration,
|
||||
GNBDUResourceConfigurationAcknowledge,
|
||||
IABTNLAddressRequest,
|
||||
IABTNLAddressResponse,
|
||||
IABUPConfigurationUpdateRequest,
|
||||
IABUPConfigurationUpdateResponse,
|
||||
IABUPConfigurationUpdateFailure,
|
||||
ResourceStatusRequest,
|
||||
ResourceStatusResponse,
|
||||
ResourceStatusFailure,
|
||||
ResourceStatusUpdate,
|
||||
AccessAndMobilityIndication,
|
||||
ReferenceTimeInformationReportingControl,
|
||||
ReferenceTimeInformationReport,
|
||||
AccessSuccess,
|
||||
CellTrafficTrace,
|
||||
PositioningMeasurementRequest,
|
||||
PositioningMeasurementResponse,
|
||||
PositioningMeasurementFailure,
|
||||
PositioningAssistanceInformationControl,
|
||||
PositioningAssistanceInformationFeedback,
|
||||
PositioningMeasurementReport,
|
||||
PositioningMeasurementAbort,
|
||||
PositioningMeasurementFailureIndication,
|
||||
PositioningMeasurementUpdate,
|
||||
TRPInformationRequest,
|
||||
TRPInformationResponse,
|
||||
TRPInformationFailure,
|
||||
PositioningInformationRequest,
|
||||
PositioningInformationResponse,
|
||||
PositioningInformationFailure,
|
||||
PositioningActivationRequest,
|
||||
PositioningActivationResponse,
|
||||
PositioningActivationFailure,
|
||||
PositioningDeactivation,
|
||||
PositioningInformationUpdate,
|
||||
E-CIDMeasurementInitiationRequest,
|
||||
E-CIDMeasurementInitiationResponse,
|
||||
E-CIDMeasurementInitiationFailure,
|
||||
E-CIDMeasurementFailureIndication,
|
||||
E-CIDMeasurementReport,
|
||||
E-CIDMeasurementTerminationCommand
|
||||
|
||||
|
||||
|
||||
FROM F1AP-PDU-Contents
|
||||
id-Reset,
|
||||
id-F1Setup,
|
||||
id-gNBDUConfigurationUpdate,
|
||||
id-gNBCUConfigurationUpdate,
|
||||
id-UEContextSetup,
|
||||
id-UEContextRelease,
|
||||
id-UEContextModification,
|
||||
id-UEContextModificationRequired,
|
||||
id-ErrorIndication,
|
||||
id-UEContextReleaseRequest,
|
||||
id-DLRRCMessageTransfer,
|
||||
id-ULRRCMessageTransfer,
|
||||
id-GNBDUResourceCoordination,
|
||||
id-privateMessage,
|
||||
id-UEInactivityNotification,
|
||||
id-InitialULRRCMessageTransfer,
|
||||
id-SystemInformationDeliveryCommand,
|
||||
id-Paging,
|
||||
id-Notify,
|
||||
id-WriteReplaceWarning,
|
||||
id-PWSCancel,
|
||||
id-PWSRestartIndication,
|
||||
id-PWSFailureIndication,
|
||||
id-GNBDUStatusIndication,
|
||||
id-RRCDeliveryReport,
|
||||
id-F1Removal,
|
||||
id-NetworkAccessRateReduction,
|
||||
id-TraceStart,
|
||||
id-DeactivateTrace,
|
||||
id-DUCURadioInformationTransfer,
|
||||
id-CUDURadioInformationTransfer,
|
||||
id-BAPMappingConfiguration,
|
||||
id-GNBDUResourceConfiguration,
|
||||
id-IABTNLAddressAllocation,
|
||||
id-IABUPConfigurationUpdate,
|
||||
id-resourceStatusReportingInitiation,
|
||||
id-resourceStatusReporting,
|
||||
id-accessAndMobilityIndication,
|
||||
id-ReferenceTimeInformationReportingControl,
|
||||
id-ReferenceTimeInformationReport,
|
||||
id-accessSuccess,
|
||||
id-cellTrafficTrace,
|
||||
id-PositioningMeasurementExchange,
|
||||
id-PositioningAssistanceInformationControl,
|
||||
id-PositioningAssistanceInformationFeedback,
|
||||
id-PositioningMeasurementReport,
|
||||
id-PositioningMeasurementAbort,
|
||||
id-PositioningMeasurementFailureIndication,
|
||||
id-PositioningMeasurementUpdate,
|
||||
id-TRPInformationExchange,
|
||||
id-PositioningInformationExchange,
|
||||
id-PositioningActivation,
|
||||
id-PositioningDeactivation,
|
||||
id-PositioningInformationUpdate,
|
||||
id-E-CIDMeasurementInitiation,
|
||||
id-E-CIDMeasurementFailureIndication,
|
||||
id-E-CIDMeasurementReport,
|
||||
id-E-CIDMeasurementTermination
|
||||
|
||||
|
||||
FROM F1AP-Constants
|
||||
|
||||
ProtocolIE-SingleContainer{},
|
||||
F1AP-PROTOCOL-IES
|
||||
|
||||
FROM F1AP-Containers;
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Interface Elementary Procedure Class
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
F1AP-ELEMENTARY-PROCEDURE ::= CLASS {
|
||||
&InitiatingMessage ,
|
||||
&SuccessfulOutcome OPTIONAL,
|
||||
&UnsuccessfulOutcome OPTIONAL,
|
||||
&procedureCode ProcedureCode UNIQUE,
|
||||
&criticality Criticality DEFAULT ignore
|
||||
}
|
||||
WITH SYNTAX {
|
||||
INITIATING MESSAGE &InitiatingMessage
|
||||
[SUCCESSFUL OUTCOME &SuccessfulOutcome]
|
||||
[UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
|
||||
PROCEDURE CODE &procedureCode
|
||||
[CRITICALITY &criticality]
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Interface PDU Definition
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
F1AP-PDU ::= CHOICE {
|
||||
initiatingMessage InitiatingMessage,
|
||||
successfulOutcome SuccessfulOutcome,
|
||||
unsuccessfulOutcome UnsuccessfulOutcome,
|
||||
choice-extension ProtocolIE-SingleContainer { { F1AP-PDU-ExtIEs} }
|
||||
}
|
||||
|
||||
F1AP-PDU-ExtIEs F1AP-PROTOCOL-IES ::= { -- this extension is not used
|
||||
...
|
||||
}
|
||||
|
||||
InitiatingMessage ::= SEQUENCE {
|
||||
procedureCode F1AP-ELEMENTARY-PROCEDURE.&procedureCode ({F1AP-ELEMENTARY-PROCEDURES}),
|
||||
criticality F1AP-ELEMENTARY-PROCEDURE.&criticality ({F1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||
value F1AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({F1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||
}
|
||||
|
||||
SuccessfulOutcome ::= SEQUENCE {
|
||||
procedureCode F1AP-ELEMENTARY-PROCEDURE.&procedureCode ({F1AP-ELEMENTARY-PROCEDURES}),
|
||||
criticality F1AP-ELEMENTARY-PROCEDURE.&criticality ({F1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||
value F1AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({F1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||
}
|
||||
|
||||
UnsuccessfulOutcome ::= SEQUENCE {
|
||||
procedureCode F1AP-ELEMENTARY-PROCEDURE.&procedureCode ({F1AP-ELEMENTARY-PROCEDURES}),
|
||||
criticality F1AP-ELEMENTARY-PROCEDURE.&criticality ({F1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||
value F1AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({F1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Interface Elementary Procedure List
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
F1AP-ELEMENTARY-PROCEDURES F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
F1AP-ELEMENTARY-PROCEDURES-CLASS-1 |
|
||||
F1AP-ELEMENTARY-PROCEDURES-CLASS-2,
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
F1AP-ELEMENTARY-PROCEDURES-CLASS-1 F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
reset |
|
||||
f1Setup |
|
||||
gNBDUConfigurationUpdate |
|
||||
gNBCUConfigurationUpdate |
|
||||
uEContextSetup |
|
||||
uEContextRelease |
|
||||
uEContextModification |
|
||||
uEContextModificationRequired |
|
||||
writeReplaceWarning |
|
||||
pWSCancel |
|
||||
gNBDUResourceCoordination |
|
||||
f1Removal |
|
||||
bAPMappingConfiguration |
|
||||
gNBDUResourceConfiguration |
|
||||
iABTNLAddressAllocation |
|
||||
iABUPConfigurationUpdate |
|
||||
resourceStatusReportingInitiation |
|
||||
positioningMeasurementExchange |
|
||||
tRPInformationExchange |
|
||||
positioningInformationExchange |
|
||||
positioningActivation |
|
||||
e-CIDMeasurementInitiation,
|
||||
...
|
||||
}
|
||||
|
||||
F1AP-ELEMENTARY-PROCEDURES-CLASS-2 F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
errorIndication |
|
||||
uEContextReleaseRequest |
|
||||
dLRRCMessageTransfer |
|
||||
uLRRCMessageTransfer |
|
||||
uEInactivityNotification |
|
||||
privateMessage |
|
||||
initialULRRCMessageTransfer |
|
||||
systemInformationDelivery |
|
||||
paging |
|
||||
notify |
|
||||
pWSRestartIndication |
|
||||
pWSFailureIndication |
|
||||
gNBDUStatusIndication |
|
||||
rRCDeliveryReport |
|
||||
networkAccessRateReduction |
|
||||
traceStart |
|
||||
deactivateTrace |
|
||||
dUCURadioInformationTransfer |
|
||||
cUDURadioInformationTransfer |
|
||||
resourceStatusReporting |
|
||||
accessAndMobilityIndication |
|
||||
referenceTimeInformationReportingControl|
|
||||
referenceTimeInformationReport |
|
||||
accessSuccess |
|
||||
cellTrafficTrace |
|
||||
positioningAssistanceInformationControl |
|
||||
positioningAssistanceInformationFeedback |
|
||||
positioningMeasurementReport |
|
||||
positioningMeasurementAbort |
|
||||
positioningMeasurementFailureIndication |
|
||||
positioningMeasurementUpdate |
|
||||
positioningDeactivation |
|
||||
e-CIDMeasurementFailureIndication |
|
||||
e-CIDMeasurementReport |
|
||||
e-CIDMeasurementTermination |
|
||||
positioningInformationUpdate,
|
||||
...
|
||||
}
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Interface Elementary Procedures
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
reset F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE Reset
|
||||
SUCCESSFUL OUTCOME ResetAcknowledge
|
||||
PROCEDURE CODE id-Reset
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
f1Setup F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE F1SetupRequest
|
||||
SUCCESSFUL OUTCOME F1SetupResponse
|
||||
UNSUCCESSFUL OUTCOME F1SetupFailure
|
||||
PROCEDURE CODE id-F1Setup
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
gNBDUConfigurationUpdate F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE GNBDUConfigurationUpdate
|
||||
SUCCESSFUL OUTCOME GNBDUConfigurationUpdateAcknowledge
|
||||
UNSUCCESSFUL OUTCOME GNBDUConfigurationUpdateFailure
|
||||
PROCEDURE CODE id-gNBDUConfigurationUpdate
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
gNBCUConfigurationUpdate F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE GNBCUConfigurationUpdate
|
||||
SUCCESSFUL OUTCOME GNBCUConfigurationUpdateAcknowledge
|
||||
UNSUCCESSFUL OUTCOME GNBCUConfigurationUpdateFailure
|
||||
PROCEDURE CODE id-gNBCUConfigurationUpdate
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
uEContextSetup F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE UEContextSetupRequest
|
||||
SUCCESSFUL OUTCOME UEContextSetupResponse
|
||||
UNSUCCESSFUL OUTCOME UEContextSetupFailure
|
||||
PROCEDURE CODE id-UEContextSetup
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
uEContextRelease F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE UEContextReleaseCommand
|
||||
SUCCESSFUL OUTCOME UEContextReleaseComplete
|
||||
PROCEDURE CODE id-UEContextRelease
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
uEContextModification F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE UEContextModificationRequest
|
||||
SUCCESSFUL OUTCOME UEContextModificationResponse
|
||||
UNSUCCESSFUL OUTCOME UEContextModificationFailure
|
||||
PROCEDURE CODE id-UEContextModification
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
uEContextModificationRequired F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE UEContextModificationRequired
|
||||
SUCCESSFUL OUTCOME UEContextModificationConfirm
|
||||
UNSUCCESSFUL OUTCOME UEContextModificationRefuse
|
||||
PROCEDURE CODE id-UEContextModificationRequired
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
writeReplaceWarning F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE WriteReplaceWarningRequest
|
||||
SUCCESSFUL OUTCOME WriteReplaceWarningResponse
|
||||
PROCEDURE CODE id-WriteReplaceWarning
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
pWSCancel F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE PWSCancelRequest
|
||||
SUCCESSFUL OUTCOME PWSCancelResponse
|
||||
PROCEDURE CODE id-PWSCancel
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
errorIndication F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ErrorIndication
|
||||
PROCEDURE CODE id-ErrorIndication
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
uEContextReleaseRequest F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE UEContextReleaseRequest
|
||||
PROCEDURE CODE id-UEContextReleaseRequest
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
|
||||
initialULRRCMessageTransfer F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE InitialULRRCMessageTransfer
|
||||
PROCEDURE CODE id-InitialULRRCMessageTransfer
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
dLRRCMessageTransfer F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE DLRRCMessageTransfer
|
||||
PROCEDURE CODE id-DLRRCMessageTransfer
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
uLRRCMessageTransfer F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ULRRCMessageTransfer
|
||||
PROCEDURE CODE id-ULRRCMessageTransfer
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
|
||||
uEInactivityNotification F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE UEInactivityNotification
|
||||
PROCEDURE CODE id-UEInactivityNotification
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
gNBDUResourceCoordination F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE GNBDUResourceCoordinationRequest
|
||||
SUCCESSFUL OUTCOME GNBDUResourceCoordinationResponse
|
||||
PROCEDURE CODE id-GNBDUResourceCoordination
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
privateMessage F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE PrivateMessage
|
||||
PROCEDURE CODE id-privateMessage
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
systemInformationDelivery F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE SystemInformationDeliveryCommand
|
||||
PROCEDURE CODE id-SystemInformationDeliveryCommand
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
|
||||
paging F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE Paging
|
||||
PROCEDURE CODE id-Paging
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
notify F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE Notify
|
||||
PROCEDURE CODE id-Notify
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
networkAccessRateReduction F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE NetworkAccessRateReduction
|
||||
PROCEDURE CODE id-NetworkAccessRateReduction
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
|
||||
pWSRestartIndication F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE PWSRestartIndication
|
||||
PROCEDURE CODE id-PWSRestartIndication
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
pWSFailureIndication F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE PWSFailureIndication
|
||||
PROCEDURE CODE id-PWSFailureIndication
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
gNBDUStatusIndication F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE GNBDUStatusIndication
|
||||
PROCEDURE CODE id-GNBDUStatusIndication
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
|
||||
rRCDeliveryReport F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE RRCDeliveryReport
|
||||
PROCEDURE CODE id-RRCDeliveryReport
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
f1Removal F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE F1RemovalRequest
|
||||
SUCCESSFUL OUTCOME F1RemovalResponse
|
||||
UNSUCCESSFUL OUTCOME F1RemovalFailure
|
||||
PROCEDURE CODE id-F1Removal
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
traceStart F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE TraceStart
|
||||
PROCEDURE CODE id-TraceStart
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
deactivateTrace F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE DeactivateTrace
|
||||
PROCEDURE CODE id-DeactivateTrace
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
dUCURadioInformationTransfer F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE DUCURadioInformationTransfer
|
||||
PROCEDURE CODE id-DUCURadioInformationTransfer
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
cUDURadioInformationTransfer F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE CUDURadioInformationTransfer
|
||||
PROCEDURE CODE id-CUDURadioInformationTransfer
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
bAPMappingConfiguration F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE BAPMappingConfiguration
|
||||
SUCCESSFUL OUTCOME BAPMappingConfigurationAcknowledge
|
||||
PROCEDURE CODE id-BAPMappingConfiguration
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
gNBDUResourceConfiguration F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE GNBDUResourceConfiguration
|
||||
SUCCESSFUL OUTCOME GNBDUResourceConfigurationAcknowledge
|
||||
PROCEDURE CODE id-GNBDUResourceConfiguration
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
iABTNLAddressAllocation F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE IABTNLAddressRequest
|
||||
SUCCESSFUL OUTCOME IABTNLAddressResponse
|
||||
PROCEDURE CODE id-IABTNLAddressAllocation
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
iABUPConfigurationUpdate F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE IABUPConfigurationUpdateRequest
|
||||
SUCCESSFUL OUTCOME IABUPConfigurationUpdateResponse
|
||||
UNSUCCESSFUL OUTCOME IABUPConfigurationUpdateFailure
|
||||
PROCEDURE CODE id-IABUPConfigurationUpdate
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
resourceStatusReportingInitiation F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ResourceStatusRequest
|
||||
SUCCESSFUL OUTCOME ResourceStatusResponse
|
||||
UNSUCCESSFUL OUTCOME ResourceStatusFailure
|
||||
PROCEDURE CODE id-resourceStatusReportingInitiation
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
resourceStatusReporting F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ResourceStatusUpdate
|
||||
PROCEDURE CODE id-resourceStatusReporting
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
accessAndMobilityIndication F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE AccessAndMobilityIndication
|
||||
PROCEDURE CODE id-accessAndMobilityIndication
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
referenceTimeInformationReportingControl F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ReferenceTimeInformationReportingControl
|
||||
PROCEDURE CODE id-ReferenceTimeInformationReportingControl
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
referenceTimeInformationReport F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ReferenceTimeInformationReport
|
||||
PROCEDURE CODE id-ReferenceTimeInformationReport
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
accessSuccess F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE AccessSuccess
|
||||
PROCEDURE CODE id-accessSuccess
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
cellTrafficTrace F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE CellTrafficTrace
|
||||
PROCEDURE CODE id-cellTrafficTrace
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
positioningAssistanceInformationControl F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE PositioningAssistanceInformationControl
|
||||
PROCEDURE CODE id-PositioningAssistanceInformationControl
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
positioningAssistanceInformationFeedback F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE PositioningAssistanceInformationFeedback
|
||||
PROCEDURE CODE id-PositioningAssistanceInformationFeedback
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
positioningMeasurementExchange F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE PositioningMeasurementRequest
|
||||
SUCCESSFUL OUTCOME PositioningMeasurementResponse
|
||||
UNSUCCESSFUL OUTCOME PositioningMeasurementFailure
|
||||
PROCEDURE CODE id-PositioningMeasurementExchange
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
positioningMeasurementReport F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE PositioningMeasurementReport
|
||||
PROCEDURE CODE id-PositioningMeasurementReport
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
positioningMeasurementAbort F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE PositioningMeasurementAbort
|
||||
PROCEDURE CODE id-PositioningMeasurementAbort
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
positioningMeasurementFailureIndication F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE PositioningMeasurementFailureIndication
|
||||
PROCEDURE CODE id-PositioningMeasurementFailureIndication
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
positioningMeasurementUpdate F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE PositioningMeasurementUpdate
|
||||
PROCEDURE CODE id-PositioningMeasurementUpdate
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
|
||||
tRPInformationExchange F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE TRPInformationRequest
|
||||
SUCCESSFUL OUTCOME TRPInformationResponse
|
||||
UNSUCCESSFUL OUTCOME TRPInformationFailure
|
||||
PROCEDURE CODE id-TRPInformationExchange
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
positioningInformationExchange F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE PositioningInformationRequest
|
||||
SUCCESSFUL OUTCOME PositioningInformationResponse
|
||||
UNSUCCESSFUL OUTCOME PositioningInformationFailure
|
||||
PROCEDURE CODE id-PositioningInformationExchange
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
positioningActivation F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE PositioningActivationRequest
|
||||
SUCCESSFUL OUTCOME PositioningActivationResponse
|
||||
UNSUCCESSFUL OUTCOME PositioningActivationFailure
|
||||
PROCEDURE CODE id-PositioningActivation
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
positioningDeactivation F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE PositioningDeactivation
|
||||
PROCEDURE CODE id-PositioningDeactivation
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
e-CIDMeasurementInitiation F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE E-CIDMeasurementInitiationRequest
|
||||
SUCCESSFUL OUTCOME E-CIDMeasurementInitiationResponse
|
||||
UNSUCCESSFUL OUTCOME E-CIDMeasurementInitiationFailure
|
||||
PROCEDURE CODE id-E-CIDMeasurementInitiation
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
e-CIDMeasurementFailureIndication F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE E-CIDMeasurementFailureIndication
|
||||
PROCEDURE CODE id-E-CIDMeasurementFailureIndication
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
e-CIDMeasurementReport F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE E-CIDMeasurementReport
|
||||
PROCEDURE CODE id-E-CIDMeasurementReport
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
e-CIDMeasurementTermination F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE E-CIDMeasurementTerminationCommand
|
||||
PROCEDURE CODE id-E-CIDMeasurementTermination
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
positioningInformationUpdate F1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE PositioningInformationUpdate
|
||||
PROCEDURE CODE id-PositioningInformationUpdate
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
|
||||
END
|
||||
@@ -46,7 +46,6 @@
|
||||
inline void ASN_DEBUG(const char *fmt, ...);
|
||||
#endif
|
||||
|
||||
#include "F1AP_Active-Cells-List.h"
|
||||
#include "F1AP_RAT-FrequencyPriorityInformation.h"
|
||||
#include "F1AP_DLUPTNLInformation-ToBeSetup-Item.h"
|
||||
#include "F1AP_PrivateMessage.h"
|
||||
@@ -55,6 +54,7 @@ inline void ASN_DEBUG(const char *fmt, ...);
|
||||
#include "F1AP_NRPCI.h"
|
||||
#include "F1AP_Transmission-Bandwidth.h"
|
||||
#include "F1AP_SIB1-message.h"
|
||||
#include "F1AP_SibtypetobeupdatedListItem.h"
|
||||
#include "F1AP_GNBCUConfigurationUpdateAcknowledge.h"
|
||||
#include "F1AP_DRBs-Setup-Item.h"
|
||||
#include "F1AP_EUTRA-NR-CellResourceCoordinationReqAck-Container.h"
|
||||
@@ -75,7 +75,6 @@ inline void ASN_DEBUG(const char *fmt, ...);
|
||||
#include "F1AP_DRBs-Required-ToBeModified-Item.h"
|
||||
#include "F1AP_BitRate.h"
|
||||
#include "F1AP_SRBs-ToBeSetup-List.h"
|
||||
#include "F1AP_ConcurrentWarningMessageIndicator.h"
|
||||
#include "F1AP_CriticalityDiagnostics-IE-Item.h"
|
||||
#include "F1AP_GNB-CU-TNL-Association-To-Update-List.h"
|
||||
#include "F1AP_DRB-Notify-List.h"
|
||||
@@ -85,6 +84,7 @@ inline void ASN_DEBUG(const char *fmt, ...);
|
||||
#include "F1AP_PWS-Failed-NR-CGI-List.h"
|
||||
#include "F1AP_InitialULRRCMessageTransfer.h"
|
||||
#include "F1AP_Served-Cell-Information.h"
|
||||
#include "F1AP_ServedPLMNs-Item.h"
|
||||
#include "F1AP_Served-EUTRA-Cells-Information.h"
|
||||
#include "F1AP_Cells-Broadcast-Cancelled-Item.h"
|
||||
#include "F1AP_F1SetupRequest.h"
|
||||
@@ -128,13 +128,11 @@ inline void ASN_DEBUG(const char *fmt, ...);
|
||||
#include "F1AP_TransactionID.h"
|
||||
#include "F1AP_AllocationAndRetentionPriority.h"
|
||||
#include "F1AP_ShortDRXCycleLength.h"
|
||||
#include "F1AP_BroadcastPLMNs-Item.h"
|
||||
#include "F1AP_DRB-Information.h"
|
||||
#include "F1AP_TimeToWait.h"
|
||||
#include "F1AP_NonDynamic5QIDescriptor.h"
|
||||
#include "F1AP_C-RNTI.h"
|
||||
#include "F1AP_MIB-message.h"
|
||||
#include "F1AP_SIBtype-Item.h"
|
||||
#include "F1AP_Served-Cells-To-Modify-List.h"
|
||||
#include "F1AP_NRCGI.h"
|
||||
#include "F1AP_DuplicationActivation.h"
|
||||
@@ -187,6 +185,7 @@ inline void ASN_DEBUG(const char *fmt, ...);
|
||||
#include "F1AP_CellULConfigured.h"
|
||||
#include "F1AP_DRB-Activity.h"
|
||||
#include "F1AP_GNB-CU-TNL-Association-Failed-To-Setup-Item.h"
|
||||
#include "F1AP_ProtocolIE-ID.h"
|
||||
#include "F1AP_PrivateIE-ID.h"
|
||||
#include "F1AP_WriteReplaceWarningResponse.h"
|
||||
#include "F1AP_CauseMisc.h"
|
||||
@@ -231,9 +230,7 @@ inline void ASN_DEBUG(const char *fmt, ...);
|
||||
#include "F1AP_SUL-Information.h"
|
||||
#include "F1AP_CriticalityDiagnostics-IE-List.h"
|
||||
#include "F1AP_EUTRA-FDD-Info.h"
|
||||
#include "F1AP_BroadcastPLMNs-List.h"
|
||||
#include "F1AP_Served-Cells-To-Delete-Item.h"
|
||||
#include "F1AP_ListofEUTRACellsinGNBDUCoordination.h"
|
||||
#include "F1AP_Candidate-SpCell-Item.h"
|
||||
#include "F1AP_Cells-To-Be-Broadcast-List.h"
|
||||
#include "F1AP_ULRRCMessageTransfer.h"
|
||||
@@ -255,7 +252,6 @@ inline void ASN_DEBUG(const char *fmt, ...);
|
||||
#include "F1AP_SRBs-ToBeReleased-List.h"
|
||||
#include "F1AP_MeasGapConfig.h"
|
||||
#include "F1AP_NR-Mode-Info.h"
|
||||
#include "F1AP_Active-Cells-Item.h"
|
||||
#include "F1AP_Protected-EUTRA-Resources-List.h"
|
||||
#include "F1AP_SRBs-FailedToBeSetup-Item.h"
|
||||
#include "F1AP_ResetAll.h"
|
||||
@@ -287,7 +283,6 @@ inline void ASN_DEBUG(const char *fmt, ...);
|
||||
#include "F1AP_UEContextReleaseRequest.h"
|
||||
#include "F1AP_GNB-DU-Name.h"
|
||||
#include "F1AP_DRBs-ToBeModified-Item.h"
|
||||
#include "F1AP_SIBtype-List.h"
|
||||
#include "F1AP_EUTRA-NR-CellResourceCoordinationReq-Container.h"
|
||||
#include "F1AP_DRBs-SetupMod-List.h"
|
||||
#include "F1AP_DRBs-Required-ToBeModified-List.h"
|
||||
@@ -296,7 +291,6 @@ inline void ASN_DEBUG(const char *fmt, ...);
|
||||
#include "F1AP_PacketDelayBudget.h"
|
||||
#include "F1AP_GNBCUConfigurationUpdate.h"
|
||||
#include "F1AP_Cells-Broadcast-Completed-Item.h"
|
||||
#include "F1AP_RRCRconfigurationCompleteIndicator.h"
|
||||
#include "F1AP_PagingPriority.h"
|
||||
#include "F1AP_Cells-Failed-to-be-Activated-List.h"
|
||||
#include "F1AP_Endpoint-IP-address-and-port.h"
|
||||
@@ -306,7 +300,6 @@ inline void ASN_DEBUG(const char *fmt, ...);
|
||||
#include "F1AP_ResetType.h"
|
||||
#include "F1AP_FDD-Info.h"
|
||||
#include "F1AP_DLUPTNLInformation-ToBeSetup-List.h"
|
||||
#include "F1AP_QoSFlowIndicator.h"
|
||||
#include "F1AP_NR-CGI-List-For-Restart-List.h"
|
||||
#include "F1AP_F1SetupResponse.h"
|
||||
#include "F1AP_UEContextSetupResponse.h"
|
||||
@@ -325,7 +318,6 @@ inline void ASN_DEBUG(const char *fmt, ...);
|
||||
#include "F1AP_Cells-to-be-Barred-List.h"
|
||||
#include "F1AP_Presence.h"
|
||||
#include "F1AP_CellBarred.h"
|
||||
#include "F1AP_SIBtype.h"
|
||||
#include "F1AP_RequestType.h"
|
||||
#include "F1AP_NRFreqInfo.h"
|
||||
#include "F1AP_Potential-SpCell-Item.h"
|
||||
@@ -348,7 +340,6 @@ inline void ASN_DEBUG(const char *fmt, ...);
|
||||
#include "F1AP_GBR-QoSFlowInformation.h"
|
||||
#include "F1AP_SCellIndex.h"
|
||||
#include "F1AP_DRBs-SetupMod-Item.h"
|
||||
#include "F1AP_TransmissionStopIndicator.h"
|
||||
#include "F1AP_UEContextSetupFailure.h"
|
||||
#include "F1AP_DRBs-FailedToBeModified-List.h"
|
||||
#include "F1AP_DRBs-FailedToBeSetupMod-Item.h"
|
||||
|
||||
@@ -139,10 +139,11 @@ int CU_handle_F1_SETUP_REQUEST(instance_t instance,
|
||||
served_celles_item_p = &(((F1AP_GNB_DU_Served_Cells_ItemIEs_t *)ie->value.choice.GNB_DU_Served_Cells_List.list.array[i])->value.choice.GNB_DU_Served_Cells_Item);
|
||||
|
||||
/* tac */
|
||||
OCTET_STRING_TO_INT16(&(served_celles_item_p->served_Cell_Information.fiveGS_TAC), F1AP_SETUP_REQ(message_p).tac[i]);
|
||||
LOG_D(F1AP, "F1AP_SETUP_REQ(message_p).tac[%d] %d \n",
|
||||
i, F1AP_SETUP_REQ(message_p).tac[i]);
|
||||
|
||||
if (served_celles_item_p->served_Cell_Information.fiveGS_TAC) {
|
||||
OCTET_STRING_TO_INT16(served_celles_item_p->served_Cell_Information.fiveGS_TAC, F1AP_SETUP_REQ(message_p).tac[i]);
|
||||
LOG_D(F1AP, "F1AP_SETUP_REQ(message_p).tac[%d] %d \n",
|
||||
i, F1AP_SETUP_REQ(message_p).tac[i]);
|
||||
}
|
||||
/* - nRCGI */
|
||||
TBCD_TO_MCC_MNC(&(served_celles_item_p->served_Cell_Information.nRCGI.pLMN_Identity), F1AP_SETUP_REQ(message_p).mcc[i],
|
||||
F1AP_SETUP_REQ(message_p).mnc[i],
|
||||
@@ -356,20 +357,30 @@ int CU_send_F1_SETUP_RESPONSE(instance_t instance,
|
||||
//for (int n = 0; n < f1ap_setup_resp->SI_container_length[i][0]; n++)
|
||||
// printf("%02x ", f1ap_setup_resp->SI_container[i][0][n]);
|
||||
//printf("\n");
|
||||
OCTET_STRING_fromBuf(&gNB_CUSystemInformation->sImessage,
|
||||
(const char*)f1ap_setup_resp->SI_container[i][0],
|
||||
f1ap_setup_resp->SI_container_length[i][0]);
|
||||
|
||||
LOG_D(F1AP, "f1ap_setup_resp->SI_container_length = %d \n", f1ap_setup_resp->SI_container_length[0][0]);
|
||||
for (int sIBtype=2;sIBtype<33;sIBtype++) {
|
||||
if (f1ap_setup_resp->SI_container[i][sIBtype]!=NULL) {
|
||||
AssertFatal(sIBtype < 6 || sIBtype == 9, "Illegal SI type %d\n",sIBtype);
|
||||
F1AP_SibtypetobeupdatedListItem_t *sib_item = calloc(1,sizeof(*sib_item));
|
||||
memset((void*)sib_item,0,sizeof(*sib_item));
|
||||
sib_item->sIBtype = sIBtype;
|
||||
OCTET_STRING_fromBuf(&sib_item->sIBmessage,
|
||||
(const char*)f1ap_setup_resp->SI_container[i][sIBtype],
|
||||
f1ap_setup_resp->SI_container_length[i][sIBtype]);
|
||||
|
||||
LOG_D(F1AP, "f1ap_setup_resp->SI_container_length[%d][%d] = %d \n", i,sIBtype,f1ap_setup_resp->SI_container_length[i][sIBtype]);
|
||||
ASN_SEQUENCE_ADD(&gNB_CUSystemInformation->sibtypetobeupdatedlist.list,sib_item);
|
||||
}
|
||||
}
|
||||
cells_to_be_activated_list_itemExtIEs->extensionValue.choice.GNB_CUSystemInformation = *gNB_CUSystemInformation;
|
||||
|
||||
|
||||
F1AP_ProtocolExtensionContainer_160P9_t p_160P9_t;
|
||||
memset((void *)&p_160P9_t, 0, sizeof(F1AP_ProtocolExtensionContainer_160P9_t));
|
||||
F1AP_ProtocolExtensionContainer_154P112_t p_154P112_t;
|
||||
memset((void *)&p_154P112_t, 0, sizeof(F1AP_ProtocolExtensionContainer_154P112_t));
|
||||
|
||||
ASN_SEQUENCE_ADD(&p_160P9_t.list,
|
||||
ASN_SEQUENCE_ADD(&p_154P112_t.list,
|
||||
cells_to_be_activated_list_itemExtIEs);
|
||||
cells_to_be_activated_list_item.iE_Extensions = (struct F1AP_ProtocolExtensionContainer*)&p_160P9_t;
|
||||
cells_to_be_activated_list_item.iE_Extensions = (struct F1AP_ProtocolExtensionContainer*)&p_154P112_t;
|
||||
|
||||
free(gNB_CUSystemInformation);
|
||||
gNB_CUSystemInformation = NULL;
|
||||
@@ -829,17 +840,13 @@ int CU_send_gNB_CU_CONFIGURATION_UPDATE(instance_t instance, module_id_t du_mod_
|
||||
protected_eutra_resources_item_ies = (F1AP_Protected_EUTRA_Resources_ItemIEs_t *)calloc(1, sizeof(F1AP_Protected_EUTRA_Resources_ItemIEs_t));
|
||||
protected_eutra_resources_item_ies->id = F1AP_ProtocolIE_ID_id_Protected_EUTRA_Resources_List;
|
||||
protected_eutra_resources_item_ies->criticality = F1AP_Criticality_reject;
|
||||
protected_eutra_resources_item_ies->value.present = F1AP_Protected_EUTRA_Resources_ItemIEs__value_PR_SpectrumSharingGroupID;
|
||||
protected_eutra_resources_item_ies->value.choice.SpectrumSharingGroupID = 1L;
|
||||
|
||||
protected_eutra_resources_item_ies->value.present = F1AP_Protected_EUTRA_Resources_ItemIEs__value_PR_Protected_EUTRA_Resources_Item;
|
||||
((F1AP_Protected_EUTRA_Resources_Item_t*)&protected_eutra_resources_item_ies->value.choice.Protected_EUTRA_Resources_Item)->spectrumSharingGroupID = 123L;
|
||||
memset(&protected_eutra_resources_item_ies->value.choice.Protected_EUTRA_Resources_Item,0,
|
||||
sizeof(F1AP_Protected_EUTRA_Resources_Item_t));
|
||||
ASN_SEQUENCE_ADD(&ie->value.choice.Protected_EUTRA_Resources_List.list, protected_eutra_resources_item_ies);
|
||||
|
||||
/* 8.2 ListofEUTRACellsinGNBDUCoordination */
|
||||
protected_eutra_resources_item_ies = (F1AP_Protected_EUTRA_Resources_ItemIEs_t *)calloc(1, sizeof(F1AP_Protected_EUTRA_Resources_ItemIEs_t));
|
||||
protected_eutra_resources_item_ies->id = F1AP_ProtocolIE_ID_id_Protected_EUTRA_Resources_List;
|
||||
protected_eutra_resources_item_ies->criticality = F1AP_Criticality_reject;
|
||||
protected_eutra_resources_item_ies->value.present = F1AP_Protected_EUTRA_Resources_ItemIEs__value_PR_ListofEUTRACellsinGNBDUCoordination;
|
||||
|
||||
/*
|
||||
F1AP_Served_EUTRA_Cells_Information_t served_eutra_cells_information;
|
||||
memset((void *)&served_eutra_cells_information, 0, sizeof(F1AP_Served_EUTRA_Cells_Information_t));
|
||||
|
||||
@@ -870,6 +877,7 @@ int CU_send_gNB_CU_CONFIGURATION_UPDATE(instance_t instance, module_id_t du_mod_
|
||||
ASN_SEQUENCE_ADD(&protected_eutra_resources_item_ies->value.choice.ListofEUTRACellsinGNBDUCoordination.list, &served_eutra_cells_information);
|
||||
|
||||
ASN_SEQUENCE_ADD(&ie->value.choice.Protected_EUTRA_Resources_List.list, protected_eutra_resources_item_ies);
|
||||
*/
|
||||
}
|
||||
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
||||
|
||||
|
||||
@@ -109,7 +109,7 @@ int CU_handle_INITIAL_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
|
||||
/* RNTI */
|
||||
F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_InitialULRRCMessageTransferIEs_t, ie, container,
|
||||
F1AP_ProtocolIE_ID_id_C_RNTI, true);
|
||||
BUFFER_TO_INT16(ie->value.choice.C_RNTI.buf, rnti);
|
||||
rnti = ie->value.choice.C_RNTI;
|
||||
|
||||
/* RRC Container */
|
||||
F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_InitialULRRCMessageTransferIEs_t, ie, container,
|
||||
@@ -260,19 +260,22 @@ int CU_send_DL_RRC_MESSAGE_TRANSFER(instance_t instance,
|
||||
/* optional */
|
||||
/* c7. RAT_FrequencyPriorityInformation */
|
||||
/* TODO */
|
||||
if (0) {
|
||||
ie = (F1AP_DLRRCMessageTransferIEs_t *)calloc(1, sizeof(F1AP_DLRRCMessageTransferIEs_t));
|
||||
ie->id = F1AP_ProtocolIE_ID_id_RAT_FrequencyPriorityInformation;
|
||||
ie->criticality = F1AP_Criticality_reject;
|
||||
ie->value.present = F1AP_DLRRCMessageTransferIEs__value_PR_RAT_FrequencyPriorityInformation;
|
||||
|
||||
ie->value.choice.RAT_FrequencyPriorityInformation.present = F1AP_RAT_FrequencyPriorityInformation_PR_subscriberProfileIDforRFP;
|
||||
ie->value.choice.RAT_FrequencyPriorityInformation.choice.subscriberProfileIDforRFP = 123L;
|
||||
|
||||
int endc=1;
|
||||
ie = (F1AP_DLRRCMessageTransferIEs_t *)calloc(1, sizeof(F1AP_DLRRCMessageTransferIEs_t));
|
||||
ie->id = F1AP_ProtocolIE_ID_id_RAT_FrequencyPriorityInformation;
|
||||
ie->criticality = F1AP_Criticality_reject;
|
||||
ie->value.present = F1AP_DLRRCMessageTransferIEs__value_PR_RAT_FrequencyPriorityInformation;
|
||||
if (endc==1) {
|
||||
ie->value.choice.RAT_FrequencyPriorityInformation.present = F1AP_RAT_FrequencyPriorityInformation_PR_eNDC;
|
||||
ie->value.choice.RAT_FrequencyPriorityInformation.choice.eNDC = 123L;
|
||||
}
|
||||
else {
|
||||
ie->value.choice.RAT_FrequencyPriorityInformation.present = F1AP_RAT_FrequencyPriorityInformation_PR_nGRAN;
|
||||
ie->value.choice.RAT_FrequencyPriorityInformation.choice.nGRAN = 11L;
|
||||
}
|
||||
//ie->value.choice.RAT_FrequencyPriorityInformation.present = F1AP_RAT_FrequencyPriorityInformation_PR_rAT_FrequencySelectionPriority;
|
||||
//ie->value.choice.RAT_FrequencyPriorityInformation.choice.rAT_FrequencySelectionPriority = 123L;
|
||||
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
||||
}
|
||||
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
||||
|
||||
/* encode */
|
||||
if (f1ap_encode_pdu(&pdu, &buffer, &len) < 0) {
|
||||
|
||||
@@ -108,7 +108,7 @@ int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
|
||||
/* mandatory */
|
||||
/* c4. ServCellIndex */
|
||||
ie = (F1AP_UEContextSetupRequestIEs_t *)calloc(1, sizeof(F1AP_UEContextSetupRequestIEs_t));
|
||||
ie->id = F1AP_ProtocolIE_ID_id_ServCellndex;
|
||||
ie->id = F1AP_ProtocolIE_ID_id_ServCellIndex;
|
||||
ie->criticality = F1AP_Criticality_reject;
|
||||
ie->value.present = F1AP_UEContextSetupRequestIEs__value_PR_ServCellIndex;
|
||||
ie->value.choice.ServCellIndex = 2;
|
||||
@@ -379,75 +379,86 @@ int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
|
||||
}
|
||||
|
||||
} else {
|
||||
/* 12.1.2 dRB_Information */
|
||||
drbs_toBeSetup_item.qoSInformation.present = F1AP_QoSInformation_PR_dRB_Information;
|
||||
drbs_toBeSetup_item.qoSInformation.choice.dRB_Information = (F1AP_DRB_Information_t *)calloc(1, sizeof(F1AP_DRB_Information_t));
|
||||
|
||||
/* 12.1.2 DRB_Information */
|
||||
drbs_toBeSetup_item.qoSInformation.present = F1AP_QoSInformation_PR_choice_extension;
|
||||
|
||||
F1AP_QoSInformation_ExtIEs_t *ie;
|
||||
ie = (F1AP_QoSInformation_ExtIEs_t *)calloc(1, sizeof(F1AP_QoS_Characteristics_ExtIEs_t));
|
||||
ie->id = F1AP_ProtocolIE_ID_id_DRB_Information;
|
||||
ie->criticality = F1AP_Criticality_reject;
|
||||
ie->value.present = F1AP_QoSInformation_ExtIEs__value_PR_DRB_Information;
|
||||
F1AP_DRB_Information_t *DRB_Information = &ie->value.choice.DRB_Information;
|
||||
|
||||
drbs_toBeSetup_item.qoSInformation.choice.choice_extension = (struct F1AP_ProtocolIE_SingleContainer*)ie;
|
||||
|
||||
|
||||
/* 12.1.2.1 dRB_QoS */
|
||||
{
|
||||
/* qoS_Characteristics */
|
||||
{
|
||||
int some_decide_qoS_characteristics = 1; // BK: Need Check
|
||||
if (some_decide_qoS_characteristics) {
|
||||
drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.qoS_Characteristics.present = F1AP_QoS_Characteristics_PR_non_Dynamic_5QI;
|
||||
drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.qoS_Characteristics.choice.non_Dynamic_5QI = (F1AP_NonDynamic5QIDescriptor_t *)calloc(1, sizeof(F1AP_NonDynamic5QIDescriptor_t));
|
||||
DRB_Information->dRB_QoS.qoS_Characteristics.present = F1AP_QoS_Characteristics_PR_non_Dynamic_5QI;
|
||||
DRB_Information->dRB_QoS.qoS_Characteristics.choice.non_Dynamic_5QI = (F1AP_NonDynamic5QIDescriptor_t *)calloc(1, sizeof(F1AP_NonDynamic5QIDescriptor_t));
|
||||
|
||||
/* fiveQI */
|
||||
drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.qoS_Characteristics.choice.non_Dynamic_5QI->fiveQI = 1L;
|
||||
DRB_Information->dRB_QoS.qoS_Characteristics.choice.non_Dynamic_5QI->fiveQI = 1L;
|
||||
|
||||
/* OPTIONAL */
|
||||
/* qoSPriorityLevel */
|
||||
if (0) {
|
||||
drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.qoS_Characteristics.choice.non_Dynamic_5QI->qoSPriorityLevel = (long *)calloc(1, sizeof(long));
|
||||
*drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.qoS_Characteristics.choice.non_Dynamic_5QI->qoSPriorityLevel = 1L;
|
||||
DRB_Information->dRB_QoS.qoS_Characteristics.choice.non_Dynamic_5QI->qoSPriorityLevel = (long *)calloc(1, sizeof(long));
|
||||
*DRB_Information->dRB_QoS.qoS_Characteristics.choice.non_Dynamic_5QI->qoSPriorityLevel = 1L;
|
||||
}
|
||||
|
||||
/* OPTIONAL */
|
||||
/* averagingWindow */
|
||||
if (0) {
|
||||
drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.qoS_Characteristics.choice.non_Dynamic_5QI->averagingWindow = (F1AP_AveragingWindow_t *)calloc(1, sizeof(F1AP_AveragingWindow_t));
|
||||
*drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.qoS_Characteristics.choice.non_Dynamic_5QI->averagingWindow = 1L;
|
||||
DRB_Information->dRB_QoS.qoS_Characteristics.choice.non_Dynamic_5QI->averagingWindow = (F1AP_AveragingWindow_t *)calloc(1, sizeof(F1AP_AveragingWindow_t));
|
||||
*DRB_Information->dRB_QoS.qoS_Characteristics.choice.non_Dynamic_5QI->averagingWindow = 1L;
|
||||
}
|
||||
|
||||
/* OPTIONAL */
|
||||
/* maxDataBurstVolume */
|
||||
if (0) {
|
||||
drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.qoS_Characteristics.choice.non_Dynamic_5QI->maxDataBurstVolume = (F1AP_MaxDataBurstVolume_t *)calloc(1, sizeof(F1AP_MaxDataBurstVolume_t));
|
||||
*drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.qoS_Characteristics.choice.non_Dynamic_5QI->maxDataBurstVolume = 1L;
|
||||
DRB_Information->dRB_QoS.qoS_Characteristics.choice.non_Dynamic_5QI->maxDataBurstVolume = (F1AP_MaxDataBurstVolume_t *)calloc(1, sizeof(F1AP_MaxDataBurstVolume_t));
|
||||
*DRB_Information->dRB_QoS.qoS_Characteristics.choice.non_Dynamic_5QI->maxDataBurstVolume = 1L;
|
||||
}
|
||||
|
||||
} else {
|
||||
drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.qoS_Characteristics.present = F1AP_QoS_Characteristics_PR_dynamic_5QI;
|
||||
drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI = (F1AP_Dynamic5QIDescriptor_t *)calloc(1, sizeof(F1AP_Dynamic5QIDescriptor_t));
|
||||
DRB_Information->dRB_QoS.qoS_Characteristics.present = F1AP_QoS_Characteristics_PR_dynamic_5QI;
|
||||
DRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI = (F1AP_Dynamic5QIDescriptor_t *)calloc(1, sizeof(F1AP_Dynamic5QIDescriptor_t));
|
||||
|
||||
/* qoSPriorityLevel */
|
||||
drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI->qoSPriorityLevel = 1L;
|
||||
DRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI->qoSPriorityLevel = 1L;
|
||||
|
||||
/* packetDelayBudget */
|
||||
drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI->packetDelayBudget = 1L;
|
||||
DRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI->packetDelayBudget = 1L;
|
||||
|
||||
/* packetErrorRate */
|
||||
drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI->packetErrorRate = 1L;
|
||||
DRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI->packetErrorRate.pER_Scalar = 1L;
|
||||
DRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI->packetErrorRate.pER_Exponent = 6L;
|
||||
|
||||
|
||||
/* OPTIONAL */
|
||||
/* delayCritical */
|
||||
if (0) {
|
||||
drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI->delayCritical = (long *)calloc(1, sizeof(long));
|
||||
*drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI->delayCritical = 1L;
|
||||
DRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI->delayCritical = (long *)calloc(1, sizeof(long));
|
||||
*DRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI->delayCritical = 1L;
|
||||
}
|
||||
|
||||
/* OPTIONAL */
|
||||
/* averagingWindow */
|
||||
if (0) {
|
||||
drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI->averagingWindow = (F1AP_AveragingWindow_t *)calloc(1, sizeof(F1AP_AveragingWindow_t));
|
||||
*drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI->averagingWindow = 1L;
|
||||
DRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI->averagingWindow = (F1AP_AveragingWindow_t *)calloc(1, sizeof(F1AP_AveragingWindow_t));
|
||||
*DRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI->averagingWindow = 1L;
|
||||
}
|
||||
|
||||
/* OPTIONAL */
|
||||
/* maxDataBurstVolume */
|
||||
if (0) {
|
||||
drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI->maxDataBurstVolume = (F1AP_MaxDataBurstVolume_t *)calloc(1, sizeof(F1AP_MaxDataBurstVolume_t));
|
||||
*drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI->maxDataBurstVolume = 1L;
|
||||
DRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI->maxDataBurstVolume = (F1AP_MaxDataBurstVolume_t *)calloc(1, sizeof(F1AP_MaxDataBurstVolume_t));
|
||||
*DRB_Information->dRB_QoS.qoS_Characteristics.choice.dynamic_5QI->maxDataBurstVolume = 1L;
|
||||
}
|
||||
|
||||
} // if some_decide_qoS_characteristics
|
||||
@@ -456,32 +467,32 @@ int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
|
||||
|
||||
/* nGRANallocationRetentionPriority */
|
||||
{
|
||||
drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.nGRANallocationRetentionPriority.priorityLevel = F1AP_PriorityLevel_highest; // enum
|
||||
drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.nGRANallocationRetentionPriority.pre_emptionCapability = F1AP_Pre_emptionCapability_shall_not_trigger_pre_emption; // enum
|
||||
drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.nGRANallocationRetentionPriority.pre_emptionVulnerability = F1AP_Pre_emptionVulnerability_not_pre_emptable; // enum
|
||||
DRB_Information->dRB_QoS.nGRANallocationRetentionPriority.priorityLevel = F1AP_PriorityLevel_highest; // enum
|
||||
DRB_Information->dRB_QoS.nGRANallocationRetentionPriority.pre_emptionCapability = F1AP_Pre_emptionCapability_shall_not_trigger_pre_emption; // enum
|
||||
DRB_Information->dRB_QoS.nGRANallocationRetentionPriority.pre_emptionVulnerability = F1AP_Pre_emptionVulnerability_not_pre_emptable; // enum
|
||||
} // nGRANallocationRetentionPriority
|
||||
|
||||
/* OPTIONAL */
|
||||
/* gBR_QoS_Flow_Information */
|
||||
if (0) {
|
||||
drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.gBR_QoS_Flow_Information = (F1AP_GBR_QoSFlowInformation_t *)calloc(1, sizeof(F1AP_GBR_QoSFlowInformation_t));
|
||||
asn_long2INTEGER(&drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.gBR_QoS_Flow_Information->maxFlowBitRateDownlink, 1L);
|
||||
asn_long2INTEGER(&drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.gBR_QoS_Flow_Information->maxFlowBitRateUplink, 1L);
|
||||
asn_long2INTEGER(&drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.gBR_QoS_Flow_Information->guaranteedFlowBitRateDownlink, 1L);
|
||||
asn_long2INTEGER(&drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.gBR_QoS_Flow_Information->guaranteedFlowBitRateUplink, 1L);
|
||||
DRB_Information->dRB_QoS.gBR_QoS_Flow_Information = (F1AP_GBR_QoSFlowInformation_t *)calloc(1, sizeof(F1AP_GBR_QoSFlowInformation_t));
|
||||
asn_long2INTEGER(&DRB_Information->dRB_QoS.gBR_QoS_Flow_Information->maxFlowBitRateDownlink, 1L);
|
||||
asn_long2INTEGER(&DRB_Information->dRB_QoS.gBR_QoS_Flow_Information->maxFlowBitRateUplink, 1L);
|
||||
asn_long2INTEGER(&DRB_Information->dRB_QoS.gBR_QoS_Flow_Information->guaranteedFlowBitRateDownlink, 1L);
|
||||
asn_long2INTEGER(&DRB_Information->dRB_QoS.gBR_QoS_Flow_Information->guaranteedFlowBitRateUplink, 1L);
|
||||
|
||||
/* OPTIONAL */
|
||||
/* maxPacketLossRateDownlink */
|
||||
if (0) {
|
||||
drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.gBR_QoS_Flow_Information->maxPacketLossRateDownlink = (F1AP_MaxPacketLossRate_t *)calloc(1, sizeof(F1AP_MaxPacketLossRate_t));
|
||||
*drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.gBR_QoS_Flow_Information->maxPacketLossRateDownlink = 1L;
|
||||
DRB_Information->dRB_QoS.gBR_QoS_Flow_Information->maxPacketLossRateDownlink = (F1AP_MaxPacketLossRate_t *)calloc(1, sizeof(F1AP_MaxPacketLossRate_t));
|
||||
*DRB_Information->dRB_QoS.gBR_QoS_Flow_Information->maxPacketLossRateDownlink = 1L;
|
||||
}
|
||||
|
||||
/* OPTIONAL */
|
||||
/* maxPacketLossRateUplink */
|
||||
if (0) {
|
||||
drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.gBR_QoS_Flow_Information->maxPacketLossRateUplink = (F1AP_MaxPacketLossRate_t *)calloc(1, sizeof(F1AP_MaxPacketLossRate_t));
|
||||
*drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.gBR_QoS_Flow_Information->maxPacketLossRateUplink = 1L;
|
||||
DRB_Information->dRB_QoS.gBR_QoS_Flow_Information->maxPacketLossRateUplink = (F1AP_MaxPacketLossRate_t *)calloc(1, sizeof(F1AP_MaxPacketLossRate_t));
|
||||
*DRB_Information->dRB_QoS.gBR_QoS_Flow_Information->maxPacketLossRateUplink = 1L;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -489,8 +500,8 @@ int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
|
||||
/* OPTIONAL */
|
||||
/* reflective_QoS_Attribute */
|
||||
if (0) {
|
||||
drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.reflective_QoS_Attribute = (long *)calloc(1, sizeof(long));
|
||||
*drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.reflective_QoS_Attribute = 1L;
|
||||
DRB_Information->dRB_QoS.reflective_QoS_Attribute = (long *)calloc(1, sizeof(long));
|
||||
*DRB_Information->dRB_QoS.reflective_QoS_Attribute = 1L;
|
||||
}
|
||||
|
||||
} // dRB_QoS
|
||||
@@ -498,21 +509,21 @@ int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
|
||||
/* 12.1.2.2 sNSSAI */
|
||||
{
|
||||
/* sST */
|
||||
OCTET_STRING_fromBuf(&drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->sNSSAI.sST, "asdsa1d32sa1d31asd31as",
|
||||
OCTET_STRING_fromBuf(&DRB_Information->sNSSAI.sST, "asdsa1d32sa1d31asd31as",
|
||||
strlen("asdsa1d32sa1d31asd31as"));
|
||||
/* OPTIONAL */
|
||||
/* sD */
|
||||
if (0) {
|
||||
drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->sNSSAI.sD = (OCTET_STRING_t *)calloc(1, sizeof(OCTET_STRING_t));
|
||||
OCTET_STRING_fromBuf(drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->sNSSAI.sD, "asdsa1d32sa1d31asd31as",
|
||||
DRB_Information->sNSSAI.sD = (OCTET_STRING_t *)calloc(1, sizeof(OCTET_STRING_t));
|
||||
OCTET_STRING_fromBuf(DRB_Information->sNSSAI.sD, "asdsa1d32sa1d31asd31as",
|
||||
strlen("asdsa1d32sa1d31asd31as"));
|
||||
}
|
||||
}
|
||||
/* OPTIONAL */
|
||||
/* 12.1.2.3 notificationControl */
|
||||
if (0) {
|
||||
drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->notificationControl = (F1AP_NotificationControl_t *)calloc(1, sizeof(F1AP_NotificationControl_t));
|
||||
*drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->notificationControl = F1AP_NotificationControl_active; // enum
|
||||
DRB_Information->notificationControl = (F1AP_NotificationControl_t *)calloc(1, sizeof(F1AP_NotificationControl_t));
|
||||
*DRB_Information->notificationControl = F1AP_NotificationControl_active; // enum
|
||||
}
|
||||
|
||||
/* 12.1.2.4 flows_Mapped_To_DRB_List */ // BK: need verifiy
|
||||
@@ -523,7 +534,7 @@ int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
|
||||
memset((void *)&flows_mapped_to_drb_item, 0, sizeof(F1AP_Flows_Mapped_To_DRB_Item_t));
|
||||
|
||||
/* qoSFlowIndicator */
|
||||
flows_mapped_to_drb_item.qoSFlowIndicator = 1L;
|
||||
flows_mapped_to_drb_item.qoSFlowIdentifier = 1L;
|
||||
|
||||
/* qoSFlowLevelQoSParameters */
|
||||
{
|
||||
@@ -569,8 +580,8 @@ int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
|
||||
flows_mapped_to_drb_item.qoSFlowLevelQoSParameters.qoS_Characteristics.choice.dynamic_5QI->packetDelayBudget = 1L;
|
||||
|
||||
/* packetErrorRate */
|
||||
flows_mapped_to_drb_item.qoSFlowLevelQoSParameters.qoS_Characteristics.choice.dynamic_5QI->packetErrorRate = 1L;
|
||||
|
||||
flows_mapped_to_drb_item.qoSFlowLevelQoSParameters.qoS_Characteristics.choice.dynamic_5QI->packetErrorRate.pER_Scalar = 1L;
|
||||
flows_mapped_to_drb_item.qoSFlowLevelQoSParameters.qoS_Characteristics.choice.dynamic_5QI->packetErrorRate.pER_Exponent = 6L;
|
||||
/* OPTIONAL */
|
||||
/* delayCritical */
|
||||
if (0) {
|
||||
@@ -637,7 +648,7 @@ int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
|
||||
|
||||
} // qoSFlowLevelQoSParameters
|
||||
// BK: need check
|
||||
ASN_SEQUENCE_ADD(&drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->flows_Mapped_To_DRB_List.list, &flows_mapped_to_drb_item);
|
||||
ASN_SEQUENCE_ADD(&DRB_Information->flows_Mapped_To_DRB_List.list, &flows_mapped_to_drb_item);
|
||||
}
|
||||
|
||||
} // if some_decide_qos
|
||||
@@ -672,7 +683,7 @@ int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
|
||||
drbs_toBeSetup_item.rLCMode = F1AP_RLCMode_rlc_am;
|
||||
break;
|
||||
default:
|
||||
drbs_toBeSetup_item.rLCMode = F1AP_RLCMode_rlc_um;
|
||||
drbs_toBeSetup_item.rLCMode = F1AP_RLCMode_rlc_um_bidirectional;
|
||||
}
|
||||
|
||||
/* OPTIONAL */
|
||||
@@ -716,13 +727,13 @@ int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
|
||||
ie->criticality = F1AP_Criticality_reject;
|
||||
ie->value.present = F1AP_UEContextSetupRequestIEs__value_PR_RAT_FrequencyPriorityInformation;
|
||||
|
||||
int some_decide_rat = 1; // BK: Need Check
|
||||
if (some_decide_rat) {
|
||||
ie->value.choice.RAT_FrequencyPriorityInformation.present = F1AP_RAT_FrequencyPriorityInformation_PR_subscriberProfileIDforRFP;
|
||||
ie->value.choice.RAT_FrequencyPriorityInformation.choice.subscriberProfileIDforRFP = 11L;
|
||||
int endc = 1; // RK: Get this from somewhere ...
|
||||
if (endc) {
|
||||
ie->value.choice.RAT_FrequencyPriorityInformation.present = F1AP_RAT_FrequencyPriorityInformation_PR_eNDC;
|
||||
ie->value.choice.RAT_FrequencyPriorityInformation.choice.eNDC = 11L;
|
||||
} else {
|
||||
ie->value.choice.RAT_FrequencyPriorityInformation.present = F1AP_RAT_FrequencyPriorityInformation_PR_rAT_FrequencySelectionPriority;
|
||||
ie->value.choice.RAT_FrequencyPriorityInformation.choice.rAT_FrequencySelectionPriority = 11L;
|
||||
ie->value.choice.RAT_FrequencyPriorityInformation.present = F1AP_RAT_FrequencyPriorityInformation_PR_nGRAN;
|
||||
ie->value.choice.RAT_FrequencyPriorityInformation.choice.nGRAN = 11L;
|
||||
}
|
||||
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
||||
}
|
||||
@@ -1070,7 +1081,7 @@ int CU_send_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance) {
|
||||
/* mandatory */
|
||||
/* c4. ServCellIndex */
|
||||
ie = (F1AP_UEContextModificationRequestIEs_t *)calloc(1, sizeof(F1AP_UEContextModificationRequestIEs_t));
|
||||
ie->id = F1AP_ProtocolIE_ID_id_ServCellndex;
|
||||
ie->id = F1AP_ProtocolIE_ID_id_ServCellIndex;
|
||||
ie->criticality = F1AP_Criticality_reject;
|
||||
ie->value.present = F1AP_UEContextModificationRequestIEs__value_PR_ServCellIndex;
|
||||
ie->value.choice.ServCellIndex = 5L;
|
||||
@@ -1114,13 +1125,13 @@ int CU_send_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance) {
|
||||
}
|
||||
|
||||
/* optional */
|
||||
/* c6. TransmissionStopIndicator */
|
||||
/* c6. TransmissionActionIndicator */
|
||||
if (1) {
|
||||
ie = (F1AP_UEContextModificationRequestIEs_t *)calloc(1, sizeof(F1AP_UEContextModificationRequestIEs_t));
|
||||
ie->id = F1AP_ProtocolIE_ID_id_TransmissionStopIndicator;
|
||||
ie->id = F1AP_ProtocolIE_ID_id_TransmissionActionIndicator;
|
||||
ie->criticality = F1AP_Criticality_ignore;
|
||||
ie->value.present = F1AP_UEContextModificationRequestIEs__value_PR_TransmissionStopIndicator;
|
||||
ie->value.choice.TransmissionStopIndicator = F1AP_TransmissionStopIndicator_true;
|
||||
ie->value.present = F1AP_UEContextModificationRequestIEs__value_PR_TransmissionActionIndicator;
|
||||
ie->value.choice.TransmissionActionIndicator = F1AP_TransmissionActionIndicator_stop;
|
||||
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
||||
}
|
||||
|
||||
@@ -1140,10 +1151,10 @@ int CU_send_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance) {
|
||||
/* c7. RRCRconfigurationCompleteIndicator */
|
||||
if (1) {
|
||||
ie = (F1AP_UEContextModificationRequestIEs_t *)calloc(1, sizeof(F1AP_UEContextModificationRequestIEs_t));
|
||||
ie->id = F1AP_ProtocolIE_ID_id_RRCRconfigurationCompleteIndicator;
|
||||
ie->id = F1AP_ProtocolIE_ID_id_RRCReconfigurationCompleteIndicator;
|
||||
ie->criticality = F1AP_Criticality_ignore;
|
||||
ie->value.present = F1AP_UEContextModificationRequestIEs__value_PR_RRCRconfigurationCompleteIndicator;
|
||||
ie->value.choice.RRCRconfigurationCompleteIndicator = F1AP_RRCRconfigurationCompleteIndicator_true;
|
||||
ie->value.present = F1AP_UEContextModificationRequestIEs__value_PR_RRCReconfigurationCompleteIndicator;
|
||||
ie->value.choice.RRCReconfigurationCompleteIndicator = F1AP_RRCReconfigurationCompleteIndicator_true;
|
||||
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
||||
}
|
||||
|
||||
@@ -1325,7 +1336,7 @@ int CU_send_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance) {
|
||||
}
|
||||
|
||||
/* rLCMode */
|
||||
drbs_toBeSetupMod_item.rLCMode = F1AP_RLCMode_rlc_um; // enum
|
||||
drbs_toBeSetupMod_item.rLCMode = F1AP_RLCMode_rlc_um_bidirectional; // enum
|
||||
|
||||
/* OPTIONAL */
|
||||
/* ULConfiguration */
|
||||
@@ -1366,9 +1377,10 @@ int CU_send_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance) {
|
||||
drbs_toBeModified_item.dRBID = 30L;
|
||||
|
||||
/* qoSInformation */
|
||||
drbs_toBeModified_item.qoSInformation.present = F1AP_QoSInformation_PR_eUTRANQoS;
|
||||
drbs_toBeModified_item.qoSInformation.choice.eUTRANQoS = (F1AP_EUTRANQoS_t *)calloc(1, sizeof(F1AP_EUTRANQoS_t));
|
||||
drbs_toBeModified_item.qoSInformation.choice.eUTRANQoS->qCI = 254L;
|
||||
drbs_toBeModified_item.qoSInformation =calloc(1,sizeof(*drbs_toBeModified_item.qoSInformation));
|
||||
drbs_toBeModified_item.qoSInformation->present = F1AP_QoSInformation_PR_eUTRANQoS;
|
||||
drbs_toBeModified_item.qoSInformation->choice.eUTRANQoS = (F1AP_EUTRANQoS_t *)calloc(1, sizeof(F1AP_EUTRANQoS_t));
|
||||
drbs_toBeModified_item.qoSInformation->choice.eUTRANQoS->qCI = 254L;
|
||||
|
||||
/* ULTunnels_ToBeModified_List */
|
||||
int j = 0;
|
||||
|
||||
@@ -95,7 +95,6 @@ int DU_send_F1_SETUP_REQUEST(instance_t instance) {
|
||||
uint8_t *buffer;
|
||||
uint32_t len;
|
||||
int i = 0;
|
||||
int j = 0;
|
||||
|
||||
/* Create */
|
||||
/* 0. pdu Type */
|
||||
@@ -189,7 +188,7 @@ int DU_send_F1_SETUP_REQUEST(instance_t instance) {
|
||||
served_cell_information.nRPCI = f1ap_du_data->nr_pci[i]; // int 0..1007
|
||||
|
||||
/* - fiveGS_TAC */
|
||||
OCTET_STRING_fromBuf(&served_cell_information.fiveGS_TAC,
|
||||
OCTET_STRING_fromBuf(served_cell_information.fiveGS_TAC,
|
||||
(const char*)&f1ap_du_data->tac[i],
|
||||
3);
|
||||
|
||||
@@ -201,19 +200,11 @@ int DU_send_F1_SETUP_REQUEST(instance_t instance) {
|
||||
2);
|
||||
}
|
||||
|
||||
/* - broadcast PLMNs */
|
||||
// RK: add the num_available_broadcast_PLMNs to the message
|
||||
int num_available_broadcast_PLMNs = 1; //f1ap_du_data->num_available_broadcast_PLMNs;
|
||||
LOG_D(F1AP, "num_available_broadcast_PLMNs = %d \n", num_available_broadcast_PLMNs);
|
||||
for (j=0;
|
||||
j<num_available_broadcast_PLMNs; // num_available_broadcast_PLMNs
|
||||
j++) {
|
||||
/* > PLMN BroadcastPLMNs Item */
|
||||
F1AP_BroadcastPLMNs_Item_t *broadcastPLMNs_Item = (F1AP_BroadcastPLMNs_Item_t *)calloc(1, sizeof(F1AP_BroadcastPLMNs_Item_t));
|
||||
//MCC_MNC_TO_PLMNID(208, 95, 2, &broadcastPLMNs_Item->pLMN_Identity);
|
||||
MCC_MNC_TO_PLMNID(f1ap_du_data->mcc[i], f1ap_du_data->mnc[i], f1ap_du_data->mnc_digit_length[i], &broadcastPLMNs_Item->pLMN_Identity);
|
||||
ASN_SEQUENCE_ADD(&served_cell_information.servedPLMNs.list, broadcastPLMNs_Item);
|
||||
}
|
||||
/* servedPLMN information */
|
||||
F1AP_ServedPLMNs_Item_t *servedPLMN_item = calloc(1,sizeof(*servedPLMN_item));
|
||||
memset(servedPLMN_item,0,sizeof(*servedPLMN_item));
|
||||
MCC_MNC_TO_PLMNID(f1ap_du_data->mcc[i], f1ap_du_data->mnc[i], f1ap_du_data->mnc_digit_length[i], &servedPLMN_item->pLMN_Identity);
|
||||
ASN_SEQUENCE_ADD(&served_cell_information.servedPLMNs.list, servedPLMN_item);
|
||||
|
||||
// // /* - CHOICE NR-MODE-Info */
|
||||
F1AP_NR_Mode_Info_t nR_Mode_Info;
|
||||
@@ -503,27 +494,59 @@ int DU_handle_F1_SETUP_RESPONSE(instance_t instance,
|
||||
F1AP_SETUP_RESP (msg_p).nr_cellid[i]);
|
||||
F1AP_SETUP_RESP (msg_p).nrpci[i] = *cell->nRPCI;
|
||||
|
||||
F1AP_ProtocolExtensionContainer_160P9_t *ext = (F1AP_ProtocolExtensionContainer_160P9_t *)cell->iE_Extensions;
|
||||
AssertFatal(ext!=NULL,"Extension for SI is null\n");
|
||||
F1AP_SETUP_RESP (msg_p).num_SI[i] = ext->list.count;
|
||||
AssertFatal(ext->list.count==1,"At least one SI message should be there, and only 1 for now!\n");
|
||||
LOG_D(F1AP, "F1AP: F1Setup-Resp Cell %d MCC %d MNC %d NRCellid %lx num_si %d\n",
|
||||
i, F1AP_SETUP_RESP (msg_p).mcc[i], F1AP_SETUP_RESP (msg_p).mnc[i],
|
||||
F1AP_SETUP_RESP (msg_p).nr_cellid[i], F1AP_SETUP_RESP (msg_p).num_SI[i]);
|
||||
for (int si =0;si < ext->list.count;si++) {
|
||||
size_t size = ext->list.array[si]->extensionValue.choice.GNB_CUSystemInformation.sImessage.size;
|
||||
F1AP_SETUP_RESP (msg_p).SI_container_length[i][si] = size;
|
||||
LOG_D(F1AP, "F1AP: F1Setup-Resp SI_container_length[%d][%d] %ld bytes\n", i, si, size);
|
||||
F1AP_SETUP_RESP (msg_p).SI_container[i][si] = malloc(F1AP_SETUP_RESP (msg_p).SI_container_length[i][si]);
|
||||
|
||||
memcpy((void*)F1AP_SETUP_RESP (msg_p).SI_container[i][si],
|
||||
(void*)ext->list.array[si]->extensionValue.choice.GNB_CUSystemInformation.sImessage.buf,
|
||||
F1AP_SETUP_RESP (msg_p).SI_container_length[i][si]);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
F1AP_ProtocolExtensionContainer_154P112_t *ext = (F1AP_ProtocolExtensionContainer_154P112_t *)cell->iE_Extensions;
|
||||
AssertFatal(ext!=NULL,"Extension is null\n");
|
||||
for (int cnt=0;cnt<ext->list.count;cnt++) {
|
||||
F1AP_Cells_to_be_Activated_List_ItemExtIEs_t *cells_to_be_activated_list_itemExtIEs=(F1AP_Cells_to_be_Activated_List_ItemExtIEs_t *)ext->list.array[cnt];
|
||||
switch (cells_to_be_activated_list_itemExtIEs->id) {
|
||||
/*
|
||||
case F1AP_Cells_to_be_Activated_List_ItemExtIEs__extensionValue_PR_NOTHING:
|
||||
case F1AP_Cells_to_be_Activated_List_ItemExtIEs__extensionValue_PR_GNB_CUSystemInformation,
|
||||
case F1AP_Cells_to_be_Activated_List_ItemExtIEs__extensionValue_PR_AvailablePLMNList,
|
||||
case F1AP_Cells_to_be_Activated_List_ItemExtIEs__extensionValue_PR_ExtendedAvailablePLMN_List,
|
||||
case F1AP_Cells_to_be_Activated_List_ItemExtIEs__extensionValue_PR_IAB_Info_IAB_donor_CU,
|
||||
case F1AP_Cells_to_be_Activated_List_ItemExtIEs__extensionValue_PR_AvailableSNPN_ID_List
|
||||
*/
|
||||
case F1AP_ProtocolIE_ID_id_gNB_CUSystemInformation:
|
||||
{
|
||||
F1AP_GNB_CUSystemInformation_t *gNB_CUSystemInformation = (F1AP_GNB_CUSystemInformation_t*)&cells_to_be_activated_list_itemExtIEs->extensionValue.choice.GNB_CUSystemInformation;
|
||||
F1AP_SETUP_RESP (msg_p).num_SI[i] = gNB_CUSystemInformation->sibtypetobeupdatedlist.list.count;
|
||||
AssertFatal(ext->list.count==1,"At least one SI message should be there, and only 1 for now!\n");
|
||||
LOG_D(F1AP, "F1AP: F1Setup-Resp Cell %d MCC %d MNC %d NRCellid %lx num_si %d\n",
|
||||
i, F1AP_SETUP_RESP (msg_p).mcc[i], F1AP_SETUP_RESP (msg_p).mnc[i],
|
||||
F1AP_SETUP_RESP (msg_p).nr_cellid[i], F1AP_SETUP_RESP (msg_p).num_SI[i]);
|
||||
for (int si =0;si < gNB_CUSystemInformation->sibtypetobeupdatedlist.list.count;si++) {
|
||||
F1AP_SibtypetobeupdatedListItem_t *sib_item = gNB_CUSystemInformation->sibtypetobeupdatedlist.list.array[si];
|
||||
size_t size = sib_item->sIBmessage.size;
|
||||
F1AP_SETUP_RESP (msg_p).SI_container_length[i][si] = size;
|
||||
LOG_D(F1AP, "F1AP: F1Setup-Resp SI_container_length[%d][%d] %ld bytes\n", i, (int)sib_item->sIBtype, size);
|
||||
F1AP_SETUP_RESP (msg_p).SI_container[i][si] = malloc(F1AP_SETUP_RESP (msg_p).SI_container_length[i][si]);
|
||||
memcpy((void*)F1AP_SETUP_RESP (msg_p).SI_container[i][sib_item->sIBtype],
|
||||
(void*)sib_item->sIBmessage.buf,
|
||||
size);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case F1AP_ProtocolIE_ID_id_AvailablePLMNList:
|
||||
AssertFatal(1==0,"F1AP_ProtocolIE_ID_id_AvailablePLMNList not supported yet\n");
|
||||
break;
|
||||
case F1AP_ProtocolIE_ID_id_ExtendedAvailablePLMN_List:
|
||||
AssertFatal(1==0,"F1AP_ProtocolIE_ID_id_AvailablePLMNList not supported yet\n");
|
||||
break;
|
||||
case F1AP_ProtocolIE_ID_id_IAB_Info_IAB_donor_CU:
|
||||
AssertFatal(1==0,"F1AP_ProtocolIE_ID_id_AvailablePLMNList not supported yet\n");
|
||||
break;
|
||||
case F1AP_ProtocolIE_ID_id_AvailableSNPN_ID_List:
|
||||
AssertFatal(1==0,"F1AP_ProtocolIE_ID_id_AvailablePLMNList not supported yet\n");
|
||||
break;
|
||||
default:
|
||||
AssertFatal(1==0,"F1AP_ProtocolIE_ID_id %d unknown\n",(int)cells_to_be_activated_list_itemExtIEs->id);
|
||||
break;
|
||||
}
|
||||
} // for (cnt=...
|
||||
} // for (cells_to_activate...
|
||||
} // switch ie
|
||||
} // for IE
|
||||
AssertFatal(TransactionId!=-1,"TransactionId was not sent\n");
|
||||
AssertFatal(num_cells_to_activate>0,"No cells activated\n");
|
||||
F1AP_SETUP_RESP (msg_p).num_cells_to_activate = num_cells_to_activate;
|
||||
@@ -635,7 +658,7 @@ int DU_send_gNB_DU_CONFIGURATION_UPDATE(instance_t instance,
|
||||
served_cell_information.nRPCI = f1ap_setup_req->nr_pci[i]; // int 0..1007
|
||||
|
||||
/* - fiveGS_TAC */
|
||||
OCTET_STRING_fromBuf(&served_cell_information.fiveGS_TAC,
|
||||
OCTET_STRING_fromBuf(served_cell_information.fiveGS_TAC,
|
||||
(const char *) &f1ap_setup_req->tac[i],
|
||||
3);
|
||||
|
||||
@@ -647,17 +670,11 @@ int DU_send_gNB_DU_CONFIGURATION_UPDATE(instance_t instance,
|
||||
2);
|
||||
}
|
||||
|
||||
/* - broadcast PLMNs */
|
||||
int maxnoofBPLMNS = 1;
|
||||
for (i=0;
|
||||
i<maxnoofBPLMNS;
|
||||
i++) {
|
||||
/* > PLMN BroadcastPLMNs Item */
|
||||
F1AP_BroadcastPLMNs_Item_t *broadcastPLMNs_Item = (F1AP_BroadcastPLMNs_Item_t *)calloc(1, sizeof(F1AP_BroadcastPLMNs_Item_t));
|
||||
//memset((void *)&broadcastPLMNs_Item, 0, sizeof(F1AP_BroadcastPLMNs_Item_t));
|
||||
MCC_MNC_TO_PLMNID(f1ap_setup_req->mcc[i], f1ap_setup_req->mnc[i], f1ap_setup_req->mnc_digit_length[i], &broadcastPLMNs_Item->pLMN_Identity);
|
||||
ASN_SEQUENCE_ADD(&served_cell_information.servedPLMNs.list, broadcastPLMNs_Item);
|
||||
}
|
||||
F1AP_ServedPLMNs_Item_t *servedPLMN_item = calloc(1,sizeof(*servedPLMN_item));
|
||||
memset(servedPLMN_item,0,sizeof(*servedPLMN_item));
|
||||
MCC_MNC_TO_PLMNID(f1ap_du_data->mcc[i], f1ap_du_data->mnc[i], f1ap_du_data->mnc_digit_length[i], &servedPLMN_item->pLMN_Identity);
|
||||
ASN_SEQUENCE_ADD(&served_cell_information.servedPLMNs.list, servedPLMN_item);
|
||||
|
||||
|
||||
// // /* - CHOICE NR-MODE-Info */
|
||||
F1AP_NR_Mode_Info_t nR_Mode_Info;
|
||||
@@ -803,7 +820,7 @@ int DU_send_gNB_DU_CONFIGURATION_UPDATE(instance_t instance,
|
||||
served_cell_information.nRPCI = f1ap_setup_req->nr_pci[i]; // int 0..1007
|
||||
|
||||
/* - fiveGS_TAC */
|
||||
OCTET_STRING_fromBuf(&served_cell_information.fiveGS_TAC,
|
||||
OCTET_STRING_fromBuf(served_cell_information.fiveGS_TAC,
|
||||
(const char *) &f1ap_setup_req->tac[i],
|
||||
3);
|
||||
|
||||
@@ -815,17 +832,12 @@ int DU_send_gNB_DU_CONFIGURATION_UPDATE(instance_t instance,
|
||||
2);
|
||||
}
|
||||
|
||||
/* - broadcast PLMNs */
|
||||
int maxnoofBPLMNS = 1;
|
||||
for (i=0;
|
||||
i<maxnoofBPLMNS;
|
||||
i++) {
|
||||
/* > PLMN BroadcastPLMNs Item */
|
||||
F1AP_BroadcastPLMNs_Item_t *broadcastPLMNs_Item = (F1AP_BroadcastPLMNs_Item_t *)calloc(1, sizeof(F1AP_BroadcastPLMNs_Item_t));
|
||||
//memset((void *)&broadcastPLMNs_Item, 0, sizeof(F1AP_BroadcastPLMNs_Item_t));
|
||||
MCC_MNC_TO_PLMNID(f1ap_setup_req->mcc[i], f1ap_setup_req->mnc[i], f1ap_setup_req->mnc_digit_length[i], &broadcastPLMNs_Item->pLMN_Identity);
|
||||
ASN_SEQUENCE_ADD(&served_cell_information.servedPLMNs.list, broadcastPLMNs_Item);
|
||||
}
|
||||
F1AP_ServedPLMNs_Item_t *servedPLMN_item = calloc(1,sizeof(*servedPLMN_item));
|
||||
memset(servedPLMN_item,0,sizeof(*servedPLMN_item));
|
||||
MCC_MNC_TO_PLMNID(f1ap_du_data->mcc[i], f1ap_du_data->mnc[i], f1ap_du_data->mnc_digit_length[i], &servedPLMN_item->pLMN_Identity);
|
||||
ASN_SEQUENCE_ADD(&served_cell_information.servedPLMNs.list, servedPLMN_item);
|
||||
|
||||
|
||||
|
||||
// // /* - CHOICE NR-MODE-Info */
|
||||
F1AP_NR_Mode_Info_t nR_Mode_Info;
|
||||
@@ -963,42 +975,6 @@ int DU_send_gNB_DU_CONFIGURATION_UPDATE(instance_t instance,
|
||||
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
||||
|
||||
|
||||
/* mandatory */
|
||||
/* c5. Active_Cells_List */
|
||||
ie = (F1AP_GNBDUConfigurationUpdateIEs_t *)calloc(1, sizeof(F1AP_GNBDUConfigurationUpdateIEs_t));
|
||||
ie->id = F1AP_ProtocolIE_ID_id_Active_Cells_List;
|
||||
ie->criticality = F1AP_Criticality_reject;
|
||||
ie->value.present = F1AP_GNBDUConfigurationUpdateIEs__value_PR_Active_Cells_List;
|
||||
|
||||
for (i=0;
|
||||
i<1;
|
||||
i++) {
|
||||
//
|
||||
F1AP_Active_Cells_ItemIEs_t *active_cells_item_ies;
|
||||
active_cells_item_ies = (F1AP_Active_Cells_ItemIEs_t *)calloc(1, sizeof(F1AP_Active_Cells_ItemIEs_t));
|
||||
active_cells_item_ies->id = F1AP_ProtocolIE_ID_id_Active_Cells_Item;
|
||||
active_cells_item_ies->criticality = F1AP_Criticality_reject;
|
||||
active_cells_item_ies->value.present = F1AP_Active_Cells_ItemIEs__value_PR_Active_Cells_Item;
|
||||
|
||||
F1AP_Active_Cells_Item_t active_cells_item;
|
||||
memset((void *)&active_cells_item, 0, sizeof(F1AP_Active_Cells_Item_t));
|
||||
|
||||
/* 3.1 oldNRCGI */
|
||||
F1AP_NRCGI_t nRCGI;
|
||||
memset(&nRCGI, 0, sizeof(F1AP_NRCGI_t));
|
||||
MCC_MNC_TO_PLMNID(f1ap_setup_req->mcc[i], f1ap_setup_req->mnc[i], f1ap_setup_req->mnc_digit_length[i],
|
||||
&nRCGI.pLMN_Identity);
|
||||
NR_CELL_ID_TO_BIT_STRING(f1ap_setup_req->nr_cellid[i], &nRCGI.nRCellIdentity);
|
||||
active_cells_item.nRCGI = nRCGI;
|
||||
|
||||
/* ADD */
|
||||
active_cells_item_ies->value.choice.Active_Cells_Item = active_cells_item;
|
||||
|
||||
ASN_SEQUENCE_ADD(&ie->value.choice.Active_Cells_List.list,
|
||||
active_cells_item_ies);
|
||||
}
|
||||
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
||||
|
||||
|
||||
if (f1ap_encode_pdu(&pdu, &buffer, &len) < 0) {
|
||||
LOG_E(F1AP, "Failed to encode F1 setup request\n");
|
||||
|
||||
@@ -161,10 +161,10 @@ int DU_handle_DL_RRC_MESSAGE_TRANSFER(instance_t instance,
|
||||
F1AP_ProtocolIE_ID_id_RAT_FrequencyPriorityInformation, true);
|
||||
|
||||
switch(ie->value.choice.RAT_FrequencyPriorityInformation.present) {
|
||||
case F1AP_RAT_FrequencyPriorityInformation_PR_subscriberProfileIDforRFP:
|
||||
case F1AP_RAT_FrequencyPriorityInformation_PR_eNDC:
|
||||
//subscriberProfileIDforRFP = ie->value.choice.RAT_FrequencyPriorityInformation.choice.subscriberProfileIDforRFP;
|
||||
break;
|
||||
case F1AP_RAT_FrequencyPriorityInformation_PR_rAT_FrequencySelectionPriority:
|
||||
case F1AP_RAT_FrequencyPriorityInformation_PR_nGRAN:
|
||||
//rAT_FrequencySelectionPriority = ie->value.choice.RAT_FrequencyPriorityInformation.choice.rAT_FrequencySelectionPriority;
|
||||
break;
|
||||
default:
|
||||
@@ -836,7 +836,7 @@ int DU_send_INITIAL_UL_RRC_MESSAGE_TRANSFER(module_id_t module_idP,
|
||||
ie->id = F1AP_ProtocolIE_ID_id_C_RNTI;
|
||||
ie->criticality = F1AP_Criticality_reject;
|
||||
ie->value.present = F1AP_InitialULRRCMessageTransferIEs__value_PR_C_RNTI;
|
||||
C_RNTI_TO_BIT_STRING(rntiP, &ie->value.choice.C_RNTI);
|
||||
ie->value.choice.C_RNTI=rntiP;
|
||||
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
||||
|
||||
/* mandatory */
|
||||
|
||||
@@ -91,7 +91,7 @@ int DU_handle_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
|
||||
BIT_STRING_TO_NR_CELL_IDENTITY(&ie->value.choice.NRCGI.nRCellIdentity, f1ap_ue_context_setup_req->nr_cellid);
|
||||
/* ServCellIndex */
|
||||
F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextSetupRequestIEs_t, ie, container,
|
||||
F1AP_ProtocolIE_ID_id_ServCellndex, true);
|
||||
F1AP_ProtocolIE_ID_id_ServCellIndex, true);
|
||||
f1ap_ue_context_setup_req->servCellIndex = ie->value.choice.ServCellIndex;
|
||||
/* optional */
|
||||
/* CellULConfigured */
|
||||
@@ -227,7 +227,8 @@ int DU_send_UE_CONTEXT_SETUP_RESPONSE(instance_t instance) {
|
||||
ie->id = F1AP_ProtocolIE_ID_id_C_RNTI;
|
||||
ie->criticality = F1AP_Criticality_ignore;
|
||||
ie->value.present = F1AP_UEContextSetupResponseIEs__value_PR_C_RNTI;
|
||||
C_RNTI_TO_BIT_STRING(rntiP, &ie->value.choice.C_RNTI);
|
||||
//C_RNTI_TO_BIT_STRING(rntiP, &ie->value.choice.C_RNTI);
|
||||
ie->value.choice.C_RNTI=rntiP;
|
||||
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
||||
}
|
||||
|
||||
@@ -1016,7 +1017,7 @@ int DU_send_UE_CONTEXT_MODIFICATION_RESPONSE(instance_t instance) {
|
||||
srbs_failedToBeSetupMod_item.sRBID = 50L;
|
||||
srbs_failedToBeSetupMod_item.cause = (F1AP_Cause_t *)calloc(1, sizeof(F1AP_Cause_t));
|
||||
srbs_failedToBeSetupMod_item.cause->present = F1AP_Cause_PR_radioNetwork;
|
||||
srbs_failedToBeSetupMod_item.cause->choice.radioNetwork = F1AP_CauseRadioNetwork_unknown_or_already_allocated_gnd_du_ue_f1ap_id;
|
||||
srbs_failedToBeSetupMod_item.cause->choice.radioNetwork = F1AP_CauseRadioNetwork_unknown_or_already_allocated_gnb_du_ue_f1ap_id;
|
||||
/* ADD */
|
||||
srbs_failedToBeSetupMod_item_ies->value.choice.SRBs_FailedToBeSetupMod_Item = srbs_failedToBeSetupMod_item;
|
||||
ASN_SEQUENCE_ADD(&ie->value.choice.SRBs_FailedToBeSetupMod_List.list,
|
||||
@@ -1047,7 +1048,7 @@ int DU_send_UE_CONTEXT_MODIFICATION_RESPONSE(instance_t instance) {
|
||||
drbs_failedToBeSetupMod_item.dRBID = 30L;
|
||||
drbs_failedToBeSetupMod_item.cause = (F1AP_Cause_t *)calloc(1, sizeof(F1AP_Cause_t));
|
||||
drbs_failedToBeSetupMod_item.cause->present = F1AP_Cause_PR_radioNetwork;
|
||||
drbs_failedToBeSetupMod_item.cause->choice.radioNetwork = F1AP_CauseRadioNetwork_unknown_or_already_allocated_gnd_du_ue_f1ap_id;
|
||||
drbs_failedToBeSetupMod_item.cause->choice.radioNetwork = F1AP_CauseRadioNetwork_unknown_or_already_allocated_gnb_du_ue_f1ap_id;
|
||||
/* ADD */
|
||||
drbs_failedToBeSetupMod_item_ies->value.choice.DRBs_FailedToBeSetupMod_Item = drbs_failedToBeSetupMod_item;
|
||||
ASN_SEQUENCE_ADD(&ie->value.choice.DRBs_FailedToBeSetupMod_List.list,
|
||||
@@ -1083,7 +1084,7 @@ int DU_send_UE_CONTEXT_MODIFICATION_RESPONSE(instance_t instance) {
|
||||
scell_failedtoSetupMod_item.sCell_ID = nRCGI;
|
||||
scell_failedtoSetupMod_item.cause = (F1AP_Cause_t *)calloc(1, sizeof(F1AP_Cause_t));
|
||||
scell_failedtoSetupMod_item.cause->present = F1AP_Cause_PR_radioNetwork;
|
||||
scell_failedtoSetupMod_item.cause->choice.radioNetwork = F1AP_CauseRadioNetwork_unknown_or_already_allocated_gnd_du_ue_f1ap_id;
|
||||
scell_failedtoSetupMod_item.cause->choice.radioNetwork = F1AP_CauseRadioNetwork_unknown_or_already_allocated_gnb_du_ue_f1ap_id;
|
||||
/* ADD */
|
||||
scell_failedtoSetupMod_item_ies->value.choice.SCell_FailedtoSetupMod_Item = scell_failedtoSetupMod_item;
|
||||
ASN_SEQUENCE_ADD(&ie->value.choice.SCell_FailedtoSetupMod_List.list,
|
||||
@@ -1114,7 +1115,7 @@ int DU_send_UE_CONTEXT_MODIFICATION_RESPONSE(instance_t instance) {
|
||||
drbs_failedToBeModified_item.dRBID = 30L;
|
||||
drbs_failedToBeModified_item.cause = (F1AP_Cause_t *)calloc(1, sizeof(F1AP_Cause_t));
|
||||
drbs_failedToBeModified_item.cause->present = F1AP_Cause_PR_radioNetwork;
|
||||
drbs_failedToBeModified_item.cause->choice.radioNetwork = F1AP_CauseRadioNetwork_unknown_or_already_allocated_gnd_du_ue_f1ap_id;
|
||||
drbs_failedToBeModified_item.cause->choice.radioNetwork = F1AP_CauseRadioNetwork_unknown_or_already_allocated_gnb_du_ue_f1ap_id;
|
||||
/* ADD */
|
||||
drbs_failedToBeModified_item_ies->value.choice.DRBs_FailedToBeModified_Item = drbs_failedToBeModified_item;
|
||||
ASN_SEQUENCE_ADD(&ie->value.choice.DRBs_FailedToBeModified_List.list,
|
||||
|
||||
@@ -1055,7 +1055,7 @@ void release_UE_in_freeList(module_id_t mod_id) {
|
||||
if (id>=0) clean_eNb_dlsch(eNB_PHY->dlsch[id][0]);
|
||||
|
||||
// clean UCI entries for rnti
|
||||
for (i=0; i<NUMBER_OF_UCI_VARS_MAX; i++) {
|
||||
for (i=0; i<NUMBER_OF_UCI_MAX; i++) {
|
||||
if(eNB_PHY->uci_vars[i].rnti == rnti) {
|
||||
LOG_I(MAC, "clean eNb uci_vars[%d] UE %x \n",i, rnti);
|
||||
memset(&eNB_PHY->uci_vars[i],0,sizeof(LTE_eNB_UCI));
|
||||
@@ -1089,7 +1089,7 @@ void release_UE_in_freeList(module_id_t mod_id) {
|
||||
clean_eNb_ulsch(ulsch);
|
||||
}
|
||||
|
||||
for (i=0; i<NUMBER_OF_UCI_VARS_MAX; i++) {
|
||||
for (i=0; i<NUMBER_OF_UCI_MAX; i++) {
|
||||
if(eNB_PHY->uci_vars[i].rnti == rnti) {
|
||||
LOG_I(MAC, "clean eNb uci_vars[%d] UE %x \n",i, rnti);
|
||||
memset(&eNB_PHY->uci_vars[i],0,sizeof(LTE_eNB_UCI));
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
#include "ProtocolDiscriminator.h"
|
||||
#include "SecurityHeaderType.h"
|
||||
#include "MessageType.h"
|
||||
#include "PagingIdentity.h"
|
||||
#include "NasPagingIdentity.h"
|
||||
#include "Cli.h"
|
||||
#include "SsCode.h"
|
||||
#include "LcsIndicator.h"
|
||||
|
||||
@@ -6,23 +6,41 @@
|
||||
# define NUMBER_OF_gNB_MAX 1
|
||||
# define NUMBER_OF_RU_MAX 2
|
||||
# define NUMBER_OF_NR_RU_MAX 2
|
||||
# define NUMBER_OF_UCI_MAX 16
|
||||
# define NUMBER_OF_ULSCH_MAX 16
|
||||
# define NUMBER_OF_DLSCH_MAX 16
|
||||
# define NUMBER_OF_SRS_MAX 16
|
||||
# define NUMBER_OF_NR_ULSCH_MAX 16
|
||||
# define NUMBER_OF_NR_DLSCH_MAX 16
|
||||
# define NUMBER_OF_NR_UCI_MAX 16
|
||||
# define nUMBER_OF_NR_SRS_MAX 16
|
||||
# define NUMBER_OF_DLSCH_MAX 16
|
||||
# define NUMBER_OF_ULSCH_MAX 16
|
||||
# define NUMBER_OF_SCH_STATS_MAX 16
|
||||
|
||||
# define NUMBER_OF_NR_SCH_STATS_MAX 16
|
||||
|
||||
# define NUMBER_OF_NR_PUCCH_MAX 16
|
||||
# define NUMBER_OF_NR_SR_MAX 16
|
||||
# define NUMBER_OF_NR_PDCCH_MAX 16
|
||||
|
||||
#define MAX_MANAGED_ENB_PER_MOBILE 2
|
||||
#define MAX_MANAGED_GNB_PER_MOBILE 2
|
||||
|
||||
# ifndef PHYSIM
|
||||
# ifndef UE_EXPANSION
|
||||
# define NUMBER_OF_UE_MAX 4
|
||||
# define NUMBER_OF_NR_UE_MAX 4
|
||||
# define NUMBER_OF_UCI_VARS_MAX 14
|
||||
# define NUMBER_OF_CONNECTED_eNB_MAX 1
|
||||
# define NUMBER_OF_CONNECTED_gNB_MAX 1
|
||||
# else
|
||||
# define NUMBER_OF_UE_MAX 256
|
||||
# define NUMBER_OF_UCI_VARS_MAX 256
|
||||
# define NUMBER_OF_CONNECTED_eNB_MAX 1
|
||||
# define NUMBER_OF_CONNECTED_gNB_MAX 1
|
||||
# endif
|
||||
# else
|
||||
# define NUMBER_OF_UE_MAX 4
|
||||
# define NUMBER_OF_NR_UE_MAX 4
|
||||
# define NUMBER_OF_UCI_VARS_MAX 56
|
||||
# define NUMBER_OF_CONNECTED_eNB_MAX 1
|
||||
# define NUMBER_OF_CONNECTED_gNB_MAX 1
|
||||
# endif
|
||||
|
||||
Reference in New Issue
Block a user