Reconcile BGP paths and advertise selected routes per neighbor
This commit is contained in:
1 parent
546e0c185d
commit
b76e6553bc
9 files changed
+381
-171
No files matched your search
@@ -191,6 +191,7 @@ struct TOPO_NODEPATH {
|
||||
struct ETCP_CONN* conn; // заимствованный next-hop; транспорт удерживает сессия
|
||||
uint8_t hop_count; // число node_id в массиве сразу после структуры
|
||||
uint16_t cumulative_rtt; // RTT оставшейся цепочки, без локального линка (0.1 ms)
|
||||
uint64_t exchange; // local_epoch сессии, в которой путь подтверждён NODEINFO
|
||||
};
|
||||
|
||||
/** Узел в контексте группы (per-group данные). Хранится в TOPO_GROUP->nodes (ll_queue). */
|
||||
@@ -245,6 +246,8 @@ int topo_node_deserialize(struct TOPO_GROUP* group, const uint8_t* data, size_t
|
||||
/* Заимствованный список hops: кратчайший живой путь, иначе первый сохранённый.
|
||||
* out_count обязателен; NULL означает отсутствие пути. */
|
||||
uint64_t* topo_node_best_hop_list(struct TOPO_GROUP_NODE* nq, uint8_t* out_count, uint16_t* out_rtt);
|
||||
/* Лучший живой путь: минимум переходов, затем ID соседа. Указатель заимствованный. */
|
||||
struct TOPO_NODEPATH* topo_node_best_path(const struct TOPO_GROUP_NODE* nq);
|
||||
|
||||
/* Обновить локальный узел группы и его анонс. 0/-1. */
|
||||
int topo_group_update_my_nodeinfo(struct UTUN_INSTANCE* instance, struct TOPO_GROUP* group);
|
||||
|
||||
Reference in new issue
Block a user