Documentation for Fcneighborpolicy Module¶
FCNeighborPolicy
¶
Bases: NeighborPolicy
Neighbor policy for fully-connected (FC) structured topologies.
This policy assumes a fully-connected topology where every node should attempt to connect to all known nodes. It always accepts incoming neighbor connections and considers the neighbor list incomplete if there are known nodes that are not yet connected.
The goal is to maintain full connectivity across all known nodes in the federation.
Attributes:
Name | Type | Description |
---|---|---|
max_neighbors |
int | None
|
Unused in FC topology, but kept for compatibility. |
nodes_known |
set[str]
|
Set of all known node IDs discovered in the federation. |
neighbors |
set[str]
|
Set of currently connected neighbor node IDs. |
addr |
str | None
|
The address of this node (used for self-identification). |
neighbors_lock |
Locker
|
Async lock for safe access to |
nodes_known_lock |
Locker
|
Async lock for safe access to |
_verbose |
bool
|
Whether to enable verbose logging for debugging purposes. |
Source code in nebula/core/situationalawareness/awareness/sanetwork/neighborpolicies/fcneighborpolicy.py
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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 |
|
accept_connection(source, joining=False)
async
¶
return true if connection is accepted
Source code in nebula/core/situationalawareness/awareness/sanetwork/neighborpolicies/fcneighborpolicy.py
62 63 64 65 66 67 68 69 |
|
get_actions()
async
¶
return list of actions to do in response to connection - First list represents addrs argument to LinkMessage to connect to - Second one represents the same but for disconnect from LinkMessage
Source code in nebula/core/situationalawareness/awareness/sanetwork/neighborpolicies/fcneighborpolicy.py
107 108 109 110 111 112 113 |
|
get_posible_neighbors()
async
¶
Return set of posible neighbors to connect to.
Source code in nebula/core/situationalawareness/awareness/sanetwork/neighborpolicies/fcneighborpolicy.py
148 149 150 |
|
meet_node(node)
async
¶
Update the list of nodes known on federation
Source code in nebula/core/situationalawareness/awareness/sanetwork/neighborpolicies/fcneighborpolicy.py
71 72 73 74 75 76 77 78 79 80 |
|
need_more_neighbors()
async
¶
Fully connected network requires to be connected to all devices, therefore, if there are more nodes known that self.neighbors, more neighbors are required
Source code in nebula/core/situationalawareness/awareness/sanetwork/neighborpolicies/fcneighborpolicy.py
36 37 38 39 40 41 42 43 44 |
|
set_config(config)
async
¶
Source code in nebula/core/situationalawareness/awareness/sanetwork/neighborpolicies/fcneighborpolicy.py
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
|