How to use AMC model in a LTE/EPC configuration

1,208 views
Skip to first unread message

Narges Shojaedin

unread,
Jun 12, 2013, 2:45:06 AM6/12/13
to ns-3-...@googlegroups.com
Hi all,
 
I have created an LTE/EPC configurtion where a remote host connected to internet sends tpc packets to the only UEnode of the program.
The goal is to fix the error rate and let the system decide about the appropriate coding/modulation scheme to achieve the required error rate. To do so, I need to define an AMC model. I am wondering if in order to define an AMC model and fix the error rate, inserting following lines of code to the program is enough?
 
Config::SetDefault ("ns3::LteAmc::AmcModel", EnumValue (LteAmc::PiroEW2010));
Config::SetDefault ("ns3::LteAmc::Ber", DoubleValue (0.00005));
 
I really appreciate it if someone can send me an LTE/EPC example in which an AMC model has been defined!
 
My second question is in a LTE/EPC configuration how to Fix the coding/modulation scheme and let the system determine what the resulting error rate is?
 
any help would be greatly appreciated!
 
Regards,
Narges

Marco Miozzo

unread,
Jun 12, 2013, 3:48:37 AM6/12/13
to ns-3-...@googlegroups.com
Hi,

for what concern the Piro AMC model, it is enough to do what you wrote. However, let me not that the error rate defined with LteAmc::Ber attribute is the one used for evaluating the CQI reporting according to the formula in the documentation, see section "Adaptive Modulation and Coding" in:
http://www.nsnam.org/docs/release/3.16/models/html/lte-design.html

It is not usual to define the BER, we used it just for sake of testing, you may find some examples in lte test folder (e.g., lte-phy-error-model).

For what concern the second question, the current LTE module does not support the functionality you are asking and works only with the two AMCs modules, you may extend one of them for including it or create a new one.
Contributions are welcome!

Regards,
marco.





--
You received this message because you are subscribed to the Google Groups "ns-3-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ns-3-users+...@googlegroups.com.
To post to this group, send email to ns-3-...@googlegroups.com.
Visit this group at http://groups.google.com/group/ns-3-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Message has been deleted

Narges Shojaedin

unread,
Jun 14, 2013, 3:02:21 PM6/14/13
to ns-3-...@googlegroups.com
Hi Marco,
 
Thanks so much for your reply.
As you mentioned, I removed the following command from the program attached to the email.
 
The goal of the program was to Fix the error rate and let the system decide about the appropriate coding/modulation scheme to achieve the required error rate. This means that if I monitor the transmission rate (or, equivalently, coding/modulation scheme), I will see fluctuations because of varying channel conditions. Am I right?
However, as you can see in the attached mac trace files, MCS does not change and is always 28!
 
I do not know exactly which traces need to be enabled to monitor the transmission rate! So I could not investigate the transmission rate of the UEnode.
 
I would appreciate it if you could let me know what is wrong with my program or analysis?
 
I apologize if you receive two copies of this email. After first attempt, my email was deleted and I could not see it.
 
Thanks in advance,
Narges
mytcp1.cc
UlMacStats.txt
DlMacStats.txt

Marco Miozzo

unread,
Jun 17, 2013, 4:15:55 AM6/17/13
to ns-3-...@googlegroups.com
Hi Narges,

quickly looking at the simulation script, it seems to me that you are not using any fading model neither any mobility model.
Moreover, the default settings of the ConstantPositionMobilityModel, puts all the nodes in the origin, which implies that all the nodes have a good channel.
I would suggest you to introduce some fading and/or physical mobility to the nodes in order to see channel fluctuations (more info in lena doc on these topics).

Best regards,
marco.


Narges Shojaedin

unread,
Jun 17, 2013, 6:43:57 PM6/17/13
to ns-3-...@googlegroups.com
Hi Marco,
 
Thanks for your time and attention.
As you mentioned, I removed ConstantPositionMobilityModel from the program.
Regarding mobility, I am willing to have the uenodes fixed. So, I do not want to define any mobility model.
 
Regarding fading model, I thought TraceFadinglossModel (as the only fading model working in lena) and FriisPropagationLossModel are the presumed defaults! Am I wrong?
So how can I introduce a fading model?
 
I tried following two lines of code, no chance!
 
lteHelper->SetAttribute ("PathlossModel", StringValue ("ns3::TwoRayGroundPropagationLossModel"));
lteHelper->SetAttribute ("FadingModel", StringValue ("ns3::TraceFadingLossModel"));
 
Could you please let me know how to define it?
 
My second question is how to define target error rate in LTE/EPC? I mean, how can I define an error model in a LTE/EPC configuration and change the BER?
 
Thanks in advance,
Narges

Marco Miozzo

unread,
Jun 18, 2013, 3:30:39 AM6/18/13
to ns-3-...@googlegroups.com
Hi Narges,

see in-line.

Regards,
marco.




On Tue, Jun 18, 2013 at 12:43 AM, Narges Shojaedin <ns.sho...@gmail.com> wrote:
Hi Marco,
 
