Refactor F1 Setup Req: TAC is optional
This commit is contained in:
@@ -93,7 +93,7 @@ typedef struct f1ap_plmn_t {
|
||||
typedef struct cellIDs_s {
|
||||
// Served Cell Information
|
||||
/* Tracking area code */
|
||||
uint32_t tac;
|
||||
uint32_t *tac;
|
||||
|
||||
// NR CGI
|
||||
f1ap_plmn_t plmn;
|
||||
|
||||
@@ -122,8 +122,10 @@ int CU_handle_F1_SETUP_REQUEST(instance_t instance,
|
||||
F1AP_Served_Cell_Information_t *servedCellInformation= &served_cells_item->served_Cell_Information;
|
||||
/* tac */
|
||||
if (servedCellInformation->fiveGS_TAC) {
|
||||
OCTET_STRING_TO_INT16(servedCellInformation->fiveGS_TAC, req->cell[i].tac);
|
||||
LOG_D(F1AP, "req->tac[%d] %d \n", i, req->cell[i].tac);
|
||||
req->cell[i].tac = malloc(sizeof(*req->cell[i].tac));
|
||||
AssertFatal(req->cell[i].tac != NULL, "out of memory\n");
|
||||
OCTET_STRING_TO_INT16(servedCellInformation->fiveGS_TAC, *req->cell[i].tac);
|
||||
LOG_D(F1AP, "req->tac[%d] %d \n", i, *req->cell[i].tac);
|
||||
}
|
||||
|
||||
/* - nRCGI */
|
||||
|
||||
@@ -157,9 +157,11 @@ int DU_send_F1_SETUP_REQUEST(instance_t instance, f1ap_setup_req_t *setup_req)
|
||||
/* - nRPCI */
|
||||
served_cell_information->nRPCI = cell->nr_pci; // int 0..1007
|
||||
/* - fiveGS_TAC */
|
||||
uint32_t tac=htonl(cell->tac);
|
||||
asn1cCalloc(served_cell_information->fiveGS_TAC, netOrder);
|
||||
OCTET_STRING_fromBuf(netOrder, ((char *)&tac)+1, 3);
|
||||
if (cell->tac != NULL) {
|
||||
uint32_t tac=htonl(*cell->tac);
|
||||
asn1cCalloc(served_cell_information->fiveGS_TAC, netOrder);
|
||||
OCTET_STRING_fromBuf(netOrder, ((char *)&tac)+1, 3);
|
||||
}
|
||||
|
||||
/* - Configured_EPS_TAC */
|
||||
if(0) {
|
||||
@@ -597,9 +599,11 @@ int DU_send_gNB_DU_CONFIGURATION_UPDATE(instance_t instance,
|
||||
cellIDs_t *cell = &f1ap_setup_req->cell[j];
|
||||
served_cell_information->nRPCI = cell->nr_pci; // int 0..1007
|
||||
/* - fiveGS_TAC */
|
||||
uint32_t tac=htonl(cell->tac);
|
||||
served_cell_information->fiveGS_TAC=(F1AP_FiveGS_TAC_t *) calloc(1,sizeof(F1AP_FiveGS_TAC_t *));
|
||||
OCTET_STRING_fromBuf(served_cell_information->fiveGS_TAC, ((char *)&tac)+1, 3);
|
||||
if (cell->tac != NULL) {
|
||||
uint32_t tac = htonl(*cell->tac);
|
||||
served_cell_information->fiveGS_TAC = calloc(1, sizeof(*served_cell_information->fiveGS_TAC));
|
||||
OCTET_STRING_fromBuf(served_cell_information->fiveGS_TAC, ((char *)&tac)+1, 3);
|
||||
}
|
||||
|
||||
/* - Configured_EPS_TAC */
|
||||
if(1) {
|
||||
|
||||
@@ -1942,7 +1942,9 @@ int RCconfig_NR_DU_F1(MessageDef *msg_p, uint32_t i) {
|
||||
f1Setup->num_cells_available++;
|
||||
f1Setup->gNB_DU_id = *(GNBParamList.paramarray[k][GNB_GNB_ID_IDX].uptr);
|
||||
f1Setup->gNB_DU_name = strdup(*(GNBParamList.paramarray[k][GNB_GNB_NAME_IDX].strptr));
|
||||
f1Setup->cell[k].tac = *GNBParamList.paramarray[k][GNB_TRACKING_AREA_CODE_IDX].uptr;
|
||||
f1Setup->cell[k].tac = malloc(sizeof(*f1Setup->cell[k].tac));
|
||||
AssertFatal(f1Setup->cell[k].tac != NULL, "out of memory\n");
|
||||
*f1Setup->cell[k].tac = *GNBParamList.paramarray[k][GNB_TRACKING_AREA_CODE_IDX].uptr;
|
||||
f1Setup->cell[k].plmn.mcc = *PLMNParamList.paramarray[k][GNB_MOBILE_COUNTRY_CODE_IDX].uptr;
|
||||
f1Setup->cell[k].plmn.mnc = *PLMNParamList.paramarray[k][GNB_MOBILE_NETWORK_CODE_IDX].uptr;
|
||||
f1Setup->cell[k].plmn.mnc_digit_length = *PLMNParamList.paramarray[k][GNB_MNC_DIGIT_LENGTH].u8ptr;
|
||||
@@ -1956,7 +1958,7 @@ int RCconfig_NR_DU_F1(MessageDef *msg_p, uint32_t i) {
|
||||
k,
|
||||
f1Setup->gNB_DU_id,
|
||||
f1Setup->gNB_DU_name,
|
||||
f1Setup->cell[k].tac,
|
||||
*f1Setup->cell[k].tac,
|
||||
f1Setup->cell[k].plmn.mcc,
|
||||
f1Setup->cell[k].plmn.mnc,
|
||||
f1Setup->cell[k].plmn.mnc_digit_length,
|
||||
@@ -1978,7 +1980,7 @@ int RCconfig_NR_DU_F1(MessageDef *msg_p, uint32_t i) {
|
||||
|
||||
rrc->configuration.mcc[0] = f1Setup->cell[k].plmn.mcc;
|
||||
rrc->configuration.mnc[0] = f1Setup->cell[k].plmn.mnc;
|
||||
rrc->configuration.tac = f1Setup->cell[k].tac;
|
||||
rrc->configuration.tac = *f1Setup->cell[k].tac;
|
||||
rrc->nr_cellid = f1Setup->cell[k].nr_cellid;
|
||||
f1Setup->cell[k].nr_pci = *rrc->configuration.scc->physCellId;
|
||||
f1Setup->cell[k].num_ssi = 0;
|
||||
|
||||
Reference in New Issue
Block a user