)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"fae195c8b28780f9d1933b0385824686651e1be4","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     hujie \u003cmike.hu@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-02-01 17:56:57 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"describe ovsdb monitor mechanism for DragonFlow"},{"line_number":8,"context_line":"Change-Id: I9ec5ad052f09b3f01ea7ecd3ed0665bcdfc20e2f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"7a5de9d1_e11a4b7c","line":7,"range":{"start_line":7,"start_character":37,"end_line":7,"end_character":47},"updated":"2016-02-02 08:43:04.000000000","message":"You need a space here if not we get the change id in the title","commit_id":"94a9eadde9469714bd1a102ad45c09aca9b7aa9f"}],"doc/source/specs/ovsdb monitor.rst":[{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"b0e01fd34ae381293b54e06eb7e2f20cc6ea71e7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"This work is licensed under a Creative Commons Attribution 3.0 Unported\r"},{"line_number":2,"context_line":"License.\r"},{"line_number":3,"context_line":"\r"},{"line_number":4,"context_line":"http://creativecommons.org/licenses/by/3.0/legalcode\r"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a5ae5dd_02ee7b8b","line":1,"updated":"2016-02-03 07:07:48.000000000","message":"suggest to rename the file to ovsdb_monitor.rst.","commit_id":"09af54d588d1d81b4e5787bbdc4029c92db08ec2"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"b0e01fd34ae381293b54e06eb7e2f20cc6ea71e7","unresolved":false,"context_lines":[{"line_number":44,"context_line":"We have Dragonflow and open vswitch on the same server, when OVS\r"},{"line_number":45,"context_line":"start up, OVSDB will listen on port 6640, while when Dragonflow start\r"},{"line_number":46,"context_line":"up, OVSDB driver will attempt to connect the OVSDB and subscribe the\r"},{"line_number":47,"context_line":"data to OVSDB server which it is interested in, the details show below:\r"},{"line_number":48,"context_line":"1.OVSDB server start up and listen on port 6640 and Dragonflow start\r"},{"line_number":49,"context_line":"up while the OVSDB driver try to connect to OVSDB server as OVSDB\r"},{"line_number":50,"context_line":"client with tcp:127.0.0.1:6640;\r"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a5ae5dd_e271dfe1","line":47,"updated":"2016-02-03 07:07:48.000000000","message":"add a new line for readability","commit_id":"09af54d588d1d81b4e5787bbdc4029c92db08ec2"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"b0e01fd34ae381293b54e06eb7e2f20cc6ea71e7","unresolved":false,"context_lines":[{"line_number":47,"context_line":"data to OVSDB server which it is interested in, the details show below:\r"},{"line_number":48,"context_line":"1.OVSDB server start up and listen on port 6640 and Dragonflow start\r"},{"line_number":49,"context_line":"up while the OVSDB driver try to connect to OVSDB server as OVSDB\r"},{"line_number":50,"context_line":"client with tcp:127.0.0.1:6640;\r"},{"line_number":51,"context_line":"2.When OVSDB driver establish the channel with OVSDB server, OVSDB\r"},{"line_number":52,"context_line":"driver send the OVSDB monitor command with below jsonrpc content:\r"},{"line_number":53,"context_line":"\r"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a5ae5dd_8277cbd3","line":50,"updated":"2016-02-03 07:07:48.000000000","message":"ditto","commit_id":"09af54d588d1d81b4e5787bbdc4029c92db08ec2"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"b0e01fd34ae381293b54e06eb7e2f20cc6ea71e7","unresolved":false,"context_lines":[{"line_number":55,"context_line":"params:[\u003cdb-name\u003e,\u003cjson-value\u003e,\u003cmonitor-requests\u003e]\r"},{"line_number":56,"context_line":"id:nonnull-json-value\r"},{"line_number":57,"context_line":"\r"},{"line_number":58,"context_line":"In our solution, we only monitor the OVSDB ¡°Interface Table¡±,\r"},{"line_number":59,"context_line":"so OVSDB driver will send the monitor Interface table jsonrpc\r"},{"line_number":60,"context_line":"message to OVSDB server;\r"},{"line_number":61,"context_line":"3.When OVSDB server receive the monitor message sent by OVSDB driver,\r"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a5ae5dd_e2ba3f6e","line":58,"range":{"start_line":58,"start_character":43,"end_line":58,"end_character":62},"updated":"2016-02-03 07:07:48.000000000","message":"invalid characters?","commit_id":"09af54d588d1d81b4e5787bbdc4029c92db08ec2"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"b0e01fd34ae381293b54e06eb7e2f20cc6ea71e7","unresolved":false,"context_lines":[{"line_number":57,"context_line":"\r"},{"line_number":58,"context_line":"In our solution, we only monitor the OVSDB ¡°Interface Table¡±,\r"},{"line_number":59,"context_line":"so OVSDB driver will send the monitor Interface table jsonrpc\r"},{"line_number":60,"context_line":"message to OVSDB server;\r"},{"line_number":61,"context_line":"3.When OVSDB server receive the monitor message sent by OVSDB driver,\r"},{"line_number":62,"context_line":"it will send a reply message which contains all the interfaces detail\r"},{"line_number":63,"context_line":"info (if it has) back to OVSDB driver;\r"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a5ae5dd_825eeb43","line":60,"updated":"2016-02-03 07:07:48.000000000","message":"add a new line for readability","commit_id":"09af54d588d1d81b4e5787bbdc4029c92db08ec2"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"b0e01fd34ae381293b54e06eb7e2f20cc6ea71e7","unresolved":false,"context_lines":[{"line_number":60,"context_line":"message to OVSDB server;\r"},{"line_number":61,"context_line":"3.When OVSDB server receive the monitor message sent by OVSDB driver,\r"},{"line_number":62,"context_line":"it will send a reply message which contains all the interfaces detail\r"},{"line_number":63,"context_line":"info (if it has) back to OVSDB driver;\r"},{"line_number":64,"context_line":"4.OVSDB driver receives and decodes the monitor reply message, it will\r"},{"line_number":65,"context_line":"map each interface info to different type events(bridge online, vm online,\r"},{"line_number":66,"context_line":"tunnel port online, patch port online), OVSDB driver will send these events\r"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a5ae5dd_6255ef1b","line":63,"updated":"2016-02-03 07:07:48.000000000","message":"ditto","commit_id":"09af54d588d1d81b4e5787bbdc4029c92db08ec2"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"b0e01fd34ae381293b54e06eb7e2f20cc6ea71e7","unresolved":false,"context_lines":[{"line_number":63,"context_line":"info (if it has) back to OVSDB driver;\r"},{"line_number":64,"context_line":"4.OVSDB driver receives and decodes the monitor reply message, it will\r"},{"line_number":65,"context_line":"map each interface info to different type events(bridge online, vm online,\r"},{"line_number":66,"context_line":"tunnel port online, patch port online), OVSDB driver will send these events\r"},{"line_number":67,"context_line":"to other Dragonflow modules which are interested in;\r"},{"line_number":68,"context_line":"5.When tenant boot a vm on the host and add the vm port to the OVS bridge,\r"},{"line_number":69,"context_line":"OVSDB server will send a notification to OVSDB driver according to the\r"},{"line_number":70,"context_line":"update of OVS Interface Table, the notification will only contain the new\r"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a5ae5dd_5d1a1670","line":67,"range":{"start_line":66,"start_character":40,"end_line":67,"end_character":51},"updated":"2016-02-03 07:07:48.000000000","message":"could you elaborate it?","commit_id":"09af54d588d1d81b4e5787bbdc4029c92db08ec2"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"b0e01fd34ae381293b54e06eb7e2f20cc6ea71e7","unresolved":false,"context_lines":[{"line_number":64,"context_line":"4.OVSDB driver receives and decodes the monitor reply message, it will\r"},{"line_number":65,"context_line":"map each interface info to different type events(bridge online, vm online,\r"},{"line_number":66,"context_line":"tunnel port online, patch port online), OVSDB driver will send these events\r"},{"line_number":67,"context_line":"to other Dragonflow modules which are interested in;\r"},{"line_number":68,"context_line":"5.When tenant boot a vm on the host and add the vm port to the OVS bridge,\r"},{"line_number":69,"context_line":"OVSDB server will send a notification to OVSDB driver according to the\r"},{"line_number":70,"context_line":"update of OVS Interface Table, the notification will only contain the new\r"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a5ae5dd_22361704","line":67,"updated":"2016-02-03 07:07:48.000000000","message":"ditto","commit_id":"09af54d588d1d81b4e5787bbdc4029c92db08ec2"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"b0e01fd34ae381293b54e06eb7e2f20cc6ea71e7","unresolved":false,"context_lines":[{"line_number":69,"context_line":"OVSDB server will send a notification to OVSDB driver according to the\r"},{"line_number":70,"context_line":"update of OVS Interface Table, the notification will only contain the new\r"},{"line_number":71,"context_line":"vm interface detail info, and after OVSDB driver receive the notification\r"},{"line_number":72,"context_line":"it will do the same work as step 4;\r"},{"line_number":73,"context_line":"6.When tenant shutdown a vm on the host and delete the vm port from the\r"},{"line_number":74,"context_line":"OVS bridge, OVSDB server will send a notification to OVSDB driver according\r"},{"line_number":75,"context_line":"to the update of OVS Interface Table, the notification will only contain\r"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a5ae5dd_c23aa3e7","line":72,"updated":"2016-02-03 07:07:48.000000000","message":"add a new line for readability","commit_id":"09af54d588d1d81b4e5787bbdc4029c92db08ec2"}],"doc/source/specs/ovsdb_monitor.rst":[{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"505e94f5f3abecd0aaa5aa1bf98edce94c2c529e","unresolved":false,"context_lines":[{"line_number":24,"context_line":"info(ofport\\chassis id) for the new logical port. There are some\r"},{"line_number":25,"context_line":"performance problems for above implementation:\r"},{"line_number":26,"context_line":"\r"},{"line_number":27,"context_line":"The loop will consume many server resources because it will pull\r"},{"line_number":28,"context_line":"large amount data from DB cluster and do the comparison with the\r"},{"line_number":29,"context_line":"local cache frequently;\r"},{"line_number":30,"context_line":"\r"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a5ae5dd_73dc95e4","line":27,"updated":"2016-02-04 13:27:50.000000000","message":"Not sure i understand what is this related here, you are basically saying we should work in publish-subscribe or selective-proactive, and i agree :)\n\nBut its not related to this spec","commit_id":"5f073fc8155ce145ddf5779a1e43d237727f40a7"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"b4fd8c1d3d3357fd1b3518733ce91245ac424d34","unresolved":false,"context_lines":[{"line_number":24,"context_line":"info(ofport\\chassis id) for the new logical port. There are some\r"},{"line_number":25,"context_line":"performance problems for above implementation:\r"},{"line_number":26,"context_line":"\r"},{"line_number":27,"context_line":"The loop will consume many server resources because it will pull\r"},{"line_number":28,"context_line":"large amount data from DB cluster and do the comparison with the\r"},{"line_number":29,"context_line":"local cache frequently;\r"},{"line_number":30,"context_line":"\r"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a5ae5dd_bb8aa419","line":27,"in_reply_to":"5a5ae5dd_14895dc9","updated":"2016-02-05 14:57:27.000000000","message":"ahh ok, i thought here you meant the df-controller loop which brings data from the DF DB, yes i agree with your point then, just wasn\u0027t clear to me :)","commit_id":"5f073fc8155ce145ddf5779a1e43d237727f40a7"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"045089d1af6a3218a63dfe6d24b81e7056188d52","unresolved":false,"context_lines":[{"line_number":24,"context_line":"info(ofport\\chassis id) for the new logical port. There are some\r"},{"line_number":25,"context_line":"performance problems for above implementation:\r"},{"line_number":26,"context_line":"\r"},{"line_number":27,"context_line":"The loop will consume many server resources because it will pull\r"},{"line_number":28,"context_line":"large amount data from DB cluster and do the comparison with the\r"},{"line_number":29,"context_line":"local cache frequently;\r"},{"line_number":30,"context_line":"\r"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a5ae5dd_14895dc9","line":27,"in_reply_to":"5a5ae5dd_73dc95e4","updated":"2016-02-05 08:08:07.000000000","message":"ovsdb monitor is responsibal for fetching ovsdb data by a event triggered mechanism, however, in current implementation in order to fetch ovsdb data (for example for a new logical port), dragonflow run a loop which is similar with Openstack L2 agent, it will consume server resources, so if we use the event triggered mechanism instead of loop mechanism, it\u0027s a good replacement:)","commit_id":"5f073fc8155ce145ddf5779a1e43d237727f40a7"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"505e94f5f3abecd0aaa5aa1bf98edce94c2c529e","unresolved":false,"context_lines":[{"line_number":28,"context_line":"large amount data from DB cluster and do the comparison with the\r"},{"line_number":29,"context_line":"local cache frequently;\r"},{"line_number":30,"context_line":"\r"},{"line_number":31,"context_line":"For each new logical port, Dragonflow will create a socket channel\r"},{"line_number":32,"context_line":"to fetch data from OVSDB, if we create many new logical ports in the\r"},{"line_number":33,"context_line":"future or even in a very short time, it will consume the server\r"},{"line_number":34,"context_line":"resources further;\r"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a5ae5dd_b3d1adcf","line":31,"updated":"2016-02-04 13:27:50.000000000","message":"Thats not really correct, we only open one connection to the OVSDB","commit_id":"5f073fc8155ce145ddf5779a1e43d237727f40a7"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"045089d1af6a3218a63dfe6d24b81e7056188d52","unresolved":false,"context_lines":[{"line_number":28,"context_line":"large amount data from DB cluster and do the comparison with the\r"},{"line_number":29,"context_line":"local cache frequently;\r"},{"line_number":30,"context_line":"\r"},{"line_number":31,"context_line":"For each new logical port, Dragonflow will create a socket channel\r"},{"line_number":32,"context_line":"to fetch data from OVSDB, if we create many new logical ports in the\r"},{"line_number":33,"context_line":"future or even in a very short time, it will consume the server\r"},{"line_number":34,"context_line":"resources further;\r"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a5ae5dd_f7dfe366","line":31,"in_reply_to":"5a5ae5dd_b3d1adcf","updated":"2016-02-05 08:08:07.000000000","message":"for each new founded logical port, dragonflow will invoke ovs.idl to fetch ovsdb data, I thought it will establish new channel before, while maybe they will share a channel, so I would go through ryu code to clarify it:)","commit_id":"5f073fc8155ce145ddf5779a1e43d237727f40a7"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"b4fd8c1d3d3357fd1b3518733ce91245ac424d34","unresolved":false,"context_lines":[{"line_number":28,"context_line":"large amount data from DB cluster and do the comparison with the\r"},{"line_number":29,"context_line":"local cache frequently;\r"},{"line_number":30,"context_line":"\r"},{"line_number":31,"context_line":"For each new logical port, Dragonflow will create a socket channel\r"},{"line_number":32,"context_line":"to fetch data from OVSDB, if we create many new logical ports in the\r"},{"line_number":33,"context_line":"future or even in a very short time, it will consume the server\r"},{"line_number":34,"context_line":"resources further;\r"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a5ae5dd_fbab3c73","line":31,"in_reply_to":"5a5ae5dd_f7dfe366","updated":"2016-02-05 14:57:27.000000000","message":"Its not related to Ryu, its related to OVSDB python IDL, we open a connection at start of the controller and then just \"sync\" the local IDL cache to find new ports.\n\nBut i agree with you, the process you propose is better for this.","commit_id":"5f073fc8155ce145ddf5779a1e43d237727f40a7"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"254e591aa4c3de98a7800a98269790c4fd2f1f2a","unresolved":false,"context_lines":[{"line_number":33,"context_line":"future or even in a very short time, it will consume the server\r"},{"line_number":34,"context_line":"resources further;\r"},{"line_number":35,"context_line":"\r"},{"line_number":36,"context_line":"For each session between Dragonflow and OVSDB for a new logical port,\r"},{"line_number":37,"context_line":"it will fetch many unnecessary data from many OVSDB tables;\r"},{"line_number":38,"context_line":"\r"},{"line_number":39,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\r"},{"line_number":40,"context_line":"Solution Description\r"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a5ae5dd_3c3b659e","line":37,"range":{"start_line":36,"start_character":0,"end_line":37,"end_character":59},"updated":"2016-02-04 03:23:05.000000000","message":"If the dragonflow controller receives a logical_port created message, while the virtual port isn\u0027t plugged into vswitch yet. As I know, dragonflow does not consider this scenario. How does your solution solve this?","commit_id":"5f073fc8155ce145ddf5779a1e43d237727f40a7"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"505e94f5f3abecd0aaa5aa1bf98edce94c2c529e","unresolved":false,"context_lines":[{"line_number":33,"context_line":"future or even in a very short time, it will consume the server\r"},{"line_number":34,"context_line":"resources further;\r"},{"line_number":35,"context_line":"\r"},{"line_number":36,"context_line":"For each session between Dragonflow and OVSDB for a new logical port,\r"},{"line_number":37,"context_line":"it will fetch many unnecessary data from many OVSDB tables;\r"},{"line_number":38,"context_line":"\r"},{"line_number":39,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\r"},{"line_number":40,"context_line":"Solution Description\r"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a5ae5dd_49ed26ee","line":37,"range":{"start_line":36,"start_character":0,"end_line":37,"end_character":59},"in_reply_to":"5a5ae5dd_3c3b659e","updated":"2016-02-04 13:27:50.000000000","message":"liuhaixia, it`s not correct. Dragonflow can deal with this use case right now.\n\nIf we dont find the port in OVSDB we save it to the local cache and then when the port is up we receive port status in the OpenFlow protocol and apply the port configuration from the DB.","commit_id":"5f073fc8155ce145ddf5779a1e43d237727f40a7"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"045089d1af6a3218a63dfe6d24b81e7056188d52","unresolved":false,"context_lines":[{"line_number":33,"context_line":"future or even in a very short time, it will consume the server\r"},{"line_number":34,"context_line":"resources further;\r"},{"line_number":35,"context_line":"\r"},{"line_number":36,"context_line":"For each session between Dragonflow and OVSDB for a new logical port,\r"},{"line_number":37,"context_line":"it will fetch many unnecessary data from many OVSDB tables;\r"},{"line_number":38,"context_line":"\r"},{"line_number":39,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\r"},{"line_number":40,"context_line":"Solution Description\r"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a5ae5dd_d71507e5","line":37,"range":{"start_line":36,"start_character":0,"end_line":37,"end_character":59},"in_reply_to":"5a5ae5dd_49ed26ee","updated":"2016-02-05 08:08:07.000000000","message":"yes, I have reply to liuhaixia who is my workmate offline, however we suggest that when create a neutron port, df plugin only write it into df db, not broadcast to every compute node in order to less pub broadcast, and when find a new ovsdb port online, dragonflow will fetch the neutron port from df db","commit_id":"5f073fc8155ce145ddf5779a1e43d237727f40a7"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"b4fd8c1d3d3357fd1b3518733ce91245ac424d34","unresolved":false,"context_lines":[{"line_number":33,"context_line":"future or even in a very short time, it will consume the server\r"},{"line_number":34,"context_line":"resources further;\r"},{"line_number":35,"context_line":"\r"},{"line_number":36,"context_line":"For each session between Dragonflow and OVSDB for a new logical port,\r"},{"line_number":37,"context_line":"it will fetch many unnecessary data from many OVSDB tables;\r"},{"line_number":38,"context_line":"\r"},{"line_number":39,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\r"},{"line_number":40,"context_line":"Solution Description\r"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a5ae5dd_db0be08c","line":37,"range":{"start_line":36,"start_character":0,"end_line":37,"end_character":59},"in_reply_to":"5a5ae5dd_d71507e5","updated":"2016-02-05 14:57:27.000000000","message":"hujie, the pub sub is important to other compute nodes as well.\nThe port can only exist on one compute node (and this compute node will have the OVSDB monitor message) but other compute nodes also needs to know about this port...","commit_id":"5f073fc8155ce145ddf5779a1e43d237727f40a7"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"6ed93a437bfa70687d6598d6f5eb7e11edee8c48","unresolved":false,"context_lines":[{"line_number":33,"context_line":"future or even in a very short time, it will consume the server\r"},{"line_number":34,"context_line":"resources further;\r"},{"line_number":35,"context_line":"\r"},{"line_number":36,"context_line":"For each session between Dragonflow and OVSDB for a new logical port,\r"},{"line_number":37,"context_line":"it will fetch many unnecessary data from many OVSDB tables;\r"},{"line_number":38,"context_line":"\r"},{"line_number":39,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\r"},{"line_number":40,"context_line":"Solution Description\r"}],"source_content_type":"text/x-rst","patch_set":7,"id":"dae33548_747b492a","line":37,"range":{"start_line":36,"start_character":0,"end_line":37,"end_character":59},"in_reply_to":"5a5ae5dd_db0be08c","updated":"2016-02-19 07:19:59.000000000","message":"of course, other compute nodes will have the new founded port info, after the one compute node find the new port by ovsdb monitor, it will pub the info to other compute nodes, I mean when plugin write a neutron port info to df db, it will not pub the info at this time, the pub should be triggered by ovsdb monitor compute node, btw, I have write the ovsdb monitor code and I will commit it soon:)","commit_id":"5f073fc8155ce145ddf5779a1e43d237727f40a7"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"25500c7194195756f88c37d1567d62dd4de2d1b6","unresolved":false,"context_lines":[{"line_number":51,"context_line":"\r"},{"line_number":52,"context_line":"1. OVSDB server start up and listen on port 6640 and Dragonflow start\r"},{"line_number":53,"context_line":"up while the OVSDB driver try to connect to OVSDB server as OVSDB\r"},{"line_number":54,"context_line":"client with tcp:127.0.0.1:6640;\r"},{"line_number":55,"context_line":"\r"},{"line_number":56,"context_line":"2. When OVSDB driver establish the channel with OVSDB server, OVSDB\r"},{"line_number":57,"context_line":"driver send the OVSDB monitor command with below jsonrpc content:\r"}],"source_content_type":"text/x-rst","patch_set":7,"id":"dae33548_4b4984cf","line":54,"updated":"2016-02-18 07:20:31.000000000","message":"Why not use an IPC mechanism, like unix sockets?","commit_id":"5f073fc8155ce145ddf5779a1e43d237727f40a7"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"210685fd867dcfde38fab165a5c5eb669ecc4bcc","unresolved":false,"context_lines":[{"line_number":51,"context_line":"\r"},{"line_number":52,"context_line":"1. OVSDB server start up and listen on port 6640 and Dragonflow start\r"},{"line_number":53,"context_line":"up while the OVSDB driver try to connect to OVSDB server as OVSDB\r"},{"line_number":54,"context_line":"client with tcp:127.0.0.1:6640;\r"},{"line_number":55,"context_line":"\r"},{"line_number":56,"context_line":"2. When OVSDB driver establish the channel with OVSDB server, OVSDB\r"},{"line_number":57,"context_line":"driver send the OVSDB monitor command with below jsonrpc content:\r"}],"source_content_type":"text/x-rst","patch_set":7,"id":"bae84128_77c5e43a","line":54,"in_reply_to":"dae33548_4b4984cf","updated":"2016-02-20 02:51:37.000000000","message":"we will use the socket work in TCP mode like this:\nself.sock \u003d socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)\nself.sock.connect((\"127.0.0.1\",6640))","commit_id":"5f073fc8155ce145ddf5779a1e43d237727f40a7"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"254e591aa4c3de98a7800a98269790c4fd2f1f2a","unresolved":false,"context_lines":[{"line_number":70,"context_line":"\r"},{"line_number":71,"context_line":"4. OVSDB driver receives and decodes the monitor reply message, it will\r"},{"line_number":72,"context_line":"map each interface info to different type events(bridge online, vm online,\r"},{"line_number":73,"context_line":"tunnel port online, patch port online), OVSDB driver will send these events\r"},{"line_number":74,"context_line":"to other Dragonflow module which is responsible for dispatch events;\r"},{"line_number":75,"context_line":"\r"},{"line_number":76,"context_line":"5. When tenant boot a vm on the host and add the vm port to the OVS bridge,\r"},{"line_number":77,"context_line":"OVSDB server will send a notification to OVSDB driver according to the\r"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a5ae5dd_fcb70df3","line":74,"range":{"start_line":73,"start_character":58,"end_line":74,"end_character":26},"updated":"2016-02-04 03:23:05.000000000","message":"How does driver send events to others(Sub/Pub), can you make a brief explanation?\n\nIf it use sub/pub pattern, please make sure application modules starts before the ovsdb_driver, to avoid message missing.","commit_id":"5f073fc8155ce145ddf5779a1e43d237727f40a7"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"045089d1af6a3218a63dfe6d24b81e7056188d52","unresolved":false,"context_lines":[{"line_number":70,"context_line":"\r"},{"line_number":71,"context_line":"4. OVSDB driver receives and decodes the monitor reply message, it will\r"},{"line_number":72,"context_line":"map each interface info to different type events(bridge online, vm online,\r"},{"line_number":73,"context_line":"tunnel port online, patch port online), OVSDB driver will send these events\r"},{"line_number":74,"context_line":"to other Dragonflow module which is responsible for dispatch events;\r"},{"line_number":75,"context_line":"\r"},{"line_number":76,"context_line":"5. When tenant boot a vm on the host and add the vm port to the OVS bridge,\r"},{"line_number":77,"context_line":"OVSDB server will send a notification to OVSDB driver according to the\r"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a5ae5dd_b7c64b66","line":74,"range":{"start_line":73,"start_character":58,"end_line":74,"end_character":26},"in_reply_to":"5a5ae5dd_893b1e38","updated":"2016-02-05 08:08:07.000000000","message":"yes, ovsdb driver will notify the event to other dragonflow module directly or using a queue by unblock consideration","commit_id":"5f073fc8155ce145ddf5779a1e43d237727f40a7"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"25500c7194195756f88c37d1567d62dd4de2d1b6","unresolved":false,"context_lines":[{"line_number":70,"context_line":"\r"},{"line_number":71,"context_line":"4. OVSDB driver receives and decodes the monitor reply message, it will\r"},{"line_number":72,"context_line":"map each interface info to different type events(bridge online, vm online,\r"},{"line_number":73,"context_line":"tunnel port online, patch port online), OVSDB driver will send these events\r"},{"line_number":74,"context_line":"to other Dragonflow module which is responsible for dispatch events;\r"},{"line_number":75,"context_line":"\r"},{"line_number":76,"context_line":"5. When tenant boot a vm on the host and add the vm port to the OVS bridge,\r"},{"line_number":77,"context_line":"OVSDB server will send a notification to OVSDB driver according to the\r"}],"source_content_type":"text/x-rst","patch_set":7,"id":"dae33548_eb005836","line":74,"range":{"start_line":73,"start_character":58,"end_line":74,"end_character":26},"in_reply_to":"5a5ae5dd_b7c64b66","updated":"2016-02-18 07:20:31.000000000","message":"To avoid confusion, consider changing \u0027other Dragonflow module\u0027 to \u0027local Dragonflow controller\u0027. This wait everyone knows communications stay within the node.\n\nPlease elaborate on how this is done. Direct calls? Python queues? in-proc pub/sub solution? pipe?","commit_id":"5f073fc8155ce145ddf5779a1e43d237727f40a7"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"505e94f5f3abecd0aaa5aa1bf98edce94c2c529e","unresolved":false,"context_lines":[{"line_number":70,"context_line":"\r"},{"line_number":71,"context_line":"4. OVSDB driver receives and decodes the monitor reply message, it will\r"},{"line_number":72,"context_line":"map each interface info to different type events(bridge online, vm online,\r"},{"line_number":73,"context_line":"tunnel port online, patch port online), OVSDB driver will send these events\r"},{"line_number":74,"context_line":"to other Dragonflow module which is responsible for dispatch events;\r"},{"line_number":75,"context_line":"\r"},{"line_number":76,"context_line":"5. When tenant boot a vm on the host and add the vm port to the OVS bridge,\r"},{"line_number":77,"context_line":"OVSDB server will send a notification to OVSDB driver according to the\r"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a5ae5dd_893b1e38","line":74,"range":{"start_line":73,"start_character":58,"end_line":74,"end_character":26},"in_reply_to":"5a5ae5dd_fcb70df3","updated":"2016-02-04 13:27:50.000000000","message":"its not the pub/sub, the meaning here i believe is internall communication.\nWe have a thread that listen to local OVSDB (for the local OVS) changes and then send these changes to the local dragonflow controller is a message queue (all in the same compute node)","commit_id":"5f073fc8155ce145ddf5779a1e43d237727f40a7"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"210685fd867dcfde38fab165a5c5eb669ecc4bcc","unresolved":false,"context_lines":[{"line_number":70,"context_line":"\r"},{"line_number":71,"context_line":"4. OVSDB driver receives and decodes the monitor reply message, it will\r"},{"line_number":72,"context_line":"map each interface info to different type events(bridge online, vm online,\r"},{"line_number":73,"context_line":"tunnel port online, patch port online), OVSDB driver will send these events\r"},{"line_number":74,"context_line":"to other Dragonflow module which is responsible for dispatch events;\r"},{"line_number":75,"context_line":"\r"},{"line_number":76,"context_line":"5. When tenant boot a vm on the host and add the vm port to the OVS bridge,\r"},{"line_number":77,"context_line":"OVSDB server will send a notification to OVSDB driver according to the\r"}],"source_content_type":"text/x-rst","patch_set":7,"id":"bae84128_77dcc412","line":74,"range":{"start_line":73,"start_character":58,"end_line":74,"end_character":26},"in_reply_to":"dae33548_eb005836","updated":"2016-02-20 02:51:37.000000000","message":"It is very simple process indeed:), after ovsdb monitor analyse and generate the ovsdb event, it will send msgs to RyuDfAdaptor module which will dispatch the msgs to apps","commit_id":"5f073fc8155ce145ddf5779a1e43d237727f40a7"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"254e591aa4c3de98a7800a98269790c4fd2f1f2a","unresolved":false,"context_lines":[{"line_number":85,"context_line":"the delete vm interface detail info, and after OVSDB driver receive the\r"},{"line_number":86,"context_line":"notification it will do the same work as step 4.\r"},{"line_number":87,"context_line":"\r"},{"line_number":88,"context_line":"If we restart Dragonflow process or restart the OVSDB, Dragonflow OVSDB\r"},{"line_number":89,"context_line":"driver will reconnect to OVSDB server, so step1 to 6 will be executed again.\r"},{"line_number":90,"context_line":"\r"},{"line_number":91,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\r"},{"line_number":92,"context_line":"Event Classification\r"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a5ae5dd_472a0a80","line":89,"range":{"start_line":88,"start_character":0,"end_line":89,"end_character":76},"updated":"2016-02-04 03:23:05.000000000","message":"If controller receives logical_port updated meassage, but the ovsdb monitor doesn\u0027t work( such as messages blocked),  how will controller do?","commit_id":"5f073fc8155ce145ddf5779a1e43d237727f40a7"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"b4fd8c1d3d3357fd1b3518733ce91245ac424d34","unresolved":false,"context_lines":[{"line_number":85,"context_line":"the delete vm interface detail info, and after OVSDB driver receive the\r"},{"line_number":86,"context_line":"notification it will do the same work as step 4.\r"},{"line_number":87,"context_line":"\r"},{"line_number":88,"context_line":"If we restart Dragonflow process or restart the OVSDB, Dragonflow OVSDB\r"},{"line_number":89,"context_line":"driver will reconnect to OVSDB server, so step1 to 6 will be executed again.\r"},{"line_number":90,"context_line":"\r"},{"line_number":91,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\r"},{"line_number":92,"context_line":"Event Classification\r"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a5ae5dd_9b38083f","line":89,"range":{"start_line":88,"start_character":0,"end_line":89,"end_character":76},"in_reply_to":"5a5ae5dd_472a0a80","updated":"2016-02-05 14:57:27.000000000","message":"I think this should work very similar to the way it works now, just save the logical_port update msg to the cache and then \"apply it\" (send to applications) when the ovsdb monitor message is received","commit_id":"5f073fc8155ce145ddf5779a1e43d237727f40a7"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"8533326721b1cd0cdb957311c96e675abf6cb953","unresolved":false,"context_lines":[{"line_number":85,"context_line":"the delete vm interface detail info, and after OVSDB driver receive the\r"},{"line_number":86,"context_line":"notification it will do the same work as step 4.\r"},{"line_number":87,"context_line":"\r"},{"line_number":88,"context_line":"If we restart Dragonflow process or restart the OVSDB, Dragonflow OVSDB\r"},{"line_number":89,"context_line":"driver will reconnect to OVSDB server, so step1 to 6 will be executed again.\r"},{"line_number":90,"context_line":"\r"},{"line_number":91,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\r"},{"line_number":92,"context_line":"Event Classification\r"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a5ae5dd_943ead8a","line":89,"range":{"start_line":88,"start_character":0,"end_line":89,"end_character":76},"in_reply_to":"5a5ae5dd_472a0a80","updated":"2016-02-05 07:41:48.000000000","message":"discuss with you offline:)","commit_id":"5f073fc8155ce145ddf5779a1e43d237727f40a7"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"045089d1af6a3218a63dfe6d24b81e7056188d52","unresolved":false,"context_lines":[{"line_number":85,"context_line":"the delete vm interface detail info, and after OVSDB driver receive the\r"},{"line_number":86,"context_line":"notification it will do the same work as step 4.\r"},{"line_number":87,"context_line":"\r"},{"line_number":88,"context_line":"If we restart Dragonflow process or restart the OVSDB, Dragonflow OVSDB\r"},{"line_number":89,"context_line":"driver will reconnect to OVSDB server, so step1 to 6 will be executed again.\r"},{"line_number":90,"context_line":"\r"},{"line_number":91,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\r"},{"line_number":92,"context_line":"Event Classification\r"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a5ae5dd_d4bf45a8","line":89,"range":{"start_line":88,"start_character":0,"end_line":89,"end_character":76},"in_reply_to":"5a5ae5dd_943ead8a","updated":"2016-02-05 08:08:07.000000000","message":"Done","commit_id":"5f073fc8155ce145ddf5779a1e43d237727f40a7"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"210685fd867dcfde38fab165a5c5eb669ecc4bcc","unresolved":false,"context_lines":[{"line_number":85,"context_line":"the delete vm interface detail info, and after OVSDB driver receive the\r"},{"line_number":86,"context_line":"notification it will do the same work as step 4.\r"},{"line_number":87,"context_line":"\r"},{"line_number":88,"context_line":"If we restart Dragonflow process or restart the OVSDB, Dragonflow OVSDB\r"},{"line_number":89,"context_line":"driver will reconnect to OVSDB server, so step1 to 6 will be executed again.\r"},{"line_number":90,"context_line":"\r"},{"line_number":91,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\r"},{"line_number":92,"context_line":"Event Classification\r"}],"source_content_type":"text/x-rst","patch_set":7,"id":"bae84128_f78294ff","line":89,"range":{"start_line":88,"start_character":0,"end_line":89,"end_character":76},"in_reply_to":"5a5ae5dd_9b38083f","updated":"2016-02-20 02:51:37.000000000","message":"yes, when receive ovsdb monitor message it will search the conrresponding info about the logical port in the cache, if found nothing, dragonflow will fetch the info from df db, and combine the Neutron port + ovsdb port info into a whole logical port, and dispatcher to apps and also pub to other compute nodes","commit_id":"5f073fc8155ce145ddf5779a1e43d237727f40a7"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"25500c7194195756f88c37d1567d62dd4de2d1b6","unresolved":false,"context_lines":[{"line_number":111,"context_line":"\r"},{"line_number":112,"context_line":"Remote_ip    10.10.10.10\r"},{"line_number":113,"context_line":"name         dfxxx\r"},{"line_number":114,"context_line":"type         Vxlan\\gre\\geneve\r"},{"line_number":115,"context_line":"\r"},{"line_number":116,"context_line":"Patch port online\\offline:\r"},{"line_number":117,"context_line":"\r"}],"source_content_type":"text/x-rst","patch_set":7,"id":"dae33548_46717b43","line":114,"updated":"2016-02-18 07:20:31.000000000","message":"Consider including the connected chassis\u0027 name in this event.","commit_id":"5f073fc8155ce145ddf5779a1e43d237727f40a7"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"210685fd867dcfde38fab165a5c5eb669ecc4bcc","unresolved":false,"context_lines":[{"line_number":111,"context_line":"\r"},{"line_number":112,"context_line":"Remote_ip    10.10.10.10\r"},{"line_number":113,"context_line":"name         dfxxx\r"},{"line_number":114,"context_line":"type         Vxlan\\gre\\geneve\r"},{"line_number":115,"context_line":"\r"},{"line_number":116,"context_line":"Patch port online\\offline:\r"},{"line_number":117,"context_line":"\r"}],"source_content_type":"text/x-rst","patch_set":7,"id":"bae84128_574700bb","line":114,"in_reply_to":"dae33548_46717b43","updated":"2016-02-20 02:51:37.000000000","message":"do you mean insert chassis name field into tunnel port event? if so, OK:)","commit_id":"5f073fc8155ce145ddf5779a1e43d237727f40a7"}]}
