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.)
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: for dpid,con in core.openflow.connections.iteritems(): con.send(of.ofp_flow_mod(command=of.OFPFC_DELETE)) -- Murphy On May 30, 2013, at 6:34 AM, hansinie vitharana wrote: > I saw the post relavant to "Changing the POX component without restarting POX > controller" and it was very useful to me also.. > > I am also trying to change the functions on run time and I followed the > solution that was given by Murphy > > ./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... > > 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 > > 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.. > In the POX terminal it gives the message as > > "WARNING:forwarding.l2_multi:Can't get from 96:bb:06:61:71:8d to > ae:b8:16:4d:a3:6b" > > 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.. > > > Please be kind enough to show me where I am going wrong and how to correct > this error..