Thanks for your time and attention.
As you mentioned, I removed ConstantPositionMobilityModel from the program.
Regarding mobility, I am willing to have the uenodes fixed. So, I do not want to define any mobility model.
 
Regarding fading model, I thought TraceFadinglossModel (as the only fading model working in lena) and FriisPropagationLossModel are the presumed defaults! Am I wrong?
So how can I introduce a fading model?
 
 
I tried following two lines of code, no chance!
 
lteHelper->SetAttribute ("PathlossModel", StringValue ("ns3::TwoRayGroundPropagationLossModel"));
lteHelper->SetAttribute ("FadingModel", StringValue ("ns3::TraceFadingLossModel"));
 
Could you please let me know how to define it?


There is also an examples in src/lte/examples/lena-fading.cc
 
 
My second question is how to define target error rate in LTE/EPC? I mean, how can I define an error model in a LTE/EPC configuration and change the BER?


You can use one of the schedulers developed in GSoC 2012, more info in MAC Secion at the following link (check TBR and PSS):
http://www.nsnam.org/docs/release/3.16/models/html/lte-design.html

Narges Shojaedin

unread,
Jun 18, 2013, 4:45:10 PM6/18/13
to ns-3-...@googlegroups.com
Hi Marco,
 
Thanks for your quick reply. As you said, I introduced a fading model based on lena-fading.cc. However, still I cannot see any fluctuations!
I would appreciate it if you could have a look at my program attached to this email?
I am pretty sure that you can find the source of problem easily!
 
Thanks in advance,
Narges
mytcp1.cc
DlMacStats.txt
UlMacStats.txt

Marco Miozzo

unread,
Jun 19, 2013, 3:24:43 AM6/19/13
to ns-3-...@googlegroups.com
have you tried to move the nodes a bit?!?
They are concentrated in the origin with the eNB and therefore the fading losses might be too low for producing any alterations.
Please consider to use a PositionAllocator (Disc, Box or Rectangle) in order to have nodes with a reasonable distance from the eNB:
http://www.nsnam.org/doxygen/classns3_1_1_random_box_position_allocator.html

Lena-dual-stripe example is currently using the Box one.

Regards,
marco.

mador...@hotmail.com

