X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=vnet%2Fvnet%2Ffeature%2Ffeature.h;h=96d573b69f63115de06e78d782bc907914f95adc;hb=7490a752814187ed03c0deca4d836b0dca09fb4b;hp=667c5e36b629940da2bb9f13ca78352dee6e65a2;hpb=999bbc4a2088c532d75e401703bd9205cf217c84;p=vpp.git 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,