Commit 46491eec authored by francescomani's avatar francescomani

fix in setup and release of aperiodicTriggerStateList

parent 908b9689
...@@ -1613,22 +1613,25 @@ static void configure_csiconfig(NR_UE_ServingCell_Info_t *sc_info, struct NR_Set ...@@ -1613,22 +1613,25 @@ static void configure_csiconfig(NR_UE_ServingCell_Info_t *sc_info, struct NR_Set
switch (csi_MeasConfig_sr->present) { switch (csi_MeasConfig_sr->present) {
case NR_SetupRelease_CSI_MeasConfig_PR_NOTHING: case NR_SetupRelease_CSI_MeasConfig_PR_NOTHING:
break; break;
case NR_SetupRelease_CSI_MeasConfig_PR_release : case NR_SetupRelease_CSI_MeasConfig_PR_release:
asn1cFreeStruc(asn_DEF_NR_CSI_MeasConfig, sc_info->csi_MeasConfig); asn1cFreeStruc(asn_DEF_NR_CSI_MeasConfig, sc_info->csi_MeasConfig);
asn1cFreeStruc(asn_DEF_NR_CSI_AperiodicTriggerStateList, sc_info->aperiodicTriggerStateList);
break; break;
case NR_SetupRelease_CSI_MeasConfig_PR_setup: case NR_SetupRelease_CSI_MeasConfig_PR_setup: {
if (!sc_info->csi_MeasConfig) { // setup
UPDATE_MAC_IE(sc_info->csi_MeasConfig, csi_MeasConfig_sr->choice.setup, NR_CSI_MeasConfig_t);
} else { // modification
NR_CSI_MeasConfig_t *target = sc_info->csi_MeasConfig;
NR_CSI_MeasConfig_t *csi_MeasConfig = csi_MeasConfig_sr->choice.setup; NR_CSI_MeasConfig_t *csi_MeasConfig = csi_MeasConfig_sr->choice.setup;
if (csi_MeasConfig->reportTriggerSize) // separately handling aperiodicTriggerStateList
UPDATE_MAC_IE(target->reportTriggerSize, csi_MeasConfig->reportTriggerSize, long); // because it is set directly into sc_info structure
if (csi_MeasConfig->aperiodicTriggerStateList) if (csi_MeasConfig->aperiodicTriggerStateList)
HANDLE_SETUPRELEASE_DIRECT(sc_info->aperiodicTriggerStateList, HANDLE_SETUPRELEASE_DIRECT(sc_info->aperiodicTriggerStateList,
csi_MeasConfig->aperiodicTriggerStateList, csi_MeasConfig->aperiodicTriggerStateList,
NR_CSI_AperiodicTriggerStateList_t, NR_CSI_AperiodicTriggerStateList_t,
asn_DEF_NR_CSI_AperiodicTriggerStateList); asn_DEF_NR_CSI_AperiodicTriggerStateList);
if (!sc_info->csi_MeasConfig) { // setup
UPDATE_MAC_IE(sc_info->csi_MeasConfig, csi_MeasConfig, NR_CSI_MeasConfig_t);
} else { // modification
NR_CSI_MeasConfig_t *target = sc_info->csi_MeasConfig;
if (csi_MeasConfig->reportTriggerSize)
UPDATE_MAC_IE(target->reportTriggerSize, csi_MeasConfig->reportTriggerSize, long);
if (csi_MeasConfig->semiPersistentOnPUSCH_TriggerStateList) if (csi_MeasConfig->semiPersistentOnPUSCH_TriggerStateList)
HANDLE_SETUPRELEASE_IE(target->semiPersistentOnPUSCH_TriggerStateList, HANDLE_SETUPRELEASE_IE(target->semiPersistentOnPUSCH_TriggerStateList,
csi_MeasConfig->semiPersistentOnPUSCH_TriggerStateList, csi_MeasConfig->semiPersistentOnPUSCH_TriggerStateList,
...@@ -1736,6 +1739,7 @@ static void configure_csiconfig(NR_UE_ServingCell_Info_t *sc_info, struct NR_Set ...@@ -1736,6 +1739,7 @@ static void configure_csiconfig(NR_UE_ServingCell_Info_t *sc_info, struct NR_Set
} }
} }
break; break;
}
default: default:
AssertFatal(false, "Invalid case\n"); AssertFatal(false, "Invalid case\n");
} }
......
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