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
|
# 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)
|
set(F1AP_DIR ${OPENAIR2_DIR}/F1AP)
|
||||||
if (${F1AP_RELEASE} STREQUAL "R15")
|
if (${F1AP_RELEASE} STREQUAL "R16")
|
||||||
make_version(F1AP_VERSION 15 2 1)
|
make_version(F1AP_VERSION 16 3 1)
|
||||||
set (ASN1RELDIR R15.2.1)
|
set (ASN1RELDIR R16.3.1)
|
||||||
endif(${F1AP_RELEASE} STREQUAL "R15")
|
endif(${F1AP_RELEASE} STREQUAL "R16")
|
||||||
add_definitions(-DF1AP_VERSION=${F1AP_VERSION})
|
add_definitions(-DF1AP_VERSION=${F1AP_VERSION})
|
||||||
set(F1AP_ASN_DIR ${F1AP_DIR}/MESSAGES/ASN1/${ASN1RELDIR})
|
set(F1AP_ASN_DIR ${F1AP_DIR}/MESSAGES/ASN1/${ASN1RELDIR})
|
||||||
set(F1AP_ASN_FILES
|
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;
|
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
|
int
|
||||||
l1_north_init_eNB () {
|
l1_north_init_eNB () {
|
||||||
int i,j;
|
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]->harq_ids[0][sf]=0;
|
||||||
eNB->dlsch[0][0]->rnti=0x1234;
|
eNB->dlsch[0][0]->rnti=0x1234;
|
||||||
dlsch_harq->nb_rb=48;
|
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->Qm=2;
|
||||||
dlsch_harq->Nl=1;
|
dlsch_harq->Nl=1;
|
||||||
dlsch_harq->pdsch_start=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(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;
|
int16_t first_free_index=-1;
|
||||||
AssertFatal(eNB!=NULL,"eNB is null\n");
|
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) &&
|
if ((eNB->uci_vars[i].active >0) &&
|
||||||
(eNB->uci_vars[i].rnti==rnti) &&
|
(eNB->uci_vars[i].rnti==rnti) &&
|
||||||
(eNB->uci_vars[i].frame==frame) &&
|
(eNB->uci_vars[i].frame==frame) &&
|
||||||
|
|||||||
@@ -507,7 +507,7 @@ typedef struct PHY_VARS_eNB_s {
|
|||||||
LTE_eNB_MPDCCH mpdcch_vars[2];
|
LTE_eNB_MPDCCH mpdcch_vars[2];
|
||||||
LTE_eNB_PRACH prach_vars_br;
|
LTE_eNB_PRACH prach_vars_br;
|
||||||
LTE_eNB_COMMON common_vars;
|
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_SRS srs_vars[NUMBER_OF_UE_MAX];
|
||||||
LTE_eNB_PBCH pbch;
|
LTE_eNB_PBCH pbch;
|
||||||
LTE_eNB_PUSCH *pusch_vars[NUMBER_OF_UE_MAX];
|
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);
|
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);
|
LOG_E(PHY,"illegal UE_id found!!! rnti %04x UE_id %d\n",rel8->rnti,UE_id);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
//AssertFatal(UE_id!=-1,"no free or exiting dlsch_context\n");
|
//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];
|
dlsch0 = eNB->dlsch[UE_id][0];
|
||||||
dlsch1 = eNB->dlsch[UE_id][1];
|
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
|
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);
|
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!=-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 = eNB->dlsch[UE_id][0];
|
||||||
dlsch0->harq_mask = 1;
|
dlsch0->harq_mask = 1;
|
||||||
dlsch0_harq = dlsch0->harq_processes[0];
|
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 {
|
} else {
|
||||||
UE_id = find_dlsch(rel8->rnti,eNB,SEARCH_EXIST_OR_FREE);
|
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!=-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 = eNB->dlsch[UE_id][0];
|
||||||
dlsch1 = eNB->dlsch[UE_id][1];
|
dlsch1 = eNB->dlsch[UE_id][1];
|
||||||
dlsch0->sib1_br_flag=0;
|
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;
|
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;
|
if (eNB->soundingrs_ul_config_dedicated[i].active==1) continue;
|
||||||
|
|
||||||
eNB->soundingrs_ul_config_dedicated[i].active = 1;
|
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;
|
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,
|
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_dl_config_request_pdu_t *dl_config_pdu;
|
||||||
nfapi_hi_dci0_request_pdu_t *hi_dci0_req_pdu;
|
nfapi_hi_dci0_request_pdu_t *hi_dci0_req_pdu;
|
||||||
nfapi_ul_config_request_pdu_t *ul_config_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_pdcch_symbols = number_pdcch_ofdm_symbols;
|
||||||
eNB->pdcch_vars[subframe&1].num_dci = 0;
|
eNB->pdcch_vars[subframe&1].num_dci = 0;
|
||||||
eNB->phich_vars[subframe&1].num_hi = 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
|
// clear DCI allocation maps for new subframe
|
||||||
if (NFAPI_MODE!=NFAPI_MODE_VNF)
|
if (NFAPI_MODE!=NFAPI_MODE_VNF)
|
||||||
for (i=0; i<NUMBER_OF_UE_MAX; i++) {
|
for (volatile int i=0; i<NUMBER_OF_ULSCH_MAX; i++) {
|
||||||
if (eNB->ulsch[i]) {
|
if (eNB->ulsch[i]!=NULL) {
|
||||||
ulsch_harq = eNB->ulsch[i]->harq_processes[harq_pid];
|
ulsch_harq = eNB->ulsch[i]->harq_processes[harq_pid];
|
||||||
ulsch_harq->dci_alloc=0;
|
ulsch_harq->dci_alloc=0;
|
||||||
ulsch_harq->rar_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];
|
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);
|
//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)
|
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];
|
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);
|
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;
|
number_ul_pdu=0;
|
||||||
}
|
}
|
||||||
} else {
|
} 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];
|
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);
|
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 ||
|
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;
|
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;
|
uint32_t Nre,sumKr,MPR_x100,Kr,r;
|
||||||
uint16_t beta_offset_pusch;
|
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 );
|
DevAssert( harq_pid < 8 );
|
||||||
Nre = eNB->ulsch[UE_id]->harq_processes[harq_pid]->Nsymb_initial *
|
Nre = eNB->ulsch[ULSCH_id]->harq_processes[harq_pid]->Nsymb_initial *
|
||||||
eNB->ulsch[UE_id]->harq_processes[harq_pid]->nb_rb*12;
|
eNB->ulsch[ULSCH_id]->harq_processes[harq_pid]->nb_rb*12;
|
||||||
sumKr = 0;
|
sumKr = 0;
|
||||||
|
|
||||||
for (r=0; r<eNB->ulsch[UE_id]->harq_processes[harq_pid]->C; r++) {
|
for (r=0; r<eNB->ulsch[ULSCH_id]->harq_processes[harq_pid]->C; r++) {
|
||||||
if (r<eNB->ulsch[UE_id]->harq_processes[harq_pid]->Cminus)
|
if (r<eNB->ulsch[ULSCH_id]->harq_processes[harq_pid]->Cminus)
|
||||||
Kr = eNB->ulsch[UE_id]->harq_processes[harq_pid]->Kminus;
|
Kr = eNB->ulsch[ULSCH_id]->harq_processes[harq_pid]->Kminus;
|
||||||
else
|
else
|
||||||
Kr = eNB->ulsch[UE_id]->harq_processes[harq_pid]->Kplus;
|
Kr = eNB->ulsch[ULSCH_id]->harq_processes[harq_pid]->Kplus;
|
||||||
|
|
||||||
sumKr += Kr;
|
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
|
// FK 20140908 sumKr is only set after the ulsch_encoding
|
||||||
beta_offset_pusch = 8;
|
beta_offset_pusch = 8;
|
||||||
//(eNB->ulsch[UE_id]->harq_processes[harq_pid]->control_only == 1) ? eNB->ulsch[UE_id]->beta_offset_cqi_times8: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
|
//#warning "This condition happens sometimes. Need more investigation" // navid
|
||||||
//DevAssert( MPR_x100/6 < 100 );
|
//DevAssert( MPR_x100/6 < 100 );
|
||||||
|
|
||||||
if (1==1) { //eNB->ul_power_control_dedicated[UE_id].deltaMCS_Enabled == 1) {
|
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)
|
// 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) {
|
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];
|
return(hundred_times_delta_TF[MPR_x100/6]+10*dB_fixed_times10((beta_offset_pusch)>>3)) + hundred_times_log10_NPRB[nb_rb-1];
|
||||||
} else
|
} else
|
||||||
return(hundred_times_delta_TF[MPR_x100/6]+10*dB_fixed_times10((beta_offset_pusch)>>3));
|
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) {
|
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])) {
|
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);
|
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;
|
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
|
// not found
|
||||||
return 0;
|
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);
|
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 do_meas) {
|
||||||
int frame=proc->frame_tx;
|
int frame=proc->frame_tx;
|
||||||
int subframe=proc->subframe_tx;
|
int subframe=proc->subframe_tx;
|
||||||
uint32_t i,aa;
|
|
||||||
uint8_t harq_pid;
|
uint8_t harq_pid;
|
||||||
int16_t UE_id=0;
|
|
||||||
uint8_t num_pdcch_symbols=0;
|
uint8_t num_pdcch_symbols=0;
|
||||||
uint8_t num_dci=0;
|
uint8_t num_dci=0;
|
||||||
uint8_t num_mdci = 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);
|
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->phy_proc_tx);
|
||||||
|
|
||||||
if (do_meas==1) start_meas(&eNB->dlsch_common_and_dci);
|
if (do_meas==1) start_meas(&eNB->dlsch_common_and_dci);
|
||||||
|
|
||||||
// clear the transmit data array for the current subframe
|
// 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)
|
if (eNB->use_DTX==0)
|
||||||
memcpy(&eNB->common_vars.txdataF[aa][subframe * fp->ofdm_symbol_size * (fp->symbols_per_tti)],
|
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],
|
&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);
|
ul_frame = pdcch_alloc2ul_frame (fp, frame, subframe);
|
||||||
|
|
||||||
// clear previous allocation information for all UEs
|
// 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])
|
if (eNB->dlsch[i][0])
|
||||||
eNB->dlsch[i][0]->subframe_tx[subframe] = 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)&&
|
//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
|
// (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
|
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;
|
if (eNB->ulsch[i] && eNB->ulsch[i]->ue_type >0) harq_pid = 0;
|
||||||
|
|
||||||
else
|
else
|
||||||
@@ -658,9 +655,9 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB,
|
|||||||
// Now scan UE specific DLSCH
|
// Now scan UE specific DLSCH
|
||||||
LTE_eNB_DLSCH_t *dlsch0,*dlsch1;
|
LTE_eNB_DLSCH_t *dlsch0,*dlsch1;
|
||||||
|
|
||||||
for (UE_id=0; UE_id<NUMBER_OF_UE_MAX; UE_id++) {
|
for (int DLSCH_id=0; DLSCH_id<NUMBER_OF_DLSCH_MAX; DLSCH_id++) {
|
||||||
dlsch0 = eNB->dlsch[(uint8_t)UE_id][0];
|
dlsch0 = eNB->dlsch[(uint8_t)DLSCH_id][0];
|
||||||
dlsch1 = eNB->dlsch[(uint8_t)UE_id][1];
|
dlsch1 = eNB->dlsch[(uint8_t)DLSCH_id][1];
|
||||||
|
|
||||||
if ((dlsch0)&&(dlsch0->rnti>0)&&
|
if ((dlsch0)&&(dlsch0->rnti>0)&&
|
||||||
#ifdef PHY_TX_THREAD
|
#ifdef PHY_TX_THREAD
|
||||||
@@ -670,12 +667,13 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB,
|
|||||||
#endif
|
#endif
|
||||||
) {
|
) {
|
||||||
// get harq_pid
|
// 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");
|
//AssertFatal(harq_pid>=0,"harq_pid is negative\n");
|
||||||
|
|
||||||
if((harq_pid < 0) || (harq_pid >= dlsch0->Mdlharq)) {
|
if((harq_pid < 0) || (harq_pid >= dlsch0->Mdlharq)) {
|
||||||
|
|
||||||
if (dlsch0->ue_type==0)
|
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][0],
|
||||||
dlsch0->harq_ids[frame%2][1],
|
dlsch0->harq_ids[frame%2][1],
|
||||||
dlsch0->harq_ids[frame%2][2],
|
dlsch0->harq_ids[frame%2][2],
|
||||||
@@ -689,7 +687,7 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB,
|
|||||||
proc,
|
proc,
|
||||||
harq_pid,
|
harq_pid,
|
||||||
dlsch0,
|
dlsch0,
|
||||||
&eNB->UE_stats[(uint32_t)UE_id])) {
|
&eNB->UE_stats[(uint32_t)DLSCH_id])) {
|
||||||
// if we generate dlsch, we must generate pdsch
|
// if we generate dlsch, we must generate pdsch
|
||||||
pdsch_procedures(eNB,
|
pdsch_procedures(eNB,
|
||||||
proc,
|
proc,
|
||||||
@@ -724,6 +722,7 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB,
|
|||||||
if (do_meas==1) stop_meas(&eNB->phy_proc_tx);
|
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) {
|
void srs_procedures(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc) {
|
||||||
LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms;
|
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
|
// Do SRS processing
|
||||||
// check if there is SRS and we have to use shortened format
|
// check if there is SRS and we have to use shortened format
|
||||||
// TODO: check for exceptions in transmission of SRS together with ACK/NACK
|
// 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 (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 */ )) {
|
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");
|
LOG_E (PHY, "problem processing SRS\n");
|
||||||
@@ -798,7 +797,7 @@ uci_procedures(PHY_VARS_eNB *eNB,
|
|||||||
LTE_eNB_UCI *uci = NULL;
|
LTE_eNB_UCI *uci = NULL;
|
||||||
LTE_DL_FRAME_PARMS *fp = &(eNB->frame_parms);
|
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]);
|
uci = &(eNB->uci_vars[i]);
|
||||||
|
|
||||||
if ((uci->active == 1) && (uci->frame == frame) && (uci->subframe == subframe)) {
|
if ((uci->active == 1) && (uci->frame == frame) && (uci->subframe == subframe)) {
|
||||||
@@ -1280,7 +1279,7 @@ uci_procedures(PHY_VARS_eNB *eNB,
|
|||||||
|
|
||||||
#ifdef DEBUG_PHY_PROC
|
#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,
|
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
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1303,7 +1302,7 @@ uci_procedures(PHY_VARS_eNB *eNB,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} // end if ((uci->active == 1) && (uci->frame == frame) && (uci->subframe == subframe)) {
|
} // 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) {
|
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;
|
const int frame = proc->frame_rx;
|
||||||
uint32_t harq_pid0 = subframe2harq_pid(&eNB->frame_parms,frame,subframe);
|
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];
|
ulsch = eNB->ulsch[i];
|
||||||
|
|
||||||
if (ulsch->ue_type > 0) harq_pid = 0;
|
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);
|
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);
|
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) {
|
while (proc->nbDecode > 0) {
|
||||||
notifiedFIFO_elt_t *req=pullTpool(proc->respDecode, proc->threadPool);
|
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'
|
* Release the harq process if its round is >= 'after_rounds'
|
||||||
*/
|
*/
|
||||||
static void do_release_harq(PHY_VARS_eNB *eNB,
|
static void do_release_harq(PHY_VARS_eNB *eNB,
|
||||||
int UE_id,
|
int DLSCH_id,
|
||||||
int tb,
|
int tb,
|
||||||
uint16_t frame,
|
uint16_t frame,
|
||||||
uint8_t subframe,
|
uint8_t subframe,
|
||||||
@@ -1679,10 +1678,10 @@ static void do_release_harq(PHY_VARS_eNB *eNB,
|
|||||||
int harq_pid;
|
int harq_pid;
|
||||||
int subframe_tx;
|
int subframe_tx;
|
||||||
int frame_tx;
|
int frame_tx;
|
||||||
AssertFatal(UE_id != -1, "No existing dlsch context\n");
|
AssertFatal(DLSCH_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);
|
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[UE_id][0];
|
dlsch0 = eNB->dlsch[DLSCH_id][0];
|
||||||
dlsch1 = eNB->dlsch[UE_id][1];
|
dlsch1 = eNB->dlsch[DLSCH_id][1];
|
||||||
|
|
||||||
if (eNB->frame_parms.frame_type == FDD) {
|
if (eNB->frame_parms.frame_type == FDD) {
|
||||||
subframe_tx = (subframe + 6) % 10;
|
subframe_tx = (subframe + 6) % 10;
|
||||||
@@ -1781,13 +1780,13 @@ static void do_release_harq(PHY_VARS_eNB *eNB,
|
|||||||
} // end if TDD
|
} // 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.
|
* Maximum number of DL transmissions = 4.
|
||||||
* TODO: get the value from configuration.
|
* TODO: get the value from configuration.
|
||||||
* If is_ack is true then we release immediately. The value -1 can be used for that.
|
* 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) {
|
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) {
|
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) ) {
|
if( (DLSCH_id<0) || (DLSCH_id>=NUMBER_OF_DLSCH_MAX) ) {
|
||||||
LOG_E(PHY,"illegal UE_id found!!! rnti %04x UE_id %d\n",rnti,UE_id);
|
LOG_E(PHY,"illegal DLSCH_id found!!! rnti %04x DLSCH_id %d\n",rnti,DLSCH_id);
|
||||||
return;
|
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);
|
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];
|
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;
|
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]);
|
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];
|
pdu->harq_indication_fdd_rel13.harq_tb_n[i] = 2 - ulsch_harq->o_ACK[i];
|
||||||
// release DLSCH if needed
|
// 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
|
} else { // TDD
|
||||||
M = ul_ACK_subframe2_M (&eNB->frame_parms, subframe);
|
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.
|
* 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.
|
* 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);
|
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,UE_id,i,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) {
|
else if (M>1 && ulsch_harq->o_ACK[i] == 1) {
|
||||||
// spatial bundling
|
// spatial bundling
|
||||||
release_harq(eNB,UE_id,0,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,UE_id,1,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;
|
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);
|
//AssertFatal(DLSCH_id>=0,"DLSCH_id doesn't exist rnti:%x\n", uci->rnti);
|
||||||
if (UE_id < 0) {
|
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);
|
LOG_E(PHY,"SFN/SF:%04d%d Unable to find rnti:%x do not send HARQ\n", frame, subframe, uci->rnti);
|
||||||
return;
|
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]);
|
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];
|
pdu->harq_indication_fdd_rel13.harq_tb_n[0] = harq_ack[0];
|
||||||
// release DLSCH if needed
|
// 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) {
|
} 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.tl.tag = NFAPI_HARQ_INDICATION_FDD_REL13_TAG;
|
||||||
pdu->harq_indication_fdd_rel13.mode = 0;
|
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[0] = harq_ack[0];
|
||||||
pdu->harq_indication_fdd_rel13.harq_tb_n[1] = harq_ack[1];
|
pdu->harq_indication_fdd_rel13.harq_tb_n[1] = harq_ack[1];
|
||||||
// release DLSCH if needed
|
// 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);
|
||||||
release_harq(eNB,UE_id,1,frame,subframe,0xffff, harq_ack[1] == 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 AssertFatal(1==0,"only format 1a/b for now, received %d\n",uci->pucch_fmt);
|
||||||
} else { // TDD
|
} else { // TDD
|
||||||
AssertFatal (tdd_mapping_mode == 0 || tdd_mapping_mode == 1 || tdd_mapping_mode == 2, "Illegal tdd_mapping_mode %d\n", tdd_mapping_mode);
|
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]);
|
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];
|
pdu->harq_indication_tdd_rel13.harq_data[0].bundling.value_0 = harq_ack[0];
|
||||||
// release all bundled DLSCH if needed
|
// 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) {
|
} else if (uci->pucch_fmt == pucch_format1b) {
|
||||||
pdu->harq_indication_tdd_rel13.number_of_ack_nack = 2;
|
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]);
|
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[0].bundling.value_0 = harq_ack[0];
|
||||||
pdu->harq_indication_tdd_rel13.harq_data[1].bundling.value_0 = harq_ack[1];
|
pdu->harq_indication_tdd_rel13.harq_data[1].bundling.value_0 = harq_ack[1];
|
||||||
// release all DLSCH if needed
|
// 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);
|
||||||
release_harq(eNB,UE_id,1,frame,subframe,0xffff, harq_ack[1] == 1);
|
release_harq(eNB,DLSCH_id,1,frame,subframe,0xffff, harq_ack[1] == 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
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]);
|
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];
|
pdu->harq_indication_tdd_rel13.harq_data[0].multiplex.value_0 = harq_ack[0];
|
||||||
// release all DLSCH if needed
|
// 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) {
|
} 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.tl.tag = NFAPI_HARQ_INDICATION_TDD_REL13_TAG;
|
||||||
pdu->harq_indication_tdd_rel13.number_of_ack_nack = 2;
|
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[0].multiplex.value_0 = harq_ack[0];
|
||||||
pdu->harq_indication_tdd_rel13.harq_data[1].multiplex.value_0 = harq_ack[1];
|
pdu->harq_indication_tdd_rel13.harq_data[1].multiplex.value_0 = harq_ack[1];
|
||||||
// release all DLSCH if needed
|
// 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);
|
||||||
release_harq(eNB,UE_id,1,frame,subframe,0xffff, harq_ack[1] == 1);
|
release_harq(eNB,DLSCH_id,1,frame,subframe,0xffff, harq_ack[1] == 1);
|
||||||
} else { // num_pucch_resources (M) > 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.tl.tag = NFAPI_HARQ_INDICATION_TDD_REL13_TAG;
|
||||||
pdu->harq_indication_tdd_rel13.number_of_ack_nack = uci->num_pucch_resources;
|
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];
|
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
|
// 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,DLSCH_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,1,frame,subframe,tdd_multiplexing_mask, 1 /* force release? previous code was unconditional */);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
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 ||
|
if (uci->num_pucch_resources == 1 || uci->num_pucch_resources == 4 ||
|
||||||
tdd_config5_sf2scheds == 1 || tdd_config5_sf2scheds == 4 || tdd_config5_sf2scheds == 7) {
|
tdd_config5_sf2scheds == 1 || tdd_config5_sf2scheds == 4 || tdd_config5_sf2scheds == 7) {
|
||||||
pdu->harq_indication_tdd_rel13.harq_data[0].bundling.value_0 = 1;
|
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,DLSCH_id,0,frame,subframe,0xffff, 1);
|
||||||
release_harq(eNB,UE_id,1,frame,subframe,0xffff, 1);
|
release_harq(eNB,DLSCH_id,1,frame,subframe,0xffff, 1);
|
||||||
} else {
|
} else {
|
||||||
pdu->harq_indication_tdd_rel13.harq_data[0].bundling.value_0 = 0;
|
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 ||
|
if (uci->num_pucch_resources == 2 || tdd_config5_sf2scheds == 2 ||
|
||||||
tdd_config5_sf2scheds == 5 || tdd_config5_sf2scheds == 8) {
|
tdd_config5_sf2scheds == 5 || tdd_config5_sf2scheds == 8) {
|
||||||
pdu->harq_indication_tdd_rel13.harq_data[0].bundling.value_0 = 1;
|
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,DLSCH_id,0,frame,subframe,0xffff, 1);
|
||||||
release_harq(eNB,UE_id,1,frame,subframe,0xffff, 1);
|
release_harq(eNB,DLSCH_id,1,frame,subframe,0xffff, 1);
|
||||||
} else {
|
} else {
|
||||||
pdu->harq_indication_tdd_rel13.harq_data[0].bundling.value_0 = 0;
|
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 ||
|
if (uci->num_pucch_resources == 3 || tdd_config5_sf2scheds == 3 ||
|
||||||
tdd_config5_sf2scheds == 6 || tdd_config5_sf2scheds == 9) {
|
tdd_config5_sf2scheds == 6 || tdd_config5_sf2scheds == 9) {
|
||||||
pdu->harq_indication_tdd_rel13.harq_data[0].bundling.value_0 = 1;
|
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,DLSCH_id,0,frame,subframe,0xffff, 1);
|
||||||
release_harq(eNB,UE_id,1,frame,subframe,0xffff, 1);
|
release_harq(eNB,DLSCH_id,1,frame,subframe,0xffff, 1);
|
||||||
} else {
|
} else {
|
||||||
pdu->harq_indication_tdd_rel13.harq_data[0].bundling.value_0 = 0;
|
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);
|
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);
|
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];
|
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;
|
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->instance_length = 0; // don't know what to do with this
|
||||||
// pdu->rx_ue_information.handle = handle;
|
// pdu->rx_ue_information.handle = handle;
|
||||||
pdu->rx_ue_information.tl.tag = NFAPI_RX_UE_INFORMATION_TAG;
|
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.tl.tag = NFAPI_CRC_INDICATION_REL8_TAG;
|
||||||
pdu->crc_indication_rel8.crc_flag = crc_flag;
|
pdu->crc_indication_rel8.crc_flag = crc_flag;
|
||||||
eNB->UL_INFO.crc_ind.crc_indication_body.number_of_crcs++;
|
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
|
// 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) {
|
if ((frame&127) == 0 && subframe==3) {
|
||||||
dump_ulsch_stats(eNB);
|
dump_ulsch_stats(eNB,frame);
|
||||||
dump_uci_stats(eNB);
|
dump_uci_stats(eNB,frame);
|
||||||
}
|
}
|
||||||
|
|
||||||
// clear unused statistics after 2 seconds
|
// 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];
|
eNB_PHY = RC.eNB[mod_id][CC_id];
|
||||||
rnti = release_rntis.ue_release_request_TLVs_list[i].rnti;
|
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];
|
ulsch = eNB_PHY->ulsch[j];
|
||||||
|
|
||||||
if((ulsch != NULL) && (ulsch->rnti == rnti)) {
|
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;}
|
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) {
|
if(eNB_PHY->uci_vars[j].rnti == rnti) {
|
||||||
LOG_I(PHY, "clean eNb uci_vars[%d] UE %x \n",j, 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));
|
memset(&eNB_PHY->uci_vars[i],0,sizeof(LTE_eNB_UCI));
|
||||||
|
|||||||
@@ -86,18 +86,6 @@
|
|||||||
#define MAX_gNB 2
|
#define MAX_gNB 2
|
||||||
#endif
|
#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_ENB_PER_MOBILE 2
|
||||||
#define MAX_MANAGED_GNB_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, ...);
|
inline void ASN_DEBUG(const char *fmt, ...);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "F1AP_Active-Cells-List.h"
|
|
||||||
#include "F1AP_RAT-FrequencyPriorityInformation.h"
|
#include "F1AP_RAT-FrequencyPriorityInformation.h"
|
||||||
#include "F1AP_DLUPTNLInformation-ToBeSetup-Item.h"
|
#include "F1AP_DLUPTNLInformation-ToBeSetup-Item.h"
|
||||||
#include "F1AP_PrivateMessage.h"
|
#include "F1AP_PrivateMessage.h"
|
||||||
@@ -55,6 +54,7 @@ inline void ASN_DEBUG(const char *fmt, ...);
|
|||||||
#include "F1AP_NRPCI.h"
|
#include "F1AP_NRPCI.h"
|
||||||
#include "F1AP_Transmission-Bandwidth.h"
|
#include "F1AP_Transmission-Bandwidth.h"
|
||||||
#include "F1AP_SIB1-message.h"
|
#include "F1AP_SIB1-message.h"
|
||||||
|
#include "F1AP_SibtypetobeupdatedListItem.h"
|
||||||
#include "F1AP_GNBCUConfigurationUpdateAcknowledge.h"
|
#include "F1AP_GNBCUConfigurationUpdateAcknowledge.h"
|
||||||
#include "F1AP_DRBs-Setup-Item.h"
|
#include "F1AP_DRBs-Setup-Item.h"
|
||||||
#include "F1AP_EUTRA-NR-CellResourceCoordinationReqAck-Container.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_DRBs-Required-ToBeModified-Item.h"
|
||||||
#include "F1AP_BitRate.h"
|
#include "F1AP_BitRate.h"
|
||||||
#include "F1AP_SRBs-ToBeSetup-List.h"
|
#include "F1AP_SRBs-ToBeSetup-List.h"
|
||||||
#include "F1AP_ConcurrentWarningMessageIndicator.h"
|
|
||||||
#include "F1AP_CriticalityDiagnostics-IE-Item.h"
|
#include "F1AP_CriticalityDiagnostics-IE-Item.h"
|
||||||
#include "F1AP_GNB-CU-TNL-Association-To-Update-List.h"
|
#include "F1AP_GNB-CU-TNL-Association-To-Update-List.h"
|
||||||
#include "F1AP_DRB-Notify-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_PWS-Failed-NR-CGI-List.h"
|
||||||
#include "F1AP_InitialULRRCMessageTransfer.h"
|
#include "F1AP_InitialULRRCMessageTransfer.h"
|
||||||
#include "F1AP_Served-Cell-Information.h"
|
#include "F1AP_Served-Cell-Information.h"
|
||||||
|
#include "F1AP_ServedPLMNs-Item.h"
|
||||||
#include "F1AP_Served-EUTRA-Cells-Information.h"
|
#include "F1AP_Served-EUTRA-Cells-Information.h"
|
||||||
#include "F1AP_Cells-Broadcast-Cancelled-Item.h"
|
#include "F1AP_Cells-Broadcast-Cancelled-Item.h"
|
||||||
#include "F1AP_F1SetupRequest.h"
|
#include "F1AP_F1SetupRequest.h"
|
||||||
@@ -128,13 +128,11 @@ inline void ASN_DEBUG(const char *fmt, ...);
|
|||||||
#include "F1AP_TransactionID.h"
|
#include "F1AP_TransactionID.h"
|
||||||
#include "F1AP_AllocationAndRetentionPriority.h"
|
#include "F1AP_AllocationAndRetentionPriority.h"
|
||||||
#include "F1AP_ShortDRXCycleLength.h"
|
#include "F1AP_ShortDRXCycleLength.h"
|
||||||
#include "F1AP_BroadcastPLMNs-Item.h"
|
|
||||||
#include "F1AP_DRB-Information.h"
|
#include "F1AP_DRB-Information.h"
|
||||||
#include "F1AP_TimeToWait.h"
|
#include "F1AP_TimeToWait.h"
|
||||||
#include "F1AP_NonDynamic5QIDescriptor.h"
|
#include "F1AP_NonDynamic5QIDescriptor.h"
|
||||||
#include "F1AP_C-RNTI.h"
|
#include "F1AP_C-RNTI.h"
|
||||||
#include "F1AP_MIB-message.h"
|
#include "F1AP_MIB-message.h"
|
||||||
#include "F1AP_SIBtype-Item.h"
|
|
||||||
#include "F1AP_Served-Cells-To-Modify-List.h"
|
#include "F1AP_Served-Cells-To-Modify-List.h"
|
||||||
#include "F1AP_NRCGI.h"
|
#include "F1AP_NRCGI.h"
|
||||||
#include "F1AP_DuplicationActivation.h"
|
#include "F1AP_DuplicationActivation.h"
|
||||||
@@ -187,6 +185,7 @@ inline void ASN_DEBUG(const char *fmt, ...);
|
|||||||
#include "F1AP_CellULConfigured.h"
|
#include "F1AP_CellULConfigured.h"
|
||||||
#include "F1AP_DRB-Activity.h"
|
#include "F1AP_DRB-Activity.h"
|
||||||
#include "F1AP_GNB-CU-TNL-Association-Failed-To-Setup-Item.h"
|
#include "F1AP_GNB-CU-TNL-Association-Failed-To-Setup-Item.h"
|
||||||
|
#include "F1AP_ProtocolIE-ID.h"
|
||||||
#include "F1AP_PrivateIE-ID.h"
|
#include "F1AP_PrivateIE-ID.h"
|
||||||
#include "F1AP_WriteReplaceWarningResponse.h"
|
#include "F1AP_WriteReplaceWarningResponse.h"
|
||||||
#include "F1AP_CauseMisc.h"
|
#include "F1AP_CauseMisc.h"
|
||||||
@@ -231,9 +230,7 @@ inline void ASN_DEBUG(const char *fmt, ...);
|
|||||||
#include "F1AP_SUL-Information.h"
|
#include "F1AP_SUL-Information.h"
|
||||||
#include "F1AP_CriticalityDiagnostics-IE-List.h"
|
#include "F1AP_CriticalityDiagnostics-IE-List.h"
|
||||||
#include "F1AP_EUTRA-FDD-Info.h"
|
#include "F1AP_EUTRA-FDD-Info.h"
|
||||||
#include "F1AP_BroadcastPLMNs-List.h"
|
|
||||||
#include "F1AP_Served-Cells-To-Delete-Item.h"
|
#include "F1AP_Served-Cells-To-Delete-Item.h"
|
||||||
#include "F1AP_ListofEUTRACellsinGNBDUCoordination.h"
|
|
||||||
#include "F1AP_Candidate-SpCell-Item.h"
|
#include "F1AP_Candidate-SpCell-Item.h"
|
||||||
#include "F1AP_Cells-To-Be-Broadcast-List.h"
|
#include "F1AP_Cells-To-Be-Broadcast-List.h"
|
||||||
#include "F1AP_ULRRCMessageTransfer.h"
|
#include "F1AP_ULRRCMessageTransfer.h"
|
||||||
@@ -255,7 +252,6 @@ inline void ASN_DEBUG(const char *fmt, ...);
|
|||||||
#include "F1AP_SRBs-ToBeReleased-List.h"
|
#include "F1AP_SRBs-ToBeReleased-List.h"
|
||||||
#include "F1AP_MeasGapConfig.h"
|
#include "F1AP_MeasGapConfig.h"
|
||||||
#include "F1AP_NR-Mode-Info.h"
|
#include "F1AP_NR-Mode-Info.h"
|
||||||
#include "F1AP_Active-Cells-Item.h"
|
|
||||||
#include "F1AP_Protected-EUTRA-Resources-List.h"
|
#include "F1AP_Protected-EUTRA-Resources-List.h"
|
||||||
#include "F1AP_SRBs-FailedToBeSetup-Item.h"
|
#include "F1AP_SRBs-FailedToBeSetup-Item.h"
|
||||||
#include "F1AP_ResetAll.h"
|
#include "F1AP_ResetAll.h"
|
||||||
@@ -287,7 +283,6 @@ inline void ASN_DEBUG(const char *fmt, ...);
|
|||||||
#include "F1AP_UEContextReleaseRequest.h"
|
#include "F1AP_UEContextReleaseRequest.h"
|
||||||
#include "F1AP_GNB-DU-Name.h"
|
#include "F1AP_GNB-DU-Name.h"
|
||||||
#include "F1AP_DRBs-ToBeModified-Item.h"
|
#include "F1AP_DRBs-ToBeModified-Item.h"
|
||||||
#include "F1AP_SIBtype-List.h"
|
|
||||||
#include "F1AP_EUTRA-NR-CellResourceCoordinationReq-Container.h"
|
#include "F1AP_EUTRA-NR-CellResourceCoordinationReq-Container.h"
|
||||||
#include "F1AP_DRBs-SetupMod-List.h"
|
#include "F1AP_DRBs-SetupMod-List.h"
|
||||||
#include "F1AP_DRBs-Required-ToBeModified-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_PacketDelayBudget.h"
|
||||||
#include "F1AP_GNBCUConfigurationUpdate.h"
|
#include "F1AP_GNBCUConfigurationUpdate.h"
|
||||||
#include "F1AP_Cells-Broadcast-Completed-Item.h"
|
#include "F1AP_Cells-Broadcast-Completed-Item.h"
|
||||||
#include "F1AP_RRCRconfigurationCompleteIndicator.h"
|
|
||||||
#include "F1AP_PagingPriority.h"
|
#include "F1AP_PagingPriority.h"
|
||||||
#include "F1AP_Cells-Failed-to-be-Activated-List.h"
|
#include "F1AP_Cells-Failed-to-be-Activated-List.h"
|
||||||
#include "F1AP_Endpoint-IP-address-and-port.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_ResetType.h"
|
||||||
#include "F1AP_FDD-Info.h"
|
#include "F1AP_FDD-Info.h"
|
||||||
#include "F1AP_DLUPTNLInformation-ToBeSetup-List.h"
|
#include "F1AP_DLUPTNLInformation-ToBeSetup-List.h"
|
||||||
#include "F1AP_QoSFlowIndicator.h"
|
|
||||||
#include "F1AP_NR-CGI-List-For-Restart-List.h"
|
#include "F1AP_NR-CGI-List-For-Restart-List.h"
|
||||||
#include "F1AP_F1SetupResponse.h"
|
#include "F1AP_F1SetupResponse.h"
|
||||||
#include "F1AP_UEContextSetupResponse.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_Cells-to-be-Barred-List.h"
|
||||||
#include "F1AP_Presence.h"
|
#include "F1AP_Presence.h"
|
||||||
#include "F1AP_CellBarred.h"
|
#include "F1AP_CellBarred.h"
|
||||||
#include "F1AP_SIBtype.h"
|
|
||||||
#include "F1AP_RequestType.h"
|
#include "F1AP_RequestType.h"
|
||||||
#include "F1AP_NRFreqInfo.h"
|
#include "F1AP_NRFreqInfo.h"
|
||||||
#include "F1AP_Potential-SpCell-Item.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_GBR-QoSFlowInformation.h"
|
||||||
#include "F1AP_SCellIndex.h"
|
#include "F1AP_SCellIndex.h"
|
||||||
#include "F1AP_DRBs-SetupMod-Item.h"
|
#include "F1AP_DRBs-SetupMod-Item.h"
|
||||||
#include "F1AP_TransmissionStopIndicator.h"
|
|
||||||
#include "F1AP_UEContextSetupFailure.h"
|
#include "F1AP_UEContextSetupFailure.h"
|
||||||
#include "F1AP_DRBs-FailedToBeModified-List.h"
|
#include "F1AP_DRBs-FailedToBeModified-List.h"
|
||||||
#include "F1AP_DRBs-FailedToBeSetupMod-Item.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);
|
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 */
|
/* tac */
|
||||||
OCTET_STRING_TO_INT16(&(served_celles_item_p->served_Cell_Information.fiveGS_TAC), F1AP_SETUP_REQ(message_p).tac[i]);
|
if (served_celles_item_p->served_Cell_Information.fiveGS_TAC) {
|
||||||
LOG_D(F1AP, "F1AP_SETUP_REQ(message_p).tac[%d] %d \n",
|
OCTET_STRING_TO_INT16(served_celles_item_p->served_Cell_Information.fiveGS_TAC, F1AP_SETUP_REQ(message_p).tac[i]);
|
||||||
i, 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 */
|
/* - nRCGI */
|
||||||
TBCD_TO_MCC_MNC(&(served_celles_item_p->served_Cell_Information.nRCGI.pLMN_Identity), F1AP_SETUP_REQ(message_p).mcc[i],
|
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],
|
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++)
|
//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("%02x ", f1ap_setup_resp->SI_container[i][0][n]);
|
||||||
//printf("\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;
|
cells_to_be_activated_list_itemExtIEs->extensionValue.choice.GNB_CUSystemInformation = *gNB_CUSystemInformation;
|
||||||
|
|
||||||
|
|
||||||
F1AP_ProtocolExtensionContainer_160P9_t p_160P9_t;
|
F1AP_ProtocolExtensionContainer_154P112_t p_154P112_t;
|
||||||
memset((void *)&p_160P9_t, 0, sizeof(F1AP_ProtocolExtensionContainer_160P9_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_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);
|
free(gNB_CUSystemInformation);
|
||||||
gNB_CUSystemInformation = NULL;
|
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 = (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->id = F1AP_ProtocolIE_ID_id_Protected_EUTRA_Resources_List;
|
||||||
protected_eutra_resources_item_ies->criticality = F1AP_Criticality_reject;
|
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.present = F1AP_Protected_EUTRA_Resources_ItemIEs__value_PR_Protected_EUTRA_Resources_Item;
|
||||||
protected_eutra_resources_item_ies->value.choice.SpectrumSharingGroupID = 1L;
|
((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);
|
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;
|
F1AP_Served_EUTRA_Cells_Information_t served_eutra_cells_information;
|
||||||
memset((void *)&served_eutra_cells_information, 0, sizeof(F1AP_Served_EUTRA_Cells_Information_t));
|
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(&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(&ie->value.choice.Protected_EUTRA_Resources_List.list, protected_eutra_resources_item_ies);
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
||||||
|
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ int CU_handle_INITIAL_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
|
|||||||
/* RNTI */
|
/* RNTI */
|
||||||
F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_InitialULRRCMessageTransferIEs_t, ie, container,
|
F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_InitialULRRCMessageTransferIEs_t, ie, container,
|
||||||
F1AP_ProtocolIE_ID_id_C_RNTI, true);
|
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 */
|
/* RRC Container */
|
||||||
F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_InitialULRRCMessageTransferIEs_t, ie, 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 */
|
/* optional */
|
||||||
/* c7. RAT_FrequencyPriorityInformation */
|
/* c7. RAT_FrequencyPriorityInformation */
|
||||||
/* TODO */
|
/* TODO */
|
||||||
if (0) {
|
int endc=1;
|
||||||
ie = (F1AP_DLRRCMessageTransferIEs_t *)calloc(1, sizeof(F1AP_DLRRCMessageTransferIEs_t));
|
ie = (F1AP_DLRRCMessageTransferIEs_t *)calloc(1, sizeof(F1AP_DLRRCMessageTransferIEs_t));
|
||||||
ie->id = F1AP_ProtocolIE_ID_id_RAT_FrequencyPriorityInformation;
|
ie->id = F1AP_ProtocolIE_ID_id_RAT_FrequencyPriorityInformation;
|
||||||
ie->criticality = F1AP_Criticality_reject;
|
ie->criticality = F1AP_Criticality_reject;
|
||||||
ie->value.present = F1AP_DLRRCMessageTransferIEs__value_PR_RAT_FrequencyPriorityInformation;
|
ie->value.present = F1AP_DLRRCMessageTransferIEs__value_PR_RAT_FrequencyPriorityInformation;
|
||||||
|
if (endc==1) {
|
||||||
ie->value.choice.RAT_FrequencyPriorityInformation.present = F1AP_RAT_FrequencyPriorityInformation_PR_subscriberProfileIDforRFP;
|
ie->value.choice.RAT_FrequencyPriorityInformation.present = F1AP_RAT_FrequencyPriorityInformation_PR_eNDC;
|
||||||
ie->value.choice.RAT_FrequencyPriorityInformation.choice.subscriberProfileIDforRFP = 123L;
|
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.present = F1AP_RAT_FrequencyPriorityInformation_PR_rAT_FrequencySelectionPriority;
|
||||||
//ie->value.choice.RAT_FrequencyPriorityInformation.choice.rAT_FrequencySelectionPriority = 123L;
|
//ie->value.choice.RAT_FrequencyPriorityInformation.choice.rAT_FrequencySelectionPriority = 123L;
|
||||||
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
||||||
}
|
|
||||||
|
|
||||||
/* encode */
|
/* encode */
|
||||||
if (f1ap_encode_pdu(&pdu, &buffer, &len) < 0) {
|
if (f1ap_encode_pdu(&pdu, &buffer, &len) < 0) {
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
|
|||||||
/* mandatory */
|
/* mandatory */
|
||||||
/* c4. ServCellIndex */
|
/* c4. ServCellIndex */
|
||||||
ie = (F1AP_UEContextSetupRequestIEs_t *)calloc(1, sizeof(F1AP_UEContextSetupRequestIEs_t));
|
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->criticality = F1AP_Criticality_reject;
|
||||||
ie->value.present = F1AP_UEContextSetupRequestIEs__value_PR_ServCellIndex;
|
ie->value.present = F1AP_UEContextSetupRequestIEs__value_PR_ServCellIndex;
|
||||||
ie->value.choice.ServCellIndex = 2;
|
ie->value.choice.ServCellIndex = 2;
|
||||||
@@ -379,9 +379,18 @@ int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
|
|||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
/* 12.1.2 dRB_Information */
|
/* 12.1.2 DRB_Information */
|
||||||
drbs_toBeSetup_item.qoSInformation.present = F1AP_QoSInformation_PR_dRB_Information;
|
drbs_toBeSetup_item.qoSInformation.present = F1AP_QoSInformation_PR_choice_extension;
|
||||||
drbs_toBeSetup_item.qoSInformation.choice.dRB_Information = (F1AP_DRB_Information_t *)calloc(1, sizeof(F1AP_DRB_Information_t));
|
|
||||||
|
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 */
|
/* 12.1.2.1 dRB_QoS */
|
||||||
{
|
{
|
||||||
@@ -389,65 +398,67 @@ int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
|
|||||||
{
|
{
|
||||||
int some_decide_qoS_characteristics = 1; // BK: Need Check
|
int some_decide_qoS_characteristics = 1; // BK: Need Check
|
||||||
if (some_decide_qoS_characteristics) {
|
if (some_decide_qoS_characteristics) {
|
||||||
drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.qoS_Characteristics.present = F1AP_QoS_Characteristics_PR_non_Dynamic_5QI;
|
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.choice.non_Dynamic_5QI = (F1AP_NonDynamic5QIDescriptor_t *)calloc(1, sizeof(F1AP_NonDynamic5QIDescriptor_t));
|
||||||
|
|
||||||
/* fiveQI */
|
/* 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 */
|
/* OPTIONAL */
|
||||||
/* qoSPriorityLevel */
|
/* qoSPriorityLevel */
|
||||||
if (0) {
|
if (0) {
|
||||||
drbs_toBeSetup_item.qoSInformation.choice.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 = (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 = 1L;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* OPTIONAL */
|
/* OPTIONAL */
|
||||||
/* averagingWindow */
|
/* averagingWindow */
|
||||||
if (0) {
|
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));
|
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 = 1L;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* OPTIONAL */
|
/* OPTIONAL */
|
||||||
/* maxDataBurstVolume */
|
/* maxDataBurstVolume */
|
||||||
if (0) {
|
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));
|
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 = 1L;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.qoS_Characteristics.present = F1AP_QoS_Characteristics_PR_dynamic_5QI;
|
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.choice.dynamic_5QI = (F1AP_Dynamic5QIDescriptor_t *)calloc(1, sizeof(F1AP_Dynamic5QIDescriptor_t));
|
||||||
|
|
||||||
/* qoSPriorityLevel */
|
/* 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 */
|
/* 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 */
|
/* 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 */
|
/* OPTIONAL */
|
||||||
/* delayCritical */
|
/* delayCritical */
|
||||||
if (0) {
|
if (0) {
|
||||||
drbs_toBeSetup_item.qoSInformation.choice.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 = (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 = 1L;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* OPTIONAL */
|
/* OPTIONAL */
|
||||||
/* averagingWindow */
|
/* averagingWindow */
|
||||||
if (0) {
|
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));
|
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 = 1L;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* OPTIONAL */
|
/* OPTIONAL */
|
||||||
/* maxDataBurstVolume */
|
/* maxDataBurstVolume */
|
||||||
if (0) {
|
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));
|
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 = 1L;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // if some_decide_qoS_characteristics
|
} // if some_decide_qoS_characteristics
|
||||||
@@ -456,32 +467,32 @@ int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
|
|||||||
|
|
||||||
/* nGRANallocationRetentionPriority */
|
/* nGRANallocationRetentionPriority */
|
||||||
{
|
{
|
||||||
drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.nGRANallocationRetentionPriority.priorityLevel = F1AP_PriorityLevel_highest; // enum
|
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
|
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.pre_emptionVulnerability = F1AP_Pre_emptionVulnerability_not_pre_emptable; // enum
|
||||||
} // nGRANallocationRetentionPriority
|
} // nGRANallocationRetentionPriority
|
||||||
|
|
||||||
/* OPTIONAL */
|
/* OPTIONAL */
|
||||||
/* gBR_QoS_Flow_Information */
|
/* gBR_QoS_Flow_Information */
|
||||||
if (0) {
|
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));
|
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(&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(&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(&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);
|
asn_long2INTEGER(&DRB_Information->dRB_QoS.gBR_QoS_Flow_Information->guaranteedFlowBitRateUplink, 1L);
|
||||||
|
|
||||||
/* OPTIONAL */
|
/* OPTIONAL */
|
||||||
/* maxPacketLossRateDownlink */
|
/* maxPacketLossRateDownlink */
|
||||||
if (0) {
|
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));
|
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 = 1L;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* OPTIONAL */
|
/* OPTIONAL */
|
||||||
/* maxPacketLossRateUplink */
|
/* maxPacketLossRateUplink */
|
||||||
if (0) {
|
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));
|
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 = 1L;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -489,8 +500,8 @@ int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
|
|||||||
/* OPTIONAL */
|
/* OPTIONAL */
|
||||||
/* reflective_QoS_Attribute */
|
/* reflective_QoS_Attribute */
|
||||||
if (0) {
|
if (0) {
|
||||||
drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->dRB_QoS.reflective_QoS_Attribute = (long *)calloc(1, sizeof(long));
|
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 = 1L;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // dRB_QoS
|
} // dRB_QoS
|
||||||
@@ -498,21 +509,21 @@ int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
|
|||||||
/* 12.1.2.2 sNSSAI */
|
/* 12.1.2.2 sNSSAI */
|
||||||
{
|
{
|
||||||
/* sST */
|
/* sST */
|
||||||
OCTET_STRING_fromBuf(&drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->sNSSAI.sST, "asdsa1d32sa1d31asd31as",
|
OCTET_STRING_fromBuf(&DRB_Information->sNSSAI.sST, "asdsa1d32sa1d31asd31as",
|
||||||
strlen("asdsa1d32sa1d31asd31as"));
|
strlen("asdsa1d32sa1d31asd31as"));
|
||||||
/* OPTIONAL */
|
/* OPTIONAL */
|
||||||
/* sD */
|
/* sD */
|
||||||
if (0) {
|
if (0) {
|
||||||
drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->sNSSAI.sD = (OCTET_STRING_t *)calloc(1, sizeof(OCTET_STRING_t));
|
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",
|
OCTET_STRING_fromBuf(DRB_Information->sNSSAI.sD, "asdsa1d32sa1d31asd31as",
|
||||||
strlen("asdsa1d32sa1d31asd31as"));
|
strlen("asdsa1d32sa1d31asd31as"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* OPTIONAL */
|
/* OPTIONAL */
|
||||||
/* 12.1.2.3 notificationControl */
|
/* 12.1.2.3 notificationControl */
|
||||||
if (0) {
|
if (0) {
|
||||||
drbs_toBeSetup_item.qoSInformation.choice.dRB_Information->notificationControl = (F1AP_NotificationControl_t *)calloc(1, sizeof(F1AP_NotificationControl_t));
|
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_active; // enum
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 12.1.2.4 flows_Mapped_To_DRB_List */ // BK: need verifiy
|
/* 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));
|
memset((void *)&flows_mapped_to_drb_item, 0, sizeof(F1AP_Flows_Mapped_To_DRB_Item_t));
|
||||||
|
|
||||||
/* qoSFlowIndicator */
|
/* qoSFlowIndicator */
|
||||||
flows_mapped_to_drb_item.qoSFlowIndicator = 1L;
|
flows_mapped_to_drb_item.qoSFlowIdentifier = 1L;
|
||||||
|
|
||||||
/* qoSFlowLevelQoSParameters */
|
/* 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;
|
flows_mapped_to_drb_item.qoSFlowLevelQoSParameters.qoS_Characteristics.choice.dynamic_5QI->packetDelayBudget = 1L;
|
||||||
|
|
||||||
/* packetErrorRate */
|
/* 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 */
|
/* OPTIONAL */
|
||||||
/* delayCritical */
|
/* delayCritical */
|
||||||
if (0) {
|
if (0) {
|
||||||
@@ -637,7 +648,7 @@ int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
|
|||||||
|
|
||||||
} // qoSFlowLevelQoSParameters
|
} // qoSFlowLevelQoSParameters
|
||||||
// BK: need check
|
// 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
|
} // 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;
|
drbs_toBeSetup_item.rLCMode = F1AP_RLCMode_rlc_am;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
drbs_toBeSetup_item.rLCMode = F1AP_RLCMode_rlc_um;
|
drbs_toBeSetup_item.rLCMode = F1AP_RLCMode_rlc_um_bidirectional;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* OPTIONAL */
|
/* OPTIONAL */
|
||||||
@@ -716,13 +727,13 @@ int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
|
|||||||
ie->criticality = F1AP_Criticality_reject;
|
ie->criticality = F1AP_Criticality_reject;
|
||||||
ie->value.present = F1AP_UEContextSetupRequestIEs__value_PR_RAT_FrequencyPriorityInformation;
|
ie->value.present = F1AP_UEContextSetupRequestIEs__value_PR_RAT_FrequencyPriorityInformation;
|
||||||
|
|
||||||
int some_decide_rat = 1; // BK: Need Check
|
int endc = 1; // RK: Get this from somewhere ...
|
||||||
if (some_decide_rat) {
|
if (endc) {
|
||||||
ie->value.choice.RAT_FrequencyPriorityInformation.present = F1AP_RAT_FrequencyPriorityInformation_PR_subscriberProfileIDforRFP;
|
ie->value.choice.RAT_FrequencyPriorityInformation.present = F1AP_RAT_FrequencyPriorityInformation_PR_eNDC;
|
||||||
ie->value.choice.RAT_FrequencyPriorityInformation.choice.subscriberProfileIDforRFP = 11L;
|
ie->value.choice.RAT_FrequencyPriorityInformation.choice.eNDC = 11L;
|
||||||
} else {
|
} else {
|
||||||
ie->value.choice.RAT_FrequencyPriorityInformation.present = F1AP_RAT_FrequencyPriorityInformation_PR_rAT_FrequencySelectionPriority;
|
ie->value.choice.RAT_FrequencyPriorityInformation.present = F1AP_RAT_FrequencyPriorityInformation_PR_nGRAN;
|
||||||
ie->value.choice.RAT_FrequencyPriorityInformation.choice.rAT_FrequencySelectionPriority = 11L;
|
ie->value.choice.RAT_FrequencyPriorityInformation.choice.nGRAN = 11L;
|
||||||
}
|
}
|
||||||
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
||||||
}
|
}
|
||||||
@@ -1070,7 +1081,7 @@ int CU_send_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance) {
|
|||||||
/* mandatory */
|
/* mandatory */
|
||||||
/* c4. ServCellIndex */
|
/* c4. ServCellIndex */
|
||||||
ie = (F1AP_UEContextModificationRequestIEs_t *)calloc(1, sizeof(F1AP_UEContextModificationRequestIEs_t));
|
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->criticality = F1AP_Criticality_reject;
|
||||||
ie->value.present = F1AP_UEContextModificationRequestIEs__value_PR_ServCellIndex;
|
ie->value.present = F1AP_UEContextModificationRequestIEs__value_PR_ServCellIndex;
|
||||||
ie->value.choice.ServCellIndex = 5L;
|
ie->value.choice.ServCellIndex = 5L;
|
||||||
@@ -1114,13 +1125,13 @@ int CU_send_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* optional */
|
/* optional */
|
||||||
/* c6. TransmissionStopIndicator */
|
/* c6. TransmissionActionIndicator */
|
||||||
if (1) {
|
if (1) {
|
||||||
ie = (F1AP_UEContextModificationRequestIEs_t *)calloc(1, sizeof(F1AP_UEContextModificationRequestIEs_t));
|
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->criticality = F1AP_Criticality_ignore;
|
||||||
ie->value.present = F1AP_UEContextModificationRequestIEs__value_PR_TransmissionStopIndicator;
|
ie->value.present = F1AP_UEContextModificationRequestIEs__value_PR_TransmissionActionIndicator;
|
||||||
ie->value.choice.TransmissionStopIndicator = F1AP_TransmissionStopIndicator_true;
|
ie->value.choice.TransmissionActionIndicator = F1AP_TransmissionActionIndicator_stop;
|
||||||
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1140,10 +1151,10 @@ int CU_send_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance) {
|
|||||||
/* c7. RRCRconfigurationCompleteIndicator */
|
/* c7. RRCRconfigurationCompleteIndicator */
|
||||||
if (1) {
|
if (1) {
|
||||||
ie = (F1AP_UEContextModificationRequestIEs_t *)calloc(1, sizeof(F1AP_UEContextModificationRequestIEs_t));
|
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->criticality = F1AP_Criticality_ignore;
|
||||||
ie->value.present = F1AP_UEContextModificationRequestIEs__value_PR_RRCRconfigurationCompleteIndicator;
|
ie->value.present = F1AP_UEContextModificationRequestIEs__value_PR_RRCReconfigurationCompleteIndicator;
|
||||||
ie->value.choice.RRCRconfigurationCompleteIndicator = F1AP_RRCRconfigurationCompleteIndicator_true;
|
ie->value.choice.RRCReconfigurationCompleteIndicator = F1AP_RRCReconfigurationCompleteIndicator_true;
|
||||||
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1325,7 +1336,7 @@ int CU_send_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* rLCMode */
|
/* rLCMode */
|
||||||
drbs_toBeSetupMod_item.rLCMode = F1AP_RLCMode_rlc_um; // enum
|
drbs_toBeSetupMod_item.rLCMode = F1AP_RLCMode_rlc_um_bidirectional; // enum
|
||||||
|
|
||||||
/* OPTIONAL */
|
/* OPTIONAL */
|
||||||
/* ULConfiguration */
|
/* ULConfiguration */
|
||||||
@@ -1366,9 +1377,10 @@ int CU_send_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance) {
|
|||||||
drbs_toBeModified_item.dRBID = 30L;
|
drbs_toBeModified_item.dRBID = 30L;
|
||||||
|
|
||||||
/* qoSInformation */
|
/* qoSInformation */
|
||||||
drbs_toBeModified_item.qoSInformation.present = F1AP_QoSInformation_PR_eUTRANQoS;
|
drbs_toBeModified_item.qoSInformation =calloc(1,sizeof(*drbs_toBeModified_item.qoSInformation));
|
||||||
drbs_toBeModified_item.qoSInformation.choice.eUTRANQoS = (F1AP_EUTRANQoS_t *)calloc(1, sizeof(F1AP_EUTRANQoS_t));
|
drbs_toBeModified_item.qoSInformation->present = F1AP_QoSInformation_PR_eUTRANQoS;
|
||||||
drbs_toBeModified_item.qoSInformation.choice.eUTRANQoS->qCI = 254L;
|
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 */
|
/* ULTunnels_ToBeModified_List */
|
||||||
int j = 0;
|
int j = 0;
|
||||||
|
|||||||
@@ -95,7 +95,6 @@ int DU_send_F1_SETUP_REQUEST(instance_t instance) {
|
|||||||
uint8_t *buffer;
|
uint8_t *buffer;
|
||||||
uint32_t len;
|
uint32_t len;
|
||||||
int i = 0;
|
int i = 0;
|
||||||
int j = 0;
|
|
||||||
|
|
||||||
/* Create */
|
/* Create */
|
||||||
/* 0. pdu Type */
|
/* 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
|
served_cell_information.nRPCI = f1ap_du_data->nr_pci[i]; // int 0..1007
|
||||||
|
|
||||||
/* - fiveGS_TAC */
|
/* - 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],
|
(const char*)&f1ap_du_data->tac[i],
|
||||||
3);
|
3);
|
||||||
|
|
||||||
@@ -201,19 +200,11 @@ int DU_send_F1_SETUP_REQUEST(instance_t instance) {
|
|||||||
2);
|
2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* - broadcast PLMNs */
|
/* servedPLMN information */
|
||||||
// RK: add the num_available_broadcast_PLMNs to the message
|
F1AP_ServedPLMNs_Item_t *servedPLMN_item = calloc(1,sizeof(*servedPLMN_item));
|
||||||
int num_available_broadcast_PLMNs = 1; //f1ap_du_data->num_available_broadcast_PLMNs;
|
memset(servedPLMN_item,0,sizeof(*servedPLMN_item));
|
||||||
LOG_D(F1AP, "num_available_broadcast_PLMNs = %d \n", num_available_broadcast_PLMNs);
|
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);
|
||||||
for (j=0;
|
ASN_SEQUENCE_ADD(&served_cell_information.servedPLMNs.list, servedPLMN_item);
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
// // /* - CHOICE NR-MODE-Info */
|
// // /* - CHOICE NR-MODE-Info */
|
||||||
F1AP_NR_Mode_Info_t 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).nr_cellid[i]);
|
||||||
F1AP_SETUP_RESP (msg_p).nrpci[i] = *cell->nRPCI;
|
F1AP_SETUP_RESP (msg_p).nrpci[i] = *cell->nRPCI;
|
||||||
|
|
||||||
F1AP_ProtocolExtensionContainer_160P9_t *ext = (F1AP_ProtocolExtensionContainer_160P9_t *)cell->iE_Extensions;
|
F1AP_ProtocolExtensionContainer_154P112_t *ext = (F1AP_ProtocolExtensionContainer_154P112_t *)cell->iE_Extensions;
|
||||||
AssertFatal(ext!=NULL,"Extension for SI is null\n");
|
AssertFatal(ext!=NULL,"Extension is null\n");
|
||||||
F1AP_SETUP_RESP (msg_p).num_SI[i] = ext->list.count;
|
for (int cnt=0;cnt<ext->list.count;cnt++) {
|
||||||
AssertFatal(ext->list.count==1,"At least one SI message should be there, and only 1 for now!\n");
|
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];
|
||||||
LOG_D(F1AP, "F1AP: F1Setup-Resp Cell %d MCC %d MNC %d NRCellid %lx num_si %d\n",
|
switch (cells_to_be_activated_list_itemExtIEs->id) {
|
||||||
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]);
|
case F1AP_Cells_to_be_Activated_List_ItemExtIEs__extensionValue_PR_NOTHING:
|
||||||
for (int si =0;si < ext->list.count;si++) {
|
case F1AP_Cells_to_be_Activated_List_ItemExtIEs__extensionValue_PR_GNB_CUSystemInformation,
|
||||||
size_t size = ext->list.array[si]->extensionValue.choice.GNB_CUSystemInformation.sImessage.size;
|
case F1AP_Cells_to_be_Activated_List_ItemExtIEs__extensionValue_PR_AvailablePLMNList,
|
||||||
F1AP_SETUP_RESP (msg_p).SI_container_length[i][si] = size;
|
case F1AP_Cells_to_be_Activated_List_ItemExtIEs__extensionValue_PR_ExtendedAvailablePLMN_List,
|
||||||
LOG_D(F1AP, "F1AP: F1Setup-Resp SI_container_length[%d][%d] %ld bytes\n", i, si, size);
|
case F1AP_Cells_to_be_Activated_List_ItemExtIEs__extensionValue_PR_IAB_Info_IAB_donor_CU,
|
||||||
F1AP_SETUP_RESP (msg_p).SI_container[i][si] = malloc(F1AP_SETUP_RESP (msg_p).SI_container_length[i][si]);
|
case F1AP_Cells_to_be_Activated_List_ItemExtIEs__extensionValue_PR_AvailableSNPN_ID_List
|
||||||
|
*/
|
||||||
memcpy((void*)F1AP_SETUP_RESP (msg_p).SI_container[i][si],
|
case F1AP_ProtocolIE_ID_id_gNB_CUSystemInformation:
|
||||||
(void*)ext->list.array[si]->extensionValue.choice.GNB_CUSystemInformation.sImessage.buf,
|
{
|
||||||
F1AP_SETUP_RESP (msg_p).SI_container_length[i][si]);
|
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");
|
||||||
break;
|
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(TransactionId!=-1,"TransactionId was not sent\n");
|
||||||
AssertFatal(num_cells_to_activate>0,"No cells activated\n");
|
AssertFatal(num_cells_to_activate>0,"No cells activated\n");
|
||||||
F1AP_SETUP_RESP (msg_p).num_cells_to_activate = num_cells_to_activate;
|
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
|
served_cell_information.nRPCI = f1ap_setup_req->nr_pci[i]; // int 0..1007
|
||||||
|
|
||||||
/* - fiveGS_TAC */
|
/* - 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],
|
(const char *) &f1ap_setup_req->tac[i],
|
||||||
3);
|
3);
|
||||||
|
|
||||||
@@ -647,17 +670,11 @@ int DU_send_gNB_DU_CONFIGURATION_UPDATE(instance_t instance,
|
|||||||
2);
|
2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* - broadcast PLMNs */
|
F1AP_ServedPLMNs_Item_t *servedPLMN_item = calloc(1,sizeof(*servedPLMN_item));
|
||||||
int maxnoofBPLMNS = 1;
|
memset(servedPLMN_item,0,sizeof(*servedPLMN_item));
|
||||||
for (i=0;
|
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);
|
||||||
i<maxnoofBPLMNS;
|
ASN_SEQUENCE_ADD(&served_cell_information.servedPLMNs.list, servedPLMN_item);
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
// // /* - CHOICE NR-MODE-Info */
|
// // /* - CHOICE NR-MODE-Info */
|
||||||
F1AP_NR_Mode_Info_t 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
|
served_cell_information.nRPCI = f1ap_setup_req->nr_pci[i]; // int 0..1007
|
||||||
|
|
||||||
/* - fiveGS_TAC */
|
/* - 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],
|
(const char *) &f1ap_setup_req->tac[i],
|
||||||
3);
|
3);
|
||||||
|
|
||||||
@@ -815,17 +832,12 @@ int DU_send_gNB_DU_CONFIGURATION_UPDATE(instance_t instance,
|
|||||||
2);
|
2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* - broadcast PLMNs */
|
F1AP_ServedPLMNs_Item_t *servedPLMN_item = calloc(1,sizeof(*servedPLMN_item));
|
||||||
int maxnoofBPLMNS = 1;
|
memset(servedPLMN_item,0,sizeof(*servedPLMN_item));
|
||||||
for (i=0;
|
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);
|
||||||
i<maxnoofBPLMNS;
|
ASN_SEQUENCE_ADD(&served_cell_information.servedPLMNs.list, servedPLMN_item);
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
// // /* - CHOICE NR-MODE-Info */
|
// // /* - CHOICE NR-MODE-Info */
|
||||||
F1AP_NR_Mode_Info_t 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);
|
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) {
|
if (f1ap_encode_pdu(&pdu, &buffer, &len) < 0) {
|
||||||
LOG_E(F1AP, "Failed to encode F1 setup request\n");
|
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);
|
F1AP_ProtocolIE_ID_id_RAT_FrequencyPriorityInformation, true);
|
||||||
|
|
||||||
switch(ie->value.choice.RAT_FrequencyPriorityInformation.present) {
|
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;
|
//subscriberProfileIDforRFP = ie->value.choice.RAT_FrequencyPriorityInformation.choice.subscriberProfileIDforRFP;
|
||||||
break;
|
break;
|
||||||
case F1AP_RAT_FrequencyPriorityInformation_PR_rAT_FrequencySelectionPriority:
|
case F1AP_RAT_FrequencyPriorityInformation_PR_nGRAN:
|
||||||
//rAT_FrequencySelectionPriority = ie->value.choice.RAT_FrequencyPriorityInformation.choice.rAT_FrequencySelectionPriority;
|
//rAT_FrequencySelectionPriority = ie->value.choice.RAT_FrequencyPriorityInformation.choice.rAT_FrequencySelectionPriority;
|
||||||
break;
|
break;
|
||||||
default:
|
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->id = F1AP_ProtocolIE_ID_id_C_RNTI;
|
||||||
ie->criticality = F1AP_Criticality_reject;
|
ie->criticality = F1AP_Criticality_reject;
|
||||||
ie->value.present = F1AP_InitialULRRCMessageTransferIEs__value_PR_C_RNTI;
|
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);
|
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
||||||
|
|
||||||
/* mandatory */
|
/* 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);
|
BIT_STRING_TO_NR_CELL_IDENTITY(&ie->value.choice.NRCGI.nRCellIdentity, f1ap_ue_context_setup_req->nr_cellid);
|
||||||
/* ServCellIndex */
|
/* ServCellIndex */
|
||||||
F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextSetupRequestIEs_t, ie, container,
|
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;
|
f1ap_ue_context_setup_req->servCellIndex = ie->value.choice.ServCellIndex;
|
||||||
/* optional */
|
/* optional */
|
||||||
/* CellULConfigured */
|
/* CellULConfigured */
|
||||||
@@ -227,7 +227,8 @@ int DU_send_UE_CONTEXT_SETUP_RESPONSE(instance_t instance) {
|
|||||||
ie->id = F1AP_ProtocolIE_ID_id_C_RNTI;
|
ie->id = F1AP_ProtocolIE_ID_id_C_RNTI;
|
||||||
ie->criticality = F1AP_Criticality_ignore;
|
ie->criticality = F1AP_Criticality_ignore;
|
||||||
ie->value.present = F1AP_UEContextSetupResponseIEs__value_PR_C_RNTI;
|
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);
|
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.sRBID = 50L;
|
||||||
srbs_failedToBeSetupMod_item.cause = (F1AP_Cause_t *)calloc(1, sizeof(F1AP_Cause_t));
|
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->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 */
|
/* ADD */
|
||||||
srbs_failedToBeSetupMod_item_ies->value.choice.SRBs_FailedToBeSetupMod_Item = srbs_failedToBeSetupMod_item;
|
srbs_failedToBeSetupMod_item_ies->value.choice.SRBs_FailedToBeSetupMod_Item = srbs_failedToBeSetupMod_item;
|
||||||
ASN_SEQUENCE_ADD(&ie->value.choice.SRBs_FailedToBeSetupMod_List.list,
|
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.dRBID = 30L;
|
||||||
drbs_failedToBeSetupMod_item.cause = (F1AP_Cause_t *)calloc(1, sizeof(F1AP_Cause_t));
|
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->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 */
|
/* ADD */
|
||||||
drbs_failedToBeSetupMod_item_ies->value.choice.DRBs_FailedToBeSetupMod_Item = drbs_failedToBeSetupMod_item;
|
drbs_failedToBeSetupMod_item_ies->value.choice.DRBs_FailedToBeSetupMod_Item = drbs_failedToBeSetupMod_item;
|
||||||
ASN_SEQUENCE_ADD(&ie->value.choice.DRBs_FailedToBeSetupMod_List.list,
|
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.sCell_ID = nRCGI;
|
||||||
scell_failedtoSetupMod_item.cause = (F1AP_Cause_t *)calloc(1, sizeof(F1AP_Cause_t));
|
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->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 */
|
/* ADD */
|
||||||
scell_failedtoSetupMod_item_ies->value.choice.SCell_FailedtoSetupMod_Item = scell_failedtoSetupMod_item;
|
scell_failedtoSetupMod_item_ies->value.choice.SCell_FailedtoSetupMod_Item = scell_failedtoSetupMod_item;
|
||||||
ASN_SEQUENCE_ADD(&ie->value.choice.SCell_FailedtoSetupMod_List.list,
|
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.dRBID = 30L;
|
||||||
drbs_failedToBeModified_item.cause = (F1AP_Cause_t *)calloc(1, sizeof(F1AP_Cause_t));
|
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->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 */
|
/* ADD */
|
||||||
drbs_failedToBeModified_item_ies->value.choice.DRBs_FailedToBeModified_Item = drbs_failedToBeModified_item;
|
drbs_failedToBeModified_item_ies->value.choice.DRBs_FailedToBeModified_Item = drbs_failedToBeModified_item;
|
||||||
ASN_SEQUENCE_ADD(&ie->value.choice.DRBs_FailedToBeModified_List.list,
|
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]);
|
if (id>=0) clean_eNb_dlsch(eNB_PHY->dlsch[id][0]);
|
||||||
|
|
||||||
// clean UCI entries for rnti
|
// 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) {
|
if(eNB_PHY->uci_vars[i].rnti == rnti) {
|
||||||
LOG_I(MAC, "clean eNb uci_vars[%d] UE %x \n",i, 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));
|
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);
|
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) {
|
if(eNB_PHY->uci_vars[i].rnti == rnti) {
|
||||||
LOG_I(MAC, "clean eNb uci_vars[%d] UE %x \n",i, 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));
|
memset(&eNB_PHY->uci_vars[i],0,sizeof(LTE_eNB_UCI));
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
#include "ProtocolDiscriminator.h"
|
#include "ProtocolDiscriminator.h"
|
||||||
#include "SecurityHeaderType.h"
|
#include "SecurityHeaderType.h"
|
||||||
#include "MessageType.h"
|
#include "MessageType.h"
|
||||||
#include "PagingIdentity.h"
|
#include "NasPagingIdentity.h"
|
||||||
#include "Cli.h"
|
#include "Cli.h"
|
||||||
#include "SsCode.h"
|
#include "SsCode.h"
|
||||||
#include "LcsIndicator.h"
|
#include "LcsIndicator.h"
|
||||||
|
|||||||
@@ -6,23 +6,41 @@
|
|||||||
# define NUMBER_OF_gNB_MAX 1
|
# define NUMBER_OF_gNB_MAX 1
|
||||||
# define NUMBER_OF_RU_MAX 2
|
# define NUMBER_OF_RU_MAX 2
|
||||||
# define NUMBER_OF_NR_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 PHYSIM
|
||||||
# ifndef UE_EXPANSION
|
# ifndef UE_EXPANSION
|
||||||
# define NUMBER_OF_UE_MAX 4
|
# define NUMBER_OF_UE_MAX 4
|
||||||
# define NUMBER_OF_NR_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_eNB_MAX 1
|
||||||
# define NUMBER_OF_CONNECTED_gNB_MAX 1
|
# define NUMBER_OF_CONNECTED_gNB_MAX 1
|
||||||
# else
|
# else
|
||||||
# define NUMBER_OF_UE_MAX 256
|
# define NUMBER_OF_UE_MAX 256
|
||||||
# define NUMBER_OF_UCI_VARS_MAX 256
|
|
||||||
# define NUMBER_OF_CONNECTED_eNB_MAX 1
|
# define NUMBER_OF_CONNECTED_eNB_MAX 1
|
||||||
# define NUMBER_OF_CONNECTED_gNB_MAX 1
|
# define NUMBER_OF_CONNECTED_gNB_MAX 1
|
||||||
# endif
|
# endif
|
||||||
# else
|
# else
|
||||||
# define NUMBER_OF_UE_MAX 4
|
# define NUMBER_OF_UE_MAX 4
|
||||||
# define NUMBER_OF_NR_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_eNB_MAX 1
|
||||||
# define NUMBER_OF_CONNECTED_gNB_MAX 1
|
# define NUMBER_OF_CONNECTED_gNB_MAX 1
|
||||||
# endif
|
# endif
|
||||||
|
|||||||
Reference in New Issue
Block a user