User Tools

Site Tools



Minimal CLI OpenSAND setup


The objective of this example OpenSAND deployment example is to provide a very simple setup, focused on setp-by-step approach. All commands are run manually on the command-line interface, from network configuration to binary startup.

This section will guide you through the steps required:

  1. Network configuration
  2. Simulation configuration
  3. Run OpenSAND entities

Platform description

This is an example of how to setup the network to emulate a simple SATCOM System using OpenSAND. The topology of the considered platform is described in the figure below. It includes a satellite (SAT), a Gateway (GW0) and a Satellite Terminal (ST1). Once this setup is done, refer to IP mode or Ethernet mode following the interconnection method selected.

The OpenSAND network is a overlay network (Platform Network, running on top of the Emulation network ( It uses TAP devices to implement the DVB stack over the Emulation network. The Platform network will show characteristics similar to a real SATCOM network using DVB-S2/RCS2 protocols.

Network Configuration

It is assumed that the networking configuration for the Emulation Network is already done.

The setup will follow the steps below, on the ST and GW0 entities:

  1. Create the TAP interface, on which the OpenSAND binary will read/write packets
  2. Create the OpenSAND Bridge : since OpenSAND is a TAP interface it does not have an IP Stak. Linking the tap interface to a bridge allows to use the kernel IP stack.
  3. Attach the OpenSAND interface to the bridge.
  4. Configure the IP adresses of the OpenSAND/Satcom network

The satellite does not need any specific networking configuration.

Creation of the TAP interface:
$ ip tuntap add mode tap opensand_tap

Create the OpenSAND bridge:
$ ip link add name opensand_br type bridge

Attach the OpenSAND interface to the bridge:
$ ip link set dev opensand_tap master opensand_br

And set interfaces up:
$ ip link set opensand_br up
$ ip link set opensand_tap up

The opensand bridges should have been assigned a MAC address @opensand_br. You can see this address with :
$ ip addr show dev opensand_br
Remember the ST and GW bridges addresses since they will be used in the next configuration step.

OpenSAND Emulation Configuration

Each entity need to access their configurations files in /etc/opensand so they know which parameters of the simulation they need to load. In this example, only the necessary modification for a working example are show. See the configuration manual of OpenSAND files for more detail.

First, get the reference scenario configuration files, located in the folder /usr/share/opensand. Now, several files can be edited :

  • topology.conf to specify how entities are interconnected;
  • core_global.conf to specify generic parameters of the simulation;
  • the plugins folder;
  • gw0 : Gateway parameters
  • st1 : Satellite Terminal parameters

For a detailed description of the configuration, go to OpenSAND Configuration.

The example provided emulates a classical DVB-S2/RCS2 setup, and no particular modification of the configuration files is needed. However, the following sections of topology.conf need to be edited:
First, add the bridge addresses of the terminal (id 1) and gateway (id 0) to the sarp section, replacing with the bridge adresses from the previous section:

        <!-- The default destination terminal if no one is found, -1 for none -->
            <!-- MAC for terminal -->
            <terminal_eth mac="00:00:00:00:00:02" tal_id="1"/>
            <terminal_eth mac="00:00:00:00:00:01" tal_id="0"/>

Second, modify the addresses in the sat_carrier section accordingly:

         <spot id="1" gw="0"> 
                <!-- SAT to GW/ST control (CR, TBTP, SoF)  -->
                <carrier id="0" type="ctrl_out" ip_address="" port="55000" ip_multicast="true"/>
                <!-- GW/ST to SAT control (CR, TBTP, SoF)  -->
                <carrier id="1" type="ctrl_in" ip_address="" port="55001" ip_multicast="false"/>
                <!-- SAT to GW Logon -->
                <carrier id="2" type="logon_out" ip_address="" port="55002" ip_multicast="false"/>
                <!-- ST to SAT Logon -->
                <carrier id="3" type="logon_in" ip_address="" port="55003" ip_multicast="false"/>
                <!-- SAT to ST Data -->
                <carrier id="4" type="data_out_st" ip_address="" port="55004" ip_multicast="true"/>
                <!-- ST to SAT Data -->
                <carrier id="5" type="data_in_st" ip_address="" port="55005" ip_multicast="false"/>
                <!-- SAT to GW Data -->
                <carrier id="6" type="data_out_gw" ip_address="" port="55006" ip_multicast="false"/>
                <!-- GW to SAT Data -->
                <carrier id="7" type="data_in_gw" ip_address="" port="55007" ip_multicast="false"/>

Now, upload files [TODO].

Starting entities

In this setup, all statistics and logs will be directed to a local directory in ~/opensand_simulation. In order to use the opensand collector, see [TODO].

First, start the satellite:

opensand-sat -a -c /etc/opensand

Start the Gateway:

opensand-gw -a -c /etc/opensand -t opensand_tap -i 0 -f ~/opensand_simulation

Start the Satellite Terminal:

opensand-st -a -c /etc/opensand -t opensand_tap -i 1 -f ~/opensand_simulation

IP mode

In this mode, we will use IP to communicate from gateway to ST. In ordre to do so, we assign IP adresses to the opensand bridges, by issuing the following commands :

On GW0:
$ ip address add dev opensand_br
On ST1:
$ ip address add dev opensand_br

One can setup routing over the satellite network by configuring routing on ST and GW0, as described in Opensand networking manual.

Ethernet mode

This is an example of how to setup the network to emulate a simple SATCOM System in Ethernet mode using OpenSAND. The topology of the considered platform is described in the figure below as well as IPv4 addresses. It includes a satellite (SAT), a Gateway (GW0) and a Satellite Terminal (ST1). Work-stations server (SRV) and client (CLT) belonging to distant terrestrial networks, are on the same IP subnet and communicate over satellite segment.

In this setup, additional configuration is needed in topology.conf since OpenSAND does not implement yet learning of MAC addresses. For each end-user connected behind terminal 1, a sarp must be filled to bind this MAC address with its corresponding terminal ID. This process is needed in order for the satellite carriers to work properly.

        <!-- The default destination terminal if no one is found, -1 for none -->
            <!-- MAC for terminal -->
            <terminal_eth mac="01:02:03:00:00:02" tal_id="1"/>
            <terminal_eth mac="01:02:03:00:00:01" tal_id="1"/>

Alternative way to launch network commands

Visit the Easy Minimal CLI OpenSAND setup if you want to easily launch the network commands.

opensand/manuals/5.2/user_manual_minimal_cli/index.txt ยท Last modified: 2020/04/27 18:57 by dpradas