码迷,mamicode.com
首页 > 其他好文 > 详细

Floodlight下发流表过程分析

时间:2014-06-22 18:55:50      阅读:311      评论:0      收藏:0      [点我收藏+]

标签:floodlight   forwardingbase   linkdiscoverymanager   topologymanager   route   

转载请注明出处:http://blog.csdn.net/vonzhoufz/article/details/32166445

当一个packet到达openflow交换机,会进行流表的匹配,如果没有找到相应的流表项,就会发送一个packet_in消息
到达SDN controller端,控制器根据一定的路由算法决策后,会向该路径上的所有交换机下发流表(也就是发送FLOW_MOD消息,里面有对应的action)。这里要知道的是在SDN的环境下,控制器具有全局拓扑信息,每当有链路状态改变时就会跟新拓扑,而路由的计算是需要下发转发规则的时候进行。下面对这个流程进行详细分析。

链路发现模块会关注两种消息 PACKET_IN 和 PORT_STATUS ,从而分析链路的变更。这里看对于PACKET_IN  ,LinkDiscoveryManager的处理过程:
bubuko.com,布布扣

LinkDiscoveryManager完成的工作是增加或更新链路状态,加入到一个LDUpdates队列中接下来看拓扑管理模块TopologyManager,它在启动的时候会新起一个线程 NewInstanceWorker :首先根据消息类型来增删该链路的状态,然后创建一个计算拓扑的实例TopologyInstance来计算出拓扑并存储,具体过程如下:
bubuko.com,布布扣


当完成拓扑计算后,当来了一个packet_in,就会根据源目SW得到路径。

接下来防火墙,负载均衡模块会发挥作用(这里先略过)。

最后路由模块会完成最终的下发流表操作,这里看Forwarding模块中的processPacketInMessage()。
会从packet中得到相应的源目设备实例IDevice,而后判断是否在同一个openflow island上,如果不在的话就
doFlood(sw, pi, cntx),这里主要看二者在同一个island的情况。然后得到每个设备的AttachmentPoints,
然后找到二者能够连通的粘合点,接下来得到路劲,最后构造flow_mod消息,写入通道,下发给SW。

bubuko.com,布布扣












Floodlight下发流表过程分析,布布扣,bubuko.com

Floodlight下发流表过程分析

标签:floodlight   forwardingbase   linkdiscoverymanager   topologymanager   route   

原文地址:http://blog.csdn.net/vonzhoufz/article/details/32166445

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!