diff --git a/pydtn/node.py b/pydtn/node.py index 39148971de52bc58a24193b27d7cfd7d89592441..1d8b3be812c73859f854635779aaec2d8fd3a8d0 100644 --- a/pydtn/node.py +++ b/pydtn/node.py @@ -143,15 +143,13 @@ class Node(TickProcess): return self.network[self][other]['state'] @property - def links(self): + def neighbours(self): ''' - Returns a list of connected links. + Returns the set of nodes that are within transmission range. ''' - return { - met: data - for met, data in self.network[self].items() - if self.connected_to(met) - } + return frozenset([ + met for met in self.network[self] if self.connected_to(met) + ]) def __repr__(self): return 'Node(id={})'.format(self.id) diff --git a/pydtn/routers/bubble.py b/pydtn/routers/bubble.py index 66d573cfa709c9f0a5080f45ac9797cf015d3ecb..2d6422e56d6caa65e72d4ce44e6f94a03f363022 100644 --- a/pydtn/routers/bubble.py +++ b/pydtn/routers/bubble.py @@ -2,7 +2,7 @@ from .community import CommunityRouter class BubbleRouter(CommunityRouter): def __call__(self, packet): - if packet.destination in self.node.links: + if packet.destination in self.node.neighbours: return packet.destination, 'direct', True if self.local_community: diff --git a/pydtn/routers/community.py b/pydtn/routers/community.py index 2431ac4f2908adfdb0e78c3c8a558689dd2d0b4e..3ec5d9feb949de8bce6f753fc81110b3f238dfae 100644 --- a/pydtn/routers/community.py +++ b/pydtn/routers/community.py @@ -8,15 +8,15 @@ class CommunityRouter(Router): @property def local_community(self): - links = self.node.links + neighbours = self.node.neighbours community = self.node.community - return [met for met in links if met in community] + return [met for met in neighbours if met in community] @property def not_local_community(self): - links = self.node.links + neighbours = self.node.neighbours community = self.node.community - return [met for met in links if met not in community] + return [met for met in neighbours if met not in community] @staticmethod def best(nodes, key): diff --git a/pydtn/routers/direct.py b/pydtn/routers/direct.py index 6d7e9ef771cd9f63c19e809703261c598a7c6e1e..6b4ed89bc7a081ec2a114d4db46a022409eb5107 100644 --- a/pydtn/routers/direct.py +++ b/pydtn/routers/direct.py @@ -2,7 +2,7 @@ from .base import Router class DirectRouter(Router): def __call__(self, packet): - if packet.destination in self.node.links: + if packet.destination in self.node.neighbours: return packet.destination, 'direct', True return None, None, False diff --git a/pydtn/routers/epidemic.py b/pydtn/routers/epidemic.py index bf913a7960acb97079ae0533e386a54a22e41896..89855c0c7a9377c57d2075b4d52c27907c6af9e0 100644 --- a/pydtn/routers/epidemic.py +++ b/pydtn/routers/epidemic.py @@ -13,7 +13,7 @@ class EpidemicRouter(Router): # get list of currently encountered nodes that do not have the packet targets = [ met - for met in self.node.links + for met in self.node.neighbours if met not in self.sent[packet] ] diff --git a/pydtn/routers/flooding.py b/pydtn/routers/flooding.py index 5ddf6ce56a80d27b0622fe9a75425a6a7ecb46c1..7191247ce637407be609963d8ca4abc7addedfea 100644 --- a/pydtn/routers/flooding.py +++ b/pydtn/routers/flooding.py @@ -2,5 +2,5 @@ from .base import Router class FloodingRouter(Router): def __call__(self, packet): - return self.node.links, 'flood', False + return self.node.neighbours, 'flood', False diff --git a/pydtn/routers/hcbf.py b/pydtn/routers/hcbf.py index 23971e2dbfe5e4b5e7aa5838c7e626b2af8804bd..2d08cad939abf6b332b3b1b6d438b0679f68862c 100644 --- a/pydtn/routers/hcbf.py +++ b/pydtn/routers/hcbf.py @@ -5,7 +5,7 @@ class HCBFRouter(CommunityRouter): me = self.node dest = packet.destination - if dest in me.links: + if dest in me.neighbours: return dest, 'direct', True if me.community is not dest.community and self.not_local_community: