概述
最近研究了一些不错软件,比如openstack,open vswitch以及nginx,其中奥妙自是不少,感受最深刻的其实是nginx,最为一个服务器架构,涉及的如此出色,模块化如此清晰,代码也很优美,实在是不可多得的佳品,学习nginx可以轻松了解很多关于服务器软件设计方面的,c程序设计方面的知识以及概念,后继文章在仔细谢谢,现阶段我主要想要谢谢open vswitch,主要原因是在云操作系统openstack中个人感觉网络虚拟化是瓶颈,比虚拟管理,计算存储内存等资源虚拟化更加复杂,更容易遇到大规模带来的复杂度问题,因此个人感觉open vswitch所支持的open flow开源软件可以为这个网络虚拟化带来一线希望和生机,如何正确理解open flow所带来的SDN的相关概念,如果没有一个细致的思考过程,不是可能获得真正的理解的,以此系列文章来记录自己理解这些代码思想的过程.
第一章主要是标示了open vswitch在接受到一个数据报以后所经历的主要函数的一个罗列,后继文章主要介绍主要相关函数的具体实现以及思想;
钩子挂载:netdev_create->netdev_frame_hook->netdev_port_receive;
处理流程:netdev_port_receive->ovs_vport_receive->ovs_dp_process_received_packet->ovs_flow_extract->ovs_dp_process_packet_with_key->ovs_flow_tbl_lookup_stats&&ovs_flow_stats_update&&
ovs_execute_actions->do_execute_actions->manycase, some case goto -> ovs_dp_process_packet_with_keykey function:ovs_flow_extract,do_execute_actions;
分别对应到流程为ovs_flow_extract:将Ethernet数据报文解析成flow关联的key,以后需要增加新的key关联rule需要修改这部分code,
ovs_flow_tbl_lookup_stats:查找和次key相关联的flow table;
ovs_flow_stats_update:保存hash可用flow table;
do_execute_actions:根据流表执行操作
其中可以仔细研究研究hash相关的operation;看看优化性能如何;
参考文章:
http://www.ibm.com/developerworks/cn/cloud/library/1401_zhaoyi_openswitch/index.html
详细解释了虚拟环境下open vswitch数据转发流表参数解释
最后
以上就是落后银耳汤为你收集整理的open vswitch源代码解析(一)数据报解析总流程的全部内容,希望文章能够帮你解决open vswitch源代码解析(一)数据报解析总流程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复