Init ESDS repository

This commit is contained in:
Loic Guegan 2022-06-09 21:48:32 +02:00
commit c2e6aad09f
106 changed files with 2638 additions and 0 deletions

View file

@ -0,0 +1,7 @@
[t=0.000,src=n0] Send 1 bytes to n2 on eth0
[t=0.000,src=n1] Send 1 bytes to n2 on eth0
[t=1.000,src=esds] Network update!
[t=2.000,src=esds] Network update!
[t=2.300,src=n2] Receive 1 bytes on eth0
[t=2.300,src=n2] Receive 1 bytes on eth0
[t=2.300,src=esds] Simulation ends

View file

@ -0,0 +1,5 @@
#!/usr/bin/env python
def execute(api):
pass

View file

@ -0,0 +1,4 @@
#!/usr/bin/env python
def execute(api):
api.send("eth0","Hello World!",1,2)

View file

@ -0,0 +1,42 @@
#!/usr/bin/env python
# Load ESDS
import sys
sys.path.append("../../")
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) | Communcation ends at(s) |
# |----------------------------------------+------------+----------------+----------------------+---------------------------+-------------------------|
# | 0 | 0 | 8/2 | 8 | 2 | 2 |
# | 1 | 0.5 | 8/2 | C/U*D=4 | R/BW + R/I*L = 1.25 | 2.25 |
# | 2 | 1 | 8/2 | C/U*D=0.8 | R/BW + R/I*L = 0.3 | 2.3 |
# | 2.3 | 1 | 8/2 | 0 | | |
# |----------------------------------------+------------+----------------+----------------------+---------------------------+-------------------------|
##############################
B=np.full((3,3),8)
L=np.full((3,3),0)
s=esds.Simulator(B,L)
s.create_node("sender")
s.create_node("sender")
s.create_node("receiver")
def callback(simulator):
simulator.log("Network update!")
simulator.update_network(simulator.B,simulator.L+0.5)
s.run(breakpoints_every=1,breakpoint_callback=callback,debug=True)

View file

@ -0,0 +1,51 @@
Python version 3.10.5 (main, Jun 6 2022, 18:49:26) [GCC 12.1.0]
Simulation started at 1654802960.9297695
Number of nodes is 3
Manual breakpoints list: []
Breakpoints every 1s
-----------------------------------------------
Started since 0.08s
Simulated time 0.000s (or more precisely 0s)
Node number per state: pending=2 terminated=1
Node sharing: n2=2
Ids of node in timeout mode:
Sorted events list:
[[3 1 array(0, dtype=object) 0]
[0 2.0 array([0, 2, 'eth0', 'Hello World!', 1, 2.0, 1, 0], dtype=object)
1]
[0 2.0 array([1, 2, 'eth0', 'Hello World!', 1, 2.0, 1, 0], dtype=object)
1]]
-----------------------------------------------
Started since 0.08s
Simulated time 1.000s (or more precisely 1s)
Node number per state: pending=2 terminated=1
Node sharing: n2=2
Ids of node in timeout mode:
Sorted events list:
[[3 2 array(0, dtype=object) 0]
[0 2.25
array([0, 2, 'eth0', 'Hello World!', 1, 1.25, 0.5, 0], dtype=object) 1]
[0 2.25
array([1, 2, 'eth0', 'Hello World!', 1, 1.25, 0.5, 0], dtype=object) 1]]
-----------------------------------------------
Started since 0.08s
Simulated time 2.000s (or more precisely 2s)
Node number per state: pending=2 terminated=1
Node sharing: n2=2
Ids of node in timeout mode:
Sorted events list:
[[0 2.3
array([0, 2, 'eth0', 'Hello World!', 1, 0.30000000000000004, 0.1, 0],
dtype=object) 1]
[0 2.3
array([1, 2, 'eth0', 'Hello World!', 1, 0.30000000000000004, 0.1, 0],
dtype=object) 1]
[3 3 array(0, dtype=object) 0]]
-----------------------------------------------
Started since 0.09s
Simulated time 2.300s (or more precisely 2.3s)
Node number per state: terminated=3
Node sharing:
Ids of node in timeout mode:
Sorted events list:
[[3 3 array(0, dtype=object) 0]]