Fix for servedRadioBearer to be NULL in RLC Bearer Config

This commit is contained in:
alexjiao
2025-11-29 22:39:43 +08:00
parent 1603077171
commit 2e80700d78
+7 -2
View File
@@ -886,6 +886,7 @@ static void nr_configure_lc_config(NR_UE_MAC_INST_t *mac,
nr_lcid_rb_t rb) nr_lcid_rb_t rb)
{ {
NR_LC_SCHEDULING_INFO *lc_sched_info = get_scheduling_info_from_lcid(mac, lc_info->lcid); NR_LC_SCHEDULING_INFO *lc_sched_info = get_scheduling_info_from_lcid(mac, lc_info->lcid);
if (rb.type != NR_LCID_NONE)
lc_info->rb = rb; lc_info->rb = rb;
lc_info->rb_suspended = false; lc_info->rb_suspended = false;
if (rb.type == NR_LCID_SRB && !mac_lc_config->ul_SpecificParameters) { if (rb.type == NR_LCID_SRB && !mac_lc_config->ul_SpecificParameters) {
@@ -914,6 +915,12 @@ static void nr_configure_lc_config(NR_UE_MAC_INST_t *mac,
static nr_lcid_rb_t configure_lcid_rb(NR_RLC_BearerConfig_t *rlc_bearer) static nr_lcid_rb_t configure_lcid_rb(NR_RLC_BearerConfig_t *rlc_bearer)
{ {
nr_lcid_rb_t rb; nr_lcid_rb_t rb;
if (!rlc_bearer->servedRadioBearer) {
LOG_W(NR_MAC, "RLC bearer config does not contain servedRadioBearer.\n");
rb.type = NR_LCID_NONE;
return rb;
}
if (rlc_bearer->servedRadioBearer->present == NR_RLC_BearerConfig__servedRadioBearer_PR_srb_Identity) { if (rlc_bearer->servedRadioBearer->present == NR_RLC_BearerConfig__servedRadioBearer_PR_srb_Identity) {
rb.type = NR_LCID_SRB; rb.type = NR_LCID_SRB;
rb.choice.srb_id = rlc_bearer->servedRadioBearer->choice.srb_Identity; rb.choice.srb_id = rlc_bearer->servedRadioBearer->choice.srb_Identity;
@@ -953,8 +960,6 @@ static void configure_logicalChannelBearer(NR_UE_MAC_INST_t *mac,
for (int i = 0; i < rlc_toadd_list->list.count; i++) { for (int i = 0; i < rlc_toadd_list->list.count; i++) {
NR_RLC_BearerConfig_t *rlc_bearer = rlc_toadd_list->list.array[i]; NR_RLC_BearerConfig_t *rlc_bearer = rlc_toadd_list->list.array[i];
nr_lcid_rb_t rb = configure_lcid_rb(rlc_bearer); nr_lcid_rb_t rb = configure_lcid_rb(rlc_bearer);
if (rb.type == NR_LCID_NONE)
continue;
int lc_identity = rlc_bearer->logicalChannelIdentity; int lc_identity = rlc_bearer->logicalChannelIdentity;
NR_LogicalChannelConfig_t *mac_lc_config = rlc_bearer->mac_LogicalChannelConfig; NR_LogicalChannelConfig_t *mac_lc_config = rlc_bearer->mac_LogicalChannelConfig;
int j; int j;