unread,
Jun 19, 2013, 5:20:40 AM6/19/13
to ns-3-...@googlegroups.com
Narges,

            I am not sure what exact doubt you have about usage of TraceFadingLossModel and observe the fading fluctuation (c.f. Marco's remarks).

2. For what it concerns, I attach an execution trace of lena-fading.cc taken with fading loss model set to TraceFadingLossModel and PathLossModel set to FriisSpectrumPropagationLossModel...you can the fluctuation of the fading component in the execution trace file attached...

I hope it helps...

With Regards,
madan
mylena-fading-tflm-friissplm-exec-trace.txt

Narges Shojaedin

unread,
Jun 19, 2013, 3:13:08 PM6/19/13
to ns-3-...@googlegroups.com
Hi Madan,
 
Thanks so much for your comments and attachment.
To make everything clear, let me describe what I am trying to do.
 
I have created an LTE/EPC configurtion where a remote host connected to internet sends tpc packets to the only UEnode of the program. The goal is to fix the error rate and let the system decide about the appropriate coding/modulation scheme to achieve the required error rate. This means that if I monitor the transmission rate (or, equivalently, coding/modulation scheme), I will see fluctuations because of varying channel conditions.To acheive this goal, I have tried the following scenarios:
 
1. At the very beginning, I tried to merge fifth.cc (an example in ns-3 tutorial in which to trace tcp congestion window an error model has been defined) and lena-simple-epc.cc. So, I defined the error model and tried to trace congestion window in lena-simple-epc.cc to see the sawthooth behavior of tcp connection. However, I found that "ReceiveErrorModel" attribute is not defined for "LteUeNetDevice" object. So, it seems RateErrorModel cannot be used in LTE configuration! And still, I could not solve this problem!
 
2. Then, I decided to use AMC model in my program to guarantee varying channel. But, I found that MiErorModel is by default activated. I tried to change BER by using this command: config::SetDefault ("ns3::LteAmc::Ber", Doublevalue (0.00005));
    I expected to see different MCS values in DlMacStats.txt trace file. However, it was always 28!
 
3. Regarding fading model, I thought TraceFadinglossModel (as the only fading model working in lena) and FriisPropagationLossModel are the presumed defaults! But Marco told me that it is needed to introduce a fading model. So, I added a Fading Model in the program and also based on his most recent reply, I RandomBoxPositionAllocator to move a bit the ueNode since as Marco described it was concentrated in the origin with the eNB and therefore the fading losses might be too low for producing any alterations.
 
I have attached the last version of my program and mac traces. After applying RandomBoxPositionAllocator, I expected to see varying MSC values in DlMacStats.txt while as you can see MSC is changing in UlMacStats!
and I have no idea about that?
 
4. In addition, to monitor transmission rate I have tried to use flowMonitor to get throughput per second. However I could not find any way to do that yet and I faced with a runtime error;
(assert failed. cond="cur->tid != tag.GetInstanceTypeId ()", file=../src/network/model/packet-tag-list.cc, line=139
terminate called without an active exception)
So,I commented this part of the program.
 
I would appreciate it if you can help me to solve any of the above problems!
 
Thanks in advance,
Narges
mytcp1.cc
DlMacStats.txt
UlMacStats.txt

Narges Shojaedin

unread,
Jun 19, 2013, 6:14:01 PM6/19/13
to ns-3-...@googlegroups.com
Dear Marco,
 
Thanks for the reply. You mentioned to a very important point!
1.As you said, I used RandomBoxPositionAllocator. The good news is that I eventually was able to observe varying MCS values! I expected to observe that in DlMacStats.txt however, as you can see in the attached trace files, MCS is changing in UlMacStats.txt.
I established a tcp connection from a remote host to a UEnode. Isn't reasonable to see varying MCS values in DlMacStats.txt instead of UlMacStats.txt?
 
2.To get an idea about throughput, I tried to use FlowMonitor. I am wondering if there is any way to schedule FlowMonitor to get throughput per second?
 
Thanks once again for your help,
Narges
DlMacStats.txt
UlMacStats.txt
mytcp1.cc

Narges Shojaedin

unread,
Jun 20, 2013, 4:29:03 PM6/20/13
to ns-3-...@googlegroups.com
Hi Marco,
 
After sending you the last email, I was able to observe the MCS fluctuations in DlMacStats.txt as well.

Since I had used RandomBoxPositionAllocator which allocates random positions to nodes on a box, I got different results from multiple replications of the simulation and there were just a few fluctuations in some of them. Then, I set a constant distance between UEnode and enbNode. So, MCS fluctuates in both files regularly. To do so, I used GridPositionAllocator as you can see in the following piece of code. Could you please let me know your opinion about that?

 

  MobilityHelper mobility;
  mobility.SetPositionAllocator ("ns3::GridPositionAllocator",
                                 "MinX", DoubleValue (0.0),
                                 "MinY", DoubleValue (0.0),
                                 "DeltaX", DoubleValue (1000),
                                 "DeltaY", DoubleValue (0),
                                 "GridWidth", UintegerValue (2),
                                 "LayoutType", StringValue ("RowFirst"));
  mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
  mobility.Install (ueNodes);
  mobility.Install(enbNodes);

 

In additon, I have still two problems. I would appreciete it if you can help me to implent the following tasks in my program:

1. Scheduling Flow Monitor to get throughput per second

2. Tracing tcp congestion window done for wifi configuration in fifth.cc of ns-3 documentation.

 

Regards,

Narges

 

 


On Wednesday, 19 June 2013 01:24:43 UTC-6, Marco wrote:

Selene

unread,
Jun 27, 2013, 1:41:46 PM6/27/13
to ns-3-...@googlegroups.com
Hello,

I want to know how to set the different values to coding rate and modulation type in LENA? Or which class can I get these values.

Thanks a lot!

Nicola Baldo

unread,
Jul 3, 2013, 11:35:00 AM7/3/13
to ns-3-...@googlegroups.com

Carlos Bello

unread,
Sep 8, 2013, 10:12:08 PM9/8/13
to ns-3-...@googlegroups.com
Hi All,
I hope you are fine!
I am new in this group, but I wonder you guys can help me!
I would like to test a End2End scenario, one eNB + one Ue and one RemoteHost (@beginning) , like simple-epc.cc or lena-dual-stripe.cc.The idea is to merge the fifth.cc in NS3 and simulate different TCP flavors and extract some metrics ( throughput, delay, jitter, etc) using Flowmonitor.
I am still not able to see packet lost with Flowmonitor and maybe I am doing something wrong.
Could you please help with some ideas?

Many Thanks,
Carlos Bello

Madan Pande

unread,
Sep 9, 2013, 4:32:27 AM9/9/13
to ns-3-...@googlegroups.com
Hi,
         This is a much discussed topic...particularly search the ns-3-users google group for entries by Leticia, Longhau zhou and K.Katsaros and Gustavo Carneiro...these discussions are interspersed with gems from Nicola...as well

Regards,
M


Date: Sun, 8 Sep 2013 19:12:08 -0700
From: carlosb...@gmail.com
To: ns-3-...@googlegroups.com
Subject: Re: How to use AMC model in a LTE/EPC configuration

Nicola Baldo

unread,
Jan 11, 2014, 3:45:13 PM1/11/14
to ns-3-...@googlegroups.com

samia dardouri

unread,
Oct 18, 2013, 8:00:36 AM10/18/13
to ns-3-...@googlegroups.com
I installet ns-3-lte and I excute example lte-amc cc using command.:
  . / waf - run lte-amc

But I can not trace the different curves sinr. is that you can help me please.
I await your reply and sorry for the inconvenience.
Reply all
Reply to author
Forward
0 new messages