4.4.3. ns-3#

4.4.3.1. Simulation#

class simbricks.components.ns3.simulation.ns3.SimpleNS3Sim(simulation: Simulation, executable: str, name: str = '')#
toJSON() dict#
classmethod fromJSON(simulation: Simulation, json_obj: dict) Self#
run_cmd(inst: Instantiation) str#

Command to execute this simulator.

T = ~T#
add(comp: Component) None#
checkpoint_commands() list[str]#
cleanup_commands() list[str]#
components() set[Component]#
property extra_args: str#
static filter_channels_by_sys_type(channels: list[sim_chan.Channel], ty: type[T]) list[T]#
filter_components_by_pred(pred: tp.Callable[[sys_conf.Component], bool], ty: type[T] = <class 'simbricks.orchestration.system.base.Component'>) list[T]#
filter_components_by_type(ty: type[T]) list[T]#
static filter_sockets(sockets: list[Socket], filter_type: SockType = SockType.LISTEN) list[Socket]#
full_name() str#

Full name of the simulator.

get_channels() list[Channel]#
get_interface_url(inst: Instantiation, intf: Interface) str#
get_parameters_url(inst: Instantiation, socket: Socket, channel: Channel | None = None, sync: bool | None = None, latency: int | None = None, sync_period: int | None = None) str#
static get_unique_latency_period_sync(channels: list[Channel]) tuple[int, int, bool]#
id() int#
init_network() None#
async prepare(inst: Instantiation) None#
resreq_cores() int#

Number of cores this simulator requires during execution.

This is used for scheduling multiple runs and experiments.

resreq_mem() int#

Number of memory in MB this simulator requires during execution.

This is used for scheduling multiple runs and experiments.

sockets_cleanup(inst: Instantiation) list[Socket]#
sockets_wait(inst: Instantiation) list[Socket]#
static split_sockets_by_type(sockets: list[Socket]) tuple[list[Socket], list[Socket]]#
start_delay() int#
supported_socket_types(interface: Interface) set[SockType]#
supports_checkpointing() bool#
property wait_terminate: bool#
class simbricks.components.ns3.simulation.ns3.NS3DumbbellNet(simulation: Simulation)#
name: str#
add(left: EthSwitch, right: EthSwitch)#
toJSON() dict#
classmethod fromJSON(simulation: Simulation, json_obj: dict) Self#
run_cmd(inst: Instantiation) str#

Command to execute this simulator.

T = ~T#
checkpoint_commands() list[str]#
cleanup_commands() list[str]#
components() set[Component]#
property extra_args: str#
static filter_channels_by_sys_type(channels: list[sim_chan.Channel], ty: type[T]) list[T]#
filter_components_by_pred(pred: tp.Callable[[sys_conf.Component], bool], ty: type[T] = <class 'simbricks.orchestration.system.base.Component'>) list[T]#
filter_components_by_type(ty: type[T]) list[T]#
static filter_sockets(sockets: list[Socket], filter_type: SockType = SockType.LISTEN) list[Socket]#
full_name() str#

Full name of the simulator.

get_channels() list[Channel]#
get_interface_url(inst: Instantiation, intf: Interface) str#
get_parameters_url(inst: Instantiation, socket: Socket, channel: Channel | None = None, sync: bool | None = None, latency: int | None = None, sync_period: int | None = None) str#
static get_unique_latency_period_sync(channels: list[Channel]) tuple[int, int, bool]#
id() int#
init_network() None#
async prepare(inst: Instantiation) None#
resreq_cores() int#

Number of cores this simulator requires during execution.

This is used for scheduling multiple runs and experiments.

resreq_mem() int#

Number of memory in MB this simulator requires during execution.

This is used for scheduling multiple runs and experiments.

sockets_cleanup(inst: Instantiation) list[Socket]#
sockets_wait(inst: Instantiation) list[Socket]#
static split_sockets_by_type(sockets: list[Socket]) tuple[list[Socket], list[Socket]]#
start_delay() int#
supported_socket_types(interface: Interface) set[SockType]#
supports_checkpointing() bool#
property wait_terminate: bool#
opt: str | None#
class simbricks.components.ns3.simulation.ns3.NS3BridgeNet(simulation: Simulation)#
name: str#
add(switch_comp: EthSwitch)#
toJSON() dict#
classmethod fromJSON(simulation: Simulation, json_obj: dict) Self#
run_cmd(inst: Instantiation) str#

Command to execute this simulator.

