per-flow QoS support in LTE

486 views
Skip to first unread message

William Diego

unread,
Dec 1, 2014, 4:52:22 AM12/1/14
to ns-3-...@googlegroups.com
Hello,

I developed a per-flow QoS scheduler on LENA, based on: http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=6952827

I would like to compare this with another QoS scheduler(ie. PSS or CQA), but I saw this post:

https://groups.google.com/forum/?hl=fr#!searchin/ns-3-users/per-flow$20QoS/ns-3-users/ZWJdFTXI6p8/bflT658HkoUJ

Do you have any suggestion?

Regards

William


Nicola Baldo

unread,
Dec 2, 2014, 12:20:29 PM12/2/14
to ns-3-...@googlegroups.com
Yes comparing with PSS and CQA is a good idea.
What's the problem?

William Diego

unread,
Dec 2, 2014, 12:54:55 PM12/2/14
to ns-3-...@googlegroups.com
Thanks for your response, my problem is that I want to define 1, 2, 3 or 4 flows per UE and each one having a different QoS level (e.g. VoIP, Video Streaming, Web navigation and FTP) but on post:

https://groups.google.com/forum/?hl=fr#!searchin/ns-3-users/per-flow$20QoS/ns-3-users/ZWJdFTXI6p8/bflT658HkoUJ

If I understood correctly, it is mentions that schedulers manage LCs (logical channels) in a RR fashion during the assignment, so if a UE have a default bearer and a dedicated  there will not be any differentiation between them. Furthermore, if I define 2 o 3 dedicated bearers only the parameters of the last one will be taken into account by the scheduler. This is correct?

Regards

William.

Biljana Bojović

unread,
Dec 3, 2014, 5:14:21 PM12/3/14
to ns-3-...@googlegroups.com
Hi William,

up to my knowledge what Marco said in the post is the current status. I did not understand from your email following: Does your implementation, apart from scheduling logic that I guess you have placed on MAC layer in your scheduler class, implements also the per flow assignment at RLC layer as Marco suggests?

CQA scheduler at the moment does not have fully supported per-flow scheduling functionality, but this should be very minor change in the scheduler because it is already scheduling based on differentiation of flows and not UEs. I am currently preparing one upgrade of CQA scheduler and I might consider to add this functionality. But, first, my another question is: is it possible to apply in your work some another ,equivalent simulation scenario that would be based on per-user scheduling?

Best regards,
Biljana

William Diego

unread,
Dec 3, 2014, 6:08:42 PM12/3/14
to ns-3-...@googlegroups.com
Hi Biljana, 

thank you for your answer, in fact my implementation uses the PF scheduler at MAC level and I've implemented a set of priority queues per UE at RLC layer where packets are placed based on its DSCP marking. 

So, this model is only useful if we have differents QoS levels per UE, otherwise it acts as a PF. There exist other possible implementations, for example use queue state information as input to MAC scheduler, but operators prefer use schedulers that provide a good compromise between fairness and efficiency as PF because the QoS is difficult to sell. 

I performed some simulations using 2 and 3 levels of QoS but using PF as BE scenario has better performance than PSS and in some cases than CQA. do you have an approximate date for the update of the CQA scheduler?


Regards

William.




Biljana Bojović

unread,
Jan 14, 2015, 1:06:38 PM1/14/15
to ns-3-...@googlegroups.com
Hi William,

Thank you for explaining your approach and results. I really like the idea to add per-flow support at RLC layer. The issue  that I see in that approach is while using QoS schedulers: PSS and CQA, because their performance is evaluated per-flow, while they are scheduling per UE. Thus it is expected that PF scheduler shows better performance, because it is using the channel in the best way, while PSS and CQA are trying to achieve some QoS requirements at MAC layer.

I have implemented support for scheduling per flow in CQA scheduler, and I believe that it will be available at ns3-dev in next couple of days.

I am interested in how this change will affect the results of your comparison. By using your approach there is already quite fair resource distribution among flows at RLC layer. But, on the other hand, as I said before, the PSS and QSA schedulers are not aware to which flow the resources are being really assigned, so they cannot schedule properly the resource in the next iterations.

Regards,
Biljana

William Diego

unread,
Feb 6, 2015, 11:59:51 AM2/6/15
to ns-3-...@googlegroups.com
Hi Biljana,

I could perform the simulations using per flow scheduling in CQA and PSS, in order to done this I used  "N"  UEs which have the same mobility pattern  to emulate a unique UE which use "N" applications. Do you think that this configuration could be quite similar to per flow scheduling in CQA ?

Then, I have defined 3 dedicated bearers (2 GBR and 1 non-GBR)  and I have obtained interesting results as:

CQA is very perjudicial for traffic transported in a non-GBR bearer and have a negative impact on the cell throughput. PSS has also un negative impact on the cell throughput but it is not perjudicial for traffic transported in a non-GBR bearer. Finally, IP-aware scheduling not have any impact on the cell throughput and have similar performance to PSS.

I am interested in use your implementation of CQA per flow based in order to compare to my current results. There is some possibility that can use your code?

Regards

William.
Capture.PNG
Capture2.PNG

Jona Huang

unread,
Mar 3, 2015, 12:51:38 AM3/3/15
to ns-3-...@googlegroups.com
Hi William
  I also want to evaluate the  Qos scheduler's performance between GBR and NGBR traffic, like as CQA or PSS.  the issue I forcused is retransmission resource scheduling.
  I set different bearer on UE, one bearer per UE.  For CQA and PSS,  even some UEs with NGBR traffic didn't get the transmission chance. so I think maybe my scenerio is not reasonable.

1) According your test, does it support different bearers setting on one UE?
2) Do you mind sending your script or code to me ?  I want to have a test.


Regards

Jona

William Diego

unread,
Mar 18, 2015, 5:53:51 AM3/18/15
to ns-3-...@googlegroups.com
Hi Jona,

Sorry for my late reply. As was mentioned above, CQA/PSS schedulers does not fully support per-flow scheduling functionality. It means that multi-bearer configuration per UE does not work fine. CQA scheduler strongly favors GBR bearers, even in bad radio conditions, at the expense of others bearers, in my simulations nearly no data was exchanged into the NGBR. Otherwise, PSS  algorithm is less aggressive than CQA.

In order to emulate a per-flow scheduling,  I set up  "N"  UEs with the same mobility pattern to emulate a unique UE which use "N" applications . I have used  Bonnmotion to generate mobility patterns as follows:

   std::string traceFile = "scratch/scenario1.ns_movements";  // Mobility trace file
   Ns2MobilityHelper ns2 = Ns2MobilityHelper (traceFile);
   MobilityHelper ueMobility;
   ueMobility.SetMobilityModel ("ns3::ConstantVelocityMobilityModel");
   ueMobility.Install (ueNodes);
    ns2.Install ();

Regards

William

Biljana Bojović

unread,
Mar 26, 2015, 6:55:51 AM3/26/15
to ns-3-...@googlegroups.com

I am really sorry guys for late reply!!!  I was not getting any updates on this thread.

@William: As for CQA scheduler,  I have implemented two months ago per-flow scheduling, but I didn't manage to upload it to the ns-3 server yet. :(  I will try to do it as soon as possible, and let me know if you need it urgently, then I will just share my ns-3 branch with you. Your simulation setup seems reasonable to me. For the CQA scheduler and non-gbr traffic, there were problems because of changes in ns-3 module. I think that you should get better results by using an updated CQA code, as there were some things fixed recently.

@Jona: I guess that you could use the simulation setup similar to William's.

Best regards,
Biljana
Reply all
Reply to author
Forward
0 new messages