4.3.1. System Configuration#

4.3.1.1. Base#

class simbricks.orchestration.system.base.System(name: str = '76f9ad0e-0a57-4956-9ee2-3d98788f7015')#

Defines System configuration of the whole simulation

get_comp(ident: int) Component#
get_inf(ident: int) Interface#
get_chan(ident: int) Channel#
static set_latencies(channels: list[Channel], amount: int, ratio: Time) None#
latencies(amount: int, ratio: Time, channel_type: Any | None = None) None#
toJSON() dict#
classmethod fromJSON(json_obj: dict, enforce_dummies: bool = False) Self#
id() int#
class simbricks.orchestration.system.base.Component(s: System)#

Defines a component that is a part of the System Configuration.

Components could e.g. be hosts, NICs, switches.

interfaces() list[Interface]#
add_if(interface: Interface) None#
channels() list[Channel]#
async prepare(inst: inst_base.Instantiation) None#
toJSON() dict#
classmethod fromJSON(system: System, json_obj: dict) Self#
id() int#
class simbricks.orchestration.system.base.DummyComponent(s: System)#
classmethod fromJSON(system: System, json_obj: dict) Self#
add_if(interface: Interface) None#
channels() list[Channel]#
id() int#
interfaces() list[Interface]#
async prepare(inst: inst_base.Instantiation) None#
toJSON() dict#
class simbricks.orchestration.system.base.Interface(c: Component)#

Specifies a single Interface of a Component.

A host component could e.g. have multiple PCI Interfaces.

is_connected() bool#
disconnect() None#
connect(c: Channel) None#
find_peer() Interface#
get_chan_raise() Channel#
get_opposing_interface() Interface#
T = ~T#
static filter_by_type(interfaces: list[Interface], ty: type[T]) list[T]#
toJSON() dict#
classmethod fromJSON(system: System, json_obj: dict) Self#

Deserializes an Interface from its JSON representation.

Note: This function will not set the component which is done by the component base classes ‘fromJSON’ method.

id() int#
class simbricks.orchestration.system.base.DummyInterface(c: Component)#
classmethod fromJSON(system: System, json_obj: dict) Self#

Deserializes an Interface from its JSON representation.

Note: This function will not set the component which is done by the component base classes ‘fromJSON’ method.

T = ~T#
connect(c: Channel) None#
disconnect() None#
static filter_by_type(interfaces: list[Interface], ty: type[T]) list[T]#
find_peer() Interface#
get_chan_raise() Channel#
get_opposing_interface() Interface#
id() int#
is_connected() bool#
toJSON() dict#
component: Component#
channel: Channel | None#
class simbricks.orchestration.system.base.Channel(a: Interface, b: Interface)#
interfaces() tuple[Interface, Interface]#
disconnect()#
get_opposing_interface(interface: Interface) Interface#
set_latency(amount: int, ratio: Time = Time.Nanoseconds) None#
toJSON() dict#
classmethod fromJSON(system: System, json_obj: dict) Self#
id() int#

4.3.1.2. Eth#

class simbricks.orchestration.system.eth.EthInterface(c: Component)#
connect(c: Channel) None#
T = ~T#
disconnect() None#
static filter_by_type(interfaces: list[Interface], ty: type[T]) list[T]#
find_peer() Interface#
classmethod fromJSON(system: System, json_obj: dict) Self#

Deserializes an Interface from its JSON representation.

Note: This function will not set the component which is done by the component base classes ‘fromJSON’ method.

