From bb181e017007a717499d32c5aee5ed331d23d441 Mon Sep 17 00:00:00 2001 From: Gabriel Ferreira Date: Sat, 8 Jan 2022 15:55:57 -0300 Subject: [PATCH] wifi: Reduce function calls in GetMcsForMode --- .../model/table-based-error-rate-model.cc | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/src/wifi/model/table-based-error-rate-model.cc b/src/wifi/model/table-based-error-rate-model.cc index 22732cf79..911c9cb1f 100644 --- a/src/wifi/model/table-based-error-rate-model.cc +++ b/src/wifi/model/table-based-error-rate-model.cc @@ -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 (); }