)]}'
{"doc/source/specs/selective_topo_dist.rst":[{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"8daf578329f9b714cb9e417869827e74113733dd","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                                  +---\u003e Subscriber C |"},{"line_number":75,"context_line":"                                      +--------------+"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Tow ways to distribute topology selectively"},{"line_number":78,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":79,"context_line":"There are many type of topology change. In large scale data center, number of"},{"line_number":80,"context_line":"tenants is also considerable. There will be tons of topics if publish different"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_efcadf19","line":77,"range":{"start_line":77,"start_character":0,"end_line":77,"end_character":4},"updated":"2016-02-05 09:30:29.000000000","message":"two?","commit_id":"1779bd4c2b560b8fb63fb1bd389a76c35a1fd2dd"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"81b237d365da9b7babda560b831356ff4e7ed395","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                                  +---\u003e Subscriber C |"},{"line_number":75,"context_line":"                                      +--------------+"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Tow ways to distribute topology selectively"},{"line_number":78,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":79,"context_line":"There are many type of topology change. In large scale data center, number of"},{"line_number":80,"context_line":"tenants is also considerable. There will be tons of topics if publish different"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_9260f4a6","line":77,"range":{"start_line":77,"start_character":0,"end_line":77,"end_character":4},"in_reply_to":"5a5ae5dd_efcadf19","updated":"2016-02-05 11:54:51.000000000","message":"Done","commit_id":"1779bd4c2b560b8fb63fb1bd389a76c35a1fd2dd"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"8daf578329f9b714cb9e417869827e74113733dd","unresolved":false,"context_lines":[{"line_number":79,"context_line":"There are many type of topology change. In large scale data center, number of"},{"line_number":80,"context_line":"tenants is also considerable. There will be tons of topics if publish different"},{"line_number":81,"context_line":"events to different topics. The implementation will be too complex. Some degree"},{"line_number":82,"context_line":"of convergence have to be taken into accounted to simplify the situation. There"},{"line_number":83,"context_line":"are two way to converge the types of topology change."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"One topic per tenant"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_f4b28193","line":82,"range":{"start_line":82,"start_character":43,"end_line":82,"end_character":46},"updated":"2016-02-05 09:30:29.000000000","message":"account","commit_id":"1779bd4c2b560b8fb63fb1bd389a76c35a1fd2dd"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"81b237d365da9b7babda560b831356ff4e7ed395","unresolved":false,"context_lines":[{"line_number":79,"context_line":"There are many type of topology change. In large scale data center, number of"},{"line_number":80,"context_line":"tenants is also considerable. There will be tons of topics if publish different"},{"line_number":81,"context_line":"events to different topics. The implementation will be too complex. Some degree"},{"line_number":82,"context_line":"of convergence have to be taken into accounted to simplify the situation. There"},{"line_number":83,"context_line":"are two way to converge the types of topology change."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"One topic per tenant"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_b265f0b5","line":82,"range":{"start_line":82,"start_character":43,"end_line":82,"end_character":46},"in_reply_to":"5a5ae5dd_f4b28193","updated":"2016-02-05 11:54:51.000000000","message":"Done","commit_id":"1779bd4c2b560b8fb63fb1bd389a76c35a1fd2dd"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"8daf578329f9b714cb9e417869827e74113733dd","unresolved":false,"context_lines":[{"line_number":80,"context_line":"tenants is also considerable. There will be tons of topics if publish different"},{"line_number":81,"context_line":"events to different topics. The implementation will be too complex. Some degree"},{"line_number":82,"context_line":"of convergence have to be taken into accounted to simplify the situation. There"},{"line_number":83,"context_line":"are two way to converge the types of topology change."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"One topic per tenant"},{"line_number":86,"context_line":"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_7465311c","line":83,"range":{"start_line":83,"start_character":8,"end_line":83,"end_character":11},"updated":"2016-02-05 09:30:29.000000000","message":"ways?","commit_id":"1779bd4c2b560b8fb63fb1bd389a76c35a1fd2dd"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"81b237d365da9b7babda560b831356ff4e7ed395","unresolved":false,"context_lines":[{"line_number":80,"context_line":"tenants is also considerable. There will be tons of topics if publish different"},{"line_number":81,"context_line":"events to different topics. The implementation will be too complex. Some degree"},{"line_number":82,"context_line":"of convergence have to be taken into accounted to simplify the situation. There"},{"line_number":83,"context_line":"are two way to converge the types of topology change."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"One topic per tenant"},{"line_number":86,"context_line":"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_725bf8f6","line":83,"range":{"start_line":83,"start_character":8,"end_line":83,"end_character":11},"in_reply_to":"5a5ae5dd_7465311c","updated":"2016-02-05 11:54:51.000000000","message":"Done","commit_id":"1779bd4c2b560b8fb63fb1bd389a76c35a1fd2dd"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"8daf578329f9b714cb9e417869827e74113733dd","unresolved":false,"context_lines":[{"line_number":82,"context_line":"of convergence have to be taken into accounted to simplify the situation. There"},{"line_number":83,"context_line":"are two way to converge the types of topology change."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"One topic per tenant"},{"line_number":86,"context_line":"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""},{"line_number":87,"context_line":"One tenant has only one topic. All kinds of change in topology of the tenant are"},{"line_number":88,"context_line":"sent to this topic."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_b79deb67","line":85,"range":{"start_line":85,"start_character":0,"end_line":85,"end_character":20},"updated":"2016-02-05 09:30:29.000000000","message":"Which topic will be used?\nOr both topics will be used for different scenario?","commit_id":"1779bd4c2b560b8fb63fb1bd389a76c35a1fd2dd"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"81b237d365da9b7babda560b831356ff4e7ed395","unresolved":false,"context_lines":[{"line_number":82,"context_line":"of convergence have to be taken into accounted to simplify the situation. There"},{"line_number":83,"context_line":"are two way to converge the types of topology change."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"One topic per tenant"},{"line_number":86,"context_line":"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""},{"line_number":87,"context_line":"One tenant has only one topic. All kinds of change in topology of the tenant are"},{"line_number":88,"context_line":"sent to this topic."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_12eac4db","line":85,"range":{"start_line":85,"start_character":0,"end_line":85,"end_character":20},"in_reply_to":"5a5ae5dd_b79deb67","updated":"2016-02-05 11:54:51.000000000","message":"As what described in the following section, the first way will be used.","commit_id":"1779bd4c2b560b8fb63fb1bd389a76c35a1fd2dd"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"8daf578329f9b714cb9e417869827e74113733dd","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"When a tenant named tenant1 create a port through neutron\u0027s northbound api,"},{"line_number":126,"context_line":"neutron\u0027s Dragonflow plugin will publish a event to tenant\u0027s topic in the sub/pub"},{"line_number":127,"context_line":"server. The sub/pub server will then check who have subscribed the topic and"},{"line_number":128,"context_line":"publish the event to them. On receiving the event, local controller will save"},{"line_number":129,"context_line":"the new port\u0027s information and install some flow entries on OVS which is not"},{"line_number":130,"context_line":"covered in this spec."},{"line_number":131,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_683eaedb","line":128,"range":{"start_line":127,"start_character":43,"end_line":128,"end_character":27},"updated":"2016-02-05 09:30:29.000000000","message":"When will the listener subscribe a topic?\nDoes it depends on southbound topology?","commit_id":"1779bd4c2b560b8fb63fb1bd389a76c35a1fd2dd"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"81b237d365da9b7babda560b831356ff4e7ed395","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"When a tenant named tenant1 create a port through neutron\u0027s northbound api,"},{"line_number":126,"context_line":"neutron\u0027s Dragonflow plugin will publish a event to tenant\u0027s topic in the sub/pub"},{"line_number":127,"context_line":"server. The sub/pub server will then check who have subscribed the topic and"},{"line_number":128,"context_line":"publish the event to them. On receiving the event, local controller will save"},{"line_number":129,"context_line":"the new port\u0027s information and install some flow entries on OVS which is not"},{"line_number":130,"context_line":"covered in this spec."},{"line_number":131,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_b296503d","line":128,"range":{"start_line":127,"start_character":43,"end_line":128,"end_character":27},"in_reply_to":"5a5ae5dd_683eaedb","updated":"2016-02-05 11:54:51.000000000","message":"Yes, see the following diagrams.","commit_id":"1779bd4c2b560b8fb63fb1bd389a76c35a1fd2dd"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"8daf578329f9b714cb9e417869827e74113733dd","unresolved":false,"context_lines":[{"line_number":155,"context_line":"When nova startup a VM on a compute node, it will insert a port on the corresponding"},{"line_number":156,"context_line":"OVS bridge. On knowing a new OVS port online, Dragonflow local controller queries"},{"line_number":157,"context_line":"port\u0027s topology from Dragonflow database and knows which tenant the port belongs"},{"line_number":158,"context_line":"to. After that, it query local cache to find out are there any other local ports"},{"line_number":159,"context_line":"belong to the same tenant. If there already are local ports of the same tenant,"},{"line_number":160,"context_line":"local controller should have subscribed the tenant\u0027s topic, it will not subscribe"},{"line_number":161,"context_line":"the topic again. It the new port is the only local port in the compute node belongs"},{"line_number":162,"context_line":"to the tenant, local controller will subscribe the tenant\u0027s topic."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_0344bd47","line":159,"range":{"start_line":158,"start_character":16,"end_line":159,"end_character":25},"updated":"2016-02-05 09:30:29.000000000","message":"If there\u0027re two vms on different compute node, and they almost online at the same time, please take this scenario into accout.","commit_id":"1779bd4c2b560b8fb63fb1bd389a76c35a1fd2dd"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"81b237d365da9b7babda560b831356ff4e7ed395","unresolved":false,"context_lines":[{"line_number":155,"context_line":"When nova startup a VM on a compute node, it will insert a port on the corresponding"},{"line_number":156,"context_line":"OVS bridge. On knowing a new OVS port online, Dragonflow local controller queries"},{"line_number":157,"context_line":"port\u0027s topology from Dragonflow database and knows which tenant the port belongs"},{"line_number":158,"context_line":"to. After that, it query local cache to find out are there any other local ports"},{"line_number":159,"context_line":"belong to the same tenant. If there already are local ports of the same tenant,"},{"line_number":160,"context_line":"local controller should have subscribed the tenant\u0027s topic, it will not subscribe"},{"line_number":161,"context_line":"the topic again. It the new port is the only local port in the compute node belongs"},{"line_number":162,"context_line":"to the tenant, local controller will subscribe the tenant\u0027s topic."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_326d8031","line":159,"range":{"start_line":158,"start_character":16,"end_line":159,"end_character":25},"in_reply_to":"5a5ae5dd_0344bd47","updated":"2016-02-05 11:54:51.000000000","message":"only local ports are checked. So vm ports on different compute nodes will not affect each other. When two ports in the same compute node get online simultaneously, the event will be processed one by one. So there is no conflict.","commit_id":"1779bd4c2b560b8fb63fb1bd389a76c35a1fd2dd"},{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"8daf578329f9b714cb9e417869827e74113733dd","unresolved":false,"context_lines":[{"line_number":158,"context_line":"to. After that, it query local cache to find out are there any other local ports"},{"line_number":159,"context_line":"belong to the same tenant. If there already are local ports of the same tenant,"},{"line_number":160,"context_line":"local controller should have subscribed the tenant\u0027s topic, it will not subscribe"},{"line_number":161,"context_line":"the topic again. It the new port is the only local port in the compute node belongs"},{"line_number":162,"context_line":"to the tenant, local controller will subscribe the tenant\u0027s topic."},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"+----------------+ +------------------+"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_3756dbce","line":161,"range":{"start_line":161,"start_character":16,"end_line":161,"end_character":20},"updated":"2016-02-05 09:30:29.000000000","message":"If","commit_id":"1779bd4c2b560b8fb63fb1bd389a76c35a1fd2dd"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"81b237d365da9b7babda560b831356ff4e7ed395","unresolved":false,"context_lines":[{"line_number":158,"context_line":"to. After that, it query local cache to find out are there any other local ports"},{"line_number":159,"context_line":"belong to the same tenant. If there already are local ports of the same tenant,"},{"line_number":160,"context_line":"local controller should have subscribed the tenant\u0027s topic, it will not subscribe"},{"line_number":161,"context_line":"the topic again. It the new port is the only local port in the compute node belongs"},{"line_number":162,"context_line":"to the tenant, local controller will subscribe the tenant\u0027s topic."},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"+----------------+ +------------------+"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_72d458bc","line":161,"range":{"start_line":161,"start_character":16,"end_line":161,"end_character":20},"in_reply_to":"5a5ae5dd_3756dbce","updated":"2016-02-05 11:54:51.000000000","message":"Done","commit_id":"1779bd4c2b560b8fb63fb1bd389a76c35a1fd2dd"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"ed5271f06927e2829d9853c34f083124efeb9b7d","unresolved":false,"context_lines":[{"line_number":101,"context_line":"One topic per vpc or router"},{"line_number":102,"context_line":"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""},{"line_number":103,"context_line":"Every vpc or router has its own topic. For isolated networks which don\u0027t connect"},{"line_number":104,"context_line":"to any routers, they also their own topic. Change in topology are published to the"},{"line_number":105,"context_line":"corresponding topic."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"**Pros**"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_66122759","line":104,"updated":"2016-02-07 13:25:31.000000000","message":"\"they also have their..\"   , \"changes in topology..\"","commit_id":"ef719d55e4a7c51a7ad7864bd4e3e5be27bba11d"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"a844af0c675da724cc34584780642a5ddcf89f20","unresolved":false,"context_lines":[{"line_number":101,"context_line":"One topic per vpc or router"},{"line_number":102,"context_line":"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\""},{"line_number":103,"context_line":"Every vpc or router has its own topic. For isolated networks which don\u0027t connect"},{"line_number":104,"context_line":"to any routers, they also their own topic. Change in topology are published to the"},{"line_number":105,"context_line":"corresponding topic."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"**Pros**"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dae33548_c2e4053d","line":104,"in_reply_to":"5a5ae5dd_66122759","updated":"2016-02-16 03:03:59.000000000","message":"Done","commit_id":"ef719d55e4a7c51a7ad7864bd4e3e5be27bba11d"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"d38c941f5efc48aaac7272f9e1d2bdb8e42f498a","unresolved":false,"context_lines":[{"line_number":103,"context_line":"Every vpc or router has its own topic. For isolated networks which don\u0027t connect"},{"line_number":104,"context_line":"to any routers, they also their own topic. Change in topology are published to the"},{"line_number":105,"context_line":"corresponding topic."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"**Pros**"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Finer grained. When a tenant have many vpc or routers or isolated networks, Change"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_fec3a188","line":106,"updated":"2016-02-09 13:32:50.000000000","message":"The fined grained topic solution has to be closely looked at. If the topic is based on e.g. VM, then the other controllers will have to be informed via another topic.","commit_id":"ef719d55e4a7c51a7ad7864bd4e3e5be27bba11d"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"a844af0c675da724cc34584780642a5ddcf89f20","unresolved":false,"context_lines":[{"line_number":103,"context_line":"Every vpc or router has its own topic. For isolated networks which don\u0027t connect"},{"line_number":104,"context_line":"to any routers, they also their own topic. Change in topology are published to the"},{"line_number":105,"context_line":"corresponding topic."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"**Pros**"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Finer grained. When a tenant have many vpc or routers or isolated networks, Change"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dae33548_e2f149cf","line":106,"in_reply_to":"5a5ae5dd_fec3a188","updated":"2016-02-16 03:03:59.000000000","message":"Yes, it\u0027s more complex. We may discuss it in another release of dragonflow.","commit_id":"ef719d55e4a7c51a7ad7864bd4e3e5be27bba11d"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"ac52762ffdd61493fab7c64fd0c42ec47eaf132b","unresolved":false,"context_lines":[{"line_number":114,"context_line":"Harder for subscriber and publisher to decide which topic they should subscribe"},{"line_number":115,"context_line":"or publish."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Here, I will only discuss the first way for simplicity."},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"Detailed design"},{"line_number":120,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dae33548_ea29ed38","line":117,"range":{"start_line":117,"start_character":44,"end_line":117,"end_character":54},"updated":"2016-02-16 10:36:14.000000000","message":"For simplicity or for the initial implementation? I think it is worth mentioning that we will implement the fine-grained method in the later stage.","commit_id":"ef719d55e4a7c51a7ad7864bd4e3e5be27bba11d"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"ed5271f06927e2829d9853c34f083124efeb9b7d","unresolved":false,"context_lines":[{"line_number":153,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"When nova starts a VM on a compute node, it will insert a port on the corresponding"},{"line_number":156,"context_line":"OVS bridge. On knowing a new OVS port online, Dragonflow local controller queries"},{"line_number":157,"context_line":"port\u0027s topology from Dragonflow database and knows which tenant the port belongs"},{"line_number":158,"context_line":"to. After that, it query local cache to find out are there any other local ports"},{"line_number":159,"context_line":"belong to the same tenant. If there already are local ports of the same tenant,"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_063493db","line":156,"updated":"2016-02-07 13:25:31.000000000","message":"\"On knowing a new OVS port online\" \u003d\u003e \"when Dragonflow local controller OVSDB monitor thread detect new port..\"","commit_id":"ef719d55e4a7c51a7ad7864bd4e3e5be27bba11d"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"a844af0c675da724cc34584780642a5ddcf89f20","unresolved":false,"context_lines":[{"line_number":153,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"When nova starts a VM on a compute node, it will insert a port on the corresponding"},{"line_number":156,"context_line":"OVS bridge. On knowing a new OVS port online, Dragonflow local controller queries"},{"line_number":157,"context_line":"port\u0027s topology from Dragonflow database and knows which tenant the port belongs"},{"line_number":158,"context_line":"to. After that, it query local cache to find out are there any other local ports"},{"line_number":159,"context_line":"belong to the same tenant. If there already are local ports of the same tenant,"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dae33548_42ed958a","line":156,"in_reply_to":"5a5ae5dd_063493db","updated":"2016-02-16 03:03:59.000000000","message":"The port online event can be detected by OVSDB monitor thread or Openflow plugin, we can leave it to other specs to describe.","commit_id":"ef719d55e4a7c51a7ad7864bd4e3e5be27bba11d"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"ed5271f06927e2829d9853c34f083124efeb9b7d","unresolved":false,"context_lines":[{"line_number":155,"context_line":"When nova starts a VM on a compute node, it will insert a port on the corresponding"},{"line_number":156,"context_line":"OVS bridge. On knowing a new OVS port online, Dragonflow local controller queries"},{"line_number":157,"context_line":"port\u0027s topology from Dragonflow database and knows which tenant the port belongs"},{"line_number":158,"context_line":"to. After that, it query local cache to find out are there any other local ports"},{"line_number":159,"context_line":"belong to the same tenant. If there already are local ports of the same tenant,"},{"line_number":160,"context_line":"local controller should have subscribed the tenant\u0027s topic, it will not subscribe"},{"line_number":161,"context_line":"the topic again. If the new port is the only local port in the compute node belongs"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_262f4f89","line":158,"updated":"2016-02-07 13:25:31.000000000","message":"maybe use some spaces after points, will make it easier to read","commit_id":"ef719d55e4a7c51a7ad7864bd4e3e5be27bba11d"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"a844af0c675da724cc34584780642a5ddcf89f20","unresolved":false,"context_lines":[{"line_number":155,"context_line":"When nova starts a VM on a compute node, it will insert a port on the corresponding"},{"line_number":156,"context_line":"OVS bridge. On knowing a new OVS port online, Dragonflow local controller queries"},{"line_number":157,"context_line":"port\u0027s topology from Dragonflow database and knows which tenant the port belongs"},{"line_number":158,"context_line":"to. After that, it query local cache to find out are there any other local ports"},{"line_number":159,"context_line":"belong to the same tenant. If there already are local ports of the same tenant,"},{"line_number":160,"context_line":"local controller should have subscribed the tenant\u0027s topic, it will not subscribe"},{"line_number":161,"context_line":"the topic again. If the new port is the only local port in the compute node belongs"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dae33548_c36526e2","line":158,"in_reply_to":"5a5ae5dd_262f4f89","updated":"2016-02-16 03:03:59.000000000","message":"Done","commit_id":"ef719d55e4a7c51a7ad7864bd4e3e5be27bba11d"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"ed5271f06927e2829d9853c34f083124efeb9b7d","unresolved":false,"context_lines":[{"line_number":156,"context_line":"OVS bridge. On knowing a new OVS port online, Dragonflow local controller queries"},{"line_number":157,"context_line":"port\u0027s topology from Dragonflow database and knows which tenant the port belongs"},{"line_number":158,"context_line":"to. After that, it query local cache to find out are there any other local ports"},{"line_number":159,"context_line":"belong to the same tenant. If there already are local ports of the same tenant,"},{"line_number":160,"context_line":"local controller should have subscribed the tenant\u0027s topic, it will not subscribe"},{"line_number":161,"context_line":"the topic again. If the new port is the only local port in the compute node belongs"},{"line_number":162,"context_line":"to the tenant, local controller will subscribe the tenant\u0027s topic."}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_c650bb0d","line":159,"updated":"2016-02-07 13:25:31.000000000","message":"\"query the local cache to see if it already registered to the tenant topic\"","commit_id":"ef719d55e4a7c51a7ad7864bd4e3e5be27bba11d"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"a844af0c675da724cc34584780642a5ddcf89f20","unresolved":false,"context_lines":[{"line_number":156,"context_line":"OVS bridge. On knowing a new OVS port online, Dragonflow local controller queries"},{"line_number":157,"context_line":"port\u0027s topology from Dragonflow database and knows which tenant the port belongs"},{"line_number":158,"context_line":"to. After that, it query local cache to find out are there any other local ports"},{"line_number":159,"context_line":"belong to the same tenant. If there already are local ports of the same tenant,"},{"line_number":160,"context_line":"local controller should have subscribed the tenant\u0027s topic, it will not subscribe"},{"line_number":161,"context_line":"the topic again. If the new port is the only local port in the compute node belongs"},{"line_number":162,"context_line":"to the tenant, local controller will subscribe the tenant\u0027s topic."}],"source_content_type":"text/x-rst","patch_set":3,"id":"dae33548_433c7693","line":159,"in_reply_to":"5a5ae5dd_c650bb0d","updated":"2016-02-16 03:03:59.000000000","message":"Done","commit_id":"ef719d55e4a7c51a7ad7864bd4e3e5be27bba11d"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"ed5271f06927e2829d9853c34f083124efeb9b7d","unresolved":false,"context_lines":[{"line_number":175,"context_line":"       |                 from database"},{"line_number":176,"context_line":"       |                    |"},{"line_number":177,"context_line":"       | subscribe(tenant1) |"},{"line_number":178,"context_line":"       \u003c--------------------+"},{"line_number":179,"context_line":"       |                    |"},{"line_number":180,"context_line":"       |                    |"},{"line_number":181,"context_line":"       +                    +"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_4645ab43","line":178,"updated":"2016-02-07 13:25:31.000000000","message":"The controller now need to also bring all the existing tenant topology from the DB and install it","commit_id":"ef719d55e4a7c51a7ad7864bd4e3e5be27bba11d"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"ed5271f06927e2829d9853c34f083124efeb9b7d","unresolved":false,"context_lines":[{"line_number":194,"context_line":""},{"line_number":195,"context_line":"Dragonflow Local Controller Offline"},{"line_number":196,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":197,"context_line":"If one local controller offline, it should be removed from all topics it has"},{"line_number":198,"context_line":"subscribed. Some module outside the compute node has to do this job. This problem"},{"line_number":199,"context_line":"will be dressed on another spec."}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_866de3cd","line":197,"updated":"2016-02-07 13:25:31.000000000","message":"Not sure what you mean \"offline\", this really depends how is your publisher/subscriber is implemented, if the publisher needs to know all subscribers then it also needs to keep \"heartbeat\" protocol with them.\n\nIt really depends on the publish/subscriber and i think its the specific implementation responsibility to make sure this works.","commit_id":"ef719d55e4a7c51a7ad7864bd4e3e5be27bba11d"}]}
