From ae140c2b9515a9d9f13a44fcdbc38dfaf051af47 Mon Sep 17 00:00:00 2001
From: Anurag Asokan <anurag.asokan@firecell.io>
Date: Wed, 13 Jul 2022 10:51:10 +0200
Subject: [PATCH] SIB1 Decoding using T_tracer

---
 common/utils/T/tracer/macpdu2wireshark.c       | 17 +++++++++++++----
 openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c |  5 +++++
 2 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/common/utils/T/tracer/macpdu2wireshark.c b/common/utils/T/tracer/macpdu2wireshark.c
index 195bf33335..819f0f30f3 100644
--- a/common/utils/T/tracer/macpdu2wireshark.c
+++ b/common/utils/T/tracer/macpdu2wireshark.c
@@ -346,10 +346,19 @@ void nr_dl(void *_d, event e)
 {
   ev_data *d = _d;
 
-  trace_nr(d, NR_DIRECTION_DOWNLINK, NR_C_RNTI, e.e[d->nr_dl_rnti].i,
-           e.e[d->nr_dl_frame].i, e.e[d->nr_dl_slot].i,
-           e.e[d->nr_dl_harq_pid].i, e.e[d->nr_dl_data].b,
-           e.e[d->nr_dl_data].bsize, NO_PREAMBLE);
+  if (e.e[d->nr_dl_rnti].i == 0xffff) {
+    if (d->no_sib) return;
+
+    if (d->max_sib && d->cur_sib == d->max_sib) return;
+
+    d->cur_sib++;
+  }
+
+  trace_nr(d, NR_DIRECTION_DOWNLINK,
+            e.e[d->nr_dl_rnti].i != 0xffff ? NR_C_RNTI : 4, e.e[d->nr_dl_rnti].i,
+            e.e[d->nr_dl_frame].i, e.e[d->nr_dl_slot].i,
+            e.e[d->nr_dl_harq_pid].i, e.e[d->nr_dl_data].b,
+            e.e[d->nr_dl_data].bsize, NO_PREAMBLE);
 }
 
 void nr_dl_retx(void *_d, event e)
diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
index 7d16a4ee01..7dbfadb0c2 100644
--- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
+++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
@@ -562,6 +562,7 @@ void nr_fill_nfapi_dl_sib1_pdu(int Mod_idP,
   LOG_D(MAC,"precoderGranularity: %i\n", pdcch_pdu_rel15->precoderGranularity);
   LOG_D(MAC,"numDlDci: %i\n", pdcch_pdu_rel15->numDlDci);
 
+
 }
 
 void schedule_nr_sib1(module_id_t module_idP, frame_t frameP, sub_frame_t slotP) {
@@ -652,6 +653,10 @@ void schedule_nr_sib1(module_id_t module_idP, frame_t frameP, sub_frame_t slotP)
       gNB_mac->TX_req[CC_id].Slot = slotP;
 
       type0_PDCCH_CSS_config->active = false;
+
+      T(T_GNB_MAC_DL_PDU_WITH_DATA, T_INT(module_idP), T_INT(CC_id), T_INT(SI_RNTI),
+         T_INT(frameP), T_INT(slotP), T_INT(0), T_BUFFER(sib1_payload, sib1_sdu_length));
+
     }
   }
 }
-- 
2.26.2