OVS学习总结---启动流程分析

来源:互联网 发布:贴片机编程技术视频 编辑:程序博客网 时间:2024/05/17 22:58

OVS启动分为用户态和内核态,其中用户态需要启动OVSDB SERVICER和VSWITCHD,按目前理解需要先运行OVSDB,VSWITCHD启动需要获取OVSDB的数据;而内核态通过模块加载方式启动(即插即用)。另外还有些工具配置类的,如OVS-VSCTL(功能最全的工具,配置和管理众多,详见help)/ OVS-DPCTL(配置交换机内核模块,控制转发规则)/ OVS-APPCTL/ OVS-OFCTL(控制OpenFlow的流表内容)/OVSDB-CLIENT/OVSDB-TOOL,可以根据需要启动,当然一般默认会启动OVS-VSCTL,进行基本bridge,vport的配置。这些工具使得OVS的配置灵活而多样,扩展性强。

1)OVS用户态VSWITCHD启动流程:main(ovs-vswitchd.c)-> dpdk_init(DPDK初始化,针对inter一些网卡提供报文转发效率,使用技术hugetlbpage(大内存页提高内存使用效率)、uio(用户空间下驱动程序的支撑机制)、cpu affinity(将控制面线程以及各个数据面线程绑定到不同的cpu)->proctitle_init(命令行解析相关初始化)->parse_options (进程参数的解析,一些参数会直接返回)->ovsrec_init(与OVSDB相关初始化)-> daemonize_start(让进程变成守护程序)-> unixctl_server_create/unixctl_command_register(UNIX SOCK)-> bridge_init(从remote数据库OVSDB获取配置信息,并初始化bridge)->进程开始执行

2)OVS用户态OVSDB SERVICER启动流程:main(ovsdb-server.c)->

3)OVS内核态启动流程:module_init(模块启动)->dp_init(各子模块初始化,包括流表,VPORT,NAMESPACENETLINK

0 0
原创粉丝点击