T = ~T#
checkpoint_commands() list[str]#
cleanup_commands() list[str]#
components() set[Component]#
property extra_args: str#
static filter_channels_by_sys_type(channels: list[sim_chan.Channel], ty: type[T]) list[T]#
filter_components_by_pred(pred: tp.Callable[[sys_conf.Component], bool], ty: type[T] = <class 'simbricks.orchestration.system.base.Component'>) list[T]#
filter_components_by_type(ty: type[T]) list[T]#
static filter_sockets(sockets: list[Socket], filter_type: SockType = SockType.LISTEN) list[Socket]#
full_name() str#

Full name of the simulator.

get_channels() list[Channel]#
get_interface_url(inst: Instantiation, intf: Interface) str#
get_parameters_url(inst: Instantiation, socket: Socket, channel: Channel | None = None, sync: bool | None = None, latency: int | None = None, sync_period: int | None = None) str#
static get_unique_latency_period_sync(channels: list[Channel]) tuple[int, int, bool]#
id() int#
init_network() None#
async prepare(inst: Instantiation) None#
resreq_cores() int#

Number of cores this simulator requires during execution.

This is used for scheduling multiple runs and experiments.

resreq_mem() int#

Number of memory in MB this simulator requires during execution.

This is used for scheduling multiple runs and experiments.

sockets_cleanup(inst: Instantiation) list[Socket]#
sockets_wait(inst: Instantiation) list[Socket]#
static split_sockets_by_type(sockets: list[Socket]) tuple[list[Socket], list[Socket]]#
start_delay() int#
supported_socket_types(interface: Interface) set[SockType]#
supports_checkpointing() bool#
property wait_terminate: bool#
opt: str | None#
class simbricks.components.ns3.simulation.ns3.NS3Net(simulation: Simulation)#
name: str#
add(comp: Component)#
toJSON() dict#
classmethod fromJSON(simulation: Simulation, json_obj: dict) Self#
supported_socket_types(interface: Interface) set[SockType]#
run_cmd(inst: Instantiation) str#

Command to execute this simulator.

T = ~T#
checkpoint_commands() list[str]#
cleanup_commands() list[str]#
components() set[Component]#
property extra_args: str#
static filter_channels_by_sys_type(channels: list[sim_chan.Channel], ty: type[T]) list[T]#
filter_components_by_pred(pred: tp.Callable[[sys_conf.Component], bool], ty: type[T] = <class 'simbricks.orchestration.system.base.Component'>) list[T]#
filter_components_by_type(ty: type[T]) list[T]#
static filter_sockets(sockets: list[Socket], filter_type: SockType = SockType.LISTEN) list[Socket]#
full_name() str#

Full name of the simulator.

get_channels() list[Channel]#
get_interface_url(inst: Instantiation, intf: Interface) str#
get_parameters_url(inst: Instantiation, socket: Socket, channel: Channel | None = None, sync: bool | None = None, latency: int | None = None, sync_period: int | None = None) str#
static get_unique_latency_period_sync(channels: list[Channel]) tuple[int, int, bool]#
id() int#
init_network() None#
async prepare(inst: Instantiation) None#
resreq_cores() int#

Number of cores this simulator requires during execution.

This is used for scheduling multiple runs and experiments.

resreq_mem() int#

Number of memory in MB this simulator requires during execution.

This is used for scheduling multiple runs and experiments.

sockets_cleanup(inst: Instantiation) list[Socket]#
sockets_wait(inst: Instantiation) list[Socket]#
static split_sockets_by_type(sockets: list[Socket]) tuple[list[Socket], list[Socket]]#
start_delay() int#
supports_checkpointing() bool#
property wait_terminate: bool#
opt: str | None#

4.4.3.2. ns-3 Component Configuration#

