Hi Fujimoto san,
Thank you for the information.
To add the port, I didn't use "run_command()" in bridge.py. To be honest, I
didn,t know yet how to use it :). However, to add the port, I was trying to
add function (add_port) in bridge.py. The function is very similar to the
del_port function. It was working, the port was added in remote OVS. Btw, I
was wondering whether it is OK to do add-port, add bridge, del-bridge
through this way? (by adding function in library bridge.py).
My second question, when I ran the app, I got this message. Would you mind
to let me know whats is the problem?
-------------------------------------------------
Registered VCS backend: git
Registered VCS backend: hg
Registered VCS backend: svn
Registered VCS backend: bzr
loading app ryu/app/test_simple_switch.py
loading app ryu.controller.ofp_handler
instantiating app ryu/app/test_simple_switch.py of SimpleSwitch
instantiating app ryu.controller.ofp_handler of OFPHandler
packet in 8796760143511 00:23:20:99:9b:bc ff:ff:ff:ff:ff:ff 65534
SimpleSwitch: Exception occurred during handler processing. Backtrace from
offending handler [switch_features_handler] servicing event
[EventOFPSwitchFeatures] follows.
Traceback (most recent call last):
File "/home/jedi/Downloads/ryu/ryu/base/app_manager.py", line 290, in
_event_loop
handler(ev)
File "/home/jedi/Downloads/ryu/ryu/app/test_simple_switch.py", line 44,
in switch_features_handler
self.add_port('eth1', datapath)
File "/home/jedi/Downloads/ryu/ryu/app/test_simple_switch.py", line 59,
in add_port
ovs_bridge.init()
File "/home/jedi/Downloads/ryu/ryu/lib/ovs/bridge.py", line 109, in init
self.br_name = self._get_bridge_name()
File "/home/jedi/Downloads/ryu/ryu/lib/ovs/bridge.py", line 117, in
_get_bridge_name
self.run_command([command])
File "/home/jedi/Downloads/ryu/ryu/lib/ovs/bridge.py", line 105, in
run_command
self.vsctl.run_command(commands, self.timeout, self.exception)
File "/home/jedi/Downloads/ryu/ryu/lib/ovs/vsctl.py", line 1207, in
run_command
self._run_command(commands)
File "/home/jedi/Downloads/ryu/ryu/lib/ovs/vsctl.py", line 1200, in
_run_command
self._do_main(commands)
File "/home/jedi/Downloads/ryu/ryu/lib/ovs/vsctl.py", line 1097, in
_do_main
self._init_schema_helper()
File "/home/jedi/Downloads/ryu/ryu/lib/ovs/vsctl.py", line 984, in
_init_schema_helper
vswitch_idl.OVSREC_DB_NAME)
File "/home/jedi/Downloads/ryu/ryu/lib/ovs/vsctl.py", line 967, in
_rpc_get_schema_json
stream.Stream.open(self.remote))
File "/home/jedi/.local/lib/python2.7/site-packages/ovs/stream.py", line
222, in open_block
poller.block()
File "/home/jedi/.local/lib/python2.7/site-packages/ovs/poller.py", line
214, in block
events = self.poll.poll(self.timeout)
File "/home/jedi/.local/lib/python2.7/site-packages/ovs/poller.py", line
123, in poll
timeout)
File "/home/jedi/.local/lib/python2.7/site-packages/eventlet/green/select.py",
line 80, in select
return hub.switch()
File "/home/jedi/.local/lib/python2.7/site-packages/eventlet/hubs/hub.py",
line 295, in switch
return self.greenlet.switch()
Timeout: 1 second
packet in 8796760143511 08:00:27:90:4c:26 08:00:27:c3:76:97 2
packet in 8796760143511 08:00:27:c3:76:97 08:00:27:90:4c:26 65534
packet in 8796760143511 08:00:27:90:4c:26 08:00:27:c3:76:97 2
packet in 8796764093239 00:23:20:c0:9e:76 ff:ff:ff:ff:ff:ff 65534
-----------------------------------
Thank you.
regards,
deni toruan
On Fri, Apr 28, 2017 at 12:56 AM, Fujimoto Satoshi <
satoshi.fujimo...@gmail.com> wrote:
> Hi, Deni
>
> If APIs in bridge.py are not enough to satisfy your demand, you can use
> "run_command()" in bridge.py.
> "run_command()" calls functions in vsctl.py.
> I think you will be able to add/delete bridges by using this function. :)
> https://github.com/osrg/ryu/blob/master/ryu/lib/ovs/bridge.py#L104
>
> Thanks,
> Fujimoto
>
>
> On 2017年04月28日 00:51, Deni Toruan wrote:
>
> Hi Fujimoto san,
>
> Thank you very much for the code. I have ran it and it was working.
> Thanks, you have saved my days.
> Btw, I have another questions related to this issue. I do hope you will
> not mind :)
>
> a. When I am trying to add port and add/delete bridge, I did not find any
> function related to those commands in library bridge.py. Is it mean I can't
> add port using library bridge.py?
>
> b. I saw in library vsctl.py, there is some commands related to add port
> and add/delete bridge. Is it mean we must use this library to add the port?
>
> Thank you for your help.
>
> regards,
>
> deni
>
> On Wed, Apr 26, 2017 at 1:46 AM, Fujimoto Satoshi <
> satoshi.fujimo...@gmail.com> wrote:
>
>> Hi, Deni
>>
>> In your application, I think there is no one which calls "ovs_bridge()".
>> It is better to implement your code in Event Handlers.
>> For example, Features Reply Handler will be called when your application
>> gets the Features Reply message
>> (≒ when the connection to the OVS is established).
>> For details, you can read the Ryu Book and Ryu API Reference:
>> https://osrg.github.io/ryu-book/en/html/switching_hub.html#e
>> vent-handler
>> http://ryu.readthedocs.io/en/latest/ryu_app_api.html#event-classes
>>
>> And you have to specify the port with string, like this:
>> ovs_bridge.del_port('eth1')
>>
>>
>> Now I made a simple code by modifying simple_switch.py and attached it to
>> this mail.
>> Please check and try it! :)
>>
>> Thanks,
>> Fujimoto
>>
>>
>> On 2017年04月25日 20:04, Deni Toruan wrote:
>>
>> Dear Fujimoto san, thank you very much for your information.
>>
>> I have tried to put the code to the file: simple_switch.py (as in
>> attachment), and try to run it in Ryu controller machine.
>> The code is running, how ever, when I checked in the OVS machine (VM IP:
>> 10.0.0.5), there is no changes. The port eth1 is still there.
>> Is there anything wrong in putting the code to file simple_switch.py?
>> thank you.
>>
>> regards,
>>
>> deni toruan
>>
>>
>> On Tue, Apr 25, 2017 at 1:40 AM, Fujimoto Satoshi <
>> satoshi.fujimo...@gmail.com> wrote:
>>
>>> Hi, Deni
>>>
>>> You can make a connection by instantiating OVSBridge:
>>> ovs_bridge = OVSBridge(None, datapath.id, 'tcp:127.0.0.1:6632',
>>> timeout=1)
>>>
>>> And by the following code, for example, you can delete a port:
>>> ovs_bridge = OVSBridge(None, datapath.id, 'tcp:127.0.0.1:6632',
>>> timeout=1)
>>> ovs_bridge.init()
>>> ports = ovs_bridge.get_port_name_list()
>>> ovs_bridge.del_port(ports[0])
>>>
>>> OVSBridge provides some other APIs.
>>> For details, please check this code:
>>> https://github.com/osrg/ryu/blob/master/ryu/lib/ovs/bridge.py
>>>
>>>
>>> Thanks,
>>> Fujimoto
>>>
>>>
>>> On 2017年04月24日 16:18, Deni Toruan wrote:
>>>
>>> Hi Satoshi san, thank you for your kind reply.
>>>
>>>
>>> On Mon, Apr 24, 2017 at 5:07 AM, Fujimoto Satoshi <
>>> satoshi.fujimo...@gmail.com> wrote:
>>>
>>>> Hi, Deni
>>>>
>>>> The problem may be caused by that you use "ovsdb_event" and "ovs_vsctl"
>>>> at the same time.
>>>> If you don't need to monitor the status of OVS, you should not use
>>>> "ovsdb_event".
>>>>
>>>
>>> Is it mean I should not use initiation :
>>> "ovsdb_event.EventNewOVSDBConnection)"?
>>> So how I will make (realize) a connection between controller and OVSDB
>>> Server?
>>>
>>>
>>>> Also, you can use "OVSBridge" to control your OVS.
>>>> "OVSBridge" calls "ovs_vsctl.VSCtl()" in __init__(), and wraps some
>>>> operations including adding a port.
>>>>
>>>>
>>> Thank you for your suggestion.Would you mind to give me some clue for
>>> using the "OVSBridge" and for calling the "ovs_vsctl.VSCtl()"?
>>>
>>>
>>>
>>>> Thanks,
>>>> Fujimoto
>>>>
>>>>
>>>>
>>> Thank you.
>>>
>>> Regards, Deni
>>>
>>>
>>>
>>>
>>>> On 2017年04月23日 19:23, Deni Toruan wrote:
>>>>
>>>>
>>>> Dear all,
>>>>
>>>> Currently, I am trying to make a connection between Ryu Controller and
>>>> OVS, and trying to modify OVS from controller (add bridge, add port, delete
>>>> port, etc) dynamically.
>>>>
>>>> Currently, the OVS and Ryu controller can be connected. They are
>>>> running in different VM. However, when I try to run my simple app, it
>>>> didn't work. In the code, I am trying to delete one port that I have
>>>> already set up from OVS terminal. I always got this in controller:
>>>>
>>>> ----------------------------
>>>> d5f55957-26e1-4e24-8b9c-bb15210aa220
>>>> New OVSDB connection from system id d5f55957-26e1-4e24-8b9c-bb1521
>>>> 0aa220
>>>> New connection from 10.0.0.11:47985
>>>> instantiating app None of RemoteOvsdb
>>>> BRICK RemoteOvsdb-d5f55957-26e1-4e24-8b9c-bb15210aa220
>>>> EVENT OVSDB->SimpleSwitch EventNewOVSDBConnection
>>>>
>>>> EventNewOVSDBConnection<system_id=d5f55957-26e1-4e24-8b9c-bb15210aa220>
>>>>
>>>> d5f55957-26e1-4e24-8b9c-bb15210aa220
>>>> New OVSDB connection from system id d5f55957-26e1-4e24-8b9c-bb1521
>>>> 0aa220
>>>> instantiating app None of RemoteOvsdb
>>>> BRICK RemoteOvsdb-d5f55957-26e1-4e24-8b9c-bb15210aa220
>>>> EVENT OVSDB->SimpleSwitch EventNewOVSDBConnection
>>>>
>>>> EventNewOVSDBConnection<system_id=d5f55957-26e1-4e24-8b9c-bb15210aa220>
>>>>
>>>> d5f55957-26e1-4e24-8b9c-bb15210aa220
>>>> New OVSDB connection from system id d5f55957-26e1-4e24-8b9c-bb1521
>>>> 0aa220
>>>> New connection from 10.0.0.11:47986
>>>> ---------------------------------
>>>>
>>>> For your information, I customize the code and I put it in attachment.
>>>> Please give some hints for doing this, especially with the code. Thank you.
>>>>
>>>> Best regards,
>>>>
>>>> Deni Lumbantoruan
>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> 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
>>>> listRyu-devel@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/ryu-devel
>>>>
>>>> --
>>> Deni Toruan
>>> Dosen IT Del
>>> Sitoluama
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> 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
>>> listRyu-devel@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/ryu-devel
>>>
>>> --
>> Deni Toruan
>> Dosen IT Del
>> Sitoluama
>>
>>
>> ------------------------------------------------------------------------------
>> 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
>> listRyu-devel@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/ryu-devel
>>
>> --
> Deni Toruan
> Dosen IT Del
> Sitoluama
>
>
> ------------------------------------------------------------------------------
> 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
> listRyu-devel@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/ryu-devel
>
>
--
Deni Toruan
Dosen IT Del
Sitoluama
------------------------------------------------------------------------------
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