wifi: Reduce function calls in GetMcsForMode

This commit is contained in:
Gabriel Ferreira
2022-01-08 15:55:57 -03:00
parent f367474ca3
commit bb181e0170

View File

@@ -85,54 +85,58 @@ uint8_t
TableBasedErrorRateModel::GetMcsForMode (WifiMode mode)
{
uint8_t mcs = 0xff; // Initialize to invalid mcs
if (mode.GetModulationClass () == WIFI_MOD_CLASS_OFDM || mode.GetModulationClass () == WIFI_MOD_CLASS_ERP_OFDM)
WifiModulationClass modulationClass = mode.GetModulationClass ();
WifiCodeRate codeRate = mode.GetCodeRate ();
uint16_t constellationSize = mode.GetConstellationSize ();
if (modulationClass == WIFI_MOD_CLASS_OFDM || modulationClass == WIFI_MOD_CLASS_ERP_OFDM)
{
if (mode.GetConstellationSize () == 2)
if (constellationSize == 2)
{
if (mode.GetCodeRate () == WIFI_CODE_RATE_1_2)
if (codeRate == WIFI_CODE_RATE_1_2)
{
mcs = 0;
}
if (mode.GetCodeRate () == WIFI_CODE_RATE_3_4)
if (codeRate == WIFI_CODE_RATE_3_4)
{
mcs = 1;
}
}
else if (mode.GetConstellationSize () == 4)
else if (constellationSize == 4)
{
if (mode.GetCodeRate () == WIFI_CODE_RATE_1_2)
if (codeRate == WIFI_CODE_RATE_1_2)
{
mcs = 2;
}
else if (mode.GetCodeRate () == WIFI_CODE_RATE_3_4)
else if (codeRate == WIFI_CODE_RATE_3_4)
{
mcs = 3;
}
}
else if (mode.GetConstellationSize () == 16)
else if (constellationSize == 16)
{
if (mode.GetCodeRate () == WIFI_CODE_RATE_1_2)
if (codeRate == WIFI_CODE_RATE_1_2)
{
mcs = 4;
}
else if (mode.GetCodeRate () == WIFI_CODE_RATE_3_4)
else if (codeRate == WIFI_CODE_RATE_3_4)
{
mcs = 5;
}
}
else if (mode.GetConstellationSize () == 64)
else if (constellationSize == 64)
{
if (mode.GetCodeRate () == WIFI_CODE_RATE_2_3)
if (codeRate == WIFI_CODE_RATE_2_3)
{
mcs = 6;
}
else if (mode.GetCodeRate () == WIFI_CODE_RATE_3_4)
else if (codeRate == WIFI_CODE_RATE_3_4)
{
mcs = 7;
}
}
}
else if (mode.GetModulationClass () >= WIFI_MOD_CLASS_HT)
else if (modulationClass >= WIFI_MOD_CLASS_HT)
{
mcs = mode.GetMcsValue ();
}