get_chan_raise() Channel#
get_opposing_interface() Interface#
id() int#
is_connected() bool#
toJSON() dict#
component: Component#
channel: Channel | None#
class simbricks.orchestration.system.eth.EthChannel(a: EthInterface, b: EthInterface)#
disconnect()#
classmethod fromJSON(system: System, json_obj: dict) Self#
get_opposing_interface(interface: Interface) Interface#
id() int#
interfaces() tuple[Interface, Interface]#
set_latency(amount: int, ratio: Time = Time.Nanoseconds) None#
toJSON() dict#
class simbricks.orchestration.system.eth.EthSimpleNIC(s: System)#
add_ipv4(ip: str) None#
add_if(interface: EthInterface) None#
connect_eth_peer_if(peer_i: EthInterface) EthChannel#
toJSON() dict#
classmethod fromJSON(system: System, json_obj: dict) Self#
channels() list[Channel]#
id() int#
interfaces() list[Interface]#
async prepare(inst: inst_base.Instantiation) None#
class simbricks.orchestration.system.eth.BaseEthNetComponent(s: System)#
add_if(i: EthInterface) None#
toJSON() dict#
classmethod fromJSON(system: System, json_obj: dict) Self#
connect_eth_peer_if(peer_i: EthInterface) EthChannel#
channels() list[Channel]#
id() int#
interfaces() list[Interface]#
async prepare(inst: inst_base.Instantiation) None#
class simbricks.orchestration.system.eth.EthWire(s: System)#
add_if(i: EthInterface) None#
channels() list[Channel]#
connect_eth_peer_if(peer_i: EthInterface) EthChannel#
classmethod fromJSON(system: System, json_obj: dict) Self#
id() int#
interfaces() list[Interface]#
async prepare(inst: inst_base.Instantiation) None#
toJSON() dict#
class simbricks.orchestration.system.eth.EthSwitch(s: System)#
add_if(i: EthInterface) None#
channels() list[Channel]#
connect_eth_peer_if(peer_i: EthInterface) EthChannel#
classmethod fromJSON(system: System, json_obj: dict) Self#
id() int#
interfaces() list[Interface]#
async prepare(inst: inst_base.Instantiation) None#
toJSON() dict#

4.3.1.3. PCIe#

class simbricks.orchestration.system.pcie.PCIeHostInterface(c: Component)#
T = ~T#
connect(c: Channel) None#
disconnect() None#
static filter_by_type(interfaces: list[Interface], ty: type[T]) list[T]#
find_peer() Interface#
classmethod fromJSON(system: System, json_obj: dict) Self#

Deserializes an Interface from its JSON representation.

Note: This function will not set the component which is done by the component base classes ‘fromJSON’ method.

get_chan_raise() Channel#
get_opposing_interface() Interface#
id() int#
is_connected() bool#
toJSON() dict#
component: Component#
channel: Channel | None#
class simbricks.orchestration.system.pcie.PCIeDeviceInterface(c: Component)#
connect(c: Channel) None#
T = ~T#
disconnect() None#
static filter_by_type(interfaces: list[Interface], ty: type[T]) list[T]#
find_peer() Interface#
classmethod fromJSON(system: System, json_obj: dict) Self#

Deserializes an Interface from its JSON representation.

Note: This function will not set the component which is done by the component base classes ‘fromJSON’ method.

get_chan_raise() Channel#
get_opposing_interface() Interface#
id() int#
is_connected() bool#
toJSON() dict#
component: Component#
channel: Channel | None#
class simbricks.orchestration.system.pcie.PCIeChannel(host: PCIeHostInterface, dev: PCIeDeviceInterface)#
host_if() PCIeHostInterface#
dev_if() PCIeDeviceInterface#
disconnect()#
classmethod fromJSON(system: System, json_obj: dict) Self#
get_opposing_interface(interface: Interface) Interface#
id() int#
interfaces() tuple[Interface, Interface]#
set_latency(amount: int, ratio: Time = Time.Nanoseconds) None#
toJSON() dict#
class simbricks.orchestration.system.pcie.PCIeSimpleDevice(s: System)#
add_if(interface: PCIeDeviceInterface) None#
toJSON() dict#
classmethod fromJSON(system: System, json_obj: dict) Self#
channels() list[Channel]#
id() int#
interfaces() list[Interface]#
async prepare(inst: inst_base.Instantiation) None#
class simbricks.orchestration.system.pcie.NVMeSSD(s: System)#
classmethod fromJSON(system: System, json_obj: dict) Self#
add_if(interface: PCIeDeviceInterface) None#
channels() list[Channel]#
id() int#
interfaces() list[Interface]#
async prepare(inst: inst_base.Instantiation) None#
toJSON() dict#

4.3.1.4. Mem#

class simbricks.orchestration.system.mem.MemHostInterface(c: Component)#
T = ~T#
connect(c: Channel) None#
disconnect() None#
static filter_by_type(interfaces: list[Interface], ty: type[T]) list[T]#
find_peer() Interface#
classmethod fromJSON(system: System, json_obj: dict) Self#

