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

fanout

The fanout of the underlying MINHTON tree used for broadcasting.

Properties
  • Required: :fontawesome-solid-star-of-life:
  • Reasonable default: 2
  • Data type: uint64_t
  • Possible values: any integer >= 2

number_nodes

The number of nodes in the MINHTON tree used for broadcasting.

Properties
  • Required: :fontawesome-solid-star-of-life:
  • Reasonable default: 20
  • Data type: uint32_t

mode

The natter algorithm used for broadcasting.

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

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: join, publish

scenario_sequence.join

A scenario step to let nodes join the MINHTON tree. When executing this step, all nodes (as specified by numberNodes) will join the network.

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

Properties
  • Required:
  • Possible values: mode, delay

scenario_sequence.join.mode

Specify which type of join should be used to join the tree.

With the MINHCAST join, all connections are statically calculated and inserted into the nodes. The actual MINHTON join algorithm is not executed.

Properties
  • Required: :fontawesome-solid-star-of-life:
  • Possible values: minhcast

scenario_sequence.join.delay

Specifies additional delay (added to default_delay) that is added before executing the MINHTON static join.

Properties
  • Required:
  • 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

A scenario step to let nodes publish a message.

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

Properties
  • Required:
  • Possible values: number, delay, mode, message_size

scenario_sequence.publish.number

Specifies the number of nodes that should publish a message in this step.

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

scenario_sequence.publish.delay

Specifies additional delay (added to default_delay) that is added before before publishing a message.

When more than one node should publish a message in the same step, this delay is added before each publish.

Properties
  • Required:
  • 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.mode

Specifies which node(s) should publish a message.

In mode random, the nodes are selected completely randomly.

With mode sequential, the nodes are selected by their ID one after another, starting with ID 0. For MINHTON, this results in publishing level-wise from left to right, starting with node 0:0, then 1:0, 1:1, 2:0, 2:1 and so forth. For each publish step, this procedure starts again from ID 0.

Properties
  • Required: :fontawesome-solid-star-of-life:
  • Reasonable default: random
  • Data type: string
  • Possible values: random, sequential

scenario_sequence.publish.message_size

The size of the message that should be published in bytes.

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