LBT -- wheres the ul?

98 views
Skip to first unread message

Bruno Benedetti

unread,
May 21, 2020, 11:58:03 PM5/21/20
to ns-3-users
Hello!

Im kind of new on this ns3 business and Im trying to learn.

Im working on LAA on my master thesis and Im very eager to use the LBT wifi co-existence simulator.

Ive read the document, the paper and the presentation made about the simulator and the results the publishers got. Im aware of the results obtained through ftp over udp and with udp flows, and the low throughputs they got on TCP traffic.
I understand that LBT module on the DL works by adding a channelAccessManager on LTE side that does the back-off LBT process and eventually admits LTE transmission.

What I don't understand is: how is the uplink configured?

I am very well aware that uplink over unlicensed is not part of the model, and thus Im assuming HARQ feedback from UE To eNb is being sent over some licensed layer.
Similarly so, the model supports TCP flows, so any TCP ACK/NACK on the UL should also be sent on that licensed layer.

I havent found this information on the documentation, and I have been going through the scenario-helper and the laa-wifi-coexistence-helper but I can't seem to figure out on how the UL is being set, over what licensed layer, to get some understanding of how UEs send HARQs on the UL and the TCP ACKs/NACKs.
As I said, I am fairly new in this game, so I must be missing something.

My question thus is: can someone help me understand how is the UL side configured on LBT ns3 model?

Thanks a lot in advance!!

BR,
Bruno

Biljana Bojović

unread,
May 22, 2020, 4:19:27 AM5/22/20
to ns-3-users
Hi Bruno, 

Yes, you are right, HARQ feedback from UE to gNB is being sent over licensed carriers.  All uplink DATA/CTRL, is sent over lincesed. 

In examples it is used carrier aggregation which will add 2 additional carriers, one for downlink and one for uplink. Then in the case of downlink this additional carrier will be configured to use LBT channel access manager at eNbPhy (as you said correctly), but there is no additional configuration for the aggregated carrier in uplink, which means that it will have the defalt configuration and behavior.

While LBT channel access manager is not gNB/UE specific, there is some additional logic at eNb (LteEnbPhy) that allows correct working of LBT mechanism. So, in order to have LBT in uplink one would need to add some additional logic at LteUePhy that would know how to make use of LBT channel access manager.

I hope I answered. 

Please, try to use correct spelling in the subject of ns-3 users question.  

Cheers,
Biljana

Bruno Benedetti

unread,
May 22, 2020, 7:44:47 AM5/22/20
to ns-3-users
Thank you Biljana for your reply!

What doesn't add up to me now, is that trying ftp case scenario, with one UE on LAA I got around 120 Mbps. That seems correct for 2x2 MIMO case if we only consider the unlicensed spectrum. It should be around twice that number as traffic should also be aggregated with licensed DL carrier. I'm guessing output is just not considering that licensed traffic? Thing is I thought it was measuring bitrate over udp flows, and thus I thought it wouldn't be possible to discriminate on whether that traffic was sent over licensed or unlicensed.

I will go through the code again with your comments in mind, and hope I don't have any other questions on the matter.

My apologies for the subject spelling, just changed it.
Thanks again for your reply!

BR,
Bruno

Bruno Benedetti

unread,
May 23, 2020, 4:21:36 PM5/23/20
to ns-3-users
Hi Biljana, all!

Im still struggling with this.

So, I took your comments on using CA for this case, but I can't find how it is configured.

I've been reading that CA is configured as follows:

Thus we need to set up the UseCA flag among other things.
I'm reading the LBT code and nowhere in there is there any "useCA" string on the code. I'm looking at the following files:
laa-wifi-coexistence-helper.cc
scenario-helper.cc
lte-helper.cc

These I downloaded from https://www.nsnam.org/~tomh/ns-3-lbt-documents/html/lbt-wifi-coexistence.html#getting-the-lbt-code and following the suggestion of not using it with other ns3 build and using it as a whole on its own.
Taking a look at the lte-helper.cc from ns3 documentation on https://www.nsnam.org/doxygen/lte-helper_8cc_source.html I see there is that useCa flag among other CA related stuff.

My reasoning therefore is as follows:
The ns3 LBT version works on top of lte-helper, changing it so as to work with new channelAccessManager. That version of lte-helper does not account for CA use and that's why I don't see it in the code.

Am I right with the reasoning above?
If that is the case, then how is the licensed portion of the enb configured if there is no explicit use of CA on code?
On the scenario-helper I'm only seeing one dlEarfcn and it is on 5 GHz band and so on unlicensed spectrum, so I am not sure about how DL or UL of licensed carrier is configured. Maybe I'm not using the latest version? Is it implied somehow? If it is implied then how are the HARQ and TCP ACK/NACKs transmmited from UE?

One last point:
In the scenario-helper.cc I'm seeing this code:
ConfigureLaa (lteHelper, epcHelper, internetIpv4Helper, bsNodesA, ueNodesA, clientNodesA, bsDevicesA, ueDevicesA, phyParams, lteDlSinrCatcherVectorA, absPattern, transport, lbtChannelAccessManagerInstallTime);

I thought the absPattern was used in case of duty cycle, but we are using LbtChannelAccess manager and not duty cycle. AbsPattern is used on lbtChannelAccessManager?


Thanks a lot in advance, I really appreciate your help!!

Bruno Benedetti

unread,
May 25, 2020, 12:33:40 AM5/25/20
to ns-3-users
Hi all!

I think I now get it. Please correct me!

Real word scenario we have 3 carriers:
* 1 DL licensed
* 1 UL licensed
* 1 DL unlicensed

On ns3 lbt model we have 2 carriers:
* 1 UL licensed
* 1 DL unlicensed


