VPP API注册回调函数--待完成

来源:互联网 发布:网络著作权侵权行为 编辑:程序博客网 时间:2024/06/07 13:30
注册函数表
/** * Virtual function table each FIB entry source will register */typedef struct fib_entry_src_vft_t_ {    fib_entry_src_init_t fesv_init;    fib_entry_src_deinit_t fesv_deinit;    fib_entry_src_activate_t fesv_activate;    fib_entry_src_deactivate_t fesv_deactivate;    fib_entry_src_add_t fesv_add;    fib_entry_src_remove_t fesv_remove;    fib_entry_src_path_swap_t fesv_path_swap;    fib_entry_src_path_add_t fesv_path_add;    fib_entry_src_path_remove_t fesv_path_remove;    fib_entry_src_cover_change_t fesv_cover_change;    fib_entry_src_cover_update_t fesv_cover_update;    fib_entry_src_format_t fesv_format;    fib_entry_src_installed_t fesv_installed;    fib_entry_src_fwd_update_t fesv_fwd_update;    fib_entry_src_get_data_t fesv_get_data;    fib_entry_src_set_data_t fesv_set_data;} fib_entry_src_vft_t;


Fib_entry_src_api.c中定义的回调函数表

const static fib_entry_src_vft_t api_src_vft = {    .fesv_init = fib_entry_src_api_init,    .fesv_deinit = fib_entry_src_api_deinit,    .fesv_add = fib_entry_src_api_add,    .fesv_remove = fib_entry_src_api_remove,    .fesv_path_add = fib_entry_src_api_path_add,    .fesv_path_swap = fib_entry_src_api_path_swap,    .fesv_path_remove = fib_entry_src_api_path_remove,};

Fib_entry_src_default.c

const static fib_entry_src_vft_t default_src_vft = {    .fesv_init = fib_entry_src_default_init,    .fesv_deinit = fib_entry_src_default_deinit,    .fesv_add = fib_entry_src_default_add,    .fesv_remove = fib_entry_src_default_remove,    .fesv_path_add = fib_entry_src_default_path_add,    .fesv_path_remove = fib_entry_src_default_path_remove,    .fesv_activate = fib_entry_src_default_activate,    .fesv_deactivate = fib_entry_src_default_deactivate,};


Fib_entry_src_lisp.c

const static fib_entry_src_vft_t api_src_vft = {    .fesv_init = fib_entry_src_lisp_init,    .fesv_deinit = fib_entry_src_lisp_deinit,    .fesv_add = fib_entry_src_lisp_add,    .fesv_remove = fib_entry_src_lisp_remove,    .fesv_path_add = fib_entry_src_lisp_path_add,    .fesv_path_swap = fib_entry_src_lisp_path_swap,    .fesv_path_remove = fib_entry_src_lisp_path_remove,    .fesv_set_data = fib_entry_src_lisp_set_data,    .fesv_get_data = fib_entry_src_lisp_get_data,};

还有其它.c定义的回调函数,当前仅列出这几个做比较

fesv_add 和 fesv_remove 处理的是fib_entry(route)
fesv_path_add 
fesv_path_swap 

fesv_path_remove 
处理的是fib_entry path的增删改,fesv_path_swap 会覆盖修改


原创粉丝点击