<div dir="ltr">Thank you! It works! <div><br></div><div>At least I tested it with L2_Switch without problems. In this case first address to listen on should be specified as argument in def launch() of of_01.py and the second - as CLI argument when launching pox. The only warning appears from core about registering 'of_01" multiple times (see debug below). </div>
<div><br></div><div>We run multiple concurrent OpenFlow_01_Tasks in this case, and the performance might be slower than one task binding multiple listeners, right? </div><div><div><br></div><div><div>mininet@mininet-vm:~/pox$ ./pox.py --unthreaded_sh log.level --DEBUG openflow.of_01 --address=192.168.20.1 l2sw</div>
<div>POX 0.3.0 (dart) / Copyright 2011-2013 James McCauley, et al.</div><div>WARNING:core:Warning: Registered 'of_01' multipled times</div><div>DEBUG:core:POX 0.3.0 (dart) going up...</div><div>DEBUG:core:Running on CPython (2.7.3/Sep 26 2012 21:51:14)</div>
<div>DEBUG:core:Platform is Linux-3.5.0-17-generic-x86_64-with-Ubuntu-13.04-raring</div><div>INFO:core:POX 0.3.0 (dart) is up.</div><div>DEBUG:openflow.of_01:Listening on <a href="http://192.168.20.1:6633">192.168.20.1:6633</a></div>
<div>DEBUG:openflow.of_01:Listening on <a href="http://192.168.10.1:6633">192.168.10.1:6633</a></div><div><div>INFO:openflow.of_01:[00-00-00-00-00-02 1] connected</div><div>INFO:l2sw:Controlling conID=1, dpid=2</div><div>
INFO:openflow.of_01:[00-00-00-00-00-01 2] connected</div><div>INFO:l2sw:Controlling conID=2, dpid=1</div></div><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 7 November 2013 20:56, Murphy McCauley <span dir="ltr"><<a href="mailto:murphy.mccauley@gmail.com" target="_blank">murphy.mccauley@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">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?<br>
<br>
def launch (port=6633, address="0.0.0.0", name=None, __INSTANCE__=None):<br>
if name is None:<br>
basename = "of_01"<br>
counter = 1<br>
name = basename<br>
while core.hasComponent(name):<br>
counter += 1<br>
name = "%s-%s" % (basename, counter)<br>
<br>
if core.hasComponent(name):<br>
log.warn("of_01 '%s' already started", name)<br>
return None<br>
<br>
global deferredSender<br>
if not deferredSender:<br>
deferredSender = DeferredSender()<br>
<br>
if of._logger is None:<br>
of._logger = core.getLogger('libopenflow_01')<br>
<br>
l = OpenFlow_01_Task(port = int(port), address = address)<br>
core.register(name, l)<br>
return l<br>
<span class=""><font color="#888888"><br>
-- Murphy<br>
</font></span><div class=""><div class="h5"><br>
On Nov 7, 2013, at 5:30 AM, Anton Matsiuk <<a href="mailto:anton.matsiuk@gmail.com">anton.matsiuk@gmail.com</a>> wrote:<br>
<br>
> Dear Murphy,<br>
><br>
> 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.<br>
><br>
> 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.<br>
><br>
> 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.<br>
><br>
> --<br>
> Best regards,<br>
> Anton Matsiuk<br>
<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>Best regards,<div>Anton Matsiuk</div>
</div></div>