Skip to content

Scenariofile

The scenariofile is a YAML-based file to specifiy the simulation setup. It can contain the following keys:

title

Can be any string, purely descriptive at the moment.

Properties
  • Required: :fontawesome-solid-star-of-life:
  • Reasonable default: ScenarioTitle
  • Data type: std::string

name

Can be any string, purely descriptive at the moment.

Properties
  • Required:
  • Reasonable default: ScenarioName
  • Data type: std::string

stop_time

Defines at which simulation time the simulation will be aborted if it does not finish earlier.

Properties
  • Required: :fontawesome-solid-star-of-life:
  • Data type: std::string
  • Possible values: Any string ending with a unit prefix like "s" or "ms". If no unit is given, it will be treated as seconds.

version

Can be used to differentiate different implementation versions. Currently not used.

Properties
  • Required:
  • Reasonable default: 0.1
  • Data type: std::string

default_delay

Delay between each simulation step (operations defined in the scenario_sequence, respectively between each step for x-many operations).

Properties
  • Required: :fontawesome-solid-star-of-life:
  • Data type: std::string
  • Possible values: Any string ending with a unit prefix like "s" or "ms". If no unit is given, it will be treated as seconds.

random_seed

Seed used for reproducable simulations. If =0 random results are produced.

Properties
  • Required: :fontawesome-solid-star-of-life:
  • Reasonable default: 1
  • Data type: uint64_t

output_path

Directory path for the resulting logging output.

Properties
  • Required: Only if environment variable DAISI_OUTPUT_PATH is not set. This yml paramater takes precedence if both are set.
  • Reasonable default: /work/ns3/results/
  • Data type: std::string

number_nodes

The number of SOLA nodes available in the simulation.

Properties
  • Required: :fontawesome-solid-star-of-life:
  • Reasonable default: 3
  • Data type: uint64_t

scenario_sequence

A dictionary containing a list of possible scenario sequence steps. The steps are executed in the same order as they appear in the sequence.

Properties
  • Required: :fontawesome-solid-star-of-life:
  • Possible values: start_sola, subscribe_topic, delay, publish

scenario_sequence.start_sola

Start and initialize SOLA on all nodes. Starting SOLA means, depending on the selected SOLA components, to connect to other nodes.

This is a dictionary containing key, value pairs, that further specify this step.

Properties
  • Required:
  • Possible values: delay

scenario_sequence.start_sola.delay

Delay between the nodes joining the SOLA network.

Default delay not added

Only the delay specified with delay is added between the start of SOLA on different nodes. The default delay is not added! Further, this delay is not added after the last schedule of start!

Properties
  • Required: :fontawesome-solid-star-of-life:
  • Data type: std::string
  • Possible values: Any string ending with a unit prefix like "s" or "ms". If no unit is given, it will be treated as seconds.

scenario_sequence.subscribe_topic

Specifies that all nodes should subscribe to a topic.

This is a dictionary containing key, value pairs, that further specify this step.

Properties
  • Required:
  • Possible values: topic, delay

scenario_sequence.subscribe_topic.topic

The name of the topic to subscribe to.

Properties
  • Required: :fontawesome-solid-star-of-life:
  • Reasonable default: helloworld
  • Data type: std::string

scenario_sequence.subscribe_topic.delay

Delay between the nodes joining the SOLA network.

Default delay not added

Only the delay specified with delay is added between the subscription process of different nodes. The default delay is not added! Further, this delay is not added after the last scheduling of a subscribe event!

Properties
  • Required: :fontawesome-solid-star-of-life:
  • Data type: std::string
  • Possible values: Any string ending with a unit prefix like "s" or "ms". If no unit is given, it will be treated as seconds.

scenario_sequence.delay

This step allows to add delay between steps.

This is a dictionary containing key, value pairs, that further specify this step.

Properties
  • Required:
  • Possible values: delay

scenario_sequence.delay.delay

The delay.

Properties
  • Required: :fontawesome-solid-star-of-life:
  • Data type: std::string
  • Possible values: Any string ending with a unit prefix like "s" or "ms". If no unit is given, it will be treated as seconds.

scenario_sequence.publish

This step allows to let a node publish a message on a topic.

This is a dictionary containing key, value pairs, that further specify this step.

Properties
  • Required:
  • Possible values: topic, message_size, node_id

scenario_sequence.publish.topic

The name of the topic to which the message should be published to.

Properties
  • Required: :fontawesome-solid-star-of-life:
  • Data type: std::string

scenario_sequence.publish.message_size

The size of the message to publish in bytes.

Properties
  • Required: :fontawesome-solid-star-of-life:
  • Data type: uint64_t

scenario_sequence.publish.node_id

The node that should publish a message.

Properties
  • Required: :fontawesome-solid-star-of-life:
  • Data type: uint64_t