| 291 | } |
| 292 | |
| 293 | rte_edge_t |
| 294 | rte_node_edge_update(rte_node_t id, rte_edge_t from, const char **next_nodes, |
| 295 | uint16_t nb_edges) |
| 296 | { |
| 297 | rte_edge_t rc = RTE_EDGE_ID_INVALID; |
| 298 | struct node *n, *prev; |
| 299 | |
| 300 | NODE_ID_CHECK(id); |
| 301 | graph_spinlock_lock(); |
| 302 | |
| 303 | prev = NULL; |
| 304 | STAILQ_FOREACH(n, &node_list, next) { |
| 305 | if (n->id == id) { |
| 306 | rc = edge_update(n, prev, from, next_nodes, nb_edges); |
| 307 | break; |
| 308 | } |
| 309 | prev = n; |
| 310 | } |
| 311 | |
| 312 | graph_spinlock_unlock(); |
| 313 | fail: |
| 314 | return rc; |
| 315 | } |
| 316 | |
| 317 | static rte_node_t |
| 318 | node_copy_edges(struct node *node, char *next_nodes[]) |