Hi, the API you suggested regarding the switch name is not what I need because it simply returns the datapath object, which I already have since I'm saving them when a new packet is received. What I need is the name of the switch, the one I'm using in Mininet to be clear. Is that simply the id? So s1 is the datapath with id=1 and so on? I also noticed the switches with different names such as (si1, sio1) are not able to connect to the controller.
Concerning the setting of the controller address I don't get the correct flow. I thought there was a simply api to use in my ryu application that would define the ip and then make all the switches connect to that address from mininet. With the examples you gave me I see multiple port and addresses, so I'm still not sure. Thanks, Alessandro On 04/12/2017 00:05, Iwase Yusuke wrote: > Hi again, > > > - how do I set the IP address of the controller? > > You are using Open vSwitch, right? > If so, you need to configure your switches via OVSDB (like "ovs-vsctl" > command), > and Ryu provide some options to use OVSDB. > > First, it might be the easiest way I guess, you can use the APIs of > "ryu.lib.ovs". > The usage and arguments are very similar to "ovs-vsctl" command. > https://github.com/osrg/ryu/blob/63f81837fd73cc31edbfe9ba6814ae3f38e34a16/ryu/lib/ovs/bridge.py#L133 > > > > In this case, you need to set the OVSDB manager address to your OVS > before > Ryu connect to your switches like; > $ ovs-vsctl set-manager "ptcp:6640" > > Example code: > === > from ryu.cfg import CONF > from ryu.lib.ovs import bridge > > ovs_bridge = bridge.OVSBridge(CONF, 1, "tcp:127.0.0.1:6640") > ovs_bridge.set_controller(["tcp:127.0.0.1:6653"]) > === > > The similar to the first way, the OVSDB Manager library provides the > reactive > connection to OVS. > "reactive" means Ryu will wait for the incoming OVSDB connections from > the > switch side (on the other hand, "proactive" way is using "ryu.lib.ovs" > and it > will connect to switches from the controller side) > http://ryu.readthedocs.io/en/latest/library_ovsdb_manager.html > > Example code: > === > from ryu.services.protocols.ovsdb import api as ovsdb > from ryu.services.protocols.ovsdb import event as ovsdb_event > > > class MyApp(app_manager.RyuApp): > @set_ev_cls(ovsdb_event.EventNewOVSDBConnection) > def handle_new_ovsdb_connection(self, ev): > system_id = ev.system_id > address = ev.client.address > self.logger.info( > 'New OVSDB connection from system-id=%s, address=%s', > system_id, address) > > ovsdb.set_controller(self, system_id, "s1", "tcp:127.0.0.1:6633") > === > > The third way, this way might be not answer for your original question > tough, > Ryu can connect to your switches from the controller side with > "--ofp-switch-address-list" option. > > Example: > $ ryu-manager --help > ...(snip)... > --ofp-switch-address-list OFP_SWITCH_ADDRESS_LIST > list of IP address and port pairs (default > empty). > e.g., "127.0.0.1:6653,[::1]:6653" > ...(snip)... > > Mostly, OVS instances on Mininet will listen on 6653+increment like; > mininet> sh ovs-vsctl show > c8fb2af7-1088-4f3e-92f7-fc09d20f7d40 > Bridge "s1" > Controller "tcp:127.0.0.1:6653" > Controller "ptcp:6654" # <--- waiting for controller on 6653+1 > ...(snip)... > Bridge "s2" > Controller "tcp:127.0.0.1:6653" > Controller "ptcp:6655" # <--- waiting for controller on 6653+2 > ...(snip)... > > > > - how do I get the list of the connected switches? Is there a simple > api > > or do I need to explicitly save the various datapath? Also how do I map > > a datapath to the switch name? > > You can use "ryu.app.ofctl.app" for such purpose. > Please refer to the following mail for the usage example. > https://www.mail-archive.com/ryu-devel@lists.sourceforge.net/msg09357.html > > > > Thanks, > Iwase > > > On 2017年12月02日 01:41, Alessandro Gaballo wrote: >> Hi, I have 2 questions: >> >> - how do I set the IP address of the controller? >> - how do I get the list of the connected switches? Is there a simple api >> or do I need to explicitly save the various datapath? Also how do I map >> a datapath to the switch name? >> >> ------------------------------------------------------------------------------ >> >> >> Check out the vibrant tech community on one of the world's most >> engaging tech sites, Slashdot.org! http://sdm.link/slashdot >> _______________________________________________ >> Ryu-devel mailing list >> Ryu-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/ryu-devel >> ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Ryu-devel mailing list Ryu-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ryu-devel