diff --git a/pydtn/communities/base.py b/pydtn/communities/base.py index 39afcd84a79af979b3fce759c6ecdaf6b3a53a4b..132c2ef395e7622962e862e9c913a079d4c1570f 100644 --- a/pydtn/communities/base.py +++ b/pydtn/communities/base.py @@ -114,7 +114,7 @@ class EpochCommunity(TickProcess): def get_ncf(self, x, c_y): '''''' g = self.old_graph - if x not in c_y or x not in g: + if x not in g or x in c_y: return 0 return sum([ g[x][y]['duration'] diff --git a/pydtn/routers/hcbf.py b/pydtn/routers/hcbf.py index 01badf1427deb1614c859eea1a69f6fe69f0531d..c8af6dc99cfa11385f6ca96f8c8bb30e2f85d6d1 100644 --- a/pydtn/routers/hcbf.py +++ b/pydtn/routers/hcbf.py @@ -49,7 +49,9 @@ def hcbf(self, packet, state): return False # lp(max_lp) == lp(self) - elif not_local_community: + return False + + if not_local_community: max_cbc = max(not_local_community, key=cbc) if cbc(max_cbc) > cbc(self): send(max_cbc, 'cbc') @@ -58,7 +60,8 @@ def hcbf(self, packet, state): return False # cbc(max_cbc) == cbc(self) - max_ncf = max(not_local_community, key=ncf) + if local_community: + max_ncf = max(local_community, key=ncf) if ncf(max_ncf) > ncf(self): send(max_ncf, 'ncf') return True @@ -66,7 +69,6 @@ def hcbf(self, packet, state): return False # ncf(max_ncf) == ncf(self) - elif local_community: max_ui = max(local_community, key=ui) if ui(max_ui) > ui(self): send(max_ui, 'ui_lonely')