<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>The "WARNING:forwarding.l2_multi:Can't get from 96:bb:06:61:71:8d to ae:b8:16:4d:a3:6b" message indicates that your new version of _get_path returned None rather than a path and has nothing to do with clearing the flow tables.  You need to fix your _get_path so that it returns a path in the proper format.  (In fact, it's probably easier to replace _get_raw_path.)</div><div><br></div><div>Although I don't think it's related, what I was talking about to clear flows without waiting for them to time out is something like:</div><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; ">for dpid,con in core.openflow.connections.iteritems():</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; ">  con.send(of.ofp_flow_mod(command=of.OFPFC_DELETE))</div></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; ">-- Murphy</div><div><br></div><div>On May 30, 2013, at 6:34 AM, hansinie vitharana wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr"><div>I saw the post relavant to <font><span style="font-weight:normal">"Changing the POX component without restarting POX       controller" and it was very useful to me also..<br><br></span></font></div>
<font><span style="font-weight:normal">I am also trying to change the functions on run time and I followed the solution that was given by Murphy <br><br></span></font><pre><font>./pox.py forwarding.l2_multi openflow.discovery py

This will load up l2_multi and then give a Python interpreter.  You can swap the functions from the interpreter...
<br>POX> import pox.forwarding.l2_multi as l2m
POX> shortest = l2m._get_path
POX> import ext.longestpath
POX> l2m._get_path = ext.longestpath._get_path

You can switch back to shortest again by doing:
POX> l2m._get_path = shortest</font><br><br>After giving above commands, and after waiting for some to flow tables to be get clear, when I try to ping between hosts, it fails..<br></pre><pre>In the POX terminal it gives the message as <br>
"WARNING:forwarding.l2_multi:Can't get from 96:bb:06:61:71:8d to ae:b8:16:4d:a3:6b"<br><br></pre><pre>The Solution has mentioned about "send a flow_mod to each connection to delete them (iterate over core.openflow.connections)", but I am not sure about how to do this..<br>
<br></pre><pre>Please be kind enough to show me where I am going wrong and how to correct this error..<br></pre></div>
</blockquote></div><br></body></html>