add macro for invalid RNTI 0x0

master
Andre Puschmann 5 years ago
parent 265037c202
commit 327aa97cfd

@ -71,6 +71,7 @@
typedef enum { SRSLTE_CP_NORM = 0, SRSLTE_CP_EXT } srslte_cp_t; typedef enum { SRSLTE_CP_NORM = 0, SRSLTE_CP_EXT } srslte_cp_t;
typedef enum { SRSLTE_SF_NORM = 0, SRSLTE_SF_MBSFN } srslte_sf_t; typedef enum { SRSLTE_SF_NORM = 0, SRSLTE_SF_MBSFN } srslte_sf_t;
#define SRSLTE_INVALID_RNTI 0x0 // TS 36.321 - Table 7.1-1 RNTI 0x0 isn't a valid DL RNTI
#define SRSLTE_CRNTI_START 0x000B #define SRSLTE_CRNTI_START 0x000B
#define SRSLTE_CRNTI_END 0xFFF3 #define SRSLTE_CRNTI_END 0xFFF3
#define SRSLTE_RARNTI_START 0x0001 #define SRSLTE_RARNTI_START 0x0001

@ -370,10 +370,9 @@ int cc_worker::decode_pdcch_dl()
{ {
int nof_grants = 0; int nof_grants = 0;
srslte_dci_dl_t dci[SRSLTE_MAX_CARRIERS] = {};
uint16_t dl_rnti = phy->stack->get_dl_sched_rnti(CURRENT_TTI); uint16_t dl_rnti = phy->stack->get_dl_sched_rnti(CURRENT_TTI);
if (dl_rnti) { if (dl_rnti != SRSLTE_INVALID_RNTI) {
srslte_dci_dl_t dci[SRSLTE_MAX_CARRIERS] = {};
/* Blind search first without cross scheduling then with it if enabled */ /* Blind search first without cross scheduling then with it if enabled */
for (int i = 0; i < (ue_dl_cfg.cfg.dci.cif_present ? 2 : 1) && !nof_grants; i++) { for (int i = 0; i < (ue_dl_cfg.cfg.dci.cif_present ? 2 : 1) && !nof_grants; i++) {

@ -291,7 +291,8 @@ uint16_t mac::get_ul_sched_rnti(uint32_t tti)
if (uernti.crnti) { if (uernti.crnti) {
return uernti.crnti; return uernti.crnti;
} }
return 0; Error("Couldn't configure RNTI for UL transmission.\n");
return SRSLTE_INVALID_RNTI;
} }
bool mac::is_in_window(uint32_t tti, int* start, int* len) bool mac::is_in_window(uint32_t tti, int* start, int* len)
@ -329,7 +330,7 @@ uint16_t mac::get_dl_sched_rnti(uint32_t tti)
// TODO: This scheduling decision belongs to RRC // TODO: This scheduling decision belongs to RRC
if (si_window_length > 1) { // This is not a SIB1 if (si_window_length > 1) { // This is not a SIB1
if ((tti / 10) % 2 == 0 && (tti % 10) == 5) { // Skip subframe #5 for which SFN mod 2 = 0 if ((tti / 10) % 2 == 0 && (tti % 10) == 5) { // Skip subframe #5 for which SFN mod 2 = 0
return 0; return SRSLTE_INVALID_RNTI;
} }
} }
Debug("SCHED: Searching SI-RNTI, tti=%d, window start=%d, length=%d\n", tti, si_window_start, si_window_length); Debug("SCHED: Searching SI-RNTI, tti=%d, window start=%d, length=%d\n", tti, si_window_start, si_window_length);
@ -352,7 +353,9 @@ uint16_t mac::get_dl_sched_rnti(uint32_t tti)
Debug("SCHED: Searching P-RNTI\n"); Debug("SCHED: Searching P-RNTI\n");
return SRSLTE_PRNTI; return SRSLTE_PRNTI;
} }
return 0;
// turn off DCI search for this TTI
return SRSLTE_INVALID_RNTI;
} }
void mac::bch_decoded_ok(uint8_t* payload, uint32_t len) void mac::bch_decoded_ok(uint8_t* payload, uint32_t len)

Loading…
Cancel
Save