Merge remote-tracking branch 'origin/Mult_TDD_Pattern' into integration_2025_w05 (!2799)
Changes to support multiple TDD patterns - Updated the configuration changes for 2 Patterns - Update the TDD table configuration for NFAPI - Added the tdd bitmap for the period - Adapted the bitmap for UL/DL for the multi TDD pattern - Updated the RACH procedure for multi TDD pattern - Updated DL and UL scheduler for multi TDD pattern
This commit is contained in:
@@ -704,9 +704,12 @@ uint64_t from_nrarfcn(int nr_bandP, uint8_t scs_index, uint32_t nrarfcn)
|
||||
return frequency;
|
||||
}
|
||||
|
||||
int get_first_ul_slot(int nrofDownlinkSlots, int nrofDownlinkSymbols, int nrofUplinkSymbols)
|
||||
/**
|
||||
* @brief Get the slot index within the period
|
||||
*/
|
||||
int get_slot_idx_in_period(const int slot, const frame_structure_t *fs)
|
||||
{
|
||||
return (nrofDownlinkSlots + (nrofDownlinkSymbols != 0 && nrofUplinkSymbols == 0));
|
||||
return slot % fs->numb_slots_period;
|
||||
}
|
||||
|
||||
int get_dmrs_port(int nl, uint16_t dmrs_ports)
|
||||
|
||||
@@ -122,6 +122,29 @@ typedef enum frequency_range_e {
|
||||
FR2
|
||||
} frequency_range_t;
|
||||
|
||||
#define MAX_NUM_SLOTS_ALLOWED 80 // up to numerology 3 (120 KHz SCS) is supported
|
||||
enum slot_type { TDD_NR_DOWNLINK_SLOT, TDD_NR_UPLINK_SLOT, TDD_NR_MIXED_SLOT };
|
||||
|
||||
typedef struct tdd_bitmap {
|
||||
enum slot_type slot_type;
|
||||
uint8_t num_dl_symbols;
|
||||
uint8_t num_ul_symbols;
|
||||
} tdd_bitmap_t;
|
||||
|
||||
typedef struct tdd_period_config_s {
|
||||
tdd_bitmap_t tdd_slot_bitmap[MAX_NUM_SLOTS_ALLOWED];
|
||||
uint8_t num_dl_slots;
|
||||
uint8_t num_ul_slots;
|
||||
} tdd_period_config_t;
|
||||
|
||||
typedef struct frame_structure_s {
|
||||
tdd_period_config_t period_cfg;
|
||||
int8_t numb_slots_frame;
|
||||
int8_t numb_slots_period;
|
||||
int8_t numb_period_frame;
|
||||
bool is_tdd;
|
||||
} frame_structure_t;
|
||||
|
||||
typedef struct {
|
||||
/// Time shift in number of samples estimated based on DMRS-PDSCH/PUSCH
|
||||
int est_delay;
|
||||
@@ -219,7 +242,6 @@ void reverse_bits_u8(uint8_t const* in, size_t sz, uint8_t* out);
|
||||
uint64_t from_nrarfcn(int nr_bandP, uint8_t scs_index, uint32_t dl_nrarfcn);
|
||||
uint32_t to_nrarfcn(int nr_bandP, uint64_t dl_CarrierFreq, uint8_t scs_index, uint32_t bw);
|
||||
|
||||
int get_first_ul_slot(int nrofDownlinkSlots, int nrofDownlinkSymbols, int nrofUplinkSymbols);
|
||||
int cce_to_reg_interleaving(const int R, int k, int n_shift, const int C, int L, const int N_regs);
|
||||
int get_SLIV(uint8_t S, uint8_t L);
|
||||
void get_coreset_rballoc(uint8_t *FreqDomainResource,int *n_rb,int *rb_offset);
|
||||
@@ -265,6 +287,8 @@ int get_smallest_supported_bandwidth_index(int scs, frequency_range_t frequency_
|
||||
unsigned short get_m_srs(int c_srs, int b_srs);
|
||||
unsigned short get_N_b_srs(int c_srs, int b_srs);
|
||||
|
||||
int get_slot_idx_in_period(const int slot, const frame_structure_t *fs);
|
||||
|
||||
#define CEILIDIV(a,b) ((a+b-1)/b)
|
||||
#define ROUNDIDIV(a,b) (((a<<1)+b)/(b<<1))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user