LENA: Using applications in a scenario LTE

347 views
Skip to first unread message

RL

unread,
Jul 28, 2016, 8:14:01 AM7/28/16
to ns-3-users

Dear all,

I am working in the implementation of a full-buffer in a LTE scenario with one eNB and one UE. I have read the tutorial of LENA and in the example lena-dual-stripe.cc a full buffer is implemented, hence I took this example for my study.

The results obtained using a BulkSend application is not what I hoped. I do not obtain a value of throughput nearer to the theory and when I change the bandwidth used the throughput is the same or lower when I use 100 RBs than 6 RBs. I do not understand this behavior.

Today, I have implemented a solution using OnOff application (UDP socket) and I have got better results so my questions are:

1) Could anyone explain this situation? I understand bulksend sends data as fast as possible up to MaxBytes or until the application is stopped so I think the values of the throughput should be very seemed to the theorical throughputs.

2) Why does an application OnOff get better throughput in the same scenario configuration than a bulksend?

Thanks very much in advance for your time.

Best regards,  

Zoraze Ali

unread,
Jul 29, 2016, 8:24:28 AM7/29/16
to ns-3-users
Hi,

If i remember lena-dual-stripe uses RLC-UM so, with bulk send application you should consider increasing the RLC buffer size. You can log
lte-rlc-um.cc to see if the low throughput is due to buffer over flow.

I hope it helps.

Kind regards,
Zoraze

RL

unread,
Aug 1, 2016, 4:02:04 AM8/1/16
to ns-3-users

Dear Zoraze,

Thanks very much for your answer, it is very appreciated. I am going to use your advice. I will show my results as soon as possible.

Have a nice day.

Best regards,

RL

RL

unread,
Aug 1, 2016, 11:06:21 AM8/1/16
to ns-3-users


Dear all,

I have modified the size of the buffer RLC in the file lte-rlc-um.cc and the throughput is higher but when I use a bandwidth with 100 RBs  (throughput = 10,6 Mbps) the results are very seemed to the case of bandwidth of 6 RB (thorughput = 8,5 Mbps).

The conditions for both simulations are the following:

MIMO 2x2
UE is close to eNB
RR MAC scheduler
1 eNB and 1 UE
Application: BulkSend

Please, if anyone can suggest anything to improve this issue, it would be very appreciated.

Thanks very much.

Best regard.

RL

Zoraze Ali

unread,
Aug 2, 2016, 3:52:59 AM8/2/16
to ns-3-users
Hi,

Two questions,

1. How did you modify the RLC buffer size?
2. Did you log lte-rlc-um.cc to see if buffer is overflowing or not? If yes, could you please attach the log file?

Moreover, please attach your script so i can answer more in detail.

Regards,
Zoraze

RL

unread,
Aug 2, 2016, 1:31:41 PM8/2/16
to ns-3-users

Hi Zoraze,

First of all, I would like to thank your attention and your time. It is very appreciated.

1) I modified the RLC buffer in the file rlc-lte-um.cc, the lines 36 and 63. I changed the following: 10*1024 ------> 10000*1014 i.e. the m_maxTxBufferSize.
Please, you can find attached this file.

2) I did not log lte-rlc-um.cc because I do not how I could do it. It would be very appreciated if you can explain me or provide me an link to try do it.

You can find attached my code. You can find some part of the code comments because I did the probe with a UDP socket and it works fine, because I can get throughput around 142 Mbps using a bandwidth of 100 RBs.

If you have any doubt about my code please do not hesitate to ask me or if you can help me with any link or document it will be welcome. I really want to understand or have a solution for this issue.

Thanks again for your attention.

Best regards,

RL



lena-simple-epc.cc
lte-rlc-um.cc

Zoraze Ali

unread,
Aug 3, 2016, 10:06:29 AM8/3/16
to ns-3-users
Hi,

Please see in lines,

On Tuesday, August 2, 2016 at 7:31:41 PM UTC+2, RL wrote:

Hi Zoraze,

First of all, I would like to thank your attention and your time. It is very appreciated.

1) I modified the RLC buffer in the file rlc-lte-um.cc, the lines 36 and 63. I changed the following: 10*1024 ------> 10000*1014 i.e. the m_maxTxBufferSize.

  This much high number as buffer size will make packets to wait longer in the queue and this will cause increase in latency and eventually low throughput. You could do some back of the envelop calculation to find the optimum buffer size but unfortunately it is not that trivial. To modify/configure the attributes you can use the Config system of ns-3, e,g., as following.
Config::SetDefault ("ns3::LteRlcUm::MaxTxBufferSize", UintegerValue (2000000));

These all details are already in ns-3 documentation, please do read it. 
 
Please, you can find attached this file.

2) I did not log lte-rlc-um.cc because I do not how I could do it. It would be very appreciated if you can explain me or provide me an link to try do it.
   
    This is also there in ns-3 documentation. Even doing a simple search on google give the bunch of info, e.g.,
 
  https://www.nsnam.org/docs/manual/html/logging.html
  https://www.nsnam.org/wiki/HOWTO_use_NS_LOG_to_find_a_problem
 

You can find attached my code. You can find some part of the code comments because I did the probe with a UDP socket and it works fine, because I can get throughput around 142 Mbps using a bandwidth of 100 RBs.

   I have not ran your code yet, but i hope you are aware that you are comparing TCP throughput to UDP throughput. Additionally, in your code you are calculating the throughput per second so, how you compute this 142 Mbps or previous 10.6 Mbps?  And, about your OnOff application commented code, why you are starting your server app 1 sec later than client app?

