User Tools

Site Tools


Sidebar

openbach:exploitation:reference_scenarios:access:opensand_global:index
Scenario under development (available on branch dev_opensand_reference_scenario)

OpenSAND Global

Context

OpenSAND emulates the main features of a SATCOM system, and has been inspired from the DVB-S2/RCS2 standards. OpenSAND is released under free licenses GPL and LGPL. Thales Alenia Space and the CNES as co-founders of OpenSAND Community and major contributors, are the first Members of OpenSAND Steering Committee, in charge of all technical and administrative decisions concerning OpenSAND. Viveris Technologies is the current operational maintainer of OpenSAND.

Configure, run and clear an OpenSAND test can be time-consuming and repetitive.

Objective

The purpose of this scenario is to:

  • Configure the satellite, gateways, satellite terminals, clients and servers, with the jobs command_shell, ip_address, ip_route and opensand.
  • Retrieve and distribute the configuration (.conf, .txt, .csv and .input) file to every entity of the test. (optional)
  • Generate a topology.conf file. (optional)
  • Run the OpenSAND test on the satellite, gateways and satellite terminals, with the job opensand.
  • Clear the configuration from the satellite, gateways, satellite terminals, clients and servers, with the jobs ip_address and opensand.

How to launch it

The scenario is available in opensand_global. It uses helpers (see API scenario manual for more information on helpers), and subscenarios opensand_configure, opensand_push, access_opensand and opensand_clear.

The requirements of the scenario:

  • a project (i.e. “your_project”),
  • at least three entities in the project: a satellite, a gateway and a satellite terminal. You might have more terminals and workstations (servers and clients)).
  • at least one satellite terminal per gateway
  • the command_shell, ip_address, ip_route and opensand jobs installed on all entities.

Some information:

  • lan_interface and lan_ip correspond to the network interface and the IP of the LAN network behind a gateway or a satellite terminal. This network allows opensand entities to be connected with other workstations/clients and real networks.
  • emu_interface and emu_ip correspond to the network interface and the IP of the emulated network, used to connect entities to the satellite.

The reference scenario script generate_access_opensand_global will allow to launch the OpenSAND scenario. The scenario needs information regarding the network interfaces and IPs for each entity:

  • For the satellite: sat_entity; sat_interface; sat_ip (with mask).
-s sat_entity sat_interface sat_ip
  • For the gateways:
    • (-gw) For a gateway that is not split or for a net-acc gateway (from a split gw): gw_entity, lan_interface, emu_interface, lan_ip(with mask), emu_ip(with mask), opensand_bridge_ip is the IP used to configure the bridge IP in the gateway. It is optional to add the opensand_id, which is the ID used by opensand (from the topology.conf file), and the opensand_bridge_mac_address, which is the MAC address used for the bridge by opensand. If the opensand ID and bridge MAC address are not given, it'll be given by the scenario.
    • (-gwp) For a phy gateway (from a split gw): gw_phy_entity, lan_interface, emu_interface, lan_ip (with mask), emu_ip (with mask).
-gw gw_entity lan_interface emu_interface lan_ip emu_ip opensand_bridge_ip [opensand_id opensand_bridge_mac_address]
-gwp gw_phy_entity gw_entity lan_interface emu_interface lan_ip emu_ip
  • Satellite terminal: st_entity, lan_interface, emu_interface, lan_ip (with mask), emu_ip (with mask), gw_entity is the gateway entity associated to this terminal. It is optional to add the opensand_id, which is the ID used by opensand (from the topology.conf file), and the opensand_bridge_mac_address, which is the MAC address used for the bridge by opensand. If the opensand ID and bridge MAC address are not given, it'll be given by the scenario.
-st st_entity gw_entity lan_interface emu_interface lan_ip emu_ip opensand_bridge_ip [opensand_id opensand_bridge_mac_address]
  • Workstation: ws_entity, interface, ip (with mask). opensand_entity is the entity (gateway or satellite terminal) connected to this workstation.
-ws ws_entity opensand_entity interface ip 
  • Duration: duration of the opensand test (optional).
-d duration_in_second
  • Pushfile: Path to the directory with the .conf, .txt, .csv, .input files to distribute to all entities (optional).
-c path_to_conf_file
  • Spot: If you want to generate a topology.conf file, you will need to specify each spot_id for each gateway_entity. You can also specify which terminal_entity is on that spot (optional).
--spot spot_id gateway_entity [satellite_terminal_entity satellite_terminal_entity ...]
–spot should not be used as last entry when you launch the scenario command, otherwise the argument run or build would be considered as a spot argument

Example

Example of topology with one satellite, one split gateway (so two entities), one satellite terminal, one client and one server:

THe following command will launch the scenario:

python3 generate_access_opensand_global.py -o PROJECT_NAME \
-s sat_entity sat_interface sat_ip \
-gw gw_net_acc_entity gw_net_acc_lan_interface gw_net_acc_emu_interface gw_net_acc_lan_ip gw_net_acc_emu_ip gw_net_acc_opensand_bridge_ip \
-gwp gw_phy_entity gw_net_acc_entity gw_phy_lan_interface gw_phy_emu_interface gw_phy_lan_ip gw_phy_emu_ip \
-st st_entity gw_net_acc_entity  st_lan_interface st_emu_interface st_lan_ip st_emu_ip st_opensand_bridge_ip \
-ws client_entity st_entity client_interface client_ip \
-ws server_entity gw_net_acc_entity server_interface server_ip \
run

By default, the opensand MAC address and opensand ID will be set by the scenario. You can specify them by adding opensand_id and opensand_bridge_mac_address to the argument of -st and -gw.

By default, the duration is not limited. You can specify a duration as follows “-d duration_in_sec”.

By default, it does not retrieve and distribute any .conf file. If you want to distribute .conf file, you should add “-c path_to_conf_file”. You can also generate the topology.conf and distribute it by adding “–spot spot_id gw_net_acc_entity”

Alternatively, it can create a JSON file that could be imported to the OpenBACH web interface:

python3 generate_access_opensand_global.py -o PROJECT_NAME \
-s sat_entity sat_interface sat_ip \
-gw gw_net_acc_entity gw_net_acc_lan_interface gw_net_acc_emu_interface gw_net_acc_lan_ip gw_net_acc_emu_ip gw_net_acc_opensand_bridge_ip \
-gwp gw_phy_entity gw_net_acc_entity gw_phy_lan_interface gw_phy_emu_interface gw_phy_lan_ip gw_phy_emu_ip \
-st st_entity gw_net_acc_entity  st_lan_interface st_emu_interface st_lan_ip st_emu_ip st_opensand_bridge_ip \
-ws client_entity st_entity client_interface client_ip \
-ws server_entity gw_net_acc_entity server_interface server_ip \
build
openbach/exploitation/reference_scenarios/access/opensand_global/index.txt · Last modified: 2020/06/16 17:15 by mettinger