So, it isn't an actual CA that is being used on the model and that is why I am not seeing it on the code.
It is just that the DL licensed is simply not configured, and the UL just defaults to some FDD uplink carrier.

Am I right on this reasoning? Or am I missing something?

Bruno Benedetti

unread,
May 31, 2020, 10:34:25 PM5/31/20
to ns-3-users
Hi everyone,

Does anyone know if what I suggested in last post is correct?
Biljana, if you are around, can you confirm if that is the case or am I missing something?

Thanks again!

Cheers,
Bruno

Biljana Bojović

unread,
Jun 13, 2020, 4:22:25 PM6/13/20
to ns-3-users
Hi Bruno,


On Saturday, May 23, 2020 at 10:21:36 PM UTC+2, Bruno Benedetti wrote:
Hi Biljana, all!

Im still struggling with this.

So, I took your comments on using CA for this case, but I can't find how it is configured.

I've been reading that CA is configured as follows:

Thus we need to set up the UseCA flag among other things.
I'm reading the LBT code and nowhere in there is there any "useCA" string on the code. I'm looking at the following files:
laa-wifi-coexistence-helper.cc
scenario-helper.cc
lte-helper.cc

Carrier aggregation is used in https://bitbucket.org/cttc-lena/ns-3-lena-dev-lte-u/, but not in https://www.nsnam.org/~tomh/ns-3-lbt-documents/html/lbt-wifi-coexistence.html#getting-the-lbt-code. These two repositories
have diverged at some point, and the second one does not include neither CA neither LTE-U.


Regarding the first repository and CA: There are different ways to configure carrier aggregation. And also the code in 1) is not fully aligned with ns-3, so the ns-3 documentation does not cover all the features that are in LAA code. In 1) is created a map of component carriers configurations and then his map is passed to LteHelper which is using it to create component carriers according to assigned carrier frequency, bandwidth per each carrier and indication whether the carrier is a primary carrier. You should find that code in scenario-helper.cc in ConfigureLte function.


Regarding code in 2) you are right, there is no CA.

 

These I downloaded from https://www.nsnam.org/~tomh/ns-3-lbt-documents/html/lbt-wifi-coexistence.html#getting-the-lbt-code and following the suggestion of not using it with other ns3 build and using it as a whole on its own.
Taking a look at the lte-helper.cc from ns3 documentation on https://www.nsnam.org/doxygen/lte-helper_8cc_source.html I see there is that useCa flag among other CA related stuff.

My reasoning therefore is as follows:
The ns3 LBT version works on top of lte-helper, changing it so as to work with new channelAccessManager. That version of lte-helper does not account for CA use and that's why I don't see it in the code.

It is just a different way to configure. An initial idea of useCa was to allow to user to ns-3 user to use carrier aggregation without having to worry about configuring component carriers, bandwidth would be assigned to be the same as for the default component carrier, and frequency by respecting taking into account the default component carrier and its bandwidth. 

On the other hand, in LAA code in 1) it is provided to LteHelper a configuration of component carriers which will be used to create carriers for each eNb.
 

Am I right with the reasoning above?
If that is the case, then how is the licensed portion of the enb configured if there is no explicit use of CA on code?

Regarding 2) yes, you are right. 
In 1) check the function that I mentioned.
 
On the scenario-helper I'm only seeing one dlEarfcn and it is on 5 GHz band and so on unlicensed spectrum, so I am not sure about how DL or UL of licensed carrier is configured. Maybe I'm not using the latest version? Is it implied somehow? If it is implied then how are the HARQ and TCP ACK/NACKs transmmited from UE?

in 2) DL is unlicensed and UL is licensed. DL is using channel access manager to access the channel. DL HARQ feedback and TCP ACK/NACK are transmitted in licensed. 
 

One last point:
In the scenario-helper.cc I'm seeing this code:
ConfigureLaa (lteHelper, epcHelper, internetIpv4Helper, bsNodesA, ueNodesA, clientNodesA, bsDevicesA, ueDevicesA, phyParams, lteDlSinrCatcherVectorA, absPattern, transport, lbtChannelAccessManagerInstallTime);

I thought the absPattern was used in case of duty cycle, but we are using LbtChannelAccess manager and not duty cycle. AbsPattern is used on lbtChannelAccessManager?



I agree that this is not a very good interface, but if you look into the code, you will see that this absPattern  is used only in DC configuration.

 
Thanks a lot in advance, I really appreciate your help!!


Really sorry for delay, but I was just to busy lately.
Best regards,
Biljana

Biljana Bojović

unread,
Jun 13, 2020, 4:27:45 PM6/13/20
to ns-3-users
Hi Bruno, 


On Monday, May 25, 2020 at 6:33:40 AM UTC+2, Bruno Benedetti wrote:
Hi all!

I think I now get it. Please correct me!

Real word scenario we have 3 carriers:
* 1 DL licensed
* 1 UL licensed
* 1 DL unlicensed

Yes, or optionally you could have 1 or more DL/UL (TDD) in unlicensed in real world scenario. 
 

On ns3 lbt model we have 2 carriers:
* 1 UL licensed
* 1 DL unlicensed


Yes! But this is in the repository that you indicated in previous email that you are using. 
 

So, it isn't an actual CA that is being used on the model and that is why I am not seeing it on the code.

In the other code in bitbucket there is CA.
 
It is just that the DL licensed is simply not configured, and the UL just defaults to some FDD uplink carrier.

Am I right on this reasoning? Or am I missing something?


You are right!

Bruno Benedetti

unread,
Jun 13, 2020, 5:48:11 PM6/13/20
to ns-3-users
Thanks for your reply, Biljana!
I'll be sure to check that other repository you mention on the other reply.

BR,
Bruno
Reply all
Reply to author
Forward
0 new messages