Change mapping between DRB id and channel id for interoperability with Accelleran CU
-Some hardcodings also added to be removed later
This commit is contained in:
@@ -33,7 +33,7 @@
|
|||||||
#include "f1ap_common.h"
|
#include "f1ap_common.h"
|
||||||
#include "f1ap_decoder.h"
|
#include "f1ap_decoder.h"
|
||||||
|
|
||||||
int asn1_decoder_xer_print = 0;
|
int asn1_decoder_xer_print = 1;
|
||||||
|
|
||||||
static int f1ap_decode_initiating_message(F1AP_F1AP_PDU_t *pdu) {
|
static int f1ap_decode_initiating_message(F1AP_F1AP_PDU_t *pdu) {
|
||||||
//MessageDef *message_p;
|
//MessageDef *message_p;
|
||||||
|
|||||||
@@ -127,7 +127,7 @@ void *F1AP_DU_task(void *arg) {
|
|||||||
LOG_I(F1AP, "DU Task Received F1AP_SETUP_REQ\n");
|
LOG_I(F1AP, "DU Task Received F1AP_SETUP_REQ\n");
|
||||||
f1ap_setup_req_t *msgSetup=&F1AP_SETUP_REQ(msg);
|
f1ap_setup_req_t *msgSetup=&F1AP_SETUP_REQ(msg);
|
||||||
createF1inst(false, myInstance, msgSetup);
|
createF1inst(false, myInstance, msgSetup);
|
||||||
getCxt(DUtype, myInstance)->gtpInst=du_create_gtpu_instance_to_cu(msgSetup->CU_f1_ip_address.ipv4_address,
|
getCxt(DUtype, myInstance)->gtpInst=du_create_gtpu_instance_to_cu("192.168.18.91", //msgSetup->CU_f1_ip_address.ipv4_address, //"192.168.18.91"
|
||||||
msgSetup->CUport,
|
msgSetup->CUport,
|
||||||
msgSetup->DU_f1_ip_address.ipv4_address,
|
msgSetup->DU_f1_ip_address.ipv4_address,
|
||||||
msgSetup->DUport);
|
msgSetup->DUport);
|
||||||
|
|||||||
@@ -166,7 +166,7 @@ void mac_rlc_data_ind (
|
|||||||
|
|
||||||
switch (channel_idP) {
|
switch (channel_idP) {
|
||||||
case 1 ... 3: rb = ue->srb[channel_idP - 1]; break;
|
case 1 ... 3: rb = ue->srb[channel_idP - 1]; break;
|
||||||
case 4 ... 8: rb = ue->drb[channel_idP - 4]; break;
|
case 4 ... 8: rb = ue->drb[channel_idP - 1]; break;
|
||||||
default: rb = NULL; break;
|
default: rb = NULL; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -207,7 +207,7 @@ tbs_size_t mac_rlc_data_req(
|
|||||||
|
|
||||||
switch (channel_idP) {
|
switch (channel_idP) {
|
||||||
case 1 ... 3: rb = ue->srb[channel_idP - 1]; break;
|
case 1 ... 3: rb = ue->srb[channel_idP - 1]; break;
|
||||||
case 4 ... 8: rb = ue->drb[channel_idP - 4]; break;
|
case 4 ... 8: rb = ue->drb[channel_idP - 1]; break;
|
||||||
default:
|
default:
|
||||||
rb = NULL;
|
rb = NULL;
|
||||||
LOG_E(RLC, "In %s:%d:%s: data request for unknown RB with LCID 0x%02x !\n", __FILE__, __LINE__, __FUNCTION__, channel_idP);
|
LOG_E(RLC, "In %s:%d:%s: data request for unknown RB with LCID 0x%02x !\n", __FILE__, __LINE__, __FUNCTION__, channel_idP);
|
||||||
@@ -215,10 +215,12 @@ tbs_size_t mac_rlc_data_req(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (rb != NULL) {
|
if (rb != NULL) {
|
||||||
|
LOG_D(RLC, "MAC PDU to get created for channel_idP:%d \n", channel_idP);
|
||||||
rb->set_time(rb, nr_rlc_current_time);
|
rb->set_time(rb, nr_rlc_current_time);
|
||||||
maxsize = tb_sizeP;
|
maxsize = tb_sizeP;
|
||||||
ret = rb->generate_pdu(rb, buffer_pP, maxsize);
|
ret = rb->generate_pdu(rb, buffer_pP, maxsize);
|
||||||
} else {
|
} else {
|
||||||
|
LOG_D(RLC, "MAC PDU failed to get created for channel_idP:%d \n", channel_idP);
|
||||||
ret = 0;
|
ret = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -253,7 +255,7 @@ mac_rlc_status_resp_t mac_rlc_status_ind(
|
|||||||
|
|
||||||
switch (channel_idP) {
|
switch (channel_idP) {
|
||||||
case 1 ... 3: rb = ue->srb[channel_idP - 1]; break;
|
case 1 ... 3: rb = ue->srb[channel_idP - 1]; break;
|
||||||
case 4 ... 8: rb = ue->drb[channel_idP - 4]; break;
|
case 4 ... 8: rb = ue->drb[channel_idP - 1]; break;
|
||||||
default: rb = NULL; break;
|
default: rb = NULL; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -316,7 +318,7 @@ rlc_buffer_occupancy_t mac_rlc_get_buffer_occupancy_ind(
|
|||||||
|
|
||||||
switch (channel_idP) {
|
switch (channel_idP) {
|
||||||
case 1 ... 3: rb = ue->srb[channel_idP - 1]; break;
|
case 1 ... 3: rb = ue->srb[channel_idP - 1]; break;
|
||||||
case 4 ... 8: rb = ue->drb[channel_idP - 4]; break;
|
case 4 ... 8: rb = ue->drb[channel_idP - 1]; break; //4
|
||||||
default: rb = NULL; break;
|
default: rb = NULL; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -751,7 +753,7 @@ static void add_drb_am(int rnti, struct NR_DRB_ToAddMod *s, NR_RLC_BearerConfig_
|
|||||||
struct NR_RLC_Config *r = rlc_BearerConfig->rlc_Config;
|
struct NR_RLC_Config *r = rlc_BearerConfig->rlc_Config;
|
||||||
struct NR_LogicalChannelConfig *l = rlc_BearerConfig->mac_LogicalChannelConfig;
|
struct NR_LogicalChannelConfig *l = rlc_BearerConfig->mac_LogicalChannelConfig;
|
||||||
int drb_id = s->drb_Identity;
|
int drb_id = s->drb_Identity;
|
||||||
int channel_id = rlc_BearerConfig->logicalChannelIdentity;
|
//int channel_id = rlc_BearerConfig->logicalChannelIdentity;
|
||||||
int logical_channel_group;
|
int logical_channel_group;
|
||||||
|
|
||||||
int t_status_prohibit;
|
int t_status_prohibit;
|
||||||
@@ -768,11 +770,11 @@ static void add_drb_am(int rnti, struct NR_DRB_ToAddMod *s, NR_RLC_BearerConfig_
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (channel_id != drb_id + 3) {
|
/*if (channel_id != drb_id + 3) {
|
||||||
LOG_E(RLC, "%s:%d:%s: todo, remove this limitation\n",
|
LOG_E(RLC, "%s:%d:%s: todo, remove this limitation\n",
|
||||||
__FILE__, __LINE__, __FUNCTION__);
|
__FILE__, __LINE__, __FUNCTION__);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}*/
|
||||||
|
|
||||||
logical_channel_group = *l->ul_SpecificParameters->logicalChannelGroup;
|
logical_channel_group = *l->ul_SpecificParameters->logicalChannelGroup;
|
||||||
|
|
||||||
|
|||||||
@@ -1647,7 +1647,7 @@ void fill_mastercellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig, NR_CellGr
|
|||||||
rlc_BearerConfig_drb->logicalChannelIdentity = 4;
|
rlc_BearerConfig_drb->logicalChannelIdentity = 4;
|
||||||
rlc_BearerConfig_drb->servedRadioBearer = calloc(1, sizeof(*rlc_BearerConfig_drb->servedRadioBearer));
|
rlc_BearerConfig_drb->servedRadioBearer = calloc(1, sizeof(*rlc_BearerConfig_drb->servedRadioBearer));
|
||||||
rlc_BearerConfig_drb->servedRadioBearer->present = NR_RLC_BearerConfig__servedRadioBearer_PR_drb_Identity;
|
rlc_BearerConfig_drb->servedRadioBearer->present = NR_RLC_BearerConfig__servedRadioBearer_PR_drb_Identity;
|
||||||
rlc_BearerConfig_drb->servedRadioBearer->choice.drb_Identity = 1;
|
rlc_BearerConfig_drb->servedRadioBearer->choice.drb_Identity = 4; //1;
|
||||||
rlc_BearerConfig_drb->reestablishRLC = NULL;
|
rlc_BearerConfig_drb->reestablishRLC = NULL;
|
||||||
rlc_Config_drb = calloc(1, sizeof(NR_RLC_Config_t));
|
rlc_Config_drb = calloc(1, sizeof(NR_RLC_Config_t));
|
||||||
rlc_Config_drb->present = NR_RLC_Config_PR_am;
|
rlc_Config_drb->present = NR_RLC_Config_PR_am;
|
||||||
|
|||||||
Reference in New Issue
Block a user