Tags:
create new tag
, view all tags

OpenAirInterface System Emulation (Under further updates)

The system emulator allows for simulation and emulation of an OpenAirLTE network. It provides either simulation with full PHY and synthetic radio channels, or with PHY abstraction. In both PHY modes, the full protocol stack is executed as is the case on OpenAirInterface hardware. Several eNB and UE are virtualized in the same process. Support for ethernet-based emulation is also provided so that nodes can be distributed on a PC network.

The instructions for downloading the openairinterface5g repository are located here.

A web-based graphical front-end for configuring the emulator is currently being developed.

Also check out the file oaisim_walkthrough.pdf in targets/DOCS.

OAISIM Usage without S1

Compiling oaisim without S1

Assuming you are already in OAI installation, do the following steps:

source oaienv

cd cmake_targets

./build_oai -I --install-optional-packages (this step is needed only once)

./build_oai --oaisim --noS1 -c

The oaisim executable (oaisim_nos1) is now located under: OAI_INSTALL_DIR/cmake_targets/oaisim_noS1_build_oai/build/

Running oaisim without S1

Assuming you are already in OAI installation, do the following steps:

source oaienv

cd cmake_targets/tools

source init_nas_nos1

./run_enb_ue_virt_nos1 (to run without PHY abstraction mode)

./run_enb_ue_virt_nos1 -a (to run with PHY abstraction mode)

OAISIM Usage with S1

Compiling oaisim with S1

Assuming you are already in OAI installation, do the following steps:

source oaienv

cd cmake_targets

./build_oai -I --install-optional-packages (this step is needed only once)

./build_oai --oaisim -c

The oaisim executable (oaisim) is now located under: OAI_INSTALL_DIR/cmake_targets/oaisim_build_oai/build/

Running oaisim with S1

Assuming you are already in OAI installation, do the following steps:

source oaienv

In order to run oaisim with S1, you need to configure the eNB/EPC with appropriate settings,

Follow the tutorial here, https://twiki.eurecom.fr/twiki/bin/view/OpenAirInterface/HowtorunoaisimwithvirtualMMEonsamemachine for more details

OAISIM help

