configure TAG list
This commit is contained in:
@@ -1959,12 +1959,29 @@ static void configure_maccellgroup(NR_UE_MAC_INST_t *mac, const NR_MAC_CellGroup
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (mcg->tag_Config) {
|
if (mcg->tag_Config) {
|
||||||
// TODO TAG not handled
|
if (mcg->tag_Config->tag_ToReleaseList) {
|
||||||
if(mcg->tag_Config->tag_ToAddModList) {
|
for (int i = 0; i < mcg->tag_Config->tag_ToReleaseList->list.count; i++) {
|
||||||
|
for (int j = 0; j < mac->TAG_list.count; j++) {
|
||||||
|
if (*mcg->tag_Config->tag_ToReleaseList->list.array[i] == mac->TAG_list.array[j]->tag_Id)
|
||||||
|
asn_sequence_del(&mac->TAG_list, j, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (mcg->tag_Config->tag_ToAddModList) {
|
||||||
for (int i = 0; i < mcg->tag_Config->tag_ToAddModList->list.count; i++) {
|
for (int i = 0; i < mcg->tag_Config->tag_ToAddModList->list.count; i++) {
|
||||||
if (mcg->tag_Config->tag_ToAddModList->list.array[i]->timeAlignmentTimer !=
|
int j;
|
||||||
NR_TimeAlignmentTimer_infinity)
|
for (j = 0; j < mac->TAG_list.count; j++) {
|
||||||
LOG_E(NR_MAC, "TimeAlignmentTimer not handled\n");
|
if (mac->TAG_list.array[j]->tag_Id == mcg->tag_Config->tag_ToAddModList->list.array[i]->tag_Id)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (j < mac->TAG_list.count) {
|
||||||
|
UPDATE_IE(mac->TAG_list.array[j], mcg->tag_Config->tag_ToAddModList->list.array[i], NR_TAG_t);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
NR_TAG_t *local_tag = NULL;
|
||||||
|
UPDATE_IE(local_tag, mcg->tag_Config->tag_ToAddModList->list.array[i], NR_TAG_t);
|
||||||
|
ASN_SEQUENCE_ADD(&mac->TAG_list, local_tag);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -76,7 +76,6 @@
|
|||||||
#define NR_INVALID_LCGID (NR_MAX_NUM_LCGID)
|
#define NR_INVALID_LCGID (NR_MAX_NUM_LCGID)
|
||||||
|
|
||||||
#define MAX_NUM_BWP_UE 5
|
#define MAX_NUM_BWP_UE 5
|
||||||
#define NUM_SLOT_FRAME 10
|
|
||||||
#define NR_MAX_SR_ID 8 // SchedulingRequestId ::= INTEGER (0..7)
|
#define NR_MAX_SR_ID 8 // SchedulingRequestId ::= INTEGER (0..7)
|
||||||
|
|
||||||
/*!\brief value for indicating BSR Timer is not running */
|
/*!\brief value for indicating BSR Timer is not running */
|
||||||
@@ -595,6 +594,7 @@ typedef struct NR_UE_MAC_INST_s {
|
|||||||
NR_UL_HARQ_INFO_t ul_harq_info[NR_MAX_HARQ_PROCESSES];
|
NR_UL_HARQ_INFO_t ul_harq_info[NR_MAX_HARQ_PROCESSES];
|
||||||
|
|
||||||
NR_TAG_Id_t tag_Id;
|
NR_TAG_Id_t tag_Id;
|
||||||
|
A_SEQUENCE_OF(NR_TAG_t) TAG_list;
|
||||||
|
|
||||||
nr_emulated_l1_t nr_ue_emul_l1;
|
nr_emulated_l1_t nr_ue_emul_l1;
|
||||||
|
|
||||||
|
|||||||
@@ -321,6 +321,8 @@ void release_mac_configuration(NR_UE_MAC_INST_t *mac, NR_UE_MAC_reset_cause_t ca
|
|||||||
memset(&mac->ssb_measurements, 0, sizeof(mac->ssb_measurements));
|
memset(&mac->ssb_measurements, 0, sizeof(mac->ssb_measurements));
|
||||||
memset(&mac->csirs_measurements, 0, sizeof(mac->csirs_measurements));
|
memset(&mac->csirs_measurements, 0, sizeof(mac->csirs_measurements));
|
||||||
memset(&mac->ul_time_alignment, 0, sizeof(mac->ul_time_alignment));
|
memset(&mac->ul_time_alignment, 0, sizeof(mac->ul_time_alignment));
|
||||||
|
for (int i = mac->TAG_list.count; i > 0 ; i--)
|
||||||
|
asn_sequence_del(&mac->TAG_list, i - 1, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void free_rach_structures(NR_UE_MAC_INST_t *nr_mac, int bwp_id)
|
void free_rach_structures(NR_UE_MAC_INST_t *nr_mac, int bwp_id)
|
||||||
|
|||||||
Reference in New Issue
Block a user