diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
index be5d9e8da9f24a142d67e0f69415233afa192f79..3b6c48bd3687bceb99b21c546b949945bb88cb5f 100644
--- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
+++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
@@ -698,6 +698,13 @@ void nr_schedule_ue_spec(module_id_t module_id,
     if (harq->round == 0)
       UE_info->mac_stats[UE_id].dlsch_total_bytes += TBS;
 
+    NR_UE_ret_info_t *retInfo = &sched_ctrl->retInfo[current_harq_pid];
+    retInfo->rbSize = sched_ctrl->rbSize;
+    retInfo->time_domain_allocation = sched_ctrl->time_domain_allocation;
+    retInfo->mcsTableIdx = sched_ctrl->mcsTableIdx;
+    retInfo->mcs = sched_ctrl->mcs;
+    retInfo->numDmrsCdmGrpsNoData = sched_ctrl->numDmrsCdmGrpsNoData;
+
     nfapi_nr_dl_tti_request_body_t *dl_req = &gNB_mac->DL_req[CC_id].dl_tti_request_body;
     nr_fill_nfapi_dl_pdu(module_id,
                          UE_id,
diff --git a/openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h b/openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
index 989462c5a4327d37e0ebf57c1831c849223bc745..0ed64a962129fd549e5fd6ad93605447906659e7 100644
--- a/openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
+++ b/openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
@@ -279,6 +279,14 @@ typedef struct NR_UE_harq {
   uint16_t feedback_slot;
 } NR_UE_harq_t;
 
+typedef struct NR_UE_old_sched {
+  uint16_t rbSize;
+  int time_domain_allocation;
+  uint8_t mcsTableIdx;
+  uint8_t mcs;
+  uint8_t numDmrsCdmGrpsNoData;
+} NR_UE_ret_info_t;
+
 typedef enum {
   INACTIVE = 0,
   ACTIVE_NOT_SCHED,
@@ -324,6 +332,9 @@ typedef struct {
   uint8_t mcs;
   uint8_t numDmrsCdmGrpsNoData;
 
+  /// Retransmission-related information
+  NR_UE_ret_info_t retInfo[NR_MAX_NB_HARQ_PROCESSES];
+
   uint16_t ta_timer;
   int16_t ta_update;
   bool ta_apply;