NR MIMO 2x2 Support
This commit provides CSI reporting support which is required for MIMO. It also updates the configuration files, provides sample BLER simualtion files for packet dropping in the MIMO 2x2 case. It also includes the hooks and functions (e.g., updating UCI2_3_4 PDU field) for MIMO 2x2 support. This commit will not include any channel abstraction code or modelling.
This commit is contained in:
committed by
Robert Schmidt
parent
3bc86d69c0
commit
f8efb13b7d
@@ -181,3 +181,27 @@ bool should_drop_transport_block(int slot, uint16_t rnti)
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
int get_mcs_from_sinr(nr_bler_struct *nr_bler_data, float sinr)
|
||||
{
|
||||
if (sinr < (nr_bler_data[0].bler_table[0][0])) {
|
||||
LOG_I(NR_MAC, "The SINR found is smaller than first MCS table\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (sinr > (nr_bler_data[NR_NUM_MCS-1].bler_table[nr_bler_data[NR_NUM_MCS-1].length - 1][0])) {
|
||||
LOG_I(NR_MAC, "The SINR found is larger than last MCS table\n");
|
||||
return NR_NUM_MCS-1;
|
||||
}
|
||||
|
||||
for (int n = NR_NUM_MCS-1; n >= 0; n--) {
|
||||
float largest_sinr = (nr_bler_data[n].bler_table[nr_bler_data[n].length - 1][0]);
|
||||
float smallest_sinr = (nr_bler_data[n].bler_table[0][0]);
|
||||
if (sinr < largest_sinr && sinr > smallest_sinr) {
|
||||
LOG_I(NR_MAC, "The SINR found in MCS %d table\n", n);
|
||||
return n;
|
||||
}
|
||||
}
|
||||
LOG_E(NR_MAC, "Unable to get an MCS value.\n");
|
||||
abort();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user