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
This commit is contained in:
@@ -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){
|
|||||||
// 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 (
|
|||||||
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(
|
|||||||
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(
|
|||||||
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(
|
|||||||
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(
|
|||||||
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)
|
|||||||
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)
|
|||||||
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;
|
|||||||
|
|
||||||
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;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user