Hi,
Now shortestpath is working with my topology..i am able to ping b/w the
hosts.
But, when i am trying to make a link down, the updated topology is not
getting reflected in shortestpath. According to my understanding, i have to
add handlers in the app for EventLinkAdd and EventLinkDelete. Is it the
correct approach?Pease clarify.
Thanks and Regards,
Padma V
On Wed, Jan 7, 2015 at 11:52 PM, Padma Jayasankar <padmaj...@gmail.com>
wrote:
> HI,
> Thanks, will try with this
>
> On Wed, Jan 7, 2015 at 11:43 PM, Flavio Junior <flaviojr...@gmail.com>
> wrote:
>
>> I can't help without seeing your code because it's a KeyError.
>>
>> Make sure link.src is what you are looking for. I guess link.src is an
>> object rather than a string, so it may be it.
>>
>> One thing that was really useful for me was this method to figure out the
>> exact content of the given objects.
>>
>> def ls(self,obj):
>> print("\n".join([x for x in dir(obj) if x[0] != "_"]))
>>
>>
>>
>> Flávio Castro Jr.
>> MSCS student at Georgia Tech
>> B.S.E in Networks Engineering from the University of Brasilia.
>> CCNA Certified
>> (404) 660-9373
>>
>> On Wed, Jan 7, 2015 at 12:27 PM, Padma Jayasankar <padmaj...@gmail.com>
>> wrote:
>>
>>> Hi,
>>> Now the topology discovery identifies the links and am able to ping
>>> b/w two hosts..But when i am trying to down a link(link s3 s7 down), it
>>> gives some error. Further if i try to ping it doesn't compute the alternate
>>> path. Instead it shows"destination not reachable"
>>>
>>> *Error:*
>>> hub: uncaught exception: Traceback (most recent call last):
>>> File "/usr/local/lib/python2.7/
>>> dist-packages/ryu/lib/hub.py", line 52, in _launch
>>> func(*args, **kwargs)
>>> File
>>> "/usr/local/lib/python2.7/dist-packages/ryu/topology/switches.py", line
>>> 819, in link_loop
>>> self.links.link_down(link)
>>> File
>>> "/usr/local/lib/python2.7/dist-packages/ryu/topology/switches.py", line
>>> 329, in link_down
>>> del self._map[link.src]
>>> KeyError: <ryu.topology.switches.Port object at 0x29a2a90>
>>>
>>> Could u please help to solve this issue
>>>
>>> On Mon, Jan 5, 2015 at 12:11 AM, Flavio Junior <flaviojr...@gmail.com>
>>> wrote:
>>>
>>>> Hi.
>>>>
>>>> Sometimes the topology discovery would not work for, apparently, no
>>>> reason. Are there any known bugs there?
>>>>
>>>> I know it's a huge pain to debug the topology discovery but if you
>>>> can't build the view of the topology then you won't be able to forward.
>>>>
>>>> What solved the problem was the order in which I would start
>>>> mininet/ryu. So try starting ryu after mininet if you are not doing that,
>>>> or the opposite if that's the case.
>>>>
>>>> Flavio Castro
>>>>
>>>> On Sun, Jan 04, 2015 at 8:27 AM, Padma Jayasankar <padmaj...@gmail.com>
>>>> wrote:
>>>>
>>>> HI,
>>>> I tried shortest path code with two topologies(with loops). For the
>>>> simple one with 3 switches it worked. But for the other with 9 switches it
>>>> displays the "list of links" as follows and when i try to ping, i got
>>>> "destination unreachable". I am not able to find the reason. Could u please
>>>> help to solve the issue? I have given the topology and the o/p below.
>>>>
>>>> *Topology:*
>>>> """Custom topology example
>>>> 2 hosts and 8 switches(with loops)
>>>>
>>>> """
>>>>
>>>> from mininet.topo import Topo
>>>>
>>>> class MyTopo( Topo ):
>>>> "Simple topology example."
>>>>
>>>> def __init__( self ):
>>>> "Create custom topo."
>>>>
>>>> # Initialize topology
>>>> Topo.__init__( self )
>>>>
>>>> # Add hosts and switches
>>>> leftHost = self.addHost( 'h1' )
>>>> rightHost = self.addHost( 'h2' )
>>>> leftSwitch = self.addSwitch( 's3' )
>>>> midSwitch1 = self.addSwitch( 's4' )
>>>> midSwitch2 = self.addSwitch( 's5' )
>>>> midSwitch3 = self.addSwitch( 's6' )
>>>> midSwitch4 = self.addSwitch( 's7' )
>>>> midSwitch5 = self.addSwitch( 's8' )
>>>> midSwitch6 = self.addSwitch( 's9' )
>>>> midSwitch7 = self.addSwitch( 's10' )
>>>> rightSwitch = self.addSwitch( 's11' )
>>>>
>>>> # Add links
>>>> self.addLink( leftHost, leftSwitch )
>>>> self.addLink( leftSwitch, midSwitch1 )
>>>> self.addLink( leftSwitch, midSwitch4 )
>>>> self.addLink( midSwitch1, midSwitch2 )
>>>> self.addLink( midSwitch1, midSwitch6 )
>>>> self.addLink( midSwitch2, midSwitch3 )
>>>> self.addLink( midSwitch3, midSwitch7 )
>>>> self.addLink( midSwitch3, rightSwitch )
>>>> self.addLink( midSwitch6, midSwitch4 )
>>>> self.addLink( midSwitch4, midSwitch5 )
>>>> self.addLink( midSwitch5, midSwitch7 )
>>>> self.addLink( midSwitch5, rightSwitch )
>>>> self.addLink( rightSwitch, rightHost )
>>>>
>>>>
>>>> topos = { 'mytopo': ( lambda: MyTopo() ) }
>>>>
>>>> * Output*:
>>>> [('1a:5a:80:13:c6:88', 3), (3, '1a:5a:80:13:c6:88'), (3, 4), (3, 5),
>>>> (3, 7), (3, '7a:e0:42:3f:43:6c'), (3, '5a:ad:d3:ff:a3:bf'), (3,
>>>> 'ca:3d:88:e0:9a:ae'), (3, '9e:f3:a0:76:66:4d'), (3, '5e:aa:98:96:4d:35'),
>>>> (3, 'd6:c8:2f:4f:c6:0d'), (4, 3), (4, 5), (4, '0e:2a:7b:f8:01:93'), (4,
>>>> '1e:8d:b2:c4:1b:4c'), (4, 9), (4, '92:a9:20:d5:53:db'), (4,
>>>> '22:61:b2:eb:8e:b4'), (4, '0a:9c:68:b3:ca:bc'), (4, '7e:80:62:59:a2:bc'),
>>>> (4, '3e:71:c4:4a:c7:41'), (5, 3), (5, 4), (5, 6), (5, 'f2:60:bf:5e:48:85'),
>>>> (5, '06:b1:18:f4:97:c1'), (5, '06:21:a5:1e:f5:a2'), (5,
>>>> '0a:be:81:3b:ff:4d'), (5, '6e:75:10:aa:61:14'), (6, '72:1d:1a:4f:6d:63'),
>>>> (6, 10), (6, 5), (6, '52:72:8d:59:c9:bb'), (7, 'b2:82:29:6b:0a:f5'), (7,
>>>> 3), (7, 8), (7, 9), (7, '9e:8f:84:40:03:40'), (7, '56:95:25:54:ce:02'), (8,
>>>> '06:05:ce:ee:71:87'), (8, '26:11:6f:94:9d:ca'), (8, 'fa:f6:43:45:19:4d'),
>>>> (8, 7), (8, 10), (8, 'de:0f:9b:2b:49:bd'), (9, 4), (9,
>>>> '9a:a4:04:22:4a:75'), (9, '3e:81:2f:d8:c7:77'), (9, 7), (10, 8), (10,
>>>> '42:0b:0f:4a:da:55'), (10, '2a:9e:7c:68:48:5d'), (10, 6), (10,
>>>> 'e2:fd:fc:c4:06:45'), ('ca:3d:88:e0:9a:ae', 3), ('5e:aa:98:96:4d:35', 3),
>>>> ('2a:9e:7c:68:48:5d', 10), ('fa:f6:43:45:19:4d', 8), ('0a:be:81:3b:ff:4d',
>>>> 5), ('92:a9:20:d5:53:db', 4), ('f2:60:bf:5e:48:85', 5),
>>>> ('5a:ad:d3:ff:a3:bf', 3), ('06:b1:18:f4:97:c1', 5), ('0a:9c:68:b3:ca:bc',
>>>> 4), ('e2:fd:fc:c4:06:45', 10), ('3e:71:c4:4a:c7:41', 4),
>>>> ('b2:82:29:6b:0a:f5', 7), ('0e:2a:7b:f8:01:93', 4), ('7a:e0:42:3f:43:6c',
>>>> 3), ('7e:80:62:59:a2:bc', 4), ('9a:a4:04:22:4a:75', 9),
>>>> ('9e:f3:a0:76:66:4d', 3), ('6e:75:10:aa:61:14', 5), ('06:05:ce:ee:71:87',
>>>> 8), ('26:11:6f:94:9d:ca', 8), ('de:0f:9b:2b:49:bd', 8),
>>>> ('3e:81:2f:d8:c7:77', 9), ('1e:8d:b2:c4:1b:4c', 4), ('9e:8f:84:40:03:40',
>>>> 7), ('22:61:b2:eb:8e:b4', 4), ('42:0b:0f:4a:da:55', 10),
>>>> ('06:21:a5:1e:f5:a2', 5), ('72:1d:1a:4f:6d:63', 6), ('52:72:8d:59:c9:bb',
>>>> 6), ('56:95:25:54:ce:02', 7), ('d6:c8:2f:4f:c6:0d', 3)]
>>>>
>>>>
>>>>
>>>> On Wed, Dec 31, 2014 at 10:00 PM, Flavio Junior <flaviojr...@gmail.com>
>>>> wrote:
>>>>
>>>>> Yes, I had a 5 nodes ring topology and it worked fine.
>>>>>
>>>>> But the flood actions are probably causing a flood storm.
>>>>>
>>>>> Spanning tree is not added to the code. It shouldn't be hard to add it
>>>>> thou.
>>>>>
>>>>> I created this post
>>>>> <http://sdn-lab.com/2014/12/25/shortest-path-forwarding-with-openflow-on-ryu/#more-108>
>>>>> in my blog trying to explain the code a little better.
>>>>>
>>>>>
>>>>> Flávio Castro Jr.
>>>>> MSCS student at Georgia Tech
>>>>> B.S.E in Networks Engineering from the University of Brasilia.
>>>>> CCNA Certified
>>>>> (404) 660-9373
>>>>>
>>>>> On Wed, Dec 31, 2014 at 10:16 AM, Padma Jayasankar <
>>>>> padmaj...@gmail.com> wrote:
>>>>>
>>>>>> HI,
>>>>>> Will this code work for the networks which have loops. If not, is it
>>>>>> possible to incorporate this code with simple_switch_stp.py? Please
>>>>>> clarify.
>>>>>>
>>>>>> Thanks and Regards,
>>>>>> Padma V
>>>>>>
>>>>>> On Fri, Dec 19, 2014 at 6:20 AM, Flavio Junior <flaviojr...@gmail.com
>>>>>> > wrote:
>>>>>>
>>>>>>> I just posted it to github here: https://github.com/castroflavio/ryu
>>>>>>>
>>>>>>> Please take a look at the code (shortestpath.py). The most important
>>>>>>> parts are the networkx SP computation and the topology discovery
>>>>>>> (ryu.topology). Networkx is a python library to do graph operations.
>>>>>>>
>>>>>>> We just finished the project, so I wasn't able to delete unnecessary
>>>>>>> info there. Feel free to modify it and add your name to the list of
>>>>>>> collaborators. Also, if you use our code as starting point I'd be
>>>>>>> extremely
>>>>>>> glad if recognize it on your code.
>>>>>>>
>>>>>>> It's a very simple code. If you still have doubts after spending
>>>>>>> some time reading I'll be glad to answer your questions.
>>>>>>>
>>>>>>> *Flávio Jr*
>>>>>>>
>>>>>>> (61) 8448-4003
>>>>>>>
>>>>>>> On Thu, Dec 18, 2014 at 6:35 PM, Padma Jayasankar <
>>>>>>> padmaj...@gmail.com> wrote:
>>>>>>>>
>>>>>>>> Hi,
>>>>>>>> Thanks for the info..But i haven't used networkx earlier..I have to
>>>>>>>> do the shortest path calculation in openflow networks..If i ues
>>>>>>>> networkx,
>>>>>>>> can it be used with openflow(Am using Mininet,Ryu and OVS). Please
>>>>>>>> clarify.
>>>>>>>>
>>>>>>>> Thanks and Regards,
>>>>>>>> Padma V
>>>>>>>>
>>>>>>>> On Thu, Dec 18, 2014 at 10:08 PM, Flavio Junior <
>>>>>>>> flaviojr...@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>> I've done shortest path forwarding using networkx. You can get the
>>>>>>>>> topology using the get topology api.
>>>>>>>>>
>>>>>>>>> I haven't posted my code to github yet, but I'll do it asap. Let
>>>>>>>>> me know if there are other solutions.
>>>>>>>>>
>>>>>>>>> On Thu, Dec 18, 2014 at 10:41 AM, Padma Jayasankar <
>>>>>>>>> padmaj...@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>> Hi All,
>>>>>>>>> I am new to Rye. I went through ryu ebook to know the basics. For
>>>>>>>>> my project , i have to find the backup path along with working path
>>>>>>>>> when a
>>>>>>>>> ping request comes. Am using Mininet , OVS and Ryu. Earlier i used
>>>>>>>>> POX and
>>>>>>>>> used the l2_multi that computes the shortest path by accessing the
>>>>>>>>> topology. Now as i want to use openflow 1.3 features , i am moving to
>>>>>>>>> Ryu.
>>>>>>>>> In Ryu is thee any app which is equivalent to l2_multi. If not is it
>>>>>>>>> possible to write such one..If yes, please give some guidance.
>>>>>>>>>
>>>>>>>>> Thanks and Regards,
>>>>>>>>> Padma V
>>>>>>>>>
>>>>>>>>>
>>>>>>>
>>>>>>> ------------------------------------------------------------------------------
>>>>>>> Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
>>>>>>> from Actuate! Instantly Supercharge Your Business Reports and
>>>>>>> Dashboards
>>>>>>> with Interactivity, Sharing, Native Excel Exports, App Integration &
>>>>>>> more
>>>>>>> Get technology previously reserved for billion-dollar corporations,
>>>>>>> FREE
>>>>>>>
>>>>>>> http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
>>>>>>> _______________________________________________
>>>>>>> Ryu-devel mailing list
>>>>>>> Ryu-devel@lists.sourceforge.net
>>>>>>> https://lists.sourceforge.net/lists/listinfo/ryu-devel
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
------------------------------------------------------------------------------
Dive into the World of Parallel Programming! The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net
_______________________________________________
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel