Documentation for Idleneighborpolicy Module¶
IDLENeighborPolicy
¶
Bases: NeighborPolicy
Neighbor policy for minimal connectivity scenarios.
This policy only attempts to discover or establish new neighbor connections if the node is currently isolated (i.e., has no neighbors). All incoming connection requests are accepted regardless of the current neighbor state.
This policy is suitable for scenarios where minimal intervention is preferred, and connections are formed opportunistically rather than proactively.
Attributes:
Name | Type | Description |
---|---|---|
max_neighbors |
int | None
|
Unused in this policy but maintained for compatibility. |
nodes_known |
set[str]
|
Set of known node IDs discovered during federation. |
neighbors |
set[str]
|
Set of currently connected neighbor node IDs. |
addr |
str | None
|
This node's own address. |
neighbors_lock |
Locker
|
Async lock for thread-safe access to |
nodes_known_lock |
Locker
|
Async lock for thread-safe access to |
_verbose |
bool
|
Enables verbose logging for debugging and traceability. |
Source code in nebula/core/situationalawareness/awareness/sanetwork/neighborpolicies/idleneighborpolicy.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 154 |
|
accept_connection(source, joining=False)
async
¶
return true if connection is accepted
Source code in nebula/core/situationalawareness/awareness/sanetwork/neighborpolicies/idleneighborpolicy.py
63 64 65 66 67 68 69 70 |
|
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/idleneighborpolicy.py
108 109 110 111 112 113 114 |
|
get_posible_neighbors()
async
¶
Return set of posible neighbors to connect to.
Source code in nebula/core/situationalawareness/awareness/sanetwork/neighborpolicies/idleneighborpolicy.py
149 150 151 |
|
meet_node(node)
async
¶
Update the list of nodes known on federation
Source code in nebula/core/situationalawareness/awareness/sanetwork/neighborpolicies/idleneighborpolicy.py
72 73 74 75 76 77 78 79 80 81 |
|
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/idleneighborpolicy.py
37 38 39 40 41 42 43 44 45 |
|
set_config(config)
async
¶
Source code in nebula/core/situationalawareness/awareness/sanetwork/neighborpolicies/idleneighborpolicy.py
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
|