Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from random import Random
from pydtn import Network, Node, random_trace, random_traffic
class RandomNode(Node):
def __init__(self, seed=None, **options):
super().__init__(**options)
self.random = Random(seed)
def forward(self, packet):
neighbours = list(self.neighbours)
if neighbours:
target = self.random.choice(neighbours)
return {target: 'random'}
return {}
def main():
nodes = 50
seed = 42
traffic_speed = 1
node_options = {
'seed': seed,
'tick_rate': 1,
}
nodes = {
node_id: RandomNode(**node_options)
for node_id in range(nodes)
}
trace = random_trace(nodes, seed=seed)
traffic = random_traffic(nodes, speed=traffic_speed, seed=seed)
network = Network(nodes, traffic=traffic, trace=trace)
# run simulation for 500 ticks
network.run(until=500)
print(network.stats_summary)