#ifndef included_ip_feature_registration_h
#define included_ip_feature_registration_h
-typedef struct _vnet_ip_feature_registration {
- struct _vnet_ip_feature_registration * next;
- char * node_name;
- u32 * feature_index;
- char * runs_before[];
+/** feature registration object */
+typedef struct _vnet_ip_feature_registration
+{
+ /** next registration in list of all registrations*/
+ struct _vnet_ip_feature_registration *next;
+ /** Graph node name */
+ char *node_name;
+ /** Pointer to this feature index, filled in by ip_feature_init_cast */
+ u32 *feature_index;
+ /** Constraints of the form "this feature runs before X" */
+ char **runs_before;
+ /** Constraints of the form "this feature runs after Y" */
+ char **runs_after;
} vnet_ip_feature_registration_t;
-clib_error_t *
-ip_feature_init_cast (vlib_main_t * vm,
- ip_config_main_t * cm,
- vnet_config_main_t * vcm,
- char **feature_start_nodes,
- int num_feature_start_nodes,
- vnet_cast_t cast,
- int is_ip4);
+/** Syntactic sugar, the c-compiler won't initialize registrations without it */
+#define ORDER_CONSTRAINTS (char*[])
+
+clib_error_t *ip_feature_init_cast (vlib_main_t * vm,
+ ip_config_main_t * cm,
+ vnet_config_main_t * vcm,
+ char **feature_start_nodes,
+ int num_feature_start_nodes,
+ vnet_cast_t cast, int is_ip4);
#endif /* included_ip_feature_registration_h */
+
+/*
+ * fd.io coding-style-patch-verification: ON
+ *
+ * Local Variables:
+ * eval: (c-set-style "gnu")
+ * End:
+ */