class simbricks.components.ns3.simulation.ns3_components.CongestionControl(*values)#
RENO = ('ns3::TcpLinuxReno', 'reno')#
WESTWOOD = ('ns3::TcpWestwoodPlus', 'westwood')#
BIC = ('ns3::TcpBic', 'bic')#
CUBIC = ('ns3::TcpCubic', 'cubic')#
HTCP = ('ns3::TcpHtcp', 'htcp')#
HYBLA = ('ns3::TcpHybla', 'hybla')#
VEGAS = ('ns3::TcpVegas', 'vegas')#
NV = ('', 'nv')#
SCALABLE = ('ns3::TcpScalable', 'scalable')#
LP = ('ns3::TcpLp', 'lp')#
VENO = ('ns3::TcpVeno', 'veno')#
YEAH = ('ns3::TcpYeah', 'yeah')#
ILLINOIS = ('ns3::TcpIllinois', 'illinois')#
DCTCP = ('ns3::TcpDctcp', 'dctcp')#
CDG = ('', 'cdg')#
BBR = ('ns3::TcpBbr', 'bbr')#
HIGHSPEED = ('ns3::TcpHighSpeed', 'highspeed')#
property ns3#
property gem5#
class simbricks.components.ns3.simulation.ns3_components.NS3LoggingLevel(*values)#
ERROR = 'error'#
LEVEL_ERROR = 'level_error'#
WARN = 'warn'#
LEVEL_WARN = 'level_warn'#
DEBUG = 'debug'#
LEVEL_DEBUG = 'level_debug'#
INFO = 'info'#
LEVEL_INFO = 'level_info'#
FUNCTION = 'function'#
LEVEL_FUNCTION = 'level_function'#
LOGIC = 'logic'#
LEVEL_LOGIC = 'level_logic'#
ALL = 'all'#
LEVEL_ALL = 'level_all'#
PREFIX_FUNC = 'prefix_func'#
PREFIX_TIME = 'prefix_time'#
PREFIX_NODE = 'prefix_node'#
PREFIX_LEVEL = 'prefix_level'#
PREFIX_ALL = 'prefix_all'#
class simbricks.components.ns3.simulation.ns3_components.NS3Base#
ns3_config() str#
abstractmethod add_component(component: NS3Component) None#
static get_parameter(comp: Component | Channel | Application, key: str, default: str = '') str#
toJSON()#
classmethod fromJSON(json_obj)#
id() int#
class simbricks.components.ns3.simulation.ns3_components.NS3GlobalConfig#
ns3_config() str#
add_component(component: NS3Component) None#
toJSON()#
classmethod fromJSON(json_obj)#
static get_parameter(comp: Component | Channel | Application, key: str, default: str = '') str#
id() int#
class simbricks.components.ns3.simulation.ns3_components.NS3Logging#
ns3_config() str#
add_component(component: NS3Component) None#
add_logging(component: str, level: NS3LoggingLevel)#
toJSON()#
classmethod fromJSON(json_obj)#
static get_parameter(comp: Component | Channel | Application, key: str, default: str = '') str#
id() int#
class simbricks.components.ns3.simulation.ns3_components.NS3Component(idd: str)#
ns3_config() str#
add_component(component: NS3Component) None#
resolve_paths() None#
toJSON()#
classmethod fromJSON(json_obj)#
static get_parameter(comp: Component | Channel | Application, key: str, default: str = '') str#
id() int#
class simbricks.components.ns3.simulation.ns3_components.NS3TopologyNode(idd: str)#
add_component(component: NS3Component) None#
classmethod fromJSON(json_obj)#
static get_parameter(comp: Component | Channel | Application, key: str, default: str = '') str#
id() int#
ns3_config() str#
resolve_paths() None#
toJSON()#
class simbricks.components.ns3.simulation.ns3_components.NS3SwitchNode(switch: EthSwitch)#
ns3_config() str#
add_component(component: NS3Component) None#
classmethod fromJSON(json_obj)#
static get_parameter(comp: Component | Channel | Application, key: str, default: str = '') str#
id() int#
resolve_paths() None#
toJSON()#
class simbricks.components.ns3.simulation.ns3_components.NS3TopologyChannel(idd: str)#
add_component(component: NS3Component) None#
classmethod fromJSON(json_obj)#
static get_parameter(comp: Component | Channel | Application, key: str, default: str = '') str#
id() int#
ns3_config() str#
resolve_paths() None#
toJSON()#
class simbricks.components.ns3.simulation.ns3_components.NS3SimpleChannel(channel: EthChannel)#
ns3_config() str#
add_device_attr(key: str, value: str) None#
add_queue_attr(key: str, value: str) None#
add_channel_attr(key: str, value: str) None#
add_component(component: NS3Component) None#
classmethod fromJSON(json_obj)#
static get_parameter(comp: Component | Channel | Application, key: str, default: str = '') str#
id() int#
resolve_paths() None#
toJSON()#
class simbricks.components.ns3.simulation.ns3_components.NS3Network(idd: str)#
add_component(component: NS3Component) None#
classmethod fromJSON(json_obj)#
static get_parameter(comp: Component | Channel | Application, key: str, default: str = '') str#
id() int#
ns3_config() str#
resolve_paths() None#
toJSON()#
class simbricks.components.ns3.simulation.ns3_components.NS3NetworkSimbricks(comp: Component, chan: Channel, socket: Socket)#
ns3_config() str#
add_component(component: NS3Component) None#
classmethod fromJSON(json_obj)#
static get_parameter(comp: Component | Channel | Application, key: str, default: str = '') str#
id() int#
resolve_paths() None#
toJSON()#
class simbricks.components.ns3.simulation.ns3_components.NS3Host(idd: str)#
add_component(component: NS3Component) None#
classmethod fromJSON(json_obj)#
static get_parameter(comp: Component | Channel | Application, key: str, default: str = '') str#
id() int#
ns3_config() str#
resolve_paths() None#
toJSON()#
class simbricks.components.ns3.simulation.ns3_components.NS3SimpleHost(host: Host)#
ns3_config() str#
add_device_attr(key: str, value: str) None#
add_queue_attr(key: str, value: str) None#
add_channel_attr(key: str, value: str) None#
add_component(component: NS3Component) None#
classmethod fromJSON(json_obj)#
static get_parameter(comp: Component | Channel | Application, key: str, default: str = '') str#
id() int#
resolve_paths() None#
toJSON()#
class simbricks.components.ns3.simulation.ns3_components.NS3Application(idd: str)#
ns3_config() str#
add_component(component: NS3Component) None#
classmethod fromJSON(json_obj)#
static get_parameter(comp: Component | Channel | Application, key: str, default: str = '') str#
id() int#
resolve_paths() None#
toJSON()#
class simbricks.components.ns3.simulation.ns3_components.NS3GenericApplication(app: Application)#
ns3_config() str#
add_component(component: NS3Component) None#
classmethod fromJSON(json_obj)#
static get_parameter(comp: Component | Channel | Application, key: str, default: str = '') str#
id() int#
resolve_paths() None#
toJSON()#
class simbricks.components.ns3.simulation.ns3_components.E2EPacketSinkApplication(idd: str)#
ns3_config() str#
add_component(component: NS3Component) None#
classmethod fromJSON(json_obj)#
static get_parameter(comp: Component | Channel | Application, key: str, default: str = '') str#
id() int#
resolve_paths() None#
toJSON()#
class simbricks.components.ns3.simulation.ns3_components.E2EBulkSendApplication(idd: str)#
ns3_config() str#
add_component(component: NS3Component) None#
classmethod fromJSON(json_obj)#
static get_parameter(comp: Component | Channel | Application, key: str, default: str = '') str#
id() int#
resolve_paths() None#
toJSON()#
class simbricks.components.ns3.simulation.ns3_components.E2ENS3RandomVariable#
get_config() str#
abstractmethod get_parameters() str#
class simbricks.components.ns3.simulation.ns3_components.E2ENS3ConstantRandomVariable#
get_parameters() str#
get_config() str#
class simbricks.components.ns3.simulation.ns3_components.E2ENS3UniformRandomVariable#
get_parameters() str#
get_config() str#
class simbricks.components.ns3.simulation.ns3_components.E2ENS3ExponentialRandomVariable#
get_parameters() str#
get_config() str#
class simbricks.components.ns3.simulation.ns3_components.E2ENS3NormalRandomVariable#
get_parameters() str#
get_config() str#
class simbricks.components.ns3.simulation.ns3_components.E2EOnOffApplication(idd: str)#
ns3_config() str#
add_component(component: NS3Component) None#
classmethod fromJSON(json_obj)#
static get_parameter(comp: Component | Channel | Application, key: str, default: str = '') str#
id() int#
resolve_paths() None#
toJSON()#
class simbricks.components.ns3.simulation.ns3_components.E2EProbe(idd: str)#
add_component(component: NS3Component) None#
classmethod fromJSON(json_obj)#
static get_parameter(comp: Component | Channel | Application, key: str, default: str = '') str#
id() int#
ns3_config() str#
resolve_paths() None#
toJSON()#
class simbricks.components.ns3.simulation.ns3_components.E2EPeriodicSampleProbe(idd: str, probe_type: str)#
ns3_config() str#
add_component(component: NS3Component) None#
classmethod fromJSON(json_obj)#
static get_parameter(comp: Component | Channel | Application, key: str, default: str = '') str#
id() int#
resolve_paths() None#
toJSON()#