Pox/Mininet: изучение местонахождения хостов

Мой вопрос может быть немного расплывчатым, поскольку я явно многого не понимаю, но я все равно попробую: предположим, у меня есть 7 коммутаторов в Fat Топология дерева, а нижние четыре подключены к двум хостам. Когда я запускаю контроллер, я указываю коммутаторам отправлять пакеты LLDP, и именно так я изучаю топологию. Также я рассчитываю связующее дерево для использования при лавинной рассылке пакетов, таких как запросы ARP.

Моя проблема: как мне узнать, к какому коммутатору подключен определенный хост? Если h1 отправляет пакет уровня 3 h3, я знаю, как маршрутизировать пакеты, потому что у меня есть связующее дерево, но это может быть не самый короткий маршрут. Я использую Dijkstra для вычисления кратчайших маршрутов от каждого коммутатора ко всем остальным, но если я хочу отправить сообщение на h3, я не знаю, какой коммутатор напрямую к нему подключен.

Любые идеи?


person Yotam    schedule 26.09.2014    source источник


Ответы (1)


За это отвечает компонент Host_tracker. Вам нужно прослушать событие Host_tracker в вашем коде, вот так:

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)
person Marcus Sandri    schedule 11.12.2014