Bugzilla – Bug 2837
More than needed RBGs assignment of CQA scheduler
Last modified: 2017-12-12 13:25:12 UTC
Created attachment 2976 [details] test script Hi, In a downlink scenario CqaFfMacScheduler scheduler is assigning all the RBGs to a single user even though there is little data to be transmitted to it. In the end there is only one UE scheduled during one TTI. In the attached test script I am generating 200 byte packet, so in total, 200 (payload) + 2 (RLC header) + 2 (PDCP header) + 20 (IP header) + 8 (UDP header) = 232 bytes or 1856 bits. If the MCS is 28, the maximum TB size for 24 PRBs is 2196 bytes but to TX 232 bytes a TB of size 373 bytes would be enough. With this bug in MAC stats we can see that every UE has been assigned a maximum TB size, e.g., % time cellId IMSI frame sframe RNTI mcsTb1 sizeTb1 0.3 1 2 31 1 1 28 2196 0.301 1 3 31 2 2 28 2196 0.302 1 1 31 3 3 28 2196 The reason for this behaviour is incorrect comparison of needed resources and assigned resources at line 1488 if (UeToAmountOfDataToTransfer.find (userWithMaximumMetric)->second <= UeToAmountOfAssignedResources.find (userWithMaximumMetric)->second*tolerance) //||(UeHasReachedGBR.find(userWithMaximumMetric)->second == true)) { itCurrentGroup->second.erase (userWithMaximumMetric); } Here UeToAmountOfDataToTransfer is in "bits" while "UeToAmountOfAssignedResources" is in bytes. Due to this reason a selected UE who already has been assigned sufficient amount of RBGs never get erased and the while loop "while (availableRBGs.size ()>0 and itCurrentGroup->second.size ()>0)" at line 1310, kept running till all the RBGs are assigned to a single UE. Kind regards, Zoraze
Created attachment 2977 [details] patch Hi, Please find the minimum patch to cure the problem. After applying the patch MAC stats will be as follows. % time cellId IMSI frame sframe RNTI mcsTb1 sizeTb1 0.3 1 2 31 1 1 28 373 0.3 1 3 31 2 2 28 373 0.3 1 1 31 3 3 28 373 Kind regards, Zoraze
Pushed to changeset 13203:456bc8ea5b01