fib: midchain adjacency optimisations
[vpp.git] / src / vnet / adj / adj_midchain.h
index 1f5deae..5fb0ee8 100644 (file)
@@ -50,6 +50,27 @@ extern void adj_nbr_midchain_update_rewrite(adj_index_t adj_index,
                                            adj_flags_t flags,
                                            u8 *rewrite);
 
+/**
+ * @brief
+ *  Return the adjacency's next node to its default value
+ *
+ * @param adj_index
+ *  The index of the neighbour adjacency.
+ */
+extern void adj_nbr_midchain_reset_next_node(adj_index_t adj_index);
+
+/**
+ * @brief
+ *  Update the VLIB node to which packets are sent post processing
+ *
+ * @param adj_index
+ *  The index of the neighbour adjacency.
+ *
+ * @param node node-index to send to
+ */
+extern void adj_nbr_midchain_update_next_node(adj_index_t adj_index,
+                                              u32 node_index);
+
 /**
  * @brief
  *  [re]stack a midchain. 'Stacking' is the act of forming parent-child
@@ -139,4 +160,6 @@ extern void adj_midchain_delegate_restack(adj_index_t ai);
  */
 extern void adj_midchain_delegate_unstack(adj_index_t ai);
 
+extern u8 adj_is_midchain (adj_index_t ai);
+
 #endif