diff options
Diffstat (limited to 'vnet/vnet/feature/feature.h')
-rw-r--r-- | vnet/vnet/feature/feature.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/vnet/vnet/feature/feature.h b/vnet/vnet/feature/feature.h index 667c5e36b62..96d573b69f6 100644 --- a/vnet/vnet/feature/feature.h +++ b/vnet/vnet/feature/feature.h @@ -34,6 +34,10 @@ typedef struct _vnet_feature_arc_registration u8 *arc_index_ptr; } vnet_feature_arc_registration_t; +/* Enable feature callback. */ +typedef clib_error_t *(vnet_feature_enable_disable_function_t) + (u32 sw_if_index, int enable_disable); + /** feature registration object */ typedef struct _vnet_feature_registration { @@ -50,6 +54,9 @@ typedef struct _vnet_feature_registration char **runs_before; /** Constraints of the form "this feature runs after Y" */ char **runs_after; + + /** Function to enable/disable feature **/ + vnet_feature_enable_disable_function_t *enable_disable_cb; } vnet_feature_registration_t; typedef struct vnet_feature_config_main_t_ @@ -121,6 +128,9 @@ vnet_config_update_feature_count (vnet_feature_main_t * fm, u8 arc, u32 vnet_get_feature_index (u8 arc, const char *s); u8 vnet_get_feature_arc_index (const char *s); +vnet_feature_registration_t *vnet_get_feature_reg (const char *arc_name, + const char *node_name); + int vnet_feature_enable_disable_with_index (u8 arc_index, u32 feature_index, |