marvis.node.base

Base abstract class for a node.

Classes

Node

A node represents a computer in the simulation.


class marvis.node.base.Node(name)[source]

Bases: object

A node represents a computer in the simulation.

It has a unique name.

Parameters

name (str) – A unique name for this node.

channels

The cannels the node is connected to.

name

The name of the node.

ns3_node

The ns-3 internal node.

position

The position of the node (used by wifi models and visualization)

color

The color of the node used in the visualization.

interfaces

The interfaces (~network cards) of this node.

command_executor

The command executor for running (shell) commands.

set_position(x, y, z=0)[source]

Set the position of the node and updates the mobitlity model.

Parameters
  • x (float) – The x-position.

  • y (float) – The y-position.

  • z (float) – The z-position.

add_interface(interface, name=None, prefix='eth')[source]

Add an interface to the node.

Warning: Do not call this function manually.

The functionality is handled by the network and channels.

Parameters
  • interface (Interface) – The interface to add.

  • name (str) – The name of the interface.

  • prefix (str) – If no name is supplied, the function works out a name by appending a number to the prefix.

prepare(simulation)[source]

Do all neccesary steps to prepare a node for the simulation.

Parameters

simulation (Simulation) – The simulation to prepare the node for.

wants_ip_stack()[source]

Indicates whether a IP stack shall be installed onto the node.

Installing is handled by the Channel.

Returns

True indicates that a ns-3 IP stack shall be installed when preparing this node.

Return type

bool

execute_command(command, user=None)[source]

Execute a command within the node.

Parameters
  • command (str or list of str) – The command to execute.

  • user (str) – If a user (name) is specified, the command is executed as this user. Warning: Not all nodes support this feature.

go_offline()[source]

Disconnect the node from all channels.

go_online()[source]

Connect the node back to all channels.

Inheritance Diagramm

Inheritance diagram of marvis.node.base