131 lines
3.6 KiB
ReStructuredText
131 lines
3.6 KiB
ReStructuredText
.. only:: comment
|
|
|
|
© Crown-owned copyright 2024, Defence Science and Technology Laboratory UK
|
|
|
|
|
|
``simulation``
|
|
==============
|
|
In this section the network layout is defined. This part of the config follows a hierarchical structure. Almost every component defines a ``ref`` field which acts as a human-readable unique identifier, used by other parts of the config, such as agents.
|
|
|
|
At the top level of the network are ``nodes``, ``links`` and ``airspace``.
|
|
|
|
e.g.
|
|
|
|
.. code-block:: yaml
|
|
|
|
simulation:
|
|
network:
|
|
nodes:
|
|
...
|
|
links:
|
|
...
|
|
airspace:
|
|
...
|
|
|
|
|
|
``nodes``
|
|
---------
|
|
|
|
This is where the list of nodes are defined. Some items will differ according to the node type, however, there will be common items such as a node's reference (which is used by the agent), the node's ``type`` and ``hostname``
|
|
|
|
To see the configuration for these nodes, refer to the following:
|
|
|
|
.. toctree::
|
|
:maxdepth: 1
|
|
:glob:
|
|
|
|
simulation/nodes/computer
|
|
simulation/nodes/firewall
|
|
simulation/nodes/router
|
|
simulation/nodes/server
|
|
simulation/nodes/switch
|
|
simulation/nodes/wireless_router
|
|
simulation/nodes/network_examples
|
|
|
|
``links``
|
|
---------
|
|
|
|
This is where the links between the nodes are formed.
|
|
|
|
e.g.
|
|
|
|
In order to recreate the network below, we will need to create 2 links:
|
|
|
|
- a link from computer_1 to the switch
|
|
- a link from computer_2 to the switch
|
|
|
|
.. image:: ../../_static/switched_p2p_network.png
|
|
:width: 500
|
|
:align: center
|
|
|
|
this results in:
|
|
|
|
.. code-block:: yaml
|
|
|
|
links:
|
|
- endpoint_a_hostname: computer_1
|
|
endpoint_a_port: 1 # port 1 on computer_1
|
|
endpoint_b_hostname: switch
|
|
endpoint_b_port: 1 # port 1 on switch
|
|
bandwidth: 100
|
|
- endpoint_a_hostname: computer_2
|
|
endpoint_a_port: 1 # port 1 on computer_2
|
|
endpoint_b_hostname: switch
|
|
endpoint_b_port: 2 # port 2 on switch
|
|
bandwidth: 100
|
|
|
|
``ref``
|
|
^^^^^^^
|
|
|
|
The human readable name for the link. Not used in code, however is useful for a human to understand what the link is for.
|
|
|
|
``endpoint_a_hostname``
|
|
^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
The ``hostname`` of the node which must be connected.
|
|
|
|
``endpoint_a_port``
|
|
^^^^^^^^^^^^^^^^^^^
|
|
|
|
The port on ``endpoint_a_hostname`` which is to be connected to ``endpoint_b_port``.
|
|
This accepts an integer value e.g. if port 1 is to be connected, the configuration should be ``endpoint_a_port: 1``
|
|
|
|
``endpoint_b_hostname``
|
|
^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
The ``hostname`` of the node which must be connected.
|
|
|
|
``endpoint_b_port``
|
|
^^^^^^^^^^^^^^^^^^^
|
|
|
|
The port on ``endpoint_b_hostname`` which is to be connected to ``endpoint_a_port``.
|
|
This accepts an integer value e.g. if port 1 is to be connected, the configuration should be ``endpoint_b_port: 1``
|
|
|
|
``bandwidth``
|
|
|
|
This is an integer value specifying the allowed bandwidth across the connection. Units are in Mbps.
|
|
|
|
``airspace``
|
|
------------
|
|
|
|
This section configures settings specific to the wireless network's virtual airspace.
|
|
|
|
``frequency_max_capacity_mbps``
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
This setting allows the user to override the default maximum bandwidth capacity set for each frequency. The key should
|
|
be the AirSpaceFrequency name and the value be the desired maximum bandwidth capacity in mbps (megabits per second) for
|
|
a single timestep.
|
|
|
|
The below example would permit 123.45 megabits to be transmit across the WiFi 2.4 GHz frequency in a single timestep.
|
|
Setting a frequencies max capacity to 0.0 blocks that frequency on the airspace.
|
|
|
|
.. code-block:: yaml
|
|
|
|
simulation:
|
|
network:
|
|
airspace:
|
|
frequency_max_capacity_mbps:
|
|
WIFI_2_4: 123.45
|
|
WIFI_5: 0.0
|