traceroute works via expiring TTLs, which won't happen in OpenFlow switches 
without some extra work.

I don't know of a better way than just running a bunch of tcpdump/wireshark 
instances on all the intermediate switches.

-- Murphy

On May 29, 2013, at 7:25 AM, Windhya Rankothge wrote:

> Sorry trouble you again Murphy.. 
> 
> Is there any way that I can trace the packet, so that I can check the 
> correctness of my algorithms ?
> 
> I tried traceroute, but looks like its not working as expected in Mininet
> 
> 
> On Wed, May 29, 2013 at 2:13 PM, Windhya Rankothge <windys...@gmail.com> 
> wrote:
> Thanks Murphy.. It worked correctly..
> 
> 
> On Wed, May 29, 2013 at 12:52 PM, Murphy McCauley <murphy.mccau...@gmail.com> 
> wrote:
> I'd say the right way to do it is to remove the event listeners set by one 
> component, and then set them up using the other.  l2_multi wasn't really 
> written with this in mind so it'd take a bit of tweaking to make it happen.  
> If you were really inclined to do so, I think the easiest way would be to add 
> a boolean enable/disable flag to the l2_multi class and to your version of 
> it.  Then have an if statement in l2_multi._handle_ConnectionUp (and your own 
> class's version) that uses the flag to decide whether it should actually call 
> sw.connect().  When you want to switch between components, toggle the enabled 
> flags, then iterate through all active connections, calling disconnect() on 
> the switches of the old component and connect() on the switches of the new 
> component.
> 
> I think there may be a far, far easier way to go about this, though.  It 
> seems like the only thing you should need to change is _get_path() or 
> _get_raw_path() or _calc_paths().  I'd just swap the function at runtime.  
> For example, if you put a modified _get_path() in ext/longestpath.py, you 
> could do something like...
> 
> ./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
> 
> When you switch, you'll have to wait for existing flows to time out, or send 
> a flow_mod to each connection to delete them (iterate over 
> core.openflow.connections).  You might want to wrap that and the other 
> commands above into a quick little toggle function, which you could then add 
> to the interactive prompt.  The component would looks something like:
> 
> import pox.forwarding.l2_multi as l2m
> 
> _orig_get_path = l2m._get_path
> 
> def _my_get_path (...):
>   ...
>   Your longest path code here
>   ...
> 
> def toggle ():
>   if l2m._get_path is _orig_get_path:
>     l2m._get_path = _my_get_path
>   else:
>     l2m._get_path = _orig_get_path
> 
> def launch ():
>   core.Interactive.variables['toggle'] = toggle
> 
> Then you can just do toggle() from the POX prompt to switch.
> 
> Hope that helps.
> 
> (Excuse bugs in the above code; none of it is tested.)
> 
> -- Murphy
> 
> On May 29, 2013, at 3:13 AM, Windhya Rankothge wrote:
> 
> >
> > Hi,
> >
> > I am soory if this is a stupid question, but I am new to POX and even 
> > though i searched in internet i could not find an answer..
> >
> > I am using two component files : l2_multi.py component which will send 
> > traffic using shortest path.. and l2_multi_edited.py which will send 
> > traffic using longest path..
> >
> > I create a topoligy in mininet and start the POX with l2_multi.py component 
> > which will send traffic using shortest path..
> >
> > after sometime I want to change the componet to l2_multi_edited.py without 
> > restarting POX, so that  traffic will be send with longest path..
> >
> > how can I do this ? Please be kind enough to help me
> >
> >
> > Best Regards,
> >
> > Windhya Rankothge....
> 
> 
> 
> 
> -- 
> Best Regards,
>  
> Windhya Rankothge..... (WINDY)
> 
> 
> 
> -- 
> Best Regards,
>  
> Windhya Rankothge..... (WINDY)

Reply via email to