Commit 928c189e authored by matzakos's avatar matzakos

Modify starting LCID for DTCH to start from 4 instead of 3 for both UL and DL

- Make required adaptations in RLC and default DRB configuration
parent 1552be34
...@@ -176,7 +176,7 @@ typedef struct { ...@@ -176,7 +176,7 @@ typedef struct {
#define DL_SCH_LCID_CCCH 0x00 #define DL_SCH_LCID_CCCH 0x00
#define DL_SCH_LCID_DCCH 0x01 #define DL_SCH_LCID_DCCH 0x01
#define DL_SCH_LCID_DCCH1 0x02 #define DL_SCH_LCID_DCCH1 0x02
#define DL_SCH_LCID_DTCH 0x03 #define DL_SCH_LCID_DTCH 0x04
#define DL_SCH_LCID_RECOMMENDED_BITRATE 0x2F #define DL_SCH_LCID_RECOMMENDED_BITRATE 0x2F
#define DL_SCH_LCID_SP_ZP_CSI_RS_RES_SET_ACT 0x30 #define DL_SCH_LCID_SP_ZP_CSI_RS_RES_SET_ACT 0x30
#define DL_SCH_LCID_PUCCH_SPATIAL_RELATION_ACT 0x31 #define DL_SCH_LCID_PUCCH_SPATIAL_RELATION_ACT 0x31
......
...@@ -2390,7 +2390,7 @@ void nr_ip_over_LTE_DRB_preconfiguration(void){ ...@@ -2390,7 +2390,7 @@ void nr_ip_over_LTE_DRB_preconfiguration(void){
// 1 + drb_identiy_index; // 1 + drb_identiy_index;
DRB_config->drb_Identity = 1; DRB_config->drb_Identity = 1;
DRB_config->logicalChannelIdentity = CALLOC(1, sizeof(long)); DRB_config->logicalChannelIdentity = CALLOC(1, sizeof(long));
*(DRB_config->logicalChannelIdentity) = DRB_config->drb_Identity + 2; //(long) (ue_context_pP->ue_context.e_rab[i].param.e_rab_id + 2); // value : x+2 *(DRB_config->logicalChannelIdentity) = DRB_config->drb_Identity + 3; //(long) (ue_context_pP->ue_context.e_rab[i].param.e_rab_id + 2); // value : x+2
DRB_rlc_config = CALLOC(1, sizeof(*DRB_rlc_config)); DRB_rlc_config = CALLOC(1, sizeof(*DRB_rlc_config));
DRB_config->rlc_Config = DRB_rlc_config; DRB_config->rlc_Config = DRB_rlc_config;
......
...@@ -72,8 +72,8 @@ void mac_rlc_data_ind ( ...@@ -72,8 +72,8 @@ void mac_rlc_data_ind (
LOG_I(RLC, "RLC instance for the given UE was not found \n"); LOG_I(RLC, "RLC instance for the given UE was not found \n");
switch (channel_idP) { switch (channel_idP) {
case 1 ... 2: rb = ue->srb[channel_idP - 1]; break; case 1 ... 3: rb = ue->srb[channel_idP - 1]; break;
case 3 ... 7: rb = ue->drb[channel_idP - 3]; break; case 4 ... 7: rb = ue->drb[channel_idP - 4]; break;
default: rb = NULL; break; default: rb = NULL; break;
} }
...@@ -113,8 +113,8 @@ tbs_size_t mac_rlc_data_req( ...@@ -113,8 +113,8 @@ tbs_size_t mac_rlc_data_req(
ue = nr_rlc_manager_get_ue(nr_rlc_ue_manager, rntiP); ue = nr_rlc_manager_get_ue(nr_rlc_ue_manager, rntiP);
switch (channel_idP) { switch (channel_idP) {
case 1 ... 2: rb = ue->srb[channel_idP - 1]; break; case 1 ... 3: rb = ue->srb[channel_idP - 1]; break;
case 3 ... 7: rb = ue->drb[channel_idP - 3]; break; case 4 ... 7: rb = ue->drb[channel_idP - 4]; break;
default: rb = NULL; break; default: rb = NULL; break;
} }
...@@ -123,7 +123,7 @@ tbs_size_t mac_rlc_data_req( ...@@ -123,7 +123,7 @@ tbs_size_t mac_rlc_data_req(
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_E(RLC, "%s:%d:%s: fatal: data req for unknown RB\n", __FILE__, __LINE__, __FUNCTION__); LOG_E(RLC, "%s:%d:%s: fatal: data req for unknown RB, channel_idP: %d\n", __FILE__, __LINE__, __FUNCTION__, channel_idP);
exit(1); exit(1);
ret = 0; ret = 0;
} }
...@@ -166,8 +166,8 @@ mac_rlc_status_resp_t mac_rlc_status_ind( ...@@ -166,8 +166,8 @@ mac_rlc_status_resp_t mac_rlc_status_ind(
ue = nr_rlc_manager_get_ue(nr_rlc_ue_manager, rntiP); ue = nr_rlc_manager_get_ue(nr_rlc_ue_manager, rntiP);
switch (channel_idP) { switch (channel_idP) {
case 1 ... 2: rb = ue->srb[channel_idP - 1]; break; case 1 ... 3: rb = ue->srb[channel_idP - 1]; break;
case 3 ... 7: rb = ue->drb[channel_idP - 3]; break; case 4 ... 7: rb = ue->drb[channel_idP - 4]; break;
default: rb = NULL; break; default: rb = NULL; break;
} }
...@@ -227,8 +227,8 @@ rlc_buffer_occupancy_t mac_rlc_get_buffer_occupancy_ind( ...@@ -227,8 +227,8 @@ rlc_buffer_occupancy_t mac_rlc_get_buffer_occupancy_ind(
ue = nr_rlc_manager_get_ue(nr_rlc_ue_manager, rntiP); ue = nr_rlc_manager_get_ue(nr_rlc_ue_manager, rntiP);
switch (channel_idP) { switch (channel_idP) {
case 1 ... 2: rb = ue->srb[channel_idP - 1]; break; case 1 ... 3: rb = ue->srb[channel_idP - 1]; break;
case 3 ... 7: rb = ue->drb[channel_idP - 3]; break; case 4 ... 7: rb = ue->drb[channel_idP - 4]; break;
default: rb = NULL; break; default: rb = NULL; break;
} }
...@@ -654,11 +654,11 @@ static void add_drb_am(int rnti, struct LTE_DRB_ToAddMod *s) ...@@ -654,11 +654,11 @@ static void add_drb_am(int rnti, struct LTE_DRB_ToAddMod *s)
exit(1); exit(1);
} }
if (channel_id != drb_id + 2) { /*if (channel_id != drb_id + 2) {
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;
...@@ -737,11 +737,11 @@ static void add_drb_um(int rnti, struct LTE_DRB_ToAddMod *s) ...@@ -737,11 +737,11 @@ static void add_drb_um(int rnti, struct LTE_DRB_ToAddMod *s)
exit(1); exit(1);
} }
if (channel_id != drb_id + 2) { /*if (channel_id != drb_id + 2) {
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;
......
...@@ -28,7 +28,7 @@ typedef void nr_rlc_ue_manager_t; ...@@ -28,7 +28,7 @@ typedef void nr_rlc_ue_manager_t;
typedef struct nr_rlc_ue_t { typedef struct nr_rlc_ue_t {
int rnti; int rnti;
nr_rlc_entity_t *srb[2]; nr_rlc_entity_t *srb[3];
nr_rlc_entity_t *drb[5]; nr_rlc_entity_t *drb[5];
} nr_rlc_ue_t; } nr_rlc_ue_t;
......
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