In OAI_INSTALL_DIR/cmake_targets/oaisim_noS1_build_oai/build/, run ./oaisim_nos1 -h
Usage: oaisim -h -a -F -C tdd_config -K [log_file] -V [vcd_file] -R N_RB_DL -e -x transmission_mode -m target_dl_mcs -r(ate_adaptation) -n n_frames -s snr_dB -k ricean_factor -t max_delay -f forgetting factor -A channel_model -z cooperation_flag -u nb_local_ue -U UE mobility -b nb_local_enb -B eNB_mobility -M ethernet_flag -p nb_master -g multicast_group -l log_level -c ocg_enable -T traffic model -D multicast network device
-h provides this help message!
-a Activates PHY abstraction mode
-A set the multipath channel simulation, options are: SCM_A, SCM_B, SCM_C, SCM_D, EPA, EVA, ETU, Rayleigh8, Rayleigh1, Rayleigh1_corr,Rayleigh1_anticorr, Rice8,, Rice1, AWGN
-b Set the number of local eNB
-B Set the mobility model for eNB, options are: STATIC, RWP, RWALK,
-c [1,2,3,4] Activate the config generator (OCG) to process the scenario descriptor, or give the scenario manually: -c template_1.xml
-C [0-6] Sets TDD configuration
-e Activates extended prefix mode
-E Random number generator seed
-f Set the forgetting factor for time-variation
-F Activates FDD transmission (TDD is default)
-g Set multicast group ID (0,1,2,3) - valid if M is set
-G Enable background traffic
-H Enable handover operation (default disabled)
-I Enable CLI interface (to connect use telnet localhost 1352)
-k Set the Ricean factor (linear)
-K [log_file] Enable ITTI logging into log_file
-l Set the global log level (8:trace, 7:debug, 6:info, 4:warn, 3:error)
-L [0-1] 0 to disable new link adaptation, 1 to enable new link adapatation
-m Gives a fixed DL mcs for eNB scheduler
-M Set the machine ID for Ethernet-based emulation
-n Set the number of frames for the simulation
-O [enb_conf_file] eNB configuration file name
-p Set the total number of machine in emulation - valid if M is set
-P [trace type] Enable protocol analyzer. Possible values for OPT:
- wireshark: Enable tracing of layers above PHY using an UDP socket
- pcap: Enable tracing of layers above PHY to a pcap file
- tshark: Not implemented yet
-q Enable Openair performance profiler
-Q Activate and set the MBMS service: 0 : not used (default eMBMS disabled), 1: eMBMS and RRC Connection enabled, 2: eMBMS relaying and RRC Connection enabled, 3: eMBMS enabled, RRC Connection disabled, 4: eMBMS relaying enabled, RRC Connection disabled
-R [6,15,25,50,75,100] Sets N_RB_DL
-r Activates rate adaptation (DL for now)
-s snr_dB set a fixed (average) SNR, this deactivates the openair channel model generator (OCM)
-S snir_dB set a fixed (average) SNIR, this deactivates the openair channel model generator (OCM)
-t Gives a fixed UL mcs for eNB scheduler
-T activate the traffic generator: cbr, scbr, mcbr, bcbr, mscbr
-u Set the number of local UE
-U Set the mobility model for UE, options are: STATIC, RWP, RWALK
-V [vcd_file] Enable VCD dump into vcd_file
-w number of CBA groups, if not specified or zero, CBA is inactive
-W IP address to connect to SMBV and configure SMBV from config file. Requires compilation with SMBV=1, -W0 uses default IP 192.168.12.201
-x Set the transmission mode (1,2,5,6 supported for now)
-Y Set the global log verbosity (none, low, medium, high, full)
-z Set the cooperation flag (0 for no cooperation, 1 for delay diversity and 2 for distributed alamouti
-Z Reserved

Compliation options:

  • Rel10=1: enables LTE release 10 features.
  • DEBUG=1: enable debuggung and additional messages
  • NAS=1: compiles with nasmesh support enabled (requires NAS driver)
  • DISABLE_XER_PRINT=1: turns off ASN.1 message tracing, DISPLAY_XER_PRINT=0 is default
  • ENABLE_ITTI=1: turns on ITTI which is an intertask communication/tracing mechanism when RRC and S1AP and L2 stack are run in separate threads, default is 0
  • USE_MME=R10: enable the MME
  • LINK_PDCP_TO_GTPV1U=1: enables link to core network
  • SECU=1: enables security
  • RRC_MSG_PRINT=1 and PDCP_MSG_PRINT=1: enables low level traces of control and user plane traffic
  • PRINT_STATS=1: print eNB and UE stats in a separet file
  • XFORMS=1: compile with xforms enabled (to get a signal scope, constellation, etc., XFORMS=0 is default)
Note: alway do a make clean with the same compile options as for make oaisim (especially when changing the options)
you should have an executable called oaisim

OpenAirInterface Scenario Descriptor (OSD)

OSD is composed of four main parts, which is a basic description of the data structure OAI_Emulation. It is part of OAI emulation methodology for describing scenarios using the xml format. Each reference scenario described by OSD defines a subset of the components described below:

  • Environment/system configuration, including fading, antenna, etc.
  • Topology configuration, including area, UE/eNB distribution, mobility, etc.
  • Application configuration, including predefined traffic, customized traffic, etc.
  • Emulation configuration, including emulation time, performance metrics, etc.
The high level tag hierarchy is shown below:
<OAI_EMULATION>
<ENVIRONMENT_SYSTEM_CONFIG>
</ENVIRONMENT_SYSTEM_CONFIG>
<TOPOLOGY_CONFIG>
</TOPOLOGY_CONFIG>
<APPLICATION_CONFIG>
</APPLICATION_CONFIG>
<EMULATION_CONFIG>
</EMULATION_CONFIG>
<PROFILE> <!-- just a profile name -->
</PROFILE>
</OAI_EMULATION>

See an example here.You can also set up an OSD html form using httpd server, and build your xml file and/or run an experiment. To install, see here.

Table of OSD tags with the valid values and units is shown below (under update, see the existing templates):

Tag

Parent tag

Range / valid value

Unit

ENVIRONMENT_SYSTEM_CONFIG

OAI_EMULATION

NA

NA

FADING

ENVIRONMENT_SYSTEM_CONFIG

NA

NA

LARGE_SCALE

FADING

urban, rural, indoor (not used)

string

FREE_SPACE_MODEL_PARAMETERS

FADING

NA

NA

PATHLOSS_EXPONENT

FREE_SPACE_MODEL_PARAMETERS

2-4

Double

PATHLOSS_0_dB

FREE_SPACE_MODEL_PARAMETERS

Depends on the Experiment

dB

SMALL_SCALE

FADING

SCM_A, SCM_B, SCM_C, SCM_D, EPA, EVA, ETU, Rayleigh8, Rayleigh1, Rayleigh1_corr, Rayleigh1_anticorr, Rice8, Rice1, Rice1_corr, Rice1_anticorr, AWGN

String

WALL_PENETRATION_LOSS_dB

ENVIRONMENT_SYSTEM_CONFIG

Depends on the Experiment

dB

SYSTEM_BANDWIDTH_MB

ENVIRONMENT_SYSTEM_CONFIG

Depends on the Experiment

MB

UE_FREQUENCY_GHz

ENVIRONMENT_SYSTEM_CONFIG

Depends on the Experiment

GHz

ANTENNA

ENVIRONMENT_SYSTEM_CONFIG

NA

NA

eNB_ANTENNA

ANTENNA

NA

NA

RX_NOISE_LEVEL_dB

eNB_ANTENNA

Depends on the Experiment

dB

NUMBER_OF_SECTORS

eNB_ANTENNA

Depends on the Experiment

Int

BEAM_WIDTH_dB

eNB_ANTENNA

Depends on the Experiment

dB

ANTENNA_GAIN_dBi

eNB_ANTENNA

Depends on the Experiment

dBi

TX_POWER_dBm

eNB_ANTENNA

Depends on the Experiment

dBm

UE_ANTENNA

ANTENNA

NA

NA

RX_NOISE_LEVEL_dB

UE_ANTENNA

Depends on the Experiment

dB

ANTENNA_GAIN_dBi

UE_ANTENNA

Depends on the Experiment

dBi

TX_POWER_dBm

UE_ANTENNA

Depends on the Experiment

dBm

       

TOPOLOGY_CONFIG

OAI_EMULATION

NA

NA

AREA

TOPOLOGY_CONFIG

NA

NA

X

AREA

Depends on the Experiment

meter

Y

AREA

Depends on the Experiment

meter

MOBILITY

TOPOLOGY_CONFIG

NA

NA

UE_MOBILITY

MOBILITY

NA

NA

UE_INITIAL_DISTRIBUTION

UE_MOBILITY

random

String

RANDOM_UE_DISTRIBUTION

UE_MOBILITY

NA

NA

NUMBER_OF_NODES

RANDOM_UE_DISTRIBUTION

Depends on the Experiment

Int

UE_MOBILITY_TYPE

UE_MOBILITY

STATIC,RWP,RWALK,TRACE,SUMO

String

GRID_MAP

UE_MOBILITY

RESTRICTED_RWP, CONNECTED_DOMAIN

string

UE_MOVING_DYNAMICS

UE_MOBILITY

NA

NA

MIN_SPEED_mps

UE_MOVING_DYNAMICS

Depends on the Experiment

mps

MAX_SPEED_mps

UE_MOVING_DYNAMICS

Depends on the Experiment

mps

MIN_SLEEP_ms

UE_MOVING_DYNAMICS

Depends on the Experiment

Ms

MAX_SLEEP_ms

UE_MOVING_DYNAMICS

Depends on the Experiment

Ms

MIN_JOURNEY_TIME_ms

UE_MOVING_DYNAMICS

Depends on the Experiment

Ms

MAX_JOURNEY_TIME_ms

UE_MOVING_DYNAMICS

Depends on the Experiment

Ms

SUMO_CONFIG

UE_MOBILITY

NA

NA

SUMO_CMD

SUMO_CONFIG

NA

NA

SUMO_CONFIG_FILE

SUMO_CONFIG

e.g. $OPENAIR2_DIR/UTIL/OMG/SUMO/SCENARIOS/traci.scen.sumo.cfg

path

SUMO_START

SUMO_CONFIG

Depends on the Experiment

double

SUMO_END

SUMO_CONFIG

Depends on the Experiment

double

SUMO_STEP

SUMO_CONFIG

Depends on the Experiment

IP

SUMO_HOST_IP

SUMO_CONFIG

Depends on the Experiment

int

SUMO_HOST_PORT

SUMO_CONFIG

Depends on the Experiment

int

eNB_MOBILITY

MOBILITY

NA

NA

eNB_INITIAL_DISTRIBUTION

eNB_MOBILITY

random

String

RANDOM_eNB_DISTRIBUTION

eNB_MOBILITY

 

int

NUMBER_OF_CELLS

RANDOM_eNB_DISTRIBUTION

Depends on the Experiment

int

eNB_MOBILITY_TYPE

eNB_MOBILITY

fixed, mobile

String

       

APPLICATION_CONFIG

OAI_EMULATION

NA

NA

PREDEFINED_TRAFFIC

APPLICATION_CONFIG

scbr, mcbr, bcbr, m2m_AP, m2m_BR, gaming_OA, gaming_TF, full_buffer

String

SOURCE_ID

PREDEFINED_TRAFFIC

single node, e.g. 2; several nodes, e.g. 2,3,5,7; from node A to node B, e.g. 1:100

String

APPLICATION_TYPE

PREDEFINED_TRAFFIC

NA

NA

DESTINATION_ID

PREDEFINED_TRAFFIC

Depends on the Experiment

int

CUSTOMIZED_TRAFFIC

APPLICATION_CONFIG

NA

NA

PU

CUSTOMIZED_TRAFFIC

NA

NA

PROB_OFF_PU

PU

Depends on the Experiment

double

PROB_PU_ED

PU

Depends on the Experiment

double

HOLDING_TIME_OFF_PU

PU

Depends on the Experiment

double

ED

CUSTOMIZED_TRAFFIC

NA

NA

PROB_OFF_ED

ED

Depends on the Experiment

double

PROB_ED_PE

ED

Depends on the Experiment

double

HOLDING_TIME_OFF_ED

ED

Depends on the Experiment

double

PE

CUSTOMIZED_TRAFFIC

NA

NA

HOLDING_TIME_OFF_PE

PE

Depends on the Experiment

double

SOURCE_ID

CUSTOMIZED_TRAFFIC

single node, e.g. 2; several nodes, e.g. 2,3,5,7; from node A to node B, e.g. 1:100

int

TRANSPORT_PROTOCOL

CUSTOMIZED_TRAFFIC

tcp (default), udp

string

IP_VERSION

CUSTOMIZED_TRAFFIC

ipv4 (default), ipv6

string

DESTINATION_ID

CUSTOMIZED_TRAFFIC

Depends on the Experiment

int

IDT_DIST

CUSTOMIZED_TRAFFIC

no_customized_traffic (default), uniform, poission, gaussian, exponential, fixed, weibull, pareto, gamma, cauchy

string

IDT_MIN_ms

CUSTOMIZED_TRAFFIC

Depends on the Experiment

ms

IDT_MAX_ms

CUSTOMIZED_TRAFFIC

Depends on the Experiment

ms

IDT_STANDARD_DEVIATION

CUSTOMIZED_TRAFFIC

Depends on the Experiment

double

IDT_LAMBDA

CUSTOMIZED_TRAFFIC

Depends on the Experiment

double

SIZE_DIST

CUSTOMIZED_TRAFFIC

no_customized_traffic (default), uniform, poission, gaussian, exponential, fixed, weibull, pareto, gamma, cauchy

string

SIZE_MIN_byte

CUSTOMIZED_TRAFFIC

Depends on the Experiment

byte

SIZE_MAX_byte

CUSTOMIZED_TRAFFIC

Depends on the Experiment

byte

SIZE_STANDARD_DEVIATION

CUSTOMIZED_TRAFFIC

Depends on the Experiment

double

SIZE_LAMBDA

CUSTOMIZED_TRAFFIC

Depends on the Experiment

double

SIZE_SCALE

CUSTOMIZED_TRAFFIC

Depends on the Experiment

double

SIZE_SHAPE

CUSTOMIZED_TRAFFIC

Depends on the Experiment

double

DESTINATION_PORT

CUSTOMIZED_TRAFFIC

Depends on the Experiment

int

       

EMULATION_CONFIG

OAI_EMULATION

NA

NA

EMULATION_TIME_ms

EMULATION_CONFIG

Depends on the Experiment

ms

PERFORMANCE_MATRICS

EMULATION_CONFIG

NA

NA

METRICS

PERFORMANCE_MATRICS

NA

NA

THROUGHPUT

METRICS

enable, disable

string

LATENCY

METRICS

enable, disable

String

LOSS_RATE

METRICS

enable, disable

string

LEVEL

LOG

crit,alert, error,warn,info,debug,trace

string

VERBOSITY

LOG

Low, medium, high

String

INTERVAL

LOG

Depends on the Experiment (not used)

String

SEED_VALUE

EMULATION_CONFIG

Depends on the Experiment

int

PROFILE

EMULATION_CONFIG

Depends on the Experiment

string

The high level tag hierarchy is shown below:

<OAI_EMULATION>

<ENVIRONMENT_SYSTEM_CONFIG>

</ENVIRONMENT_SYSTEM_CONFIG>

<TOPOLOGY_CONFIG>

</TOPOLOGY_CONFIG>

<APPLICATION_CONFIG>

</APPLICATION_CONFIG>

<EMULATION_CONFIG>

</EMULATION_CONFIG>

<PROFILE> <!-- just a profile name -->

</PROFILE>

</OAI_EMULATION>

Topic attachments
I Attachment Action Size Date Who Comment
Unknown file formatEXT build_helper manage 13.5 K 13 Nov 2015 - 15:48 NavidNikaein  
Unknown file formatbash perf_oai.bash manage 23.8 K 13 Nov 2015 - 15:20 NavidNikaein  
Topic revision: r13 - 13 Nov 2015 - NavidNikaein
 
Copyright 2004-2010 Institut Eurecom & all contributing authors.