open vswitch源代码解析(一)数据报解析总流程

最近研究了一些不错软件,比如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_key

key 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数据转发流表参数解释

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值