BR,
Zoraze
 

RL

unread,
Aug 5, 2016, 11:40:51 AM8/5/16
to ns-3-users

Hi Zoraze,

Thanks very much for your answers and your time, it is very important for me.

These two days I have been studying the tutorial and your links recommended. I have understood how to use the ns_log but for finding out the cause of my issue about the low throughput in TCP, I do not know what kind of information I should to analyse. Could you provide me any help?

About your question about the throughput:

I understand UDP throughput is higher than TCP throughput, am I right?

Then I do two different simulations with my previous script:

1) TCP application using BulkSend. I get a throughput about 10 Mbps with 100 RBs.
2) UDP application. I get a throughput about 142 Mbps with 100 RBs.

I understand the differences between these two applications but I consider there is a big difference of throughputs and I would like to know why.

About my OnOffApplication:

I  started the server app 1 sec later than client app because in several cases I read it as a recommendation, could you tell me if it will be a problem?

Thanks again for your help.

Best regards,

RL




RL

unread,
Aug 5, 2016, 1:23:52 PM8/5/16
to ns-3-users

Hi Zoraze again,

I used the ns_log of RTTestimator for finding out if the latency can be an issue in my simulation. Please find attached the log of RTTEstimator.

You can see the values of RTT between 35 ms and 132 ms, so could it explain the low throughput in TCP application? Could you tell me please if it exists any solution to do the latency lower and trying to have higher throughput in TCP?

Have a nice weekend.

Best regards,

RL






logTCPBulksend.out

Zoraze Ali

unread,
Aug 9, 2016, 9:00:18 AM8/9/16
to ns-3-users
Hi Raul,

Please see in lines,


On Friday, August 5, 2016 at 5:40:51 PM UTC+2, RL wrote:

Hi Zoraze,

Thanks very much for your answers and your time, it is very important for me.

These two days I have been studying the tutorial and your links recommended. I have understood how to use the ns_log but for finding out the cause of my issue about the low throughput in TCP, I do not know what kind of information I should to analyse. Could you provide me any help?

  When you where simulating with the default buffer size, I suggested you to log lte-rlc-um.cc to see if you get the log saying that the buffer is full or not. But since you changed the buffer size to much bigger value i think that log will not be triggered.   

About your question about the throughput:

I understand UDP throughput is higher than TCP throughput, am I right?
   Yes.

Then I do two different simulations with my previous script:

1) TCP application using BulkSend. I get a throughput about 10 Mbps with 100 RBs.
2) UDP application. I get a throughput about 142 Mbps with 100 RBs.
 
   As i asked you before could you please elaborate how you calculating the above throughput values. In your script you are calculating the throughput per second, so is it the the average or what? Additionally, try using the buffer value i mentioned in my previous post and try to compare. 

I understand the differences between these two applications but I consider there is a big difference of throughputs and I would like to know why.

About my OnOffApplication:

I  started the server app 1 sec later than client app because in several cases I read it as a recommendation, could you tell me if it will be a problem?

    I am not aware of such recommendation. 

Kind regards,
Zoraze

Zoraze Ali

unread,
Aug 9, 2016, 9:15:18 AM8/9/16
to ns-3-users
Hi Raul,

Please see in lines,


On Friday, August 5, 2016 at 7:23:52 PM UTC+2, RL wrote:

Hi Zoraze again,

I used the ns_log of RTTestimator for finding out if the latency can be an issue in my simulation. Please find attached the log of RTTEstimator.

You can see the values of RTT between 35 ms and 132 ms, so could it explain the low throughput in TCP application? Could you tell me please if it exists any solution to do the latency lower and trying to have higher throughput in TCP?
 
  I normally use logs in LTE module,e.g., PDCP stats to see latencies. But if you want to use RTT estimator, you should use trace source for RTT from the TcpSocketBase and get the RTT value directly (whenever it changes), without the use of RttEstimator.

One more advice, try to find old threads on similar topics it is also helpful.

Kind regards,
Zoraze  

RL

unread,
Aug 11, 2016, 12:10:56 PM8/11/16
to ns-3-users


Hello Zoraze,

Thanks very much for your help and time, I am learning much with your comments.

I have been investigated some points with documentation and finding other threads in the forum but I have some doubts:

1) About Throughput:
The throughput is calculated in my script as the number of bytes received from an initial instant to the instant marking the simulation. hence, it is an average throughput.

2)About the if the buffer RLC is full or not.
When the I do not change the buffer size, I find the following log:

0.425929s 2 LteRlcUm:ReassembleAndDeliver(): [LOGIC] Reassembling State = 'WAITING_S0_FULL'

When I change the buffer size, the log is not triggered.


About my OnOffApplication:
Could you tell me the proper values for starting and finishing the application?

About use the logs:
a) Could you tell me where I could find some information for doing the interpretation of logs, sometime I cannot understand them?

b)When you use
PDCP stats to see latencies, do you refer to DlPdcpStats.txt or any other log? If it is, could you explain me how I can see the latencies?

Sorry for the questions but I only want to learn about ns3 and LENA.

Thanks very much in advance, your help is very appreciated for me.


Have a nice day.

Best regards,

RL.



Reply all
Reply to author
Forward
0 new messages