Остановка коммутатора с контроллера Pox

Я пытаюсь создать тестовую сеть, в которой у меня есть список коммутаторов, и только один из них может быть активен одновременно. Я уже обновляю список подключений при каждом событии ConnectionUp, работающем следующим образом:

def _handle_ConnectionUp (event):    
  for switch in switchesList:
      ...
      if switch.dpid == str(event.dpid):
        switch.connection = event.connection
      ...
      if any other switch from switchesList is running
        stop that switch
      ...

Насколько я понимаю, я могу использовать connection.send для отправки сообщения этому коммутатору, однако мне не удалось найти сообщение Openflow, содержащее команду «стоп». Всякий раз, когда в интерфейсе командной строки mininet я запускаю вручную:

переключатель s1 пуск

Я хочу, чтобы POX достиг эффекта, похожего на бег:

переключатель s2 стоп

из интерфейса командной строки мининет.

Есть ли способ отправить такое сообщение или, возможно, получить доступ к ссылке на переключатель каким-то другим способом?


person M.Key    schedule 12.01.2019    source источник


Ответы (1)


Настройка потоков в таблице потоков (например, action = of.ofp_action_output(port = of.OFPP_DROP)) для отбрасывания всех пакетов на разных портах указанного коммутатора может обеспечить желаемый эффект.

person Abin Thomas    schedule 14.02.2019