> Hi,
> 
> I ask you for some help relating to the topology-modul of 
> Ryu. I wrote a simple app, which is supposed to give me 
> the complete topology of the network (a connected mininet 
> network), by listing all switches and links. The problem 
> is, that i have to use a trick to get all of the links, by 
> specifing, that the number of links is complete if it 
> corresponds to the number of switches+1. This works 
> because every links is recorded twice, as it has two 
> directions and i'm using a tree-topology. My example 

i don't understand your calculation.
do yo mean (number_of_links / 2 + 1 == number_of_switches) ?

> program is attached below and started with  PYTHONPATH=. 
> ./bin/ryu-manager --observe-links ryu/app/topotester.py
> The rest_topology.py app just works fine for me and gives 
> me all the links by first reqeust, which is what I hope to 
> realize with my application.

i've seen partial results from rest_topology.
i guess your success with it was merely a coincidence.

YAMAMOTO Takashi

> 
> Kind regards, Chris
> 
> 
> from ryu.base import app_manager
> 
> from ryu.controller import ofp_event
> from ryu.controller.handler import MAIN_DISPATCHER
> from ryu.controller.handler import CONFIG_DISPATCHER
> from ryu.controller.handler import set_ev_cls
> 
> from ryu.topology import switches
> from ryu.topology.switches import get_switch, get_link
> 
> 
> 
> class topotester(app_manager.RyuApp):
>      _CONTEXTS = {
> 
>          'switches': switches.Switches
>      }
> 
> 
>      def __init__(self, *args, **kwargs):
>          super(topotester, self).__init__(*args, **kwargs)
> 
>       self.switches = kwargs['switches']
> 
>          self.topology_unknown = True
>          self.number_of_switches = 0
>          self.number_of_links = 0
> 
> 
>      def list_switches(self):
>          dpid = None
> 
>          switch_list = get_switch(self.switches, dpid)
>          for switch in switch_list:
>              print switch.to_dict()
> 
>          print "DEBUG: Number of Switches:", 
> len(switch_list)
>          if self.topology_unknown:
>              self.number_of_switches = len(switch_list)
> 
>      def list_links(self):
>          dpid = None
>          links = get_link(self.switches, dpid)
>          for link in links:
>              print link.to_dict()
>          print "DEBUG: Number of Links:", len(links)
>          self.number_of_links = len(links)
> 
> 
>      @set_ev_cls(ofp_event.EventOFPPacketIn, 
> MAIN_DISPATCHER)
>      def packet_in_handler(self, ev):
>          msg = ev.msg
>          dp = msg.datapath
>          ofp = dp.ofproto
>          ofp_parser = dp.ofproto_parser
> 
> 
>          if self.topology_unknown==True:
> 
>              print "Switches:"
>              self.list_switches()
> 
>              print 
> "---------------------------------------------------"
> 
>              print "Links:"
>              self.list_links()
>              print 
> "---------------------------------------------------"
>              if self.number_of_links == 
> self.number_of_switches+1:
>                  self.topology_unknown=False
> 
>  
> 
> ------------------------------------------------------------------------------
> Introducing Performance Central, a new site from SourceForge and 
> AppDynamics. Performance Central is your source for news, insights, 
> analysis and resources for efficient Application Performance Management. 
> Visit us today!
> http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk
> _______________________________________________
> Ryu-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/ryu-devel

------------------------------------------------------------------------------
Introducing Performance Central, a new site from SourceForge and 
AppDynamics. Performance Central is your source for news, insights, 
analysis and resources for efficient Application Performance Management. 
Visit us today!
http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to