mirror of
https://gitlab.com/manzerbredes/esds.git
synced 2025-04-07 02:26:28 +02:00
41 lines
2.4 KiB
Python
Executable file
41 lines
2.4 KiB
Python
Executable file
#!/usr/bin/env python
|
|
|
|
# Load ESDS
|
|
import esds
|
|
import numpy as np
|
|
|
|
########## Scenario ##########
|
|
# Notations:
|
|
# - Remaining communication duration (last communication ends minus current simulated time) = C
|
|
# - Last communication duration (previous row) = U
|
|
# - Last remaining data size (previous row) = D
|
|
# - Current remaining data (current row) = R
|
|
# - Initial data size (first row) = I
|
|
# - Bandwidth = BW
|
|
# - Latency = L
|
|
# |----------------------------------------+------------+----------------+----------------------+---------------------------+--------------------------|
|
|
# | This table is the same for both sender | | | | | |
|
|
# |----------------------------------------+------------+----------------+----------------------+---------------------------+--------------------------|
|
|
# | Simulated time(s) | Latency(s) | Bandwidth(bps) | Remaining data (bit) | Communication duration(s) | Communication ends at(s) |
|
|
# |----------------------------------------+------------+----------------+----------------------+---------------------------+--------------------------|
|
|
# | 0 | 0 | 8/2 | 8 | 2 | 2 |
|
|
# | 1 | 0 | 16/2 | C/U*D = 4 | 0.5 | 1.5 |
|
|
# | 1.5 | 0 | 16/2 | 0 | | |
|
|
# |----------------------------------------+------------+----------------+----------------------+---------------------------+--------------------------|
|
|
##############################
|
|
|
|
B=np.full((3,3),8)
|
|
L=np.full((3,3),0)
|
|
s=esds.Simulator({"wlan0":{"bandwidth":B, "latency":L, "is_wired":False}, "eth0":{"bandwidth":B, "latency":L, "is_wired":True}})
|
|
|
|
s.create_node("sender")
|
|
s.create_node("sender")
|
|
s.create_node("receiver")
|
|
|
|
def callback(simulator):
|
|
simulator.log("Network update!")
|
|
new_bw_wlan0=simulator.netmat["wlan0"]["bandwidth"]*2
|
|
new_bw_eth0=simulator.netmat["eth0"]["bandwidth"]*2
|
|
simulator.update_network({"wlan0":{"bandwidth":new_bw_wlan0, "latency":L, "is_wired":False}, "eth0":{"bandwidth":new_bw_eth0, "latency":L, "is_wired":True}})
|
|
|
|
s.run(breakpoints_every=1,breakpoint_callback=callback)
|