Deserializes an Interface from its JSON representation.

Note: This function will not set the component which is done by the component base classes ‘fromJSON’ method.

get_chan_raise() Channel#
get_opposing_interface() Interface#
id() int#
is_connected() bool#
toJSON() dict#
component: Component#
channel: Channel | None#
class simbricks.orchestration.system.mem.MemDeviceInterface(c: Component)#
connect(c: Channel) None#
T = ~T#
disconnect() None#
static filter_by_type(interfaces: list[Interface], ty: type[T]) list[T]#
find_peer() Interface#
classmethod fromJSON(system: System, json_obj: dict) Self#

Deserializes an Interface from its JSON representation.

Note: This function will not set the component which is done by the component base classes ‘fromJSON’ method.

get_chan_raise() Channel#
get_opposing_interface() Interface#
id() int#
is_connected() bool#
toJSON() dict#
component: Component#
channel: Channel | None#
class simbricks.orchestration.system.mem.MemChannel(host: MemHostInterface, dev: MemDeviceInterface)#
host_if() MemHostInterface#
dev_if() MemDeviceInterface#
disconnect()#
classmethod fromJSON(system: System, json_obj: dict) Self#
get_opposing_interface(interface: Interface) Interface#
id() int#
interfaces() tuple[Interface, Interface]#
set_latency(amount: int, ratio: Time = Time.Nanoseconds) None#
toJSON() dict#
class simbricks.orchestration.system.mem.MemSimpleDevice(s: System)#
add_if(interface: MemDeviceInterface) None#
toJSON() dict#
classmethod fromJSON(system: System, json_obj: dict) Self#
channels() list[Channel]#
id() int#
interfaces() list[Interface]#
async prepare(inst: inst_base.Instantiation) None#
class simbricks.orchestration.system.mem.MemInterconnect(s: System)#
add_if(interface: MemDeviceInterface | MemHostInterface) None#
connect_host(peer_if: MemHostInterface) MemChannel#
connect_device(peer_if: MemDeviceInterface) MemChannel#
add_route(dev: MemHostInterface, vaddr: int, len: int, paddr: int = 0)#
toJSON() dict#
classmethod fromJSON(system: System, json_obj: dict) Self#
channels() list[Channel]#
id() int#
interfaces() list[Interface]#
async prepare(inst: inst_base.Instantiation) None#
class simbricks.orchestration.system.mem.MemTerminal(s: System)#
add_if(interface: MemDeviceInterface) None#
toJSON() dict#
classmethod fromJSON(system: System, json_obj: dict) Self#
channels() list[Channel]#
id() int#
interfaces() list[Interface]#
async prepare(inst: inst_base.Instantiation) None#

4.3.1.5. NIC#

class simbricks.orchestration.system.nic.SimplePCIeNIC(s: System)#
add_if(interface: EthInterface | PCIeDeviceInterface) None#
add_ipv4(ip: str) None#
channels() list[Channel]#
connect_eth_peer_if(peer_i: EthInterface) EthChannel#
classmethod fromJSON(system: System, json_obj: dict) Self#
id() int#
interfaces() list[Interface]#
async prepare(inst: inst_base.Instantiation) None#
toJSON() dict#
class simbricks.orchestration.system.nic.IntelI40eNIC(s: System)#
add_if(interface: EthInterface | PCIeDeviceInterface) None#
add_ipv4(ip: str) None#
channels() list[Channel]#
connect_eth_peer_if(peer_i: EthInterface) EthChannel#
classmethod fromJSON(system: System, json_obj: dict) Self#
id() int#
interfaces() list[Interface]#
async prepare(inst: inst_base.Instantiation) None#
toJSON() dict#
class simbricks.orchestration.system.nic.IntelE1000NIC(s: System)#
add_if(interface: EthInterface | PCIeDeviceInterface) None#
add_ipv4(ip: str) None#
channels() list[Channel]#
connect_eth_peer_if(peer_i: EthInterface) EthChannel#
classmethod fromJSON(system: System, json_obj: dict) Self#
id() int#
interfaces() list[Interface]#
async prepare(inst: inst_base.Instantiation) None#
toJSON() dict#