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 <mailto: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#event-handler
    <https://osrg.github.io/ryu-book/en/html/switching_hub.html#event-handler>
    http://ryu.readthedocs.io/en/latest/ryu_app_api.html#event-classes
    <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
    <mailto:satoshi.fujimo...@gmail.com>> wrote:

        Hi, Deni

        You can make a connection by instantiating OVSBridge:
                ovs_bridge = OVSBridge(None, datapath.id
        <http://datapath.id>, 'tcp:127.0.0.1:6632
        <http://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
        <http://datapath.id>, 'tcp:127.0.0.1:6632
        <http://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
        <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
        <mailto: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-bb15210aa220
            New connection from 10.0.0.11:47985
            <http://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-bb15210aa220
            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-bb15210aa220
            New connection from 10.0.0.11:47986
            <http://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 list
            Ryu-devel@lists.sourceforge.net
            <mailto:Ryu-devel@lists.sourceforge.net>
            https://lists.sourceforge.net/lists/listinfo/ryu-devel
            <https://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
        <mailto:Ryu-devel@lists.sourceforge.net>
        https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <https://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
    <mailto:Ryu-devel@lists.sourceforge.net>
    https://lists.sourceforge.net/lists/listinfo/ryu-devel
    <https://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
------------------------------------------------------------------------------
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

Reply via email to