Introducing new function for edge weight update
This commit is contained in:
parent
b7820caf03
commit
7c85db5421
2 changed files with 11 additions and 0 deletions
10
src/edge.c
10
src/edge.c
|
@ -118,6 +118,16 @@ void edge_del(edge_t *e) {
|
||||||
splay_delete(e->from->edge_tree, e);
|
splay_delete(e->from->edge_tree, e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool edge_update_weigth(edge_t *e, int weight) {
|
||||||
|
splay_node_t *oldnode = splay_unlink(edge_weight_tree, e);
|
||||||
|
if (!oldnode)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
/* avg_rtt is in ms */
|
||||||
|
e->weight = e->avg_rtt*10;
|
||||||
|
oldnode->data = e;
|
||||||
|
splay_insert_node(edge_weight_tree, oldnode);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
edge_t *lookup_edge(node_t *from, node_t *to) {
|
edge_t *lookup_edge(node_t *from, node_t *to) {
|
||||||
|
|
|
@ -51,6 +51,7 @@ extern void free_edge_tree(splay_tree_t *);
|
||||||
extern void edge_add(edge_t *);
|
extern void edge_add(edge_t *);
|
||||||
extern void edge_del(edge_t *);
|
extern void edge_del(edge_t *);
|
||||||
extern edge_t *lookup_edge(struct node_t *, struct node_t *);
|
extern edge_t *lookup_edge(struct node_t *, struct node_t *);
|
||||||
|
extern bool edge_update_weigth(edge_t *, int);
|
||||||
extern bool dump_edges(struct connection_t *);
|
extern bool dump_edges(struct connection_t *);
|
||||||
|
|
||||||
#endif /* __TINC_EDGE_H__ */
|
#endif /* __TINC_EDGE_H__ */
|
||||||
|
|
Loading…
Reference in a new issue