hi there,
To implement PF algorithms, the basically idea is this:
the packet scheduler compute for each UE and for all the available sub channel a metric
m = instantaneous rate/ average rate.
Then it assign a sub channel to that flow which has the highest metric.
Then, for each scheduled flow, the packert scheduler should compute the quota of data that the flow can transmit using the assigned sub channels.
The quota of data depends from CQI values sent by the UE for the assigned sub channels (that will be mapped into the MCS value using the Amc Module)
As soon the scheduler has computed the quota od data that each scheduled flow can transmit, it should the RLC entities associated to these flows for dequeuing packet form the queue.
After that, the packet scheduler should create the packet burst and send it to the PHY/Channel.
From the code side, you should:
- Add into the RadioBearerInstance class information about the average transmission rate of the flow that the bearer maps. This value should be updated every time the flow send to data to the MAC layer. Maybe the update function can be called by the RLC entity after it creates a PDU for the MAC layer
- Implement into the RLC entity a method that takes packets (or segments of it) form the Queue (stored into the RadioBearerInstance class) considering the available bytes defined by the packet scheduler after scheduling decisions
- create the ProportionalFairPacketScheduler class,
inheriting it from the virtual class PacketScheduler (see the SimplePacketScheduler class to undertand what methods you should implement
).
- implement the PF into the DoRunPacketScheduler method.
I know that this is a very long work but not really complicated. So, you can start with implementation of some features ... I can help you during your work.
Cheers,
Giuseppe
--
Giuseppe Piro
Ph.D. Student at Politecnico di Bari | via Orabona 4 | 70125 Bari | ItalyEmail: pe...@giuseppepiro.com | g.p...@poliba.it
Phone: +39 080 5963301Fax: +39 080 5963410Web: www.giuseppepiro.com | telematics.poliba.it/piro