Open vSwitch数据包转发

如图3-1所示,Open vSwitch数据包转发流程如下:
(1)设置标准以太网接口模式为混杂模式[22],从标准以太网接口中截获数据包,提取出关键字段。如果能够匹配流表则转入(7),否则则转入(2).
(2)通过调用upcall函数,将数据包使用NetLink协议的封装,上传到用户空间。在Vswitchd模块中对NetLink消息解封装后,在ovsdb中进行查表匹配,如果能够匹配流表则转入(4),否则则转入(3)。
(3)通过 OpenFlow协议与控制器相通信,控制器下发流表项,Vswitchd模块通过解析流表项得到相应的动作,同时将流表项存储到ovsdb。
(4)将匹配的流表项组织成内核FlowTable表中的表项结构,并通过NetLink协议将流表项下发至内核中FlowTable中。
(6)通过调用reinject函数,将数据包使用NetLink进行封装,重新发回至内核。
(7)重新通过datapath模块进行流表项查找匹配。
(8)根据查找结果,指导数据包的转发。

如图3-1所示。Open vSwitch架构分为两个大部分,用户态部件和内核态部件。在用户态Open vSwitch通过Vswitchd模块能够解析OpenFlow和sFlow协议,ovsdb能够存储流表项信息。在内核态,Open vSwitch使用datapath模块和FlowTable模块组成了一条快速数据包匹配的通路。其中datapath主要作用为解析网络数据包,FlowTable模块存储用户态Vswitchd模块通过NetLink协议下发下来的流表项。

参考文献:基于NetMagic平台的Ope_省略_vSwitch交换机的设计与实现_凌高源

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值