On Wed, Oct 19, 2016 at 2:35 PM, Luis Sanabria-Russo <[email protected]> wrote:
> Hello List,
>
> after going through the archives, and doing many combinations with the
> "OVSDB" keyword in Google, I felt defeated, and finally decided to query
> your collective wisdom, :).
>
> I've reviewed many questions asking for a quick explanation on how to use
> the OVSDB Manager library, or how to send OVSDB commands to an OVS switch.
> Nevertheless, I could not omit the fact that the example provided in the
> documentation does not even catch the "EventNewOVSDBConnection" event.
> Further, it does not even include ryu.controller.handler for handling the
> event.
>
> So my question is: how can I log OVS devices trying to connect to the remote
> manager (Ryu)? (I'm assuming that the configuration of bridges and ports can
> be quickly derived from the example)
>
> Right now I have been able to run the following (short) application:
> ---------------------------------------------
> import uuid
>
> from ryu.base import app_manager
> from ryu.controller.handler import set_ev_cls
> 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
>         self.logger.info('New OVSDB connection from system id %s',
>                          systemd_id)
> ---------------------------------------------
>
> Nevertheless, as shown next, the logger.info output do not correspond to
> MyApp class, in fact, modifying the log message at
> /ryu/services/protocols/ovsdb/manager.py (line 93 inside _accept method)
> does not change the output of the log message:
>
> ----------------------------------------------
> loading app ovsdb_example.py
> loading app ryu.services.protocols.ovsdb.manager
> instantiating app ovsdb_example.py of MyApp
> instantiating app ryu.services.protocols.ovsdb.manager of OVSDB
> BRICK OVSDB
>   PROVIDES EventNewOVSDBConnection TO {'MyApp': set([])}
>   PROVIDES EventModifyRequest TO {'OVSDB': set([])}
>   PROVIDES EventReadRequest TO {'OVSDB': set([])}
>   CONSUMES EventModifyRequest
>   CONSUMES EventReadRequest
> BRICK MyApp
>   CONSUMES EventNewOVSDBConnection
> Listening on 0.0.0.0:6640 for clients
> New connection from 193.168.168.106:38156
> ----------------------------------------------
>
> Any ideas?
>
> Thanks in advance for the help,

There are two possibilities here, either the schema was not found [0]
or the system_id [1] was not found. Either case will cause the OVSDB
client application to terminate and the event not to fire [2].

Happy Hacking!

7-11

[0] 
https://github.com/osrg/ryu/blob/master/ryu/services/protocols/ovsdb/client.py#L291
[1] 
https://github.com/osrg/ryu/blob/master/ryu/services/protocols/ovsdb/client.py#L323
[2] 
https://github.com/osrg/ryu/blob/master/ryu/services/protocols/ovsdb/manager.py#L146

------------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to