[pox-dev] Bind POX to Multiple IP Interfaces

Murphy McCauley murphy.mccauley at gmail.com
Thu Nov 7 11:56:26 PST 2013


I think this MIGHT be as easy as making the launcher for of_01 multi-instance aware.  I don't have time to actually check, but here's a hacked version which at least doesn't crash immediately. :)  Maybe you can give it a shot?

def launch (port=6633, address="0.0.0.0", name=None, __INSTANCE__=None):
  if name is None:
    basename = "of_01"
    counter = 1
    name = basename
    while core.hasComponent(name):
      counter += 1
      name = "%s-%s" % (basename, counter)

  if core.hasComponent(name):
    log.warn("of_01 '%s' already started", name)
    return None

  global deferredSender
  if not deferredSender:
    deferredSender = DeferredSender()

  if of._logger is None:
    of._logger = core.getLogger('libopenflow_01')

  l = OpenFlow_01_Task(port = int(port), address = address)
  core.register(name, l)
  return l

-- Murphy

On Nov 7, 2013, at 5:30 AM, Anton Matsiuk <anton.matsiuk at gmail.com> wrote:

> Dear Murphy,
> 
> I am asking about possibility to bind POX Controller to listen for OF messages on multiple IP Interfaces. In my case, I need to bind it to 2 interfaces: listening from Open vSwitch through Loopback, and Hardware switch from external eth, but, of course, the quantity doesn't mater.
> 
> As I understood there is no possibility to run 2 instances of OpenFlow_01_Task concurrently (and to register them both on core) or to bind one instance of Task to 2 different IP's.
> 
> I know that it is possible to solve the problem by proxying through iptables, but I am looking for a possibility to do it with POX in a straightforward and scalable way.
> 
> -- 
> Best regards,
> Anton Matsiuk




More information about the pox-dev mailing list