Add a helper function to fetch vlib node index for already stacked dpos 59/11159/3
authorVijayabhaskar Katamreddy <vkatamre@cisco.com>
Wed, 14 Mar 2018 21:04:27 +0000 (14:04 -0700)
committerNeale Ranns <nranns@cisco.com>
Thu, 15 Mar 2018 13:16:39 +0000 (13:16 +0000)
Change-Id: Ie07c6f3723312ce88046570dcbe591b72724657b
Signed-off-by: Vijayabhaskar Katamreddy <vkatamre@cisco.com>
src/vnet/dpo/dpo.c
src/vnet/dpo/dpo.h

index f4e7fab..85f2c5d 100644 (file)
@@ -432,6 +432,21 @@ dpo_get_next_node (dpo_type_t child_type,
     return (dpo_edges[child_type][child_proto][parent_type][parent_proto]);
 }
 
+/**
+ * @brief return already stacked up next node index for a given
+ * child_type/child_proto and parent_type/patent_proto.
+ * The VLIB graph arc used is taken from the parent and child types
+ * passed.
+ */
+u32
+dpo_get_next_node_by_type_and_proto (dpo_type_t   child_type,
+                                     dpo_proto_t  child_proto,
+                                     dpo_type_t   parent_type,
+                                     dpo_proto_t  parent_proto)
+{
+   return (dpo_edges[child_type][child_proto][parent_type][parent_proto]);
+}
+
 /**
  * @brief Stack one DPO object on another, and thus establish a child parent
  * relationship. The VLIB graph arc used is taken from the parent and child types
index 4d48478..21a2ae2 100644 (file)
@@ -446,4 +446,29 @@ extern void dpo_register(dpo_type_t type,
 extern dpo_type_t dpo_register_new_type(const dpo_vft_t *vft,
                                        const char * const * const * nodes);
 
+/**
+ * @brief Return already stacked up next node index for a given
+ *        child_type/child_proto and parent_type/patent_proto.
+ *        The VLIB graph arc used is taken from the parent and child types
+ *        passed.
+ *
+ * @param child_type
+ *  Child DPO type.
+ *
+ * @param child_proto
+ *  Child DPO proto
+ *
+ * @param parent_type
+ *  Parent DPO type.
+ *
+ * @param parent_proto
+ *  Parent DPO proto
+ *
+ * @return The VLIB Graph node index
+ */
+extern u32
+dpo_get_next_node_by_type_and_proto (dpo_type_t   child_type,
+                                     dpo_proto_t  child_proto,
+                                     dpo_type_t   parent_type,
+                                     dpo_proto_t  parent_proto);
 #endif