#2457 - Syncing changes made. Updates to documentation and tests
This commit is contained in:
@@ -64,10 +64,12 @@ this results in:
|
|||||||
endpoint_a_port: 1 # port 1 on computer_1
|
endpoint_a_port: 1 # port 1 on computer_1
|
||||||
endpoint_b_hostname: switch
|
endpoint_b_hostname: switch
|
||||||
endpoint_b_port: 1 # port 1 on switch
|
endpoint_b_port: 1 # port 1 on switch
|
||||||
|
bandwidth: 100
|
||||||
- endpoint_a_hostname: computer_2
|
- endpoint_a_hostname: computer_2
|
||||||
endpoint_a_port: 1 # port 1 on computer_2
|
endpoint_a_port: 1 # port 1 on computer_2
|
||||||
endpoint_b_hostname: switch
|
endpoint_b_hostname: switch
|
||||||
endpoint_b_port: 2 # port 2 on switch
|
endpoint_b_port: 2 # port 2 on switch
|
||||||
|
bandwidth: 100
|
||||||
|
|
||||||
``ref``
|
``ref``
|
||||||
^^^^^^^
|
^^^^^^^
|
||||||
@@ -95,3 +97,7 @@ The ``hostname`` of the node which must be connected.
|
|||||||
|
|
||||||
The port on ``endpoint_b_hostname`` which is to be connected to ``endpoint_a_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``
|
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.
|
||||||
|
|||||||
@@ -321,7 +321,7 @@ class Network(SimComponent):
|
|||||||
:type endpoint_a: WiredNetworkInterface
|
:type endpoint_a: WiredNetworkInterface
|
||||||
:param endpoint_b: The second endpoint to connect.
|
:param endpoint_b: The second endpoint to connect.
|
||||||
:type endpoint_b: WiredNetworkInterface
|
:type endpoint_b: WiredNetworkInterface
|
||||||
:param bandwidth: bandwidth of new link
|
:param bandwidth: bandwidth of new link, default of 100mbps
|
||||||
:type bandwidth: int
|
:type bandwidth: int
|
||||||
:raises RuntimeError: If any validation or runtime checks fail.
|
:raises RuntimeError: If any validation or runtime checks fail.
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ def create_office_lan(
|
|||||||
num_pcs: int,
|
num_pcs: int,
|
||||||
network: Optional[Network] = None,
|
network: Optional[Network] = None,
|
||||||
include_router: bool = True,
|
include_router: bool = True,
|
||||||
|
bandwidth: int = 100,
|
||||||
) -> Network:
|
) -> Network:
|
||||||
"""
|
"""
|
||||||
Creates a 2-Tier or 3-Tier office local area network (LAN).
|
Creates a 2-Tier or 3-Tier office local area network (LAN).
|
||||||
@@ -109,9 +110,11 @@ def create_office_lan(
|
|||||||
switch.power_on()
|
switch.power_on()
|
||||||
network.add_node(switch)
|
network.add_node(switch)
|
||||||
if num_of_switches > 1:
|
if num_of_switches > 1:
|
||||||
network.connect(core_switch.network_interface[core_switch_port], switch.network_interface[24])
|
network.connect(
|
||||||
|
core_switch.network_interface[core_switch_port], switch.network_interface[24], bandwidth=bandwidth
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
network.connect(router.network_interface[1], switch.network_interface[24])
|
network.connect(router.network_interface[1], switch.network_interface[24], bandwidth=bandwidth)
|
||||||
|
|
||||||
# Add PCs to the LAN and connect them to switches
|
# Add PCs to the LAN and connect them to switches
|
||||||
for i in range(1, num_pcs + 1):
|
for i in range(1, num_pcs + 1):
|
||||||
@@ -125,9 +128,11 @@ def create_office_lan(
|
|||||||
# Connect the new switch to the router or core switch
|
# Connect the new switch to the router or core switch
|
||||||
if num_of_switches > 1:
|
if num_of_switches > 1:
|
||||||
core_switch_port += 1
|
core_switch_port += 1
|
||||||
network.connect(core_switch.network_interface[core_switch_port], switch.network_interface[24])
|
network.connect(
|
||||||
|
core_switch.network_interface[core_switch_port], switch.network_interface[24], bandwidth=bandwidth
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
network.connect(router.network_interface[1], switch.network_interface[24])
|
network.connect(router.network_interface[1], switch.network_interface[24], bandwidth=bandwidth)
|
||||||
|
|
||||||
# Create and add a PC to the network
|
# Create and add a PC to the network
|
||||||
pc = Computer(
|
pc = Computer(
|
||||||
@@ -142,7 +147,7 @@ def create_office_lan(
|
|||||||
|
|
||||||
# Connect the PC to the switch
|
# Connect the PC to the switch
|
||||||
switch_port += 1
|
switch_port += 1
|
||||||
network.connect(switch.network_interface[switch_port], pc.network_interface[1])
|
network.connect(switch.network_interface[switch_port], pc.network_interface[1], bandwidth=bandwidth)
|
||||||
switch.network_interface[switch_port].enable()
|
switch.network_interface[switch_port].enable()
|
||||||
|
|
||||||
return network
|
return network
|
||||||
|
|||||||
@@ -547,7 +547,7 @@ class Link(SimComponent):
|
|||||||
|
|
||||||
:param endpoint_a: The first NIC or SwitchPort connected to the Link.
|
:param endpoint_a: The first NIC or SwitchPort connected to the Link.
|
||||||
:param endpoint_b: The second NIC or SwitchPort connected to the Link.
|
:param endpoint_b: The second NIC or SwitchPort connected to the Link.
|
||||||
:param bandwidth: The bandwidth of the Link in Mbps (default is 100 Mbps).
|
:param bandwidth: The bandwidth of the Link in Mbps.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
endpoint_a: WiredNetworkInterface
|
endpoint_a: WiredNetworkInterface
|
||||||
@@ -555,7 +555,7 @@ class Link(SimComponent):
|
|||||||
endpoint_b: WiredNetworkInterface
|
endpoint_b: WiredNetworkInterface
|
||||||
"The second WiredNetworkInterface connected to the Link."
|
"The second WiredNetworkInterface connected to the Link."
|
||||||
bandwidth: float
|
bandwidth: float
|
||||||
"The bandwidth of the Link in Mbps (default is 100 Mbps)."
|
"The bandwidth of the Link in Mbps."
|
||||||
current_load: float = 0.0
|
current_load: float = 0.0
|
||||||
"The current load on the link in Mbps."
|
"The current load on the link in Mbps."
|
||||||
|
|
||||||
|
|||||||
@@ -234,7 +234,9 @@ simulation:
|
|||||||
endpoint_a_port: 1
|
endpoint_a_port: 1
|
||||||
endpoint_b_hostname: client_1
|
endpoint_b_hostname: client_1
|
||||||
endpoint_b_port: 1
|
endpoint_b_port: 1
|
||||||
|
bandwidth: 200
|
||||||
- endpoint_a_hostname: switch_1
|
- endpoint_a_hostname: switch_1
|
||||||
endpoint_a_port: 2
|
endpoint_a_port: 2
|
||||||
endpoint_b_hostname: client_2
|
endpoint_b_hostname: client_2
|
||||||
endpoint_b_port: 1
|
endpoint_b_port: 1
|
||||||
|
bandwidth: 200
|
||||||
|
|||||||
@@ -43,3 +43,6 @@ def test_basic_config():
|
|||||||
# client 3 should not be online
|
# client 3 should not be online
|
||||||
client_3: Computer = network.get_node_by_hostname("client_3")
|
client_3: Computer = network.get_node_by_hostname("client_3")
|
||||||
assert client_3.operating_state == NodeOperatingState.OFF
|
assert client_3.operating_state == NodeOperatingState.OFF
|
||||||
|
|
||||||
|
for link in network.links:
|
||||||
|
assert network.links[link].bandwidth == 200
|
||||||
|
|||||||
Reference in New Issue
Block a user