首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pox/Mininet:主机的学习位置

Pox/Mininet:主机的学习位置
EN

Stack Overflow用户
提问于 2014-09-27 02:40:27
回答 1查看 1.5K关注 0票数 2

我的问题可能有点模糊,因为我显然误解了很多,但无论如何我都会试一试:假设我在一个胖Tree topology中有7个交换机,最后四个交换机分别连接到两台主机。当我启动控制器时,我指示交换机发送LLDP数据包,这就是我学习拓扑的方式。此外,我还会计算一个生成树,以便在泛洪ARP请求之类的数据包时使用。

我的问题是:如何了解某台主机连接到哪台交换机?如果h1h3发送一个第3层数据包,我知道如何路由数据包,因为我有一个生成树,但这可能不是最短的路由。我使用Dijkstra计算从每个交换机到所有其他交换机的最短路径,但是如果我想向h3发送消息,我不知道哪个交换机直接连接到它。

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2014-12-12 06:29:38

负责执行此操作的组件是Host_tracker。您需要在代码中侦听Host_tracker事件,如下所示:

代码语言:javascript
复制
from pox.core import core
import pox
import pox.lib.packet as pkt
from pox.lib.revent import *
from pox.openflow.discovery import Discovery
from pox.host_tracker import host_tracker
import pox.openflow.libopenflow_01 as of

class YourController(EventMixin):
  def __init__ (self):
    def startup ():
      core.openflow.addListeners(self, priority=0)
      core.openflow_discovery.addListeners(self)
      core.host_tracker.addListeners(self)
      """ Here is the place where is created the listener"""
    core.call_when_ready(startup, ('openflow','openflow_discovery', 'host_tracker'))


  def _handle_HostEvent (self, event):
    """ Here is the place where is used the listener"""
    print "Host, switchport and switch...", event.entry

  def _handle_PacketIn(self, event):
    """ Packet processing """
def launch():
  from host_tracker import launch
  launch()
  core.registerNew(YourController)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26066259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档