Commit 0eb2acb0 authored by matzakos's avatar matzakos

F1 code cleanup before merge

-Remove commented out code, debug logs, some hardcodings, fix indentation
parent 038e70b0
...@@ -352,6 +352,15 @@ typedef struct cu_to_du_rrc_information_s { ...@@ -352,6 +352,15 @@ typedef struct cu_to_du_rrc_information_s {
uint8_t measConfig_length; uint8_t measConfig_length;
}cu_to_du_rrc_information_t; }cu_to_du_rrc_information_t;
typedef struct du_to_du_rrc_information_s {
uint8_t * cellGroupConfig;
uint8_t cellGroupConfig_length;
uint8_t * measGapConfig;
uint8_t measGapConfig_length;
uint8_t * requestedP_MaxFR1;
uint8_t requestedP_MaxFR1_length;
}du_to_cu_rrc_information_t;
typedef enum QoS_information_e { typedef enum QoS_information_e {
NG_RAN_QoS = 0, NG_RAN_QoS = 0,
EUTRAN_QoS = 1, EUTRAN_QoS = 1,
...@@ -377,10 +386,13 @@ typedef struct f1ap_ue_context_setup_s { ...@@ -377,10 +386,13 @@ typedef struct f1ap_ue_context_setup_s {
uint32_t servCellId; uint32_t servCellId;
cu_to_du_rrc_information_t *cu_to_du_rrc_information; cu_to_du_rrc_information_t *cu_to_du_rrc_information;
uint8_t cu_to_du_rrc_information_length; uint8_t cu_to_du_rrc_information_length;
uint8_t *du_to_cu_rrc_information; //uint8_t *du_to_cu_rrc_information;
uint8_t du_to_cu_rrc_information_length; du_to_cu_rrc_information_t *du_to_cu_rrc_information;
f1ap_drb_to_be_setup_t *drbs_to_be_setup; // BK: need to replace by s1ap_initial_context_setup_req uint32_t du_to_cu_rrc_information_length;
uint8_t drbs_to_be_setup_length; // BK: need to replace by s1ap_initial_context_setup_req f1ap_drb_to_be_setup_t *drbs_to_be_setup;
uint8_t drbs_to_be_setup_length;
f1ap_drb_to_be_setup_t *drbs_to_be_modified;
uint8_t drbs_to_be_modified_length;
QoS_information_t QoS_information_type; QoS_information_t QoS_information_type;
uint8_t drbs_failed_to_be_setup_length; uint8_t drbs_failed_to_be_setup_length;
f1ap_rb_failed_to_be_setup_t *drbs_failed_to_be_setup; f1ap_rb_failed_to_be_setup_t *drbs_failed_to_be_setup;
...@@ -388,29 +400,11 @@ typedef struct f1ap_ue_context_setup_s { ...@@ -388,29 +400,11 @@ typedef struct f1ap_ue_context_setup_s {
uint8_t srbs_to_be_setup_length; uint8_t srbs_to_be_setup_length;
uint8_t srbs_failed_to_be_setup_length; uint8_t srbs_failed_to_be_setup_length;
f1ap_rb_failed_to_be_setup_t *srbs_failed_to_be_setup; f1ap_rb_failed_to_be_setup_t *srbs_failed_to_be_setup;
s1ap_initial_context_setup_req_t *s1ap_initial_context_setup_req;
ReconfigurationCompl_t ReconfigComplOutcome; ReconfigurationCompl_t ReconfigComplOutcome;
// coniatner for the rrc_eNB_generate_SecurityModeCommand message
uint8_t *rrc_container; uint8_t *rrc_container;
int rrc_container_length; int rrc_container_length;
} f1ap_ue_context_setup_t; } f1ap_ue_context_setup_t;
typedef struct f1ap_ue_context_setup_resp_s {
uint32_t gNB_CU_ue_id; // BK: need to replace by use from rnti
uint32_t gNB_DU_ue_id;
uint16_t rnti;
uint8_t du_to_cu_rrc_information[1024 /*Arbitrarily big enough*/];
uint32_t du_to_cu_rrc_information_length;
f1ap_drb_to_be_setup_t *drbs_setup; // BK: need to replace by s1ap_initial_context_setup_req
uint8_t drbs_setup_length; // BK: need to replace by s1ap_initial_context_setup_req
f1ap_srb_to_be_setup_t *srbs_setup;
uint8_t srbs_setup_length;
uint8_t srbs_failed_to_be_setup_length;
f1ap_rb_failed_to_be_setup_t *srbs_failed_to_be_setup;
uint8_t drbs_failed_to_be_setup_length;
f1ap_rb_failed_to_be_setup_t *drbs_failed_to_be_setup;
} f1ap_ue_context_setup_resp_t;
typedef enum F1ap_Cause_e { typedef enum F1ap_Cause_e {
F1AP_CAUSE_NOTHING, /* No components present */ F1AP_CAUSE_NOTHING, /* No components present */
F1AP_CAUSE_RADIO_NETWORK, F1AP_CAUSE_RADIO_NETWORK,
......
...@@ -172,25 +172,19 @@ int DU_send_F1_SETUP_REQUEST(instance_t instance) { ...@@ -172,25 +172,19 @@ int DU_send_F1_SETUP_REQUEST(instance_t instance) {
MCC_MNC_TO_PLMNID(cell->mcc, cell->mnc, cell->mnc_digit_length, &servedPLMN_item->pLMN_Identity); MCC_MNC_TO_PLMNID(cell->mcc, cell->mnc, cell->mnc_digit_length, &servedPLMN_item->pLMN_Identity);
// // /* - CHOICE NR-MODE-Info */ // // /* - CHOICE NR-MODE-Info */
F1AP_NR_Mode_Info_t *nR_Mode_Info= &served_cell_information->nR_Mode_Info; F1AP_NR_Mode_Info_t *nR_Mode_Info= &served_cell_information->nR_Mode_Info;
//if(0){ F1AP_ProtocolExtensionContainer_154P34_t *p_154P34=calloc(1,sizeof(* p_154P34));
//F1AP_ProtocolExtensionContainer_154P260_t *p_154P260=calloc(1, sizeof(* p_154P260)); servedPLMN_item->iE_Extensions = (struct F1AP_ProtocolExtensionContainer *)p_154P34;
F1AP_ProtocolExtensionContainer_154P34_t *p_154P34=calloc(1,sizeof(* p_154P34)); asn1cSequenceAdd(p_154P34->list, F1AP_ServedPLMNs_ItemExtIEs_t , served_plmns_itemExtIEs);
servedPLMN_item->iE_Extensions = (struct F1AP_ProtocolExtensionContainer *)p_154P34; served_plmns_itemExtIEs->criticality = F1AP_Criticality_ignore;
asn1cSequenceAdd(p_154P34->list, F1AP_ServedPLMNs_ItemExtIEs_t , served_plmns_itemExtIEs); served_plmns_itemExtIEs->id = F1AP_ProtocolIE_ID_id_TAISliceSupportList;
served_plmns_itemExtIEs->criticality = F1AP_Criticality_ignore; served_plmns_itemExtIEs->extensionValue.present = F1AP_ServedPLMNs_ItemExtIEs__extensionValue_PR_SliceSupportList;
served_plmns_itemExtIEs->id = F1AP_ProtocolIE_ID_id_TAISliceSupportList; F1AP_SliceSupportList_t *slice_support_list = &served_plmns_itemExtIEs->extensionValue.choice.SliceSupportList;
served_plmns_itemExtIEs->extensionValue.present = F1AP_ServedPLMNs_ItemExtIEs__extensionValue_PR_SliceSupportList;
F1AP_SliceSupportList_t *slice_support_list = &served_plmns_itemExtIEs->extensionValue.choice.SliceSupportList; asn1cSequenceAdd(slice_support_list->list, F1AP_SliceSupportItem_t, SliceSupport_item);
INT8_TO_OCTET_STRING(1,&SliceSupport_item->sNSSAI.sST);
asn1cSequenceAdd(slice_support_list->list, F1AP_SliceSupportItem_t, SliceSupport_item); asn1cCalloc(SliceSupport_item->sNSSAI.sD, tmp);
INT8_TO_OCTET_STRING(1,&SliceSupport_item->sNSSAI.sST); INT24_TO_OCTET_STRING(1,tmp);
//OCTET_STRING_fromBuf(&SliceSupport_item->sNSSAI.sST, "1", 1);
asn1cCalloc(SliceSupport_item->sNSSAI.sD, tmp);
INT24_TO_OCTET_STRING(1,tmp);
//OCTET_STRING_fromBuf(tmp, "1",1);
//}
if (f1ap_req(false, instance)->fdd_flag) { // FDD if (f1ap_req(false, instance)->fdd_flag) { // FDD
nR_Mode_Info->present = F1AP_NR_Mode_Info_PR_fDD; nR_Mode_Info->present = F1AP_NR_Mode_Info_PR_fDD;
asn1cCalloc(nR_Mode_Info->choice.fDD, fDD_Info); asn1cCalloc(nR_Mode_Info->choice.fDD, fDD_Info);
......
...@@ -1879,11 +1879,7 @@ int RCconfig_NR_DU_F1(MessageDef *msg_p, uint32_t i) { ...@@ -1879,11 +1879,7 @@ int RCconfig_NR_DU_F1(MessageDef *msg_p, uint32_t i) {
f1Setup->ranac[k] = 0; f1Setup->ranac[k] = 0;
f1Setup->mib[k] = rrc->carrier.MIB; f1Setup->mib[k] = rrc->carrier.MIB;
f1Setup->mib_length[k] = rrc->carrier.sizeof_MIB; f1Setup->mib_length[k] = rrc->carrier.sizeof_MIB;
if(0){
f1Setup->sib1[k] = rrc->carrier.SIB1;
f1Setup->sib1_length[k] = rrc->carrier.sizeof_SIB1;
}
else{
NR_BCCH_DL_SCH_Message_t *bcch_message = NULL; NR_BCCH_DL_SCH_Message_t *bcch_message = NULL;
asn_dec_rval_t dec_rval = uper_decode_complete( NULL, asn_dec_rval_t dec_rval = uper_decode_complete( NULL,
...@@ -1914,7 +1910,6 @@ int RCconfig_NR_DU_F1(MessageDef *msg_p, uint32_t i) { ...@@ -1914,7 +1910,6 @@ int RCconfig_NR_DU_F1(MessageDef *msg_p, uint32_t i) {
xer_fprint(stdout, &asn_DEF_NR_SIB1,(void *)bcch_message->message.choice.c1->choice.systemInformationBlockType1 ); xer_fprint(stdout, &asn_DEF_NR_SIB1,(void *)bcch_message->message.choice.c1->choice.systemInformationBlockType1 );
//} //}
f1Setup->sib1_length[k] = (enc_rval.encoded+7)/8; f1Setup->sib1_length[k] = (enc_rval.encoded+7)/8;
}
break; break;
} }
} }
......
...@@ -992,10 +992,6 @@ void nr_schedule_ue_spec(module_id_t module_id, ...@@ -992,10 +992,6 @@ void nr_schedule_ue_spec(module_id_t module_id,
return; return;
/* PREPROCESSOR */ /* PREPROCESSOR */
//Following commented section condition should be removed before update with develop.
/*if(slot!= 1 && slot!=11){
return;
}*/
gNB_mac->pre_processor_dl(module_id, frame, slot); gNB_mac->pre_processor_dl(module_id, frame, slot);
const int CC_id = 0; const int CC_id = 0;
......
...@@ -1388,49 +1388,6 @@ rrc_gNB_process_RRCReconfigurationComplete( ...@@ -1388,49 +1388,6 @@ rrc_gNB_process_RRCReconfigurationComplete(
NULL, NULL,
get_softmodem_params()->sa ? ue_context_pP->ue_context.masterCellGroup->rlc_BearerToAddModList : NULL); get_softmodem_params()->sa ? ue_context_pP->ue_context.masterCellGroup->rlc_BearerToAddModList : NULL);
} }
/*else if(SRB_configList!=NULL || DRB_configList!=NULL){
MessageDef *message_p;
message_p = itti_alloc_new_message (TASK_RRC_GNB, 0, F1AP_UE_CONTEXT_SETUP_REQ);
f1ap_ue_context_setup_t *req=&F1AP_UE_CONTEXT_SETUP_REQ (message_p);
req->gNB_CU_ue_id = 0;
req->gNB_DU_ue_id = 0;
req->rnti = ue_context_pP->ue_context.rnti;
req->mcc = rrc->configuration.mcc[0];
req->mnc = rrc->configuration.mnc[0];
req->mnc_digit_length = rrc->configuration.mnc_digit_length[0];
req->nr_cellid = rrc->nr_cellid;
if(SRB_configList!=NULL){
req->srbs_to_be_setup = malloc(SRB_configList->list.count*sizeof(f1ap_srb_to_be_setup_t));
req->srbs_to_be_setup_length = SRB_configList->list.count;
f1ap_srb_to_be_setup_t *SRBs=req->srbs_to_be_setup;
for (int i = 0; i < SRB_configList->list.count; i++){
if(SRB_configList->list.array[i]->srb_Identity > 1){
SRBs[i].srb_id = SRB_configList->list.array[i]->srb_Identity;
SRBs[i].lcid = SRB_configList->list.array[i]->srb_Identity;
}
}
}
if(DRB_configList!=NULL){
gtpv1u_gnb_create_tunnel_req_t create_tunnel_req;
memset(&create_tunnel_req, 0, sizeof(gtpv1u_gnb_create_tunnel_req_t));
req->drbs_to_be_setup = malloc(DRB_configList->list.count*sizeof(f1ap_drb_to_be_setup_t));
req->drbs_to_be_setup_length = DRB_configList->list.count;
f1ap_drb_to_be_setup_t *DRBs=req->drbs_to_be_setup;
LOG_I(RRC, "Length of DRB list:%d, %d \n", DRB_configList->list.count, req->drbs_to_be_setup_length);
for (int i = 0; i < DRB_configList->list.count; i++){
DRBs[i].drb_id = DRB_configList->list.array[i]->drb_Identity;
DRBs[i].rlc_mode = RLC_MODE_AM;
DRBs[i].up_ul_tnl[0].tl_address = inet_addr(rrc->eth_params_s.my_addr);
DRBs[i].up_ul_tnl[0].port=rrc->eth_params_s.my_portd;
DRBs[i].up_ul_tnl_length = 1;
DRBs[i].up_dl_tnl[0].tl_address = inet_addr(rrc->eth_params_s.remote_addr);
DRBs[i].up_dl_tnl[0].port=rrc->eth_params_s.remote_portd;
DRBs[i].up_dl_tnl_length = 1;
}
LOG_I(RRC, "Send F1AP_UE_CONTEXT_SETUP_REQ with ITTI\n");
}
itti_send_msg_to_task (TASK_CU_F1, ctxt_pP->module_id, message_p);
}*/
#endif #endif
/* Set the SRB active in UE context */ /* Set the SRB active in UE context */
...@@ -2840,9 +2797,6 @@ void rrc_gNB_process_f1_setup_req(f1ap_setup_req_t *f1_setup_req) { ...@@ -2840,9 +2797,6 @@ void rrc_gNB_process_f1_setup_req(f1ap_setup_req_t *f1_setup_req) {
memset(mib->message.choice.mib,0,sizeof(struct NR_MIB)); memset(mib->message.choice.mib,0,sizeof(struct NR_MIB));
memcpy(mib->message.choice.mib, mib_DU->message.choice.mib, sizeof(struct NR_MIB)); memcpy(mib->message.choice.mib, mib_DU->message.choice.mib, sizeof(struct NR_MIB));
/*rrc->carrier.SIB1 = malloc(f1_setup_req->sib1_length[i]);
rrc->carrier.sizeof_SIB1 = f1_setup_req->sib1_length[i];
memcpy((void *)rrc->carrier.SIB1,f1_setup_req->sib1[i],f1_setup_req->sib1_length[i]);*/
dec_rval = uper_decode_complete(NULL, dec_rval = uper_decode_complete(NULL,
&asn_DEF_NR_SIB1, //&asn_DEF_NR_BCCH_DL_SCH_Message, &asn_DEF_NR_SIB1, //&asn_DEF_NR_BCCH_DL_SCH_Message,
(void **)&rrc->carrier.siblock1_DU, (void **)&rrc->carrier.siblock1_DU,
...@@ -2860,12 +2814,6 @@ void rrc_gNB_process_f1_setup_req(f1ap_setup_req_t *f1_setup_req) { ...@@ -2860,12 +2814,6 @@ void rrc_gNB_process_f1_setup_req(f1ap_setup_req_t *f1_setup_req) {
xer_fprint(stdout, &asn_DEF_NR_SIB1,(void *)rrc->carrier.sib1); xer_fprint(stdout, &asn_DEF_NR_SIB1,(void *)rrc->carrier.sib1);
} }
/*NR_BCCH_DL_SCH_Message_t *bcch_message = rrc->carrier.siblock1_DU;
AssertFatal(bcch_message->message.present == NR_BCCH_DL_SCH_MessageType_PR_c1,
"bcch_message->message.present != NR_BCCH_DL_SCH_MessageType_PR_c1\n");
AssertFatal(bcch_message->message.choice.c1->present == NR_BCCH_DL_SCH_MessageType__c1_PR_systemInformationBlockType1,
"bcch_message->message.choice.c1->present != NR_BCCH_DL_SCH_MessageType__c1_PR_systemInformationBlockType1\n");
rrc->carrier.sib1 = bcch_message->message.choice.c1->choice.systemInformationBlockType1;*/
rrc->carrier.physCellId = f1_setup_req->cell[i].nr_pci; rrc->carrier.physCellId = f1_setup_req->cell[i].nr_pci;
F1AP_GNB_CU_CONFIGURATION_UPDATE (msg_p2).gNB_CU_name = rrc->node_name; F1AP_GNB_CU_CONFIGURATION_UPDATE (msg_p2).gNB_CU_name = rrc->node_name;
...@@ -3387,20 +3335,20 @@ static void rrc_DU_process_ue_context_setup_request(MessageDef *msg_p, const cha ...@@ -3387,20 +3335,20 @@ static void rrc_DU_process_ue_context_setup_request(MessageDef *msg_p, const cha
LOG_W(NR_RRC, "No SRB added upon reception of F1 UE Context setup request at the DU\n"); LOG_W(NR_RRC, "No SRB added upon reception of F1 UE Context setup request at the DU\n");
} }
/* fixme: /* fixme:
* Here we should be encoding the updates on cellgroupconfig. Currently the content of * Here we should be encoding the updates on cellgroupconfig based on the content of UE capabilities
* celGroupConfig is empty because update_cellGroupConfig() function that is previously called is empty.
*/ */
resp->du_to_cu_rrc_information = calloc(1,1024*sizeof(uint8_t)); resp->du_to_cu_rrc_information = calloc(1, sizeof(du_to_cu_rrc_information_t));
resp->du_to_cu_rrc_information->cellGroupConfig = calloc(1,1024);
asn_enc_rval_t enc_rval = uper_encode_to_buffer(&asn_DEF_NR_CellGroupConfig, asn_enc_rval_t enc_rval = uper_encode_to_buffer(&asn_DEF_NR_CellGroupConfig,
NULL, NULL,
ue_context_p->ue_context.masterCellGroup, //(void *)cellGroupConfig, ue_context_p->ue_context.masterCellGroup, //(void *)cellGroupConfig,
resp->du_to_cu_rrc_information, resp->du_to_cu_rrc_information->cellGroupConfig,
1024); 1024);
if (enc_rval.encoded == -1) { if (enc_rval.encoded == -1) {
LOG_E(F1AP,"Could not encode ue_context.masterCellGroup, failed element %s\n",enc_rval.failed_type->name); LOG_E(F1AP,"Could not encode ue_context.masterCellGroup, failed element %s\n",enc_rval.failed_type->name);
exit(-1); exit(-1);
} }
resp->du_to_cu_rrc_information_length = (enc_rval.encoded+7)>>3; resp->du_to_cu_rrc_information->cellGroupConfig_length = (enc_rval.encoded+7)>>3;
free(cellGroupConfig); free(cellGroupConfig);
itti_send_msg_to_task (TASK_DU_F1, ctxt.module_id, message_p); itti_send_msg_to_task (TASK_DU_F1, ctxt.module_id, message_p);
} }
...@@ -3520,13 +3468,14 @@ static void rrc_DU_process_ue_context_modification_request(MessageDef *msg_p, co ...@@ -3520,13 +3468,14 @@ static void rrc_DU_process_ue_context_modification_request(MessageDef *msg_p, co
} }
//if(cellGroupConfig != NULL) { //if(cellGroupConfig != NULL) {
resp->du_to_cu_rrc_information = calloc(1,1024*sizeof(uint8_t)); resp->du_to_cu_rrc_information = calloc(1,sizeof(du_to_cu_rrc_information_t));
resp->du_to_cu_rrc_information->cellGroupConfig = calloc(1,1024);
asn_enc_rval_t enc_rval = uper_encode_to_buffer(&asn_DEF_NR_CellGroupConfig, asn_enc_rval_t enc_rval = uper_encode_to_buffer(&asn_DEF_NR_CellGroupConfig,
NULL, NULL,
ue_context_p->ue_context.masterCellGroup, //(void *)cellGroupConfig, ue_context_p->ue_context.masterCellGroup, //(void *)cellGroupConfig,
resp->du_to_cu_rrc_information, resp->du_to_cu_rrc_information->cellGroupConfig,
1024); 1024);
resp->du_to_cu_rrc_information_length = (enc_rval.encoded+7)>>3; resp->du_to_cu_rrc_information->cellGroupConfig_length = (enc_rval.encoded+7)>>3;
//} //}
itti_send_msg_to_task (TASK_DU_F1, ctxt.module_id, message_p); itti_send_msg_to_task (TASK_DU_F1, ctxt.module_id, message_p);
} }
...@@ -3546,8 +3495,8 @@ static void rrc_CU_process_ue_context_setup_response(MessageDef *msg_p, const ch ...@@ -3546,8 +3495,8 @@ static void rrc_CU_process_ue_context_setup_response(MessageDef *msg_p, const ch
asn_dec_rval_t dec_rval = uper_decode_complete( NULL, asn_dec_rval_t dec_rval = uper_decode_complete( NULL,
&asn_DEF_NR_CellGroupConfig, &asn_DEF_NR_CellGroupConfig,
(void **)&cellGroupConfig, (void **)&cellGroupConfig,
(uint8_t *)resp->du_to_cu_rrc_information, (uint8_t *)resp->du_to_cu_rrc_information->cellGroupConfig,
(int) resp->du_to_cu_rrc_information_length); (int) resp->du_to_cu_rrc_information->cellGroupConfig_length);
if ((dec_rval.code != RC_OK) && (dec_rval.consumed == 0)) { if ((dec_rval.code != RC_OK) && (dec_rval.consumed == 0)) {
AssertFatal(1==0,"Cell group config decode error\n"); AssertFatal(1==0,"Cell group config decode error\n");
...@@ -3601,12 +3550,12 @@ static void rrc_CU_process_ue_context_modification_response(MessageDef *msg_p, c ...@@ -3601,12 +3550,12 @@ static void rrc_CU_process_ue_context_modification_response(MessageDef *msg_p, c
struct rrc_gNB_ue_context_s *ue_context_p = rrc_gNB_get_ue_context(rrc, ctxt.rnti); struct rrc_gNB_ue_context_s *ue_context_p = rrc_gNB_get_ue_context(rrc, ctxt.rnti);
NR_CellGroupConfig_t *cellGroupConfig = NULL; NR_CellGroupConfig_t *cellGroupConfig = NULL;
if(resp->du_to_cu_rrc_information!=NULL){ if(resp->du_to_cu_rrc_information->cellGroupConfig!=NULL){
asn_dec_rval_t dec_rval = uper_decode_complete( NULL, asn_dec_rval_t dec_rval = uper_decode_complete( NULL,
&asn_DEF_NR_CellGroupConfig, &asn_DEF_NR_CellGroupConfig,
(void **)&cellGroupConfig, (void **)&cellGroupConfig,
(uint8_t *)resp->du_to_cu_rrc_information, (uint8_t *)resp->du_to_cu_rrc_information->cellGroupConfig,
(int) resp->du_to_cu_rrc_information_length); (int) resp->du_to_cu_rrc_information->cellGroupConfig_length);
if((dec_rval.code != RC_OK) && (dec_rval.consumed == 0)) { if((dec_rval.code != RC_OK) && (dec_rval.consumed == 0)) {
AssertFatal(1==0,"Cell group config decode error\n"); AssertFatal(1==0,"Cell group config decode error\n");
...@@ -3619,15 +3568,7 @@ static void rrc_CU_process_ue_context_modification_response(MessageDef *msg_p, c ...@@ -3619,15 +3568,7 @@ static void rrc_CU_process_ue_context_modification_response(MessageDef *msg_p, c
if(ue_context_p->ue_context.masterCellGroup == NULL){ if(ue_context_p->ue_context.masterCellGroup == NULL){
ue_context_p->ue_context.masterCellGroup = calloc(1, sizeof(NR_CellGroupConfig_t)); ue_context_p->ue_context.masterCellGroup = calloc(1, sizeof(NR_CellGroupConfig_t));
} }
/*if(cellGroupConfig->rlc_BearerToAddModList!=NULL){
if(ue_context_p->ue_context.masterCellGroup->rlc_BearerToAddModList != NULL){
LOG_I(NR_RRC, "rlc_BearerToAddModList not empty before filling it \n");
free(ue_context_p->ue_context.masterCellGroup->rlc_BearerToAddModList);
}
ue_context_p->ue_context.masterCellGroup->rlc_BearerToAddModList = calloc(1, sizeof(*cellGroupConfig->rlc_BearerToAddModList));
memcpy(ue_context_p->ue_context.masterCellGroup->rlc_BearerToAddModList, cellGroupConfig->rlc_BearerToAddModList,
sizeof(*cellGroupConfig->rlc_BearerToAddModList));
}*/
if(cellGroupConfig->rlc_BearerToAddModList!=NULL){ if(cellGroupConfig->rlc_BearerToAddModList!=NULL){
if(ue_context_p->ue_context.masterCellGroup->rlc_BearerToAddModList != NULL){ if(ue_context_p->ue_context.masterCellGroup->rlc_BearerToAddModList != NULL){
int ue_ctxt_rlc_Bearers = ue_context_p->ue_context.masterCellGroup->rlc_BearerToAddModList->list.count; int ue_ctxt_rlc_Bearers = ue_context_p->ue_context.masterCellGroup->rlc_BearerToAddModList->list.count;
......
...@@ -1058,39 +1058,34 @@ rrc_gNB_process_NGAP_PDUSESSION_SETUP_REQ( ...@@ -1058,39 +1058,34 @@ rrc_gNB_process_NGAP_PDUSESSION_SETUP_REQ(
MessageDef *message_p; MessageDef *message_p;
message_p = itti_alloc_new_message (TASK_RRC_GNB, 0, F1AP_UE_CONTEXT_MODIFICATION_REQ); message_p = itti_alloc_new_message (TASK_RRC_GNB, 0, F1AP_UE_CONTEXT_MODIFICATION_REQ);
f1ap_ue_context_setup_t *req=&F1AP_UE_CONTEXT_MODIFICATION_REQ (message_p); f1ap_ue_context_setup_t *req=&F1AP_UE_CONTEXT_MODIFICATION_REQ (message_p);
//UE_IDs will be extracted from F1AP layer
req->gNB_CU_ue_id = 0;
req->gNB_DU_ue_id = 0;
req->rnti = ue_context_p->ue_context.rnti; req->rnti = ue_context_p->ue_context.rnti;
req->mcc = RC.nrrrc[ctxt.module_id]->configuration.mcc[0]; req->mcc = RC.nrrrc[ctxt.module_id]->configuration.mcc[0];
req->mnc = RC.nrrrc[ctxt.module_id]->configuration.mnc[0]; req->mnc = RC.nrrrc[ctxt.module_id]->configuration.mnc[0];
req->mnc_digit_length = RC.nrrrc[ctxt.module_id]->configuration.mnc_digit_length[0]; req->mnc_digit_length = RC.nrrrc[ctxt.module_id]->configuration.mnc_digit_length[0];
req->nr_cellid = RC.nrrrc[ctxt.module_id]->nr_cellid; req->nr_cellid = RC.nrrrc[ctxt.module_id]->nr_cellid;
//if (ue_context_p->ue_context.established_pdu_sessions_flag == 1) { /*Instruction towards the DU for SRB2 configuration*/
/*Instruction towards the DU for SRB2 configuration*/ req->srbs_to_be_setup = malloc(1*sizeof(f1ap_srb_to_be_setup_t));
req->srbs_to_be_setup = malloc(1*sizeof(f1ap_srb_to_be_setup_t)); req->srbs_to_be_setup_length = 1;
req->srbs_to_be_setup_length = 1; f1ap_srb_to_be_setup_t *SRBs=req->srbs_to_be_setup;
f1ap_srb_to_be_setup_t *SRBs=req->srbs_to_be_setup; SRBs[0].srb_id = 2;
SRBs[0].srb_id = 2; SRBs[0].lcid = 2;
SRBs[0].lcid = 2;
/*Instruction towards the DU for DRB configuration and tunnel creation*/
/*Instruction towards the DU for DRB configuration and tunnel creation*/ gtpv1u_gnb_create_tunnel_req_t create_tunnel_req;
gtpv1u_gnb_create_tunnel_req_t create_tunnel_req; memset(&create_tunnel_req, 0, sizeof(gtpv1u_gnb_create_tunnel_req_t));
memset(&create_tunnel_req, 0, sizeof(gtpv1u_gnb_create_tunnel_req_t)); req->drbs_to_be_setup = malloc(1*sizeof(f1ap_drb_to_be_setup_t));
req->drbs_to_be_setup = malloc(1*sizeof(f1ap_drb_to_be_setup_t)); req->drbs_to_be_setup_length = 1;
req->drbs_to_be_setup_length = 1; f1ap_drb_to_be_setup_t *DRBs=req->drbs_to_be_setup;
f1ap_drb_to_be_setup_t *DRBs=req->drbs_to_be_setup; LOG_D(RRC, "Length of DRB list:%d \n", req->drbs_to_be_setup_length);
LOG_I(RRC, "Length of DRB list:%d \n", req->drbs_to_be_setup_length); DRBs[0].drb_id = 1;
DRBs[0].drb_id = 1; DRBs[0].rlc_mode = RLC_MODE_AM;
DRBs[0].rlc_mode = RLC_MODE_AM; DRBs[0].up_ul_tnl[0].tl_address = inet_addr(RC.nrrrc[ctxt.module_id]->eth_params_s.my_addr);
DRBs[0].up_ul_tnl[0].tl_address = inet_addr(RC.nrrrc[ctxt.module_id]->eth_params_s.my_addr); DRBs[0].up_ul_tnl[0].port=RC.nrrrc[ctxt.module_id]->eth_params_s.my_portd;
DRBs[0].up_ul_tnl[0].port=RC.nrrrc[ctxt.module_id]->eth_params_s.my_portd; DRBs[0].up_ul_tnl_length = 1;
DRBs[0].up_ul_tnl_length = 1; DRBs[0].up_dl_tnl[0].tl_address = inet_addr(RC.nrrrc[ctxt.module_id]->eth_params_s.remote_addr);
DRBs[0].up_dl_tnl[0].tl_address = inet_addr(RC.nrrrc[ctxt.module_id]->eth_params_s.remote_addr); DRBs[0].up_dl_tnl[0].port=RC.nrrrc[ctxt.module_id]->eth_params_s.remote_portd;
DRBs[0].up_dl_tnl[0].port=RC.nrrrc[ctxt.module_id]->eth_params_s.remote_portd; DRBs[0].up_dl_tnl_length = 1;
DRBs[0].up_dl_tnl_length = 1;
//}
itti_send_msg_to_task (TASK_CU_F1, ctxt.module_id, message_p); itti_send_msg_to_task (TASK_CU_F1, ctxt.module_id, message_p);
} }
......
...@@ -2699,9 +2699,9 @@ nr_rrc_ue_process_ueCapabilityEnquiry( ...@@ -2699,9 +2699,9 @@ nr_rrc_ue_process_ueCapabilityEnquiry(
AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %jd)!\n", AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %jd)!\n",
enc_rval.failed_type->name, enc_rval.encoded); enc_rval.failed_type->name, enc_rval.encoded);
//if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) { if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) {
xer_fprint(stdout, &asn_DEF_NR_UL_DCCH_Message, (void *)&ul_dcch_msg); xer_fprint(stdout, &asn_DEF_NR_UL_DCCH_Message, (void *)&ul_dcch_msg);
//} }
LOG_I(NR_RRC, "UECapabilityInformation Encoded %zd bits (%zd bytes)\n",enc_rval.encoded,(enc_rval.encoded+7)/8); LOG_I(NR_RRC, "UECapabilityInformation Encoded %zd bits (%zd bytes)\n",enc_rval.encoded,(enc_rval.encoded+7)/8);
#ifdef ITTI_SIM #ifdef ITTI_SIM
......
...@@ -815,12 +815,6 @@ static int Gtpv1uHandleGpdu(int h, ...@@ -815,12 +815,6 @@ static int Gtpv1uHandleGpdu(int h,
return GTPNOK; return GTPNOK;
} }
/*int offset=8;
if( msgHdr->E || msgHdr->S ||msgHdr->PN)
offset+=8;*/
//Minimum length of GTP-U header if non of the optional fields are present //Minimum length of GTP-U header if non of the optional fields are present
int offset= sizeof(Gtpv1uMsgHeaderT); int offset= sizeof(Gtpv1uMsgHeaderT);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment