- {
- if (r->n_next_nodes == 0)
- continue;
-
- n = vlib_get_node (vm, r->node_index);
- nf = vec_elt_at_index (nm->next_frames, r->next_frame_index);
-
- for (i = 0; i < vec_len (n->next_nodes); i++)
- {
- next = vlib_get_node (vm, n->next_nodes[i]);
-
- /* Validate node runtime indices are correctly initialized. */
- ASSERT (nf[i].node_runtime_index == next->runtime_index);
-
- nf[i].flags = 0;
- if (next->flags & VLIB_NODE_FLAG_FRAME_NO_FREE_AFTER_DISPATCH)
- nf[i].flags |= VLIB_FRAME_NO_FREE_AFTER_DISPATCH;
- }
- }
- }
-
- /* Generate node sibling relationships. */
- {
- vlib_node_t * n, * sib;
- uword si;
-
- for (ni = 0; ni < vec_len (nm->nodes); ni++)
- {
- n = vec_elt (nm->nodes, ni);
-
- if (! n->sibling_of)
- continue;
-
- sib = vlib_get_node_by_name (vm, (u8 *) n->sibling_of);
- if (! sib)
- clib_error ("sibling `%s' not found for node `%v'", n->sibling_of, n->name);
-
- clib_bitmap_foreach (si, sib->sibling_bitmap, ({
- vlib_node_t * m = vec_elt (nm->nodes, si);