Simulate LTE network with historical data

107 views
Skip to first unread message

research dummy

unread,
Mar 9, 2021, 7:32:53 PM3/9/21
to ns-3-users
Hello,

I am new to NS3 and had a few simulation questions. 

1. Is it possible to define our own path loss model?

2. I have the number of UEs connected to base stations at certain time intervals. Not sure how I would have the number of UEs change after time intervals pass.

3. Is it possible to simulate a large LTE network (700+ eNBs)?

Any answers to any of the above would be greatly appreciated and helpful.

research dummy

unread,
Mar 11, 2021, 5:17:21 PM3/11/21
to ns-3-users
Was wondering if anyone had any advice towards this?

Tom Henderson

unread,
Mar 11, 2021, 7:01:51 PM3/11/21
to ns-3-...@googlegroups.com, research dummy
On 3/9/21 4:32 PM, research dummy wrote:
> Hello,
>
> I am new to NS3 and had a few simulation questions.
>
> 1. Is it possible to define our own path loss model?

Yes, see the PropagationLossModel and its subclasses (many models in the
mainline code).

>
> 2. I have the number of UEs connected to base stations at certain time
> intervals. Not sure how I would have the number of UEs change after
> time intervals pass.

You can move UEs and have them associate with different eNBs (or not at
all).

>
> 3. Is it possible to simulate a large LTE network (700+ eNBs)?

Yes and no.  Using the stock LTE models, I doubt you will be able to run
a typical (low abstraction) simulation with so many eNBs (and assuming
also lots of UEs).

However, if you introduce more abstraction, you would be able to create
scenarios of that size.  It depends on your research objective and the
abstractions you are willing to make, and how long you are willing for
the simulation to run.

- Tom


research dummy

unread,
Mar 11, 2021, 7:22:38 PM3/11/21
to ns-3-users
Thank you for your response. I looked into the propagation models that were available and wanted to build my own propagation model and apply it to my towers. I will continue to look into this module to see how to do this.

In regards to Q2 and Q3, I have X packets of size S arriving at each station. Where X and S are vectors of length(#eNBs) representing the number of packets of varying sizes arriving at eNBs each time step (say, every hour). Would an abstraction to just consider number packets and eNBs be more efficient?

Tom Henderson

unread,
Mar 12, 2021, 12:42:03 AM3/12/21
to ns-3-...@googlegroups.com, research dummy
On 3/11/21 4:22 PM, research dummy wrote:
> Thank you for your response. I looked into the propagation models that
> were available and wanted to build my own propagation model and apply it
> to my towers. I will continue to look into this module to see how to do
> this.
>
> In regards to Q2 and Q3, I have *X* packets of size *S* arriving at each
> station. Where *X* and *S* are vectors of length(#eNBs) representing the
> number of packets of varying sizes arriving at eNBs each time step (say,
> every hour). Would an abstraction to just consider number packets and
> eNBs be more efficient?

Yes, if you describe it with that level of simplicity, it seems doable.
It somewhat depends on how much you want the system to mimic a real
system with packet schedulers, control plane protocols, interference
modeling, etc.

- Tom

research dummy

unread,
Mar 12, 2021, 12:54:49 AM3/12/21
to ns-3-users
Thank you, one last question if you don't mind. Currently, the data is in a .csv file that I would like to read at each time step. I am new to ns3 so was wondering if that would be feasible (reading in each line X) and simulating the number of packets for each base station? 

For the simulation mimicking a real network, simply looking for just the amount of packets that were able to be handled at the end of each time step.

Tom Henderson

unread,
Mar 14, 2021, 10:39:55 PM3/14/21
to ns-3-...@googlegroups.com, research dummy
On 3/11/21 9:54 PM, research dummy wrote:
> Thank you, one last question if you don't mind. Currently, the data is
> in a .csv file that I would like to read at each time step. I am new
> to ns3 so was wondering if that would be feasible (reading in each
> line X) and simulating the number of packets for each base station?

There is a flexible 'CsvReader' class for reading in csv formatted data
into ns-3, but it would need to be paired with a packet generator
(probably a custom-written one) that can schedule the send events.

https://www.nsnam.org/docs/doxygen/classns3_1_1_csv_reader.html#details

>
> For the simulation mimicking a real network, simply looking for just
> the amount of packets that were able to be handled at the end of each
> time step.

It seems to me that you will probably have to work through some existing
LTE examples to see how they work, and then start to modify and simplify
as you see fit.

- Tom


research dummy

unread,
Mar 25, 2021, 9:56:54 PM3/25/21
to ns-3-users
Hello Tom, 

Thank you for your response. I have been looking into the CSVReader class and for some reason, I cannot seem to get my CSV file to be read. When I read in my file and check the column count it says 0. The CSV is not corrupted and the path was verified. I attached some code below of my example. Do you see why this might be the case? 

#include "ns3/core-module.h"
#include "ns3/csv-reader.h"

using namespace ns3;

NS_LOG_COMPOENT_DEFINE ("myCode");

int main(int argc, char *argv[]) {

    const std::string filePath = "/root/myfile.csv";
    char delimiter = ',';

    CsvReader csv (filePath, delimiter);
    std::cout << csv.ColumnCount () << std::end;

    Simulator::Run ();
    Simulator::Destroy ();

     return 0;
Reply all
Reply to author
Forward
0 new messages