zoukankan      html  css  js  c++  java
  • Floodlight下发流表过程分析

    https://blog.csdn.net/vonzhoufz/article/details/32166445

    当一个packet到达openflow交换机,会进行流表的匹配,如果没有找到相应的流表项,就会发送一个packet_in消息
    到达SDN controller端,控制器根据一定的路由算法决策后,会向该路径上的所有交换机下发流表(也就是发送FLOW_MOD消息,里面有对应的action)。这里要知道的是在SDN的环境下,控制器具有全局拓扑信息,每当有链路状态改变时就会跟新拓扑,而路由的计算是需要下发转发规则的时候进行。下面对这个流程进行详细分析。
     
    链路发现模块会关注两种消息 PACKET_IN 和 PORT_STATUS ,从而分析链路的变更。这里看对于PACKET_IN  ,LinkDiscoveryManager的处理过程:
     
    LinkDiscoveryManager完成的工作是增加或更新链路状态,加入到一个LDUpdates队列中,接下来看拓扑管理模块TopologyManager,它在启动的时候会新起一个线程 NewInstanceWorker :首先根据消息类型来增删该链路的状态,然后创建一个计算拓扑的实例TopologyInstance来计算出拓扑并存储,具体过程如下:
     
     
    当完成拓扑计算后,当来了一个packet_in,就会根据源目SW得到路径。
     
    接下来防火墙,负载均衡模块会发挥作用(这里先略过)。
     
    最后路由模块会完成最终的下发流表操作,这里看Forwarding模块中的processPacketInMessage()。
    会从packet中得到相应的源目设备实例IDevice,而后判断是否在同一个openflow island上,如果不在的话就
    doFlood(sw, pi, cntx),这里主要看二者在同一个island的情况。然后得到每个设备的AttachmentPoints,
    然后找到二者能够连通的粘合点,接下来得到路劲,最后构造flow_mod消息,写入通道,下发给SW。
     
     
  • 相关阅读:
    flex布局以及相关属性
    css 选择器
    两侧定宽,中栏自适应布局
    两列定宽,一列自适应布局
    左列定宽,右列自适应布局
    Flex接收51单片机发送过来的16进制数据转换为String
    Flex与51单片机socket通信 策略问题
    sql For XML Path
    sql多对多探讨
    JavaScript
  • 原文地址:https://www.cnblogs.com/gejuncheng/p/9086094.html
Copyright © 2011-2022 走看看