VPP初始化
VLIB_INIT_FUNCTION用来定义构造函数,注册函数到vlib_main_t->init_function_registrations,这个链表在main()函数之前创建。
vlib_main()-> vlib_call_all_init_functions()注册的函数在这里被调用初始化,最后执行函数vlib_main_loop()。
像这样由宏定义和构造函数创建的全局链表的方式还有如下几个:
· VLIB_API_INIT_FUNCTION
· VLIB_CLI_COMMAND
· VLIB_CONFIG_FUNCTION
<

本文详细介绍了VPP的启动流程,从VLIB_INIT_FUNCTION构造函数的注册到vlib_main_loop()的执行。主要内容包括vpp/vnet/main.c的main()函数、vlib/unix/main.c的vlib_unix_main()函数、thread0()函数以及vlib_main()函数。在启动过程中,VPP加载插件、解析命令行选项、创建线程,并初始化图节点,最终进入主循环处理不同类型的图结点。
最低0.47元/天 解锁文章

1351

被折叠的 条评论
为